From 7b79203f54853733d4fae88943829d0e24e6e49f Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Sun, 7 Jan 2024 12:00:08 -0500 Subject: massive overhaul --- modules/desktop/defaults.nix | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 modules/desktop/defaults.nix (limited to 'modules/desktop/defaults.nix') diff --git a/modules/desktop/defaults.nix b/modules/desktop/defaults.nix new file mode 100644 index 0000000..2cf4a46 --- /dev/null +++ b/modules/desktop/defaults.nix @@ -0,0 +1,44 @@ +{ + config, + options, + lib, + pkgs, + ... +}: let + defaultApps = config.modules.desktop.defaultApplications; +in { + options.modules.desktop.defaultApplications = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + }; + apps = lib.mkOption { + type = lib.types.attrsOf (lib.types.submodule ({name, ...}: { + options = { + package = lib.mkOption {type = lib.types.package;}; + install = lib.mkOption {type = lib.types.bool; default = true;}; + cmd = lib.mkOption {type = lib.types.path;}; + desktop = lib.mkOption {type = lib.types.str;}; + }; + })); + }; + }; + + config = lib.mkIf (defaultApps.enable) { + modules.desktop.apps.terminals.kitty.enable = true; + modules.desktop.apps.editors.neovim.enable = true; + modules.desktop.apps.mpv.enable = true; + + env = { + EDITOR = defaultApps.apps.editor.desktop; + TERM = defaultApps.apps.terminal.desktop; + VIDEO = defaultApps.apps.video.desktop; + }; + + home.packages = lib.filter (elem: elem != null) (lib.mapAttrsToList (name: value: + if value.install + then value.package + else null) + defaultApps.apps); + }; +} -- cgit v1.2.1