at main 37 lines 1.0 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.dev; 9 inherit (lib) mkIf mkEnableOption mkDefault; 10in 11{ 12 options.dev = { 13 enable = mkEnableOption "all development tools"; 14 15 shell.enable = mkEnableOption "shell-related tools"; 16 editor.enable = mkEnableOption "editor tools"; 17 vcs.enable = mkEnableOption "version control tools"; 18 tools.enable = mkEnableOption "development utilities"; 19 docker.enable = mkEnableOption "Docker"; 20 }; 21 22 config = { 23 dev.shell.enable = mkIf cfg.enable true; 24 dev.editor.enable = mkIf cfg.enable true; 25 dev.vcs.enable = mkIf cfg.enable true; 26 dev.tools.enable = mkIf cfg.enable true; 27 dev.docker.enable = mkIf cfg.enable true; 28 29 users.defaultUserShell = mkIf (cfg.enable || cfg.shell.enable) pkgs.nushell; 30 environment.shells = mkIf (cfg.enable || cfg.shell.enable) [ pkgs.nushell ]; 31 32 programs.nano.enable = mkDefault (!(cfg.enable || cfg.editor.enable)); 33 environment.sessionVariables.EDITOR = mkIf cfg.editor.enable "hx"; 34 }; 35 36 imports = [ ./docker ]; 37}