refactor(systemModules:shell): move shell module to reflect changes to how user shell is defined
This commit is contained in:
		
							parent
							
								
									956ae9448e
								
							
						
					
					
						commit
						f2e28fa618
					
				
					 7 changed files with 57 additions and 64 deletions
				
			
		| 
						 | 
					@ -2,12 +2,12 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let
 | 
					let
 | 
				
			||||||
  inherit (lib) mkIf;
 | 
					  inherit (lib) mkIf;
 | 
				
			||||||
  userShell = config.systemModules.user.shell;
 | 
					  adminShell = config.systemModules.host.admin.shell;
 | 
				
			||||||
 | 
					  cfg = config.systemModules.shell.zsh;
 | 
				
			||||||
in
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  config = mkIf (userShell == "bash") {
 | 
					  config = mkIf (adminShell == "bash" || cfg.enable) {
 | 
				
			||||||
    users.users.ooks.shell = pkgs.bash;
 | 
					 | 
				
			||||||
    programs.bash = {
 | 
					    programs.bash = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
							
								
								
									
										7
									
								
								system/modules/shell/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								system/modules/shell/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./fish
 | 
				
			||||||
 | 
					    ./bash
 | 
				
			||||||
 | 
					    ./zsh
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										22
									
								
								system/modules/shell/fish/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								system/modules/shell/fish/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,22 @@
 | 
				
			||||||
 | 
					{ lib, config, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  inherit (lib) mkIf mkEnableOption;
 | 
				
			||||||
 | 
					  adminShell = config.systemModules.host.admin.shell;
 | 
				
			||||||
 | 
					  cfg = config.systemModules.shell.fish;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  options.systemModules.shell.fish.enable = mkEnableOption "Enable fish module";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf (adminShell == "fish" || cfg.enable) {
 | 
				
			||||||
 | 
					    programs.fish = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      vendor = {
 | 
				
			||||||
 | 
					        completions.enable = true;
 | 
				
			||||||
 | 
					        config.enable = true;
 | 
				
			||||||
 | 
					        functions.enable = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										25
									
								
								system/modules/shell/zsh/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								system/modules/shell/zsh/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,25 @@
 | 
				
			||||||
 | 
					{ lib, config, ... }:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					let
 | 
				
			||||||
 | 
					  inherit (lib) mkIf mkEnableOption;
 | 
				
			||||||
 | 
					  adminShell = config.systemModules.host.admin.shell;
 | 
				
			||||||
 | 
					  cfg = config.systemModules.shell.zsh;
 | 
				
			||||||
 | 
					in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  options.systemModules.zsh.enable = mkEnableOption "Enable zsh module";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  config = mkIf (adminShell == "zsh" || cfg.enable) {
 | 
				
			||||||
 | 
					    programs.zsh = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      enableCompletion = true;
 | 
				
			||||||
 | 
					      syntaxHighlighting.enable = true;
 | 
				
			||||||
 | 
					      autosuggestions = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        async = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    environment.pathsToLink = ["/share/zsh"];
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,19 +0,0 @@
 | 
				
			||||||
{ lib, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  inherit (lib) types mkOption;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  imports = [
 | 
					 | 
				
			||||||
    ./fish
 | 
					 | 
				
			||||||
    ./bash
 | 
					 | 
				
			||||||
    ./zsh
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  options.systemModules.user.shell = mkOption {
 | 
					 | 
				
			||||||
    type = types.enum ["fish" "zsh" "bash"];
 | 
					 | 
				
			||||||
    default = "zsh";
 | 
					 | 
				
			||||||
    description = "The user shell to use. Select from 'zsh' 'bash' 'fish'";
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,20 +0,0 @@
 | 
				
			||||||
{ pkgs, lib, config, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  inherit (lib) mkIf;
 | 
					 | 
				
			||||||
  userShell = config.systemModules.user.shell;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config = mkIf (userShell == "fish") {
 | 
					 | 
				
			||||||
    users.users.ooks.shell = pkgs.fish;
 | 
					 | 
				
			||||||
    programs.fish = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      vendor = {
 | 
					 | 
				
			||||||
        completions.enable = true;
 | 
					 | 
				
			||||||
        config.enable = true;
 | 
					 | 
				
			||||||
        functions.enable = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
{ lib, config, pkgs, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  inherit (lib) mkIf;
 | 
					 | 
				
			||||||
  userShell = config.systemModules.user.shell;
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config = mkIf (userShell == "zsh") {
 | 
					 | 
				
			||||||
    users.users.ooks.shell = pkgs.zsh;
 | 
					 | 
				
			||||||
    programs.zsh = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      enableCompletion = true;
 | 
					 | 
				
			||||||
      syntaxHighlighting.enable = true;
 | 
					 | 
				
			||||||
      autosuggestions = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        async = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    environment.pathsToLink = ["/share/zsh"];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue