diff options
-rw-r--r-- | pkgs/applications/networking/browsers/firefox-wrapper/default.nix | 15 | ||||
-rw-r--r-- | pkgs/build-support/make-desktopitem/default.nix | 33 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 6 |
3 files changed, 52 insertions, 2 deletions
diff --git a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix b/pkgs/applications/networking/browsers/firefox-wrapper/default.nix index c201d30e13f..f68f0f92e28 100644 --- a/pkgs/applications/networking/browsers/firefox-wrapper/default.nix +++ b/pkgs/applications/networking/browsers/firefox-wrapper/default.nix @@ -1,8 +1,18 @@ -{stdenv, browser, browserName ? "firefox", nameSuffix ? "", makeWrapper, plugins}: +{stdenv, browser, browserName ? "firefox", nameSuffix ? "", makeDesktopItem, makeWrapper, plugins}: stdenv.mkDerivation { name = browser.name + "-with-plugins"; + desktopItem = makeDesktopItem { + name = browserName; + exec = browserName; + icon = "${browser}/lib/${browser.name}/icons/mozicon128.png"; + comment = ""; + desktopName = browserName; + genericName = "Web Browser"; + categories = "Application;Network;"; + }; + buildInputs = [makeWrapper]; buildCommand = '' @@ -16,6 +26,9 @@ stdenv.mkDerivation { "$out/bin/${browserName}${nameSuffix}" \ --suffix-each MOZ_PLUGIN_PATH ':' "$plugins" \ --suffix-contents PATH ':' "$(filterExisting $(addSuffix /extra-bin-path $plugins))" + + ensureDir $out/share/applications + cp $desktopItem/share/applications/* $out/share/applications ''; # Let each plugin tell us (through its `mozillaPlugin') attribute diff --git a/pkgs/build-support/make-desktopitem/default.nix b/pkgs/build-support/make-desktopitem/default.nix new file mode 100644 index 00000000000..7f3b97a33b7 --- /dev/null +++ b/pkgs/build-support/make-desktopitem/default.nix @@ -0,0 +1,33 @@ +{stdenv}: +{ name +, type ? "Application" +, exec +, icon ? "" +, comment ? "" +, terminal ? "false" +, desktopName +, genericName +, mimeType ? "" +, categories ? "Application;Other;" +, encoding ? "UTF-8" +}: + +stdenv.mkDerivation { + inherit name; + buildCommand = '' + ensureDir $out/share/applications + cat > $out/share/applications/$name.desktop <<EOF + [Desktop Entry] + Type=${type} + Exec=${exec} + Icon=${icon} + Comment=${comment} + Terminal=${terminal} + Name=${desktopName} + GenericName=${genericName} + MimeType=${mimeType} + Categories=${categories} + Encoding=${encoding} + EOF + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 810babff1fd..2854e8cb531 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -284,6 +284,10 @@ let inherit url; }; + makeDesktopItem = import ../build-support/make-desktopitem { + inherit stdenv; + }; + makeInitrd = {contents}: import ../build-support/kernel/make-initrd.nix { inherit stdenv perl cpio contents; }; @@ -6948,7 +6952,7 @@ let }; wrapFirefox = browser: browserName: nameSuffix: import ../applications/networking/browsers/firefox-wrapper { - inherit stdenv nameSuffix makeWrapper browser browserName; + inherit stdenv nameSuffix makeWrapper makeDesktopItem browser browserName; plugins = let enableAdobeFlash = getConfig [ browserName "enableAdobeFlash" ] true; in |