diff --git a/desktop/gnome.nix b/desktop/gnome.nix index 509a38e..a4479cd 100644 --- a/desktop/gnome.nix +++ b/desktop/gnome.nix @@ -38,7 +38,8 @@ in { "gphhapmejobijbbhgpjhcjognlahblep" # Gnome Shell integration ]; - aviallon.desktop.browser.firefox.overrides.enableGnomeExtensions = true; + programs.firefox.enable = true; + programs.firefox.nativeMessagingHosts.packages = [ pkgs.gnomeExtensions.bowser-gnome-extension ]; environment.systemPackages = with pkgs; [] ++ [ @@ -46,7 +47,6 @@ in { libreoffice-fresh - myFirefox ] ++ (with gnome; [ gnome-software diff --git a/desktop/plasma.nix b/desktop/plasma.nix index 6972be6..33fc012 100644 --- a/desktop/plasma.nix +++ b/desktop/plasma.nix @@ -26,6 +26,12 @@ in { "e ${config.users.users.sddm.home}/.cache/sddm-greeter/qmlcache/ - - - 0" "x ${config.users.users.sddm.home}/.cache" ]; + programs.firefox.enable = true; + + # Already brought in by ${nixpkgs}/nixos/modules/services/x11/desktop-managers/plasma5.nix + # programs.firefox.nativeMessagingHosts.packages = [ pkgs.libsForQt5.plasma-browser-integration ]; + + programs.firefox.policies.Extensions.Install = [ "plasma-browser-integration@kde.org" ]; environment.etc = { "chromium/native-messaging-hosts/org.kde.plasma.browser_integration.json".source = @@ -93,12 +99,8 @@ in { kolourpaint krdc sddm-kcm - - myFirefox ]; - aviallon.desktop.browser.firefox.overrides.enablePlasmaBrowserIntegration = true; - aviallon.programs.libreoffice.qt = true; xdg.portal.enable = mkDefault true; diff --git a/programs/default.nix b/programs/default.nix index adb8833..2aab465 100644 --- a/programs/default.nix +++ b/programs/default.nix @@ -7,5 +7,6 @@ ./nano.nix ./nvtop.nix ./libreoffice.nix + ./firefox.nix ]; } diff --git a/packages/firefox.nix b/programs/firefox.nix similarity index 88% rename from packages/firefox.nix rename to programs/firefox.nix index 80676ee..31e5dd4 100644 --- a/packages/firefox.nix +++ b/programs/firefox.nix @@ -1,11 +1,4 @@ -{lib, -firefox-esr-unwrapped, -wrapFirefox, -enablePlasmaBrowserIntegration ? false, -enableGnomeExtensions ? false, -extraNativeMessengingHosts ? [], -... -}: +{config, pkgs, lib, ...}: with lib; let genPrefList = {locked ? false}: prefs: @@ -17,15 +10,17 @@ let (key: value: ''${prefFuncName}(${builtins.toJSON key}, ${builtins.toJSON value});'' ) prefs ); -in wrapFirefox firefox-esr-unwrapped { - cfg = { + cfg = config.programs.firefox; +in { + config = mkIf cfg.enable { + programs.firefox.wrapperConfig = { smartcardSupport = true; pipewireSupport = true; ffmpegSupport = true; - inherit enablePlasmaBrowserIntegration enableGnomeExtensions extraNativeMessengingHosts; + privacySupport = true; }; - extraPolicies = { + programs.firefox.policies = { CaptivePortal = true; DisableFirefoxStudies = true; DisablePocket = true; @@ -64,7 +59,6 @@ in wrapFirefox firefox-esr-unwrapped { Extensions = { Install = [ "uBlock0@raymondhill.net" - "French-GC@grammalecte.net" ]; }; ExtensionSettings = { @@ -72,15 +66,11 @@ in wrapFirefox firefox-esr-unwrapped { installation_mode = "force_installed"; install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; }; - "French-GC@grammalecte.net" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/grammalecte-fr/latest.xpi"; - }; }; ExtensionUpdate = true; - }; + }; - extraPrefs = traceVal (genPrefList { locked = true; } { + programs.firefox.preferences = { "widget.use-xdg-desktop-portal" = true; "dom.event.contextmenu.enabled" = true; "network.IDN_show_punycode" = true; @@ -131,7 +121,7 @@ in wrapFirefox firefox-esr-unwrapped { #"privacy.trackingprotection.origin_telemetry.enabled" = false; - } + "\n" + genPrefList {} { + } // { "intl.accept_languages" = "fr-fr,en-us,en"; "intl.locale.requested" = "fr,en-US"; "media.eme.enabled" = true; # DRM @@ -154,5 +144,6 @@ in wrapFirefox firefox-esr-unwrapped { "widget.use-xdg-desktop-portal.location" = 1; "widget.use-xdg-desktop-portal.mime-handler" = 1; "widget.use-xdg-desktop-portal.settings" = 1; - }); - } + }; + }; +}