From 84e0c7f7003b0b2880bdc7245dfdec4c32bb1ef3 Mon Sep 17 00:00:00 2001 From: Hektor Misplon Date: Sun, 26 Oct 2025 20:18:53 +0100 Subject: [PATCH] Move firefox (with addons) into Nix home manager flake --- .config/firefox/setup | 5 - .config/firefox/user.js | 15 --- .config/home-manager/flake.lock | 105 ++++++++++++++++++-- .config/home-manager/flake.nix | 8 +- .config/home-manager/hosts/work/default.nix | 73 +++++++++++++- 5 files changed, 175 insertions(+), 31 deletions(-) delete mode 100755 .config/firefox/setup delete mode 100644 .config/firefox/user.js diff --git a/.config/firefox/setup b/.config/firefox/setup deleted file mode 100755 index 9495b09..0000000 --- a/.config/firefox/setup +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -for i in ~/.mozilla/firefox/*.*default* - do ln -s "$XDG_CONFIG_HOME"/firefox/user.js "$i/user.js" -done diff --git a/.config/firefox/user.js b/.config/firefox/user.js deleted file mode 100644 index 52b8b5f..0000000 --- a/.config/firefox/user.js +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Note: has to be symlinked to profile directories for your - * firefox release - * - * E.g. - * - * ```sh - * ln -s user.js ~/.mozilla/firefox/*.default-release/user.js - * ``` - * Or check out the `setup` script - * - */ - -// Set default download directory -user_pref("browser.download.dir", "/home/h/dl"); diff --git a/.config/home-manager/flake.lock b/.config/home-manager/flake.lock index 0772058..f8c2b0a 100644 --- a/.config/home-manager/flake.lock +++ b/.config/home-manager/flake.lock @@ -1,5 +1,45 @@ { "nodes": { + "firefox-addons": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "pkgs/firefox-addons", + "lastModified": 1761478231, + "narHash": "sha256-a6ROM73M0TSrooI+8/UMj5KWKOdaDFTycVeo8XJ3dk4=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "ae968708476302f8781fb5e245d53f112ed04111", + "type": "gitlab" + }, + "original": { + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -7,11 +47,11 @@ ] }, "locked": { - "lastModified": 1756991914, - "narHash": "sha256-4ve/3ah5H/SpL2m3qmZ9GU+VinQYp2MN1G7GamimTds=", + "lastModified": 1761512215, + "narHash": "sha256-QLL3lqw4eDYP8D6gmjX0rFBfg1tMcosGGvHXckb6aQE=", "owner": "nix-community", "repo": "home-manager", - "rev": "b08f8737776f10920c330657bee8b95834b7a70f", + "rev": "2a9969b39c7f5f1dfbf5c5f1ca97151b40a1d36d", "type": "github" }, "original": { @@ -20,13 +60,47 @@ "type": "github" } }, + "nixgl": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1752054764, + "narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=", + "owner": "nix-community", + "repo": "nixGL", + "rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixGL", + "type": "github" + } + }, "nixpkgs": { "locked": { - "lastModified": 1756787288, - "narHash": "sha256-rw/PHa1cqiePdBxhF66V7R+WAP8WekQ0mCDG4CFqT8Y=", + "lastModified": 1746378225, + "narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d0fc30899600b9b3466ddb260fd83deb486c32f1", + "rev": "93e8cdce7afc64297cfec447c311470788131cd9", + "type": "github" + }, + "original": { + "owner": "nixos", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1761373498, + "narHash": "sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce", "type": "github" }, "original": { @@ -38,8 +112,25 @@ }, "root": { "inputs": { + "firefox-addons": "firefox-addons", "home-manager": "home-manager", - "nixpkgs": "nixpkgs" + "nixgl": "nixgl", + "nixpkgs": "nixpkgs_2" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" } } }, diff --git a/.config/home-manager/flake.nix b/.config/home-manager/flake.nix index 22021d2..ad9715a 100644 --- a/.config/home-manager/flake.nix +++ b/.config/home-manager/flake.nix @@ -6,8 +6,12 @@ inputs.nixpkgs.follows = "nixpkgs"; }; nixgl.url = "github:nix-community/nixGL"; + firefox-addons = { + url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; - outputs = { nixpkgs, home-manager, nixgl, ... }: + outputs = { nixpkgs, home-manager, nixgl, ... }@inputs: let lib = nixpkgs.lib; system = "x86_64-linux"; @@ -21,7 +25,7 @@ work = home-manager.lib.homeManagerConfiguration { inherit pkgs; extraSpecialArgs = { - inherit nixgl; + inherit inputs; }; modules = [ ./hosts/work ]; }; diff --git a/.config/home-manager/hosts/work/default.nix b/.config/home-manager/hosts/work/default.nix index d8678db..6e2b236 100644 --- a/.config/home-manager/hosts/work/default.nix +++ b/.config/home-manager/hosts/work/default.nix @@ -1,8 +1,13 @@ -{ pkgs, config, nixgl, ... }: +{ + pkgs, + config, + inputs, + ... +}: { nixGL = { - packages = nixgl.packages; + packages = inputs.nixgl.packages; defaultWrapper = "mesa"; }; @@ -10,6 +15,70 @@ home.homeDirectory = "/home/hektor"; home.stateVersion = "25.05"; + programs.firefox = { + enable = true; + nativeMessagingHosts = with pkgs; [ + tridactyl-native + ]; + policies = { + DefaultDownloadDirectory = "\${home}/dl"; + }; + profiles = { + work = { + settings = { + "signon.rememberSignons" = false; + "findbar.highlightAll" = true; + "extensions.autoDisableScopes" = 0; # Enable extensions by default + }; + extensions = { + packages = with inputs.firefox-addons.packages.${pkgs.system}; [ + duckduckgo-privacy-essentials + istilldontcareaboutcookies + libredirect + keepassxc-browser + react-devtools + sponsorblock + tridactyl + ublock-origin + ]; + }; + }; + }; + policies = { + ExtensionSettings = { + "jid1-ZAdIEUB7XOzOJw@jetpack" = { + default_area = "navbar"; + private_browsing = true; + }; + "idcac-pub@guus.ninja" = { + default_area = "navbar"; + private_browsing = true; + }; + "7esoorv3@alefvanoon.anonaddy.me" = { + default_area = "navbar"; + }; + "keepassxc-browser@keepassxc.org" = { + default_area = "navbar"; + private_browsing = true; + }; + "@react-devtools" = { + default_area = "navbar"; + private_browsing = true; + }; + "sponsorBlocker@ajay.app" = { + default_area = "navbar"; + private_browsing = true; + }; + "tridactyl.vim@cmcaine.co.uk".settings = { + private_browsing = true; + }; + "uBlock0@raymondhill.net".settings = { + default_area = "navbar"; + private_browsing = true; + }; + }; + }; + }; home.packages = import ./packages.nix { inherit pkgs; inherit config;