diff --git a/modules/home-manager/programs/default.nix b/modules/home-manager/programs/default.nix index d612059..4451ef7 100644 --- a/modules/home-manager/programs/default.nix +++ b/modules/home-manager/programs/default.nix @@ -41,6 +41,7 @@ in { mod.home-manager-prostudiomasters mod.home-manager-proton-calendar-pwa mod.home-manager-proton-mail-pwa + mod.home-manager-proton-pass mod.home-manager-protonvpn mod.home-manager-proxmark3 mod.home-manager-qbittorrent diff --git a/modules/home-manager/programs/proton-pass.nix b/modules/home-manager/programs/proton-pass.nix new file mode 100644 index 0000000..69cfd24 --- /dev/null +++ b/modules/home-manager/programs/proton-pass.nix @@ -0,0 +1,31 @@ +{...}: { + flake.homeModules.home-manager-proton-pass = { + lib, + pkgs, + config, + ... + }: let + cfg = config.programs.proton-pass; + in { + options.programs.proton-pass = { + enable = lib.mkEnableOption "enable Proton Pass"; + }; + + config = lib.mkIf cfg.enable (lib.mkMerge [ + { + home.packages = with pkgs; [ + proton-pass + ]; + } + ( + lib.mkIf config.impermanence.enable { + home.persistence."${config.impermanence.persistencePath}" = { + directories = [ + "${config.xdg.configHome}/Proton Pass" + ]; + }; + } + ) + ]); + }; +} diff --git a/modules/home-manager/programs/protonvpn.nix b/modules/home-manager/programs/protonvpn.nix index 4f3bd44..3985165 100644 --- a/modules/home-manager/programs/protonvpn.nix +++ b/modules/home-manager/programs/protonvpn.nix @@ -4,15 +4,40 @@ pkgs, config, ... - }: { + }: let + cfg = config.programs.protonvpn-gui; + package = + if builtins.compareVersions pkgs.protonvpn-gui.version cfg.minVersion < 0 + then + pkgs.protonvpn-gui.overrideAttrs (old: { + version = cfg.minVersion; + src = pkgs.fetchFromGitHub { + owner = "ProtonVPN"; + repo = "proton-vpn-gtk-app"; + tag = "v${cfg.minVersion}"; + hash = cfg.minVersionHash; + }; + }) + else pkgs.protonvpn-gui; + in { options.programs.protonvpn-gui = { enable = lib.mkEnableOption "enable protonvpn"; + minVersion = lib.mkOption { + type = lib.types.str; + default = "4.15.1"; + description = "Minimum version of protonvpn-gui to use. If nixpkgs has a lower version, it will be overridden."; + }; + minVersionHash = lib.mkOption { + type = lib.types.str; + default = "sha256-mWQW/KR2zQxSMkcu5k79H3TNATmFB6J2vgFhgXNpM2s="; + description = "Source hash for the minimum version override."; + }; }; - config = lib.mkIf config.programs.protonvpn-gui.enable (lib.mkMerge [ + config = lib.mkIf cfg.enable (lib.mkMerge [ { - home.packages = with pkgs; [ - proton-vpn + home.packages = [ + package ]; } ( diff --git a/modules/hosts/home/leyla/packages/default.nix b/modules/hosts/home/leyla/packages/default.nix index f698e92..b3d3512 100644 --- a/modules/hosts/home/leyla/packages/default.nix +++ b/modules/hosts/home/leyla/packages/default.nix @@ -25,7 +25,6 @@ obs-studio.enable = hardware.graphicsAcceleration.enable; qbittorrent.enable = true; prostudiomasters.enable = true; - protonvpn-gui.enable = true; dbeaver-bin.enable = true; bruno.enable = true; piper.enable = hardware.piperMouse.enable; @@ -73,6 +72,8 @@ noita-entangled-worlds.enable = true; tor-browser.enable = true; gdx-liftoff.enable = true; + proton-pass.enable = true; + protonvpn-gui.enable = true; proton-mail-pwa.enable = true; proton-calendar-pwa.enable = true; element-desktop.enable = true; diff --git a/modules/hosts/home/leyla/packages/firefox/firefox.nix b/modules/hosts/home/leyla/packages/firefox/firefox.nix index e37992e..908ec97 100644 --- a/modules/hosts/home/leyla/packages/firefox/firefox.nix +++ b/modules/hosts/home/leyla/packages/firefox/firefox.nix @@ -52,6 +52,7 @@ extensions.packages = with inputs.firefox-addons.packages.${pkgs.stdenv.hostPlatform.system}; [ bitwarden + proton-pass terms-of-service-didnt-read multi-account-containers shinigami-eyes @@ -112,20 +113,35 @@ "placements" = { "widget-overflow-fixed-list" = []; "unified-extensions-area" = [ - # bitwarden - "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" + # # bitwarden + # "_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action" + # proton pass + "78272b6fa58f4a1abaac99321d503a20_proton_me-browser-action" + # ublock origin "ublock0_raymondhill_net-browser-action" + # sponsor block "sponsorblocker_ajay_app-browser-action" + # de arrow "dearrow_ajay_app-browser-action" + # privacy badger "jid1-mnnxcxisbpnsxq_jetpack-browser-action" + # acount containers "_testpilot-containers-browser-action" + # simple login "addon_simplelogin-browser-action" + # clear URLs "_74145f27-f039-47ce-a470-a662b129930a_-browser-action" + # Decentraleyes "jid1-bofifl9vbdl2zq_jetpack-browser-action" + # "dfyoutube_example_com-browser-action" + # Local CDN "_b86e4813-687a-43e6-ab65-0bde4ab75758_-browser-action" + # Return youtube dislike "_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action" + # Snow flake "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browse-action" + # Terms of service didn't read "jid0-3guet1r69sqnsrca5p8kx9ezc3u_jetpack-browser-action" ]; "nav-bar" = [ @@ -170,6 +186,7 @@ "_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action" "_b11bea1f-a888-4332-8d8a-cec2be7d24b9_-browser-action" "jid0-3guet1r69sqnsrca5p8kx9ezc3u_jetpack-browser-action" + "78272b6fa58f4a1abaac99321d503a20_proton_me-browser-action" ]; }; "browser.newtabpage.activity-stream.feeds.topsites" = false;