Move firefox (with addons) into Nix home manager flake
							parent
							
								
									a737b50284
								
							
						
					
					
						commit
						84e0c7f700
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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");
 | 
			
		||||
| 
						 | 
				
			
			@ -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"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 ];
 | 
			
		||||
        };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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 <https://nix-community.github.io/home-manager/options.xhtml#opt-programs.firefox.profiles._name_.extensions.packages>
 | 
			
		||||
        };
 | 
			
		||||
        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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue