From 539e85ed95851c8bab796a3cd818107c10cfb207 Mon Sep 17 00:00:00 2001 From: Antoine Viallon Date: Fri, 5 May 2023 11:44:59 +0200 Subject: [PATCH] [Browser/Firefox] refactor firefox to use callPackage Move overrides to a config option Add gnome support --- desktop/browser.nix | 10 ++++++++++ desktop/gnome.nix | 2 ++ desktop/plasma.nix | 2 ++ overlays.nix | 2 +- packages/firefox.nix | 11 ++++++++--- 5 files changed, 23 insertions(+), 4 deletions(-) diff --git a/desktop/browser.nix b/desktop/browser.nix index 2a8fad5..0382296 100644 --- a/desktop/browser.nix +++ b/desktop/browser.nix @@ -4,6 +4,16 @@ let cfg = config.aviallon.desktop; generalCfg = config.aviallon.general; in { + options.aviallon.desktop.browser = { + firefox.overrides = mkOption { + internal = true; + description = "Override firefox package settings"; + type = types.attrs; + default = {}; + example = { enablePlasmaIntegration = true; }; + }; + }; + config = mkIf (cfg.enable && !generalCfg.minimal) { environment.systemPackages = with pkgs; [] ++ optionals (!generalCfg.minimal) [ diff --git a/desktop/gnome.nix b/desktop/gnome.nix index 4ae5705..13373e1 100644 --- a/desktop/gnome.nix +++ b/desktop/gnome.nix @@ -41,6 +41,8 @@ in { environment.systemPackages = with pkgs; [] ++ [ guake + + (myFirefox.override { enableGnomeExtensions = true; }) ] ++ (with gnome; [ gnome-software diff --git a/desktop/plasma.nix b/desktop/plasma.nix index 4882345..7ac722a 100644 --- a/desktop/plasma.nix +++ b/desktop/plasma.nix @@ -63,6 +63,8 @@ in { ark kolourpaint krdc + + (myFirefox.override { enablePlasmaBrowserIntegration = true; }) ]; environment.profileRelativeSessionVariables = { diff --git a/overlays.nix b/overlays.nix index ae09d09..29751cc 100644 --- a/overlays.nix +++ b/overlays.nix @@ -98,7 +98,7 @@ in # Use bleeding-edge linux firmware linux-firmware = super.unstable.linux-firmware; - myFirefox = (import ./packages/firefox.nix { pkgs = self; inherit lib; }); + myFirefox = (super.callPackage ./packages/firefox.nix config.aviallon.desktop.browser.firefox.overrides); }) (final: prev: { # Use our kernel for generating linux man pages diff --git a/packages/firefox.nix b/packages/firefox.nix index 518400e..80676ee 100644 --- a/packages/firefox.nix +++ b/packages/firefox.nix @@ -1,4 +1,9 @@ -{pkgs, lib, +{lib, +firefox-esr-unwrapped, +wrapFirefox, +enablePlasmaBrowserIntegration ? false, +enableGnomeExtensions ? false, +extraNativeMessengingHosts ? [], ... }: with lib; @@ -12,12 +17,12 @@ let (key: value: ''${prefFuncName}(${builtins.toJSON key}, ${builtins.toJSON value});'' ) prefs ); -in pkgs.wrapFirefox pkgs.firefox-esr-unwrapped { +in wrapFirefox firefox-esr-unwrapped { cfg = { smartcardSupport = true; pipewireSupport = true; ffmpegSupport = true; - enablePlasmaBrowserIntegration = true; + inherit enablePlasmaBrowserIntegration enableGnomeExtensions extraNativeMessengingHosts; }; extraPolicies = {