From cf3aaf499ede1465212251c212af9bd8f42ecbf2 Mon Sep 17 00:00:00 2001 From: Xavier Detant <1016863+FaustXVI@users.noreply.github.com> Date: Tue, 10 Dec 2024 14:41:50 +0100 Subject: [PATCH] Fix firefox plugins --- machines/desktop-home-hardware.nix | 12 +- machines/desktop-home.nix | 34 ++--- modules/hardware/yubikey.nix | 6 +- modules/purposes/work/firefox.nix | 114 ++++++++++++++-- .../system/home-manager/browsers/firefox.nix | 128 ++++++++++-------- modules/system/medias.nix | 2 +- 6 files changed, 204 insertions(+), 92 deletions(-) diff --git a/machines/desktop-home-hardware.nix b/machines/desktop-home-hardware.nix index dc7ee4e..509ee3c 100644 --- a/machines/desktop-home-hardware.nix +++ b/machines/desktop-home-hardware.nix @@ -5,7 +5,8 @@ { imports = - [ (modulesPath + "/installer/scan/not-detected.nix") + [ + (modulesPath + "/installer/scan/not-detected.nix") ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; @@ -14,20 +15,21 @@ boot.extraModulePackages = [ config.boot.kernelPackages.nvidia_x11 ]; fileSystems."/" = - { device = "/dev/disk/by-uuid/c25bb5dd-1151-4bdb-8ce3-2b99dabe09cd"; + { + device = "/dev/disk/by-uuid/c25bb5dd-1151-4bdb-8ce3-2b99dabe09cd"; fsType = "ext4"; }; boot.initrd.luks.devices."nixos-cyphered".device = "/dev/disk/by-uuid/99104207-fbb4-46b6-94de-4d6a4c2053c9"; fileSystems."/boot" = - { device = "/dev/disk/by-uuid/4523-4DAE"; + { + device = "/dev/disk/by-uuid/4523-4DAE"; fsType = "vfat"; }; swapDevices = - [ { device = "/dev/disk/by-uuid/6ab341ab-6b01-4e10-a934-e5f891c8a620"; } - ]; + [{ device = "/dev/disk/by-uuid/6ab341ab-6b01-4e10-a934-e5f891c8a620"; }]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/machines/desktop-home.nix b/machines/desktop-home.nix index 321ff59..a50d7b4 100644 --- a/machines/desktop-home.nix +++ b/machines/desktop-home.nix @@ -26,12 +26,12 @@ in services = { xserver = { dpi = 96; - xrandrHeads = [LG Samsung]; + xrandrHeads = [ LG Samsung ]; windowManager = { i3 = { extraSessionCommands = '' ${pkgs.autorandr}/bin/autorand -c home - ''; + ''; }; }; }; @@ -40,25 +40,25 @@ in defaultTarget = "common"; profiles = { "home" = { - fingerprint = { - "${LG}" = "00ffffffffffff001e6d6e5a010101010117010380431c78eaca95a6554ea1260f5054a54b80714f818081c0a9c0b3000101010101017e4800e0a0381f4040403a00a52221000018023a801871382d40582c4500a5222100001e000000fc004c4720554c545241574944450a000000fd00384b1e5a18000a202020202020010702031df14a900403221412051f0113230907078301000065030c001000023a801871382d40582c450056512100001e011d8018711c1620582c250056512100009e011d007251d01e206e28550056512100001e8c0ad08a20e02d10103e9600565121000018000000000000000000000000000000000000000000000000000078"; - "${Samsung}" = "00ffffffffffff004c2de8053332564e2f140103801009780aee91a3544c99260f5054bfef80714f8100814081809500950fa940b300023a801871382d40582c4500a05a0000001e011d007251d01e206e285500a05a0000001e000000fd00324b1f5111000a202020202020000000fc0053796e634d61737465720a2020012902031cf148901f051404131203230907078301000066030c00100080011d8018711c1620582c2500a05a0000009e011d80d0721c1620102c2580a05a0000009e011d00bc52d01e20b8285540a05a0000001e8c0ad090204031200c405500a05a000000188c0ad08a20e02d10103e9600a05a0000001800000000000000000046"; - }; - config = { - "${LG}" = { - enable = true; - primary = true; - mode = "2560x1080"; - position = "0x0"; + fingerprint = { + "${LG}" = "00ffffffffffff001e6d6e5a010101010117010380431c78eaca95a6554ea1260f5054a54b80714f818081c0a9c0b3000101010101017e4800e0a0381f4040403a00a52221000018023a801871382d40582c4500a5222100001e000000fc004c4720554c545241574944450a000000fd00384b1e5a18000a202020202020010702031df14a900403221412051f0113230907078301000065030c001000023a801871382d40582c450056512100001e011d8018711c1620582c250056512100009e011d007251d01e206e28550056512100001e8c0ad08a20e02d10103e9600565121000018000000000000000000000000000000000000000000000000000078"; + "${Samsung}" = "00ffffffffffff004c2de8053332564e2f140103801009780aee91a3544c99260f5054bfef80714f8100814081809500950fa940b300023a801871382d40582c4500a05a0000001e011d007251d01e206e285500a05a0000001e000000fd00324b1f5111000a202020202020000000fc0053796e634d61737465720a2020012902031cf148901f051404131203230907078301000066030c00100080011d8018711c1620582c2500a05a0000009e011d80d0721c1620102c2580a05a0000009e011d00bc52d01e20b8285540a05a0000001e8c0ad090204031200c405500a05a000000188c0ad08a20e02d10103e9600a05a0000001800000000000000000046"; }; - "${Samsung}" = { - enable = true; - mode = "1920x1080"; - position = "2560x0"; + config = { + "${LG}" = { + enable = true; + primary = true; + mode = "2560x1080"; + position = "0x0"; + }; + "${Samsung}" = { + enable = true; + mode = "1920x1080"; + position = "2560x0"; + }; }; }; }; - }; }; }; diff --git a/modules/hardware/yubikey.nix b/modules/hardware/yubikey.nix index ca15b9b..403e3a3 100644 --- a/modules/hardware/yubikey.nix +++ b/modules/hardware/yubikey.nix @@ -38,11 +38,11 @@ in enable = true; }; u2f = { - enable = true; - control = "required"; + enable = true; + control = "required"; settings = { authfile = authFile; - }; + }; }; }; }; diff --git a/modules/purposes/work/firefox.nix b/modules/purposes/work/firefox.nix index 7341a76..6c073ff 100644 --- a/modules/purposes/work/firefox.nix +++ b/modules/purposes/work/firefox.nix @@ -1,21 +1,117 @@ { mylib, pkgs, config, lib, ... }: let - perso = config.home-manager.users.xadet.programs.firefox.profiles."perso"; + buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? pkgs.stdenv + , fetchurl ? pkgs.fetchurl + , pname + , version + , addonId + , url + , sha256 + , ... + }: + stdenv.mkDerivation { + name = "${pname}-${version}"; + + src = fetchurl { inherit url sha256; }; + + preferLocalBuild = true; + allowSubstitutes = true; + + buildCommand = '' + dst="$out/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" + mkdir -p "$dst" + install -v -m644 "$src" "$dst/${addonId}.xpi" + ''; + }); + adBlockPlus = buildFirefoxXpiAddon rec { + pname = "adBlock plus"; + version = "3.16.1"; + addonId = "{d10d0bf8-f5b5-c8b4-a8b2-2b9879e08c5d}"; + url = "https://addons.mozilla.org/firefox/downloads/file/4039476/adblock_plus-3.16.1.xpi"; + sha256 = "IQ8IjTv1kWjoO1zyJYYBnZn4DCb+pfzuwAZemMtT8nI="; + }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + bitwarden + foxyproxy-standard + # adBlockPlus + adblocker-ultimate + screenshot-capture-annotate + ]; + settings = { + "signon.rememberSignons" = false; + "browser.startup.page" = 3; + "media.eme.enabled" = true; + "extensions.formautofill.creditCards.enabled" = false; + "accessibility.typeaheadfind" = true; + "browser.download.useDownloadDir" = false; + }; + search = { + force = true; + default = "Google"; + engines = { + "Nix Packages" = { + urls = [{ + template = "https://search.nixos.org/packages"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + + "NixOS options" = { + urls = [{ + template = "https://search.nixos.org/options"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@no" ]; + }; + + "Home manager options" = { + urls = [{ + template = "https://home-manager-options.extranix.com/"; + params = [ + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@hm" ]; + }; + + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; # every day + definedAliases = [ "@nw" ]; + }; + + "Bing".metaData.hidden = true; + "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias + }; + }; in { config = mylib.mkIfComputerHasPurpose "work" { home-manager.users.xadet = { ... }: { - programs.firefox.profiles = lib.mkForce { - "perso".isDefault = false; + programs.firefox.profiles = { + "perso" = { + id = 0; + isDefault = false; + inherit search settings extensions; + }; "eove" = { id = 1; isDefault = true; - inherit (perso) settings search extensions; - }; - "fake" = { - id = 2; - isDefault = false; - inherit (perso) settings search extensions; + inherit search settings extensions; }; }; }; diff --git a/modules/system/home-manager/browsers/firefox.nix b/modules/system/home-manager/browsers/firefox.nix index 2a8ab6d..66165a3 100644 --- a/modules/system/home-manager/browsers/firefox.nix +++ b/modules/system/home-manager/browsers/firefox.nix @@ -1,4 +1,4 @@ -{ pkgs, unstable, lib, config, ... }@args: +{ pkgs, unstable, lib, config, mylib, ... }@args: let buildFirefoxXpiAddon = lib.makeOverridable ({ stdenv ? pkgs.stdenv , fetchurl ? pkgs.fetchurl @@ -30,6 +30,74 @@ let url = "https://addons.mozilla.org/firefox/downloads/file/4039476/adblock_plus-3.16.1.xpi"; sha256 = "IQ8IjTv1kWjoO1zyJYYBnZn4DCb+pfzuwAZemMtT8nI="; }; + extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + bitwarden + foxyproxy-standard + # adBlockPlus + adblocker-ultimate + screenshot-capture-annotate + ]; + settings = { + "signon.rememberSignons" = false; + "browser.startup.page" = 3; + "media.eme.enabled" = true; + "extensions.formautofill.creditCards.enabled" = false; + "accessibility.typeaheadfind" = true; + "browser.download.useDownloadDir" = false; + }; + search = { + force = true; + default = "Google"; + engines = { + "Nix Packages" = { + urls = [{ + template = "https://search.nixos.org/packages"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + + "NixOS options" = { + urls = [{ + template = "https://search.nixos.org/options"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@no" ]; + }; + + "Home manager options" = { + urls = [{ + template = "https://home-manager-options.extranix.com/"; + params = [ + { name = "query"; value = "{searchTerms}"; } + ]; + }]; + + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@hm" ]; + }; + + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; # every day + definedAliases = [ "@nw" ]; + }; + + "Bing".metaData.hidden = true; + "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias + }; + }; in { programs = { @@ -38,62 +106,8 @@ in package = unstable.firefox-bin; profiles = { "perso" = { - extensions = with pkgs.nur.repos.rycee.firefox-addons; [ - bitwarden - foxyproxy-standard -# adBlockPlus - adblocker-ultimate - screenshot-capture-annotate - ]; - settings = { - "signon.rememberSignons" = false; - "browser.startup.page" = 3; - "media.eme.enabled" = true; - "extensions.formautofill.creditCards.enabled" = false; - "accessibility.typeaheadfind" = true; - "browser.download.useDownloadDir" = false; - }; - search = { - force = true; - default = "Google"; - engines = { - "Nix Packages" = { - urls = [{ - template = "https://search.nixos.org/packages"; - params = [ - { name = "type"; value = "packages"; } - { name = "query"; value = "{searchTerms}"; } - ]; - }]; - - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@np" ]; - }; - - "NixOS options" = { - urls = [{ - template = "https://search.nixos.org/options"; - params = [ - { name = "type"; value = "packages"; } - { name = "query"; value = "{searchTerms}"; } - ]; - }]; - - icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; - definedAliases = [ "@no" ]; - }; - - "NixOS Wiki" = { - urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; - iconUpdateURL = "https://nixos.wiki/favicon.png"; - updateInterval = 24 * 60 * 60 * 1000; # every day - definedAliases = [ "@nw" ]; - }; - - "Bing".metaData.hidden = true; - "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias - }; - }; + id = 0; + inherit settings search extensions; }; }; }; diff --git a/modules/system/medias.nix b/modules/system/medias.nix index 09ed8c8..d4eba76 100644 --- a/modules/system/medias.nix +++ b/modules/system/medias.nix @@ -3,7 +3,7 @@ environment = { systemPackages = with pkgs; [ unstable.google-chrome -# unstable.firefox-bin + # unstable.firefox-bin spotify vlc feh