How can I override a .desktop file instead of creating a new one?

Because I am using hyprland, so many app has to launch with some parameters.
Now I am using this:

xdg.desktopEntries = {
    chrome = {
      name = "Chrome WebBrowser";
      exec = "google-chrome-stable --enable-wayland-ime --enable-features=TouchpadOverscrollHistoryNavigation";
      icon = "${pkgs.morewaita-icon-theme}/share/icons/MoreWaita/apps/scalable/com.google.Chrome.svg";
      genericName = "Web Browser";
      terminal = false;
      categories = [ "Application" "Network" "WebBrowser" ];
      mimeType = [ "text/html" "text/xml" ];
    };

But this will only create new one, then there will be two results of one app in app launcher, which is annoying.
Is there any method, that I can only change the ‘exec’ of the original .desktop file?

The google-chrome package has its desktop file at share/applications/google-chrome.desktop.

One of the ways you could confirm this desktop filename is by running:

xdg-settings get default-web-browser

Try changing the xdg.desktopEntries attribute name chrome to google-chrome.

This should ensure that your home-manager desktop entry replaces the one belonging to the google-chrome package, instead of creating an additional desktop entry with a slightly different filename.

I’m not aware of any good method.

This is something I really want to have.