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 | ||||
|   inherit (lib) mkIf; | ||||
|   userShell = config.systemModules.user.shell; | ||||
|   adminShell = config.systemModules.host.admin.shell; | ||||
|   cfg = config.systemModules.shell.zsh; | ||||
| in | ||||
| 
 | ||||
| { | ||||
|   config = mkIf (userShell == "bash") { | ||||
|     users.users.ooks.shell = pkgs.bash; | ||||
|   config = mkIf (adminShell == "bash" || cfg.enable) { | ||||
|     programs.bash = { | ||||
|       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