From 4a098252896d7820a4d930f09f620cda843701e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Sat, 30 Sep 2023 03:31:46 +0200 Subject: [PATCH] feat(flake): improve firefox-addons & arkenfox-userjs inputs - replace full rycee/nur-expressions input with firefox-addons flake - use arkenfox user.js directly from github:arkenfox/user.js as input --- flake.lock | 75 +++++++++++++++++++++++-------- flake.nix | 14 ++++-- home/browsers/firefox.nix | 8 ++-- home/browsers/firefoxAddons.nix | 10 ++--- home/browsers/mullvad-browser.nix | 6 +-- home/modules/firefox/common.nix | 4 +- lib/createUser.nix | 3 +- 7 files changed, 84 insertions(+), 36 deletions(-) diff --git a/flake.lock b/flake.lock index ae036e9..1e76864 100644 --- a/flake.lock +++ b/flake.lock @@ -48,6 +48,22 @@ "type": "github" } }, + "arkenfox-userjs": { + "flake": false, + "locked": { + "lastModified": 1695984775, + "narHash": "sha256-wvzeT9ZReHW+Snf23vhDRcMCwU0nYFFMa8w6AcvFCis=", + "owner": "arkenfox", + "repo": "user.js", + "rev": "6e79d1bba6a932480a938bec5c2cee0388e586b9", + "type": "github" + }, + "original": { + "owner": "arkenfox", + "repo": "user.js", + "type": "github" + } + }, "crane": { "inputs": { "flake-compat": "flake-compat", @@ -181,6 +197,29 @@ "url": "https://flakehub.com/f/DeterminateSystems/fh/0.1.tar.gz" } }, + "firefox-addons": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "dir": "pkgs/firefox-addons", + "lastModified": 1695985347, + "narHash": "sha256-ot8XvQD31vEca9u8vxTSqu6tzbc5TU/AjJqnSGsJWos=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "5b7127d2f4228c56b387c69fc83dc497526b752f", + "type": "gitlab" + }, + "original": { + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" + } + }, "flake-compat": { "flake": false, "locked": { @@ -282,6 +321,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1629284811, + "narHash": "sha256-JHgasjPR0/J1J3DRm4KxM4zTyAj4IOJY8vIl75v/kPI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c5d161cc0af116a2e17f54316f0bf43f0819785c", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -437,22 +491,6 @@ "url": "https://flakehub.com/f/NixOS/nixpkgs/0.1.tar.gz" } }, - "nur": { - "locked": { - "lastModified": 1696023918, - "narHash": "sha256-nE9Zv3POG3oqZPtAmojBC3Ji+0fzZ8AR7MVHSYJFMxk=", - "owner": "nix-community", - "repo": "NUR", - "rev": "f0fb9ad92aa3d00c59423e82681c9ffa5734abd9", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "master", - "repo": "NUR", - "type": "github" - } - }, "nvim-kitty-navigator": { "flake": false, "locked": { @@ -500,16 +538,17 @@ "root": { "inputs": { "agenix": "agenix", + "arkenfox-userjs": "arkenfox-userjs", "deploy-rs": "deploy-rs", "fh": "fh", + "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "home-manager": "home-manager", "matrix-appservices": "matrix-appservices", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", - "nur": "nur", "nvim-kitty-navigator": "nvim-kitty-navigator", "pre-commit-hooks": "pre-commit-hooks" } diff --git a/flake.nix b/flake.nix index 6aca82b..217c9f1 100644 --- a/flake.nix +++ b/flake.nix @@ -39,7 +39,15 @@ rec { inputs.nixpkgs.follows = "nixpkgs"; }; - nur.url = "github:nix-community/NUR/master"; + firefox-addons = { + url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + arkenfox-userjs = { + url = "github:arkenfox/user.js"; + flake = false; + }; agenix = { url = "github:yaxitech/ragenix"; @@ -72,7 +80,7 @@ rec { }; outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, fh, flake-parts - , flake-utils, home-manager, nur, agenix, deploy-rs, pre-commit-hooks + , flake-utils, home-manager, agenix, deploy-rs, pre-commit-hooks , nvim-kitty-navigator, ... }@inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } { systems = [ "x86_64-linux" "aarch64-linux" ]; @@ -84,7 +92,7 @@ rec { ({ pkgs, lib, ... }: { networking.hostName = hostName; - nixpkgs.overlays = [ nur.overlay self.overlays.default ]; + nixpkgs.overlays = [ self.overlays.default ]; imports = [ nixosModules.flakeDefaults diff --git a/home/browsers/firefox.nix b/home/browsers/firefox.nix index 4ef7992..d45bd24 100644 --- a/home/browsers/firefox.nix +++ b/home/browsers/firefox.nix @@ -1,14 +1,14 @@ -{ config, nixosConfig, pkgs, lib, ... }: +{ inputs, config, pkgs, lib, ... }: with lib; let - firefox-addons = pkgs.nur.repos.rycee.firefox-addons - // (import ./firefoxAddons.nix { inherit pkgs lib; }); + firefox-addons = inputs.firefox-addons.packages.${pkgs.system} + // (import ./firefoxAddons.nix { inherit inputs pkgs lib; }); inherit (import ../modules/firefox/common.nix { inherit config lib pkgs; }) mkConfig; - arkenfoxConfig = builtins.readFile pkgs.nur.repos.slaier.arkenfox-userjs; + arkenfoxConfig = builtins.readFile "${inputs.arkenfox-userjs}/user.js"; # Relax some arkenfox settings, to get a less strict # alternative to Mullvad Browser to fallback on. diff --git a/home/browsers/firefoxAddons.nix b/home/browsers/firefoxAddons.nix index f629614..d474292 100644 --- a/home/browsers/firefoxAddons.nix +++ b/home/browsers/firefoxAddons.nix @@ -1,8 +1,8 @@ -{ pkgs, lib, ... }: +{ inputs, pkgs, lib, ... }: -let inherit (pkgs.nur.repos.rycee) firefox-addons; +let inherit (inputs.firefox-addons.lib.${pkgs.system}) buildFirefoxXpiAddon; in { - german-dictionary = firefox-addons.buildFirefoxXpiAddon rec { + german-dictionary = buildFirefoxXpiAddon rec { pname = "german-dictionary"; version = "2.1"; addonId = "de-DE@dictionaries.addons.mozilla.org"; @@ -16,7 +16,7 @@ in { platforms = platforms.all; }; }; - zotero-connector = firefox-addons.buildFirefoxXpiAddon rec { + zotero-connector = buildFirefoxXpiAddon rec { pname = "zotero-connector"; version = "5.0.108"; addonId = "zotero@chnm.gmu.edu"; @@ -30,7 +30,7 @@ in { platforms = platforms.all; }; }; - ddg-bangs-but-faster = firefox-addons.buildFirefoxXpiAddon rec { + ddg-bangs-but-faster = buildFirefoxXpiAddon rec { pname = "ddg-bangs-but-faster"; version = "0.2.2"; addonId = "{55bf0dfc-ebd5-4705-a68d-61c6ac6ecad0}"; diff --git a/home/browsers/mullvad-browser.nix b/home/browsers/mullvad-browser.nix index 60e4780..db496df 100644 --- a/home/browsers/mullvad-browser.nix +++ b/home/browsers/mullvad-browser.nix @@ -1,8 +1,8 @@ -{ config, nixosConfig, pkgs, lib, ... }: +{ inputs, pkgs, lib, ... }: let - firefox-addons = pkgs.nur.repos.rycee.firefox-addons - // (import ./firefoxAddons.nix { inherit pkgs lib; }); + firefox-addons = inputs.firefox-addons.packages.${pkgs.system} + // (import ./firefoxAddons.nix { inherit inputs pkgs lib; }); commonSettings = { # Disable DNS over HTTPS (use system DNS, i.e. VPN's DNS) diff --git a/home/modules/firefox/common.nix b/home/modules/firefox/common.nix index 7bc8e38..2a2c443 100644 --- a/home/modules/firefox/common.nix +++ b/home/modules/firefox/common.nix @@ -425,7 +425,7 @@ in { type = types.listOf types.package; default = [ ]; example = literalExpression '' - with pkgs.nur.repos.rycee.firefox-addons; [ + with firefox-addons; [ privacy-badger ] ''; @@ -436,7 +436,7 @@ in { Once you have NUR installed run - $ nix-env -f '<nixpkgs>' -qaP -A nur.repos.rycee.firefox-addons + $ nix-env -f '<nixpkgs>' -qaP -A firefox-addons to list the available Firefox add-ons. diff --git a/lib/createUser.nix b/lib/createUser.nix index 73f18e4..924f0cf 100644 --- a/lib/createUser.nix +++ b/lib/createUser.nix @@ -1,7 +1,7 @@ name: { user ? { }, hm ? { }, modules ? [ ], config, usesContainers ? false, ... }: -{ pkgs, lib, home-manager, ... }: { +{ inputs, nixConfig, pkgs, lib, home-manager, ... }: { imports = [ home-manager.nixosModules.home-manager ]; users.users."${name}" = { @@ -24,5 +24,6 @@ name: useGlobalPkgs = true; backupFileExtension = "backup"; users."${name}" = lib.mkMerge [ { imports = modules; } (import config) ]; + extraSpecialArgs = { inherit inputs nixConfig; }; } // hm; }