nurpkgs: { pkgs, lib, ... }@args: let firefoxAddons = import ./addons.nix (args // { inherit nurpkgs; }); firefoxSettings = { "browser.aboutConfig.showWarning" = false; "browser.toolbars.bookmarks.visibility" = "always"; "browser.tabs.firefox-view" = false; "browser.shell.checkDefaultBrowser" = false; "browser.translations.automaticallyPopup" = false; "signon.rememberSignons" = false; "media.webspeech.synth.dont_notify_on_error" = true; "browser.gesture.swipe.left" = false; "browser.gesture.swipe.right" = false; }; in { config = { programs.firefox = { enable = true; profiles = { default = { id = 0; isDefault = true; settings = firefoxSettings; extensions = firefoxAddons.default; }; sue = { id = 1; settings = firefoxSettings; extensions = firefoxAddons.sue; }; }; }; xdg.desktopEntries.firefox-sue = { categories = [ "Network" "WebBrowser" ]; exec = "firefox -P sue --name firefox %U"; genericName = "Web Browser"; icon = "firefox"; mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; name = "Firefox | Sue"; startupNotify = true; terminal = false; type = "Application"; }; xdg.desktopEntries.firefox = lib.mkForce { categories = [ "Network" "WebBrowser" ]; exec = "firefox --new-window --name firefox %U"; genericName = "Web Browser"; icon = "firefox"; mimeType = [ "text/html" "text/xml" "application/xhtml+xml" "application/vnd.mozilla.xul+xml" "x-scheme-handler/http" "x-scheme-handler/https" ]; name = "Firefox"; startupNotify = true; terminal = false; type = "Application"; }; }; }