treewide: null package support (#6582)

Can generate the config without installing application through home-manager. Helpful when a package is broken (or not provided) on a specific platform through nixpkgs and needs to be installed through other means but you still can benefit from the declarative configuration.
This commit is contained in:
Austin Horstman
2025-03-07 18:17:52 -06:00
committed by GitHub
parent 6c2b79403e
commit d2c014e1c7
83 changed files with 269 additions and 222 deletions

View File

@@ -12,7 +12,7 @@ in {
options.programs.bemenu = {
enable = mkEnableOption "bemenu";
package = mkPackageOption pkgs "bemenu" { };
package = mkPackageOption pkgs "bemenu" { nullable = true; };
settings = mkOption {
type = with types; attrsOf (oneOf [ str number bool ]);
@@ -44,7 +44,7 @@ in {
assertions =
[ (hm.assertions.assertPlatform "programs.bemenu" pkgs platforms.linux) ];
home.packages = [ cfg.package ];
home.packages = lib.mkIf (cfg.package != null) [ cfg.package ];
home.sessionVariables = mkIf (cfg.settings != { }) {
BEMENU_OPTS = cli.toGNUCommandLineShell { } cfg.settings;