diff options
Diffstat (limited to 'use-cases')
-rw-r--r-- | use-cases/cli-basics.nix (renamed from use-cases/sysadmin/default.nix) | 7 | ||||
-rw-r--r-- | use-cases/default.nix | 40 | ||||
-rw-r--r-- | use-cases/development/default.nix | 10 | ||||
-rw-r--r-- | use-cases/git/default.nix (renamed from use-cases/development/git/default.nix) | 0 | ||||
-rw-r--r-- | use-cases/neovim/default.nix (renamed from use-cases/development/neovim/default.nix) | 0 | ||||
-rw-r--r-- | use-cases/neovim/filetype.nix (renamed from use-cases/development/neovim/filetype.nix) | 0 | ||||
-rw-r--r-- | use-cases/neovim/lsp.nix (renamed from use-cases/development/neovim/lsp.nix) | 0 | ||||
-rw-r--r-- | use-cases/zsh/default.nix (renamed from use-cases/development/zsh/default.nix) | 0 |
8 files changed, 17 insertions, 40 deletions
diff --git a/use-cases/sysadmin/default.nix b/use-cases/cli-basics.nix index 1958797..cd1e333 100644 --- a/use-cases/sysadmin/default.nix +++ b/use-cases/cli-basics.nix @@ -3,14 +3,11 @@ { pkgs, super, lib, ... }: -let - inherit (lib) optional; -in { home.packages = with pkgs; [ tree jc jq - # is this not the right it is the one passed to home-manager not nixos ???? 'config'? - ] ++ (optional (!super.my.use-cases.development.enable) vim); + vim + ]; } diff --git a/use-cases/default.nix b/use-cases/default.nix index 5af2903..6823d9c 100644 --- a/use-cases/default.nix +++ b/use-cases/default.nix @@ -1,43 +1,33 @@ -# This configuration is centered around use cases, rather than profiles. Since -# all of the machines I manage are single-user machines, there's no point in -# creating multiple users. -# -# While the users don't differ, the use cases definitely do. I use some -# machines for homework and gaming, while others are used for web-browsing and -# development. Each use case is a subdirectory with (home-manager) -# configuration options. -# -# Note that e.g. "running a DNS server" is not a use case. That's specified in -# the respective host's `configuration.nix`. - { config, lib, flakeInputs, ... }: let - inherit (lib) mkEnableOption mkIf; - cfg = config.my.use-cases; + inherit (lib) mkOption types optional elem; + + hasUseCase = c: elem c config.my.use-cases; in { - options.my.use-cases = { - development.enable = mkEnableOption "development use case"; - sysadmin.enable = mkEnableOption "sysadmin use case"; + options.my.use-cases = mkOption { + description = "use-cases/modules to enable"; + type = types.listOf (types.enum ["gui" "development" "sysadmin"]); }; config = { home-manager.users.linus = { - imports = - (lib.optional cfg.development.enable ./development) ++ - (lib.optional cfg.sysadmin.enable ./sysadmin); - # TODO: Graphical linux config (remember assertion). + imports = + (optional (hasUseCase "development") ./neovim) ++ + (optional (hasUseCase "development") && (hasUseCase "gui" && pkgs.stdenv.isDarwin) ./kitty) ++ + (optional (hasUseCase "development") && (hasUseCase "gui" && pkgs.stdenv.isLinux) ./st) ++ + (optional (hasUseCase "sysadmin") || (hasUseCase "development") ./zsh) ++ + (optional (hasUseCase "sysadmin") || (hasUseCase "development") ./cli-basics.nix); - xdg.enable = true; + xdg.enable = true; }; - # Pass - home-manager.extraSpecialArgs = { + home.extraSpecialArgs = { super = config; inherit flakeInputs; }; - home-manager.useGlobalPkgs = true; + home.useGlobalPkgs = true; }; } diff --git a/use-cases/development/default.nix b/use-cases/development/default.nix deleted file mode 100644 index 1acffec..0000000 --- a/use-cases/development/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ config, lib, ... }: - -{ - imports = - [ - ./git - ./neovim - ./zsh # TODO: move to sysadmin? - ]; -} diff --git a/use-cases/development/git/default.nix b/use-cases/git/default.nix index 8df44db..8df44db 100644 --- a/use-cases/development/git/default.nix +++ b/use-cases/git/default.nix diff --git a/use-cases/development/neovim/default.nix b/use-cases/neovim/default.nix index 5c265b8..5c265b8 100644 --- a/use-cases/development/neovim/default.nix +++ b/use-cases/neovim/default.nix diff --git a/use-cases/development/neovim/filetype.nix b/use-cases/neovim/filetype.nix index 66d5e68..66d5e68 100644 --- a/use-cases/development/neovim/filetype.nix +++ b/use-cases/neovim/filetype.nix diff --git a/use-cases/development/neovim/lsp.nix b/use-cases/neovim/lsp.nix index 0c7321d..0c7321d 100644 --- a/use-cases/development/neovim/lsp.nix +++ b/use-cases/neovim/lsp.nix diff --git a/use-cases/development/zsh/default.nix b/use-cases/zsh/default.nix index ac88554..ac88554 100644 --- a/use-cases/development/zsh/default.nix +++ b/use-cases/zsh/default.nix |