From bfddcef2fd5ab74076edf600065c3ad2905dbcdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nikodem=20Rabuli=C5=84ski?= Date: Sun, 5 Jan 2025 01:01:56 +0100 Subject: [PATCH] modules/home/unfree: init --- modules/home/default.nix | 1 + modules/home/desktop/default.nix | 1 + modules/home/unfree.nix | 19 +++++++++++++++++++ modules/system/unfree.nix | 16 ++++++++++++++-- 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 modules/home/unfree.nix diff --git a/modules/home/default.nix b/modules/home/default.nix index 33eae30..f11fcaa 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -21,6 +21,7 @@ in ./desktop fishOverlayModule ./xdg.nix + ./unfree.nix ]; programs.home-manager.enable = true; diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix index d02c80b..825d69c 100644 --- a/modules/home/desktop/default.nix +++ b/modules/home/desktop/default.nix @@ -23,6 +23,7 @@ fontconfig signal-desktop ]; + settei.unfree.allowedPackages = [ "signal-desktop" ]; fonts.fontconfig.enable = true; diff --git a/modules/home/unfree.nix b/modules/home/unfree.nix new file mode 100644 index 0000000..cd2060c --- /dev/null +++ b/modules/home/unfree.nix @@ -0,0 +1,19 @@ +# Copy of modules/system/unfree.nix +{ config, lib, ... }: +{ + _file = ./unfree.nix; + + options = { + settei.unfree.allowedPackages = + with lib; + mkOption { + type = types.listOf types.str; + }; + }; + + config = { + nixpkgs.config.allowUnfreePredicate = lib.mkForce ( + pkg: builtins.elem (lib.getName pkg) config.settei.unfree.allowedPackages + ); + }; +} diff --git a/modules/system/unfree.nix b/modules/system/unfree.nix index a82f946..06b5d58 100644 --- a/modules/system/unfree.nix +++ b/modules/system/unfree.nix @@ -1,4 +1,15 @@ -{ config, lib, ... }: +{ + config, + lib, + username, + ... +}: +let + # TODO: Maybe eventually support multi-user + userAllowedPackages = + lib.optionals config.settei.user.enable + config.home-manager.users.${username}.settei.unfree.allowedPackages; +in { _file = ./unfree.nix; @@ -8,12 +19,13 @@ with lib; mkOption { type = types.listOf types.str; + default = [ ]; }; }; config = { nixpkgs.config.allowUnfreePredicate = lib.mkForce ( - pkg: builtins.elem (lib.getName pkg) config.settei.unfree.allowedPackages + pkg: builtins.elem (lib.getName pkg) (config.settei.unfree.allowedPackages ++ userAllowedPackages) ); }; }