From 0f537a49e1cbf04382d452906fcd5fbe21d20a79 Mon Sep 17 00:00:00 2001 From: Daniel Schaefer Date: Tue, 30 Apr 2019 08:05:49 +0200 Subject: [PATCH] chromium: Use upstream desktop entry Upstream provides a much more featureful desktop entry file. If we use that we take advantage of all of those features and don't have to maintain it ourselves. --- .../networking/browsers/chromium/browser.nix | 19 ++++++++++++++ .../networking/browsers/chromium/default.nix | 26 ------------------- 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index faa5bc121cb8..dbe1b2d49619 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -38,6 +38,25 @@ mkChromiumDerivation (base: rec { mkdir -vp "$logo_output_path" cp -v "$icon_file" "$logo_output_path/$packageName.png" done + + # Install Desktop Entry + install -D chrome/installer/linux/common/desktop.template \ + $out/share/applications/chromium-browser.desktop + + substituteInPlace $out/share/applications/chromium-browser.desktop \ + --replace "@@MENUNAME@@" "Chromium" \ + --replace "@@PACKAGE@@" "chromium" \ + --replace "Exec=/usr/bin/@@USR_BIN_SYMLINK_NAME@@" "Exec=chromium" + + # Append more mime types to the end + sed -i '/^MimeType=/ s,$,x-scheme-handler/webcal;x-scheme-handler/mailto;x-scheme-handler/about;x-scheme-handler/unknown,' \ + $out/share/applications/chromium-browser.desktop + + # See https://github.com/NixOS/nixpkgs/issues/12433 + sed -i \ + -e '/\[Desktop Entry\]/a\' \ + -e 'StartupWMClass=chromium-browser' \ + $out/share/applications/chromium-browser.desktop ''; passthru = { inherit sandboxExecutableName; }; diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix index 68aee1f98d76..0955b849aa98 100644 --- a/pkgs/applications/networking/browsers/chromium/default.nix +++ b/pkgs/applications/networking/browsers/chromium/default.nix @@ -45,31 +45,6 @@ in let }; }; - desktopItem = makeDesktopItem { - name = "chromium-browser"; - exec = "chromium %U"; - icon = "chromium"; - comment = "An open source web browser from Google"; - desktopName = "Chromium"; - genericName = "Web browser"; - mimeType = stdenv.lib.concatStringsSep ";" [ - "text/html" - "text/xml" - "application/xhtml+xml" - "x-scheme-handler/http" - "x-scheme-handler/https" - "x-scheme-handler/ftp" - "x-scheme-handler/mailto" - "x-scheme-handler/webcal" - "x-scheme-handler/about" - "x-scheme-handler/unknown" - ]; - categories = "Network;WebBrowser"; - extraEntries = '' - StartupWMClass=chromium-browser - ''; - }; - suffix = if channel != "stable" then "-" + channel else ""; sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName; @@ -135,7 +110,6 @@ in stdenv.mkDerivation { for f in '${chromium.browser}'/share/*; do # hello emacs */ ln -s -t "$out/share/" "$f" done - cp -v "${desktopItem}/share/applications/"* "$out/share/applications" ''; inherit (chromium.browser) packageName;