tree-wide change. seperated config from 'real' modles.
This commit is contained in:
		
							parent
							
								
									3eee4e105d
								
							
						
					
					
						commit
						a0c1ad0beb
					
				
					 59 changed files with 377 additions and 424 deletions
				
			
		
							
								
								
									
										13
									
								
								configs/home-manager/btop.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								configs/home-manager/btop.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,13 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.btop = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      vim_keys = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -25,6 +25,7 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ../hostopts.nix
 | 
					    ../../modules/hostopts.nix
 | 
				
			||||||
 | 
					    ../../modules/home-manager
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								configs/home-manager/direnv.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								configs/home-manager/direnv.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pgks,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.direnv = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    nix-direnv.enable = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										14
									
								
								configs/home-manager/gpg.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								configs/home-manager/gpg.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,14 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.gpg.enable = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  services.gpg-agent = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    enableSshSupport = true;
 | 
				
			||||||
 | 
					    pinentryPackage = lib.mkDefault pkgs.pinentry-tty;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										40
									
								
								configs/home-manager/nushell/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								configs/home-manager/nushell/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,40 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  home.file = {
 | 
				
			||||||
 | 
					    ".config/nushell/completions".source = ./completions;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs = {
 | 
				
			||||||
 | 
					    #sessionVariables, sessionPath and shellAliases are not applied to nushell.
 | 
				
			||||||
 | 
					    nushell = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      configFile.source = ./config.nu;
 | 
				
			||||||
 | 
					      envFile.source = ./env.nu;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    yazi.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    zoxide.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    starship.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    eza.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    carapace = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    direnv.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  services = {
 | 
				
			||||||
 | 
					    gpg-agent.enableNushellIntegration = true;
 | 
				
			||||||
 | 
					    pueue = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      settings = {
 | 
				
			||||||
 | 
					        daemon = {
 | 
				
			||||||
 | 
					          default_parallel_tasks = 5;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										17
									
								
								configs/home-manager/pass.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								configs/home-manager/pass.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.password-store = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      PASSWORD_STORE_DIR = "$HOME/keys/password-store";
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  programs.nushell.extraEnv = ''
 | 
				
			||||||
 | 
					    $env.PASSWORD_STORE_DIR = ($env.HOME | path join "keys" "password-store")
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								configs/home-manager/ssh-agent.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								configs/home-manager/ssh-agent.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  services.ssh-agent.enable = true;
 | 
				
			||||||
 | 
					  programs.nushell.extraEnv = ''
 | 
				
			||||||
 | 
					    $env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent"
 | 
				
			||||||
 | 
					  '';
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										109
									
								
								configs/home-manager/starship.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								configs/home-manager/starship.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,109 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.starship = {
 | 
				
			||||||
 | 
					    enable = true;
 | 
				
			||||||
 | 
					    settings = {
 | 
				
			||||||
 | 
					      format = lib.concatStrings [
 | 
				
			||||||
 | 
					        "[](color_orange)"
 | 
				
			||||||
 | 
					        "$shell"
 | 
				
			||||||
 | 
					        "$username"
 | 
				
			||||||
 | 
					        "[@](bg:color_orange)"
 | 
				
			||||||
 | 
					        "$hostname"
 | 
				
			||||||
 | 
					        "[ ](bg:color_orange)"
 | 
				
			||||||
 | 
					        "[](bg:color_yellow fg:color_orange)"
 | 
				
			||||||
 | 
					        "$directory"
 | 
				
			||||||
 | 
					        "[](fg:color_yellow bg:color_aqua)"
 | 
				
			||||||
 | 
					        "$git_branch"
 | 
				
			||||||
 | 
					        "$git_status"
 | 
				
			||||||
 | 
					        "[](fg:color_aqua bg:color_blue)"
 | 
				
			||||||
 | 
					        "$git_metrics"
 | 
				
			||||||
 | 
					        "[](fg:color_blue bg:color_bg3)"
 | 
				
			||||||
 | 
					        "$git_commit"
 | 
				
			||||||
 | 
					        "[](fg:color_bg3 bg:color_bg1)"
 | 
				
			||||||
 | 
					        "$time"
 | 
				
			||||||
 | 
					        "[ ](fg:color_bg1)"
 | 
				
			||||||
 | 
					        "$line_break"
 | 
				
			||||||
 | 
					        "$character"
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      add_newline = false;
 | 
				
			||||||
 | 
					      palette = "gruvbox_dark";
 | 
				
			||||||
 | 
					      palettes.gruvbox_dark = {
 | 
				
			||||||
 | 
					        color_fg0 = "#fbf1c7";
 | 
				
			||||||
 | 
					        color_bg1 = "#3c3836";
 | 
				
			||||||
 | 
					        color_bg3 = "#665c54";
 | 
				
			||||||
 | 
					        color_blue = "#458588";
 | 
				
			||||||
 | 
					        color_aqua = "#689d6a";
 | 
				
			||||||
 | 
					        color_green = "#98971a";
 | 
				
			||||||
 | 
					        color_orange = "#d65d0e";
 | 
				
			||||||
 | 
					        color_purple = "#b16286";
 | 
				
			||||||
 | 
					        color_red = "#cc241d";
 | 
				
			||||||
 | 
					        color_yellow = "#d79921";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      hostname = {
 | 
				
			||||||
 | 
					        ssh_only = false;
 | 
				
			||||||
 | 
					        ssh_symbol = "🌐";
 | 
				
			||||||
 | 
					        format = "[$hostname $ssh_symbol]($style)";
 | 
				
			||||||
 | 
					        style = "bg:color_orange";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      shell = {
 | 
				
			||||||
 | 
					        disabled = false;
 | 
				
			||||||
 | 
					        bash_indicator = "$";
 | 
				
			||||||
 | 
					        fish_indicator = "<><";
 | 
				
			||||||
 | 
					        zsh_indicator = "%";
 | 
				
			||||||
 | 
					        nu_indicator = ">";
 | 
				
			||||||
 | 
					        format = "[$indicator ]($style)";
 | 
				
			||||||
 | 
					        style = "bg:color_orange";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      fill = {
 | 
				
			||||||
 | 
					        symbol = " ";
 | 
				
			||||||
 | 
					        style = "bg:color_bg3";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      username = {
 | 
				
			||||||
 | 
					        show_always = true;
 | 
				
			||||||
 | 
					        style_user = "bg:color_orange fg:color_fg0";
 | 
				
			||||||
 | 
					        style_root = "bg:color_orange fg:color_fg0";
 | 
				
			||||||
 | 
					        format = "[$user]($style)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      directory = {
 | 
				
			||||||
 | 
					        style = "fg:color_fg0 bg:color_yellow";
 | 
				
			||||||
 | 
					        format = "[ $path ]($style)";
 | 
				
			||||||
 | 
					        fish_style_pwd_dir_length = 3;
 | 
				
			||||||
 | 
					        truncation_length = 4;
 | 
				
			||||||
 | 
					        truncation_symbol = "…/";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      git_branch = {
 | 
				
			||||||
 | 
					        symbol = "";
 | 
				
			||||||
 | 
					        style = "bg:color_aqua";
 | 
				
			||||||
 | 
					        format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      git_status = {
 | 
				
			||||||
 | 
					        style = "bg:color_aqua";
 | 
				
			||||||
 | 
					        format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      git_metrics = {
 | 
				
			||||||
 | 
					        disabled = false;
 | 
				
			||||||
 | 
					        added_style = "bg:color_blue fg:bold green";
 | 
				
			||||||
 | 
					        deleted_style = "bg:color_blue fg:bold red";
 | 
				
			||||||
 | 
					        format = "([ +$added ]($added_style))([-$deleted ]($deleted_style))";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      git_commit = {
 | 
				
			||||||
 | 
					        only_detached = false;
 | 
				
			||||||
 | 
					        tag_disabled = false;
 | 
				
			||||||
 | 
					        format = "[($hash$tag)]($style)";
 | 
				
			||||||
 | 
					        style = "bg:color_bg3";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      time = {
 | 
				
			||||||
 | 
					        disabled = false;
 | 
				
			||||||
 | 
					        time_format = "%R";
 | 
				
			||||||
 | 
					        style = "bg:color_bg1";
 | 
				
			||||||
 | 
					        format = "[[  $time ](fg:color_fg0 bg:color_bg1)]($style)";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      line_break.disabled = false;
 | 
				
			||||||
 | 
					      character.disabled = false;
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -4,8 +4,6 @@
 | 
				
			||||||
  lib,
 | 
					  lib,
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  options.user.tiny.enable=lib.mkEnableOption "enable tiny irc client";
 | 
					 | 
				
			||||||
  config=lib.mkIf config.user.tiny.enable {
 | 
					 | 
				
			||||||
  programs.tiny = {
 | 
					  programs.tiny = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    settings = {
 | 
					    settings = {
 | 
				
			||||||
| 
						 | 
					@ -46,4 +44,4 @@
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
};}
 | 
					}
 | 
				
			||||||
							
								
								
									
										11
									
								
								configs/home-manager/zellij/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								configs/home-manager/zellij/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,11 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs.zellij.enable = true;
 | 
				
			||||||
 | 
					  home.file = {
 | 
				
			||||||
 | 
					    ".config/zellij/config.kdl".source = ./config.kdl;
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										107
									
								
								configs/home-manager/zsh.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								configs/home-manager/zsh.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,107 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  config,
 | 
				
			||||||
 | 
					  pkgs,
 | 
				
			||||||
 | 
					  lib,
 | 
				
			||||||
 | 
					  ...
 | 
				
			||||||
 | 
					}: {
 | 
				
			||||||
 | 
					  programs = {
 | 
				
			||||||
 | 
					    starship.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    fzf.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    zoxide.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    yazi.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    eza.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    direnv.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    kitty.shellIntegration.enableZshIntegration = true;
 | 
				
			||||||
 | 
					    carapace.enableZshIntegration = false;
 | 
				
			||||||
 | 
					    zsh = {
 | 
				
			||||||
 | 
					      enable = true;
 | 
				
			||||||
 | 
					      enableCompletion = true;
 | 
				
			||||||
 | 
					      initExtra = lib.mkMerge [
 | 
				
			||||||
 | 
					        ''
 | 
				
			||||||
 | 
					          #have the menu highlight while we cycle through options
 | 
				
			||||||
 | 
					          zstyle ':completion:*' menu select
 | 
				
			||||||
 | 
					          #case insensitive completion
 | 
				
			||||||
 | 
					          zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
 | 
				
			||||||
 | 
					          #allow completion from midword
 | 
				
			||||||
 | 
					          setopt COMPLETE_IN_WORD
 | 
				
			||||||
 | 
					          #move cursor to end of word after completing
 | 
				
			||||||
 | 
					          setopt ALWAYS_TO_END
 | 
				
			||||||
 | 
					          #complete aliases as well
 | 
				
			||||||
 | 
					          setopt COMPLETE_ALIASES
 | 
				
			||||||
 | 
					          #select first item when you press tab the first time.
 | 
				
			||||||
 | 
					          setopt MENU_COMPLETE
 | 
				
			||||||
 | 
					          #case insensitive globbing
 | 
				
			||||||
 | 
					          setopt NO_CASE_GLOB
 | 
				
			||||||
 | 
					          #sort globs that expand to numbers by number rather than alphabeticly
 | 
				
			||||||
 | 
					          setopt NUMERIC_GLOB_SORT
 | 
				
			||||||
 | 
					          #allows for some neat globbing.
 | 
				
			||||||
 | 
					          setopt EXTENDED_GLOB
 | 
				
			||||||
 | 
					          #allow backspacing beyond the point you entered insert mode:
 | 
				
			||||||
 | 
					          bindkey -v '^?' backward-delete-char
 | 
				
			||||||
 | 
					          bindkey "^W" backward-kill-word
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          #cheat.sh is a wonderful tool, the less typing needed the better.
 | 
				
			||||||
 | 
					          cheat(){
 | 
				
			||||||
 | 
					            for i in $*; do;
 | 
				
			||||||
 | 
					            curl cheat.sh/$i
 | 
				
			||||||
 | 
					            done
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					        ''
 | 
				
			||||||
 | 
					        (lib.mkIf (!config.programs.starship.enable) ''
 | 
				
			||||||
 | 
					          autoload -U promptinit
 | 
				
			||||||
 | 
					          promptinit
 | 
				
			||||||
 | 
					          autoload -U colors
 | 
				
			||||||
 | 
					          colors
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          #stuff to show git things.
 | 
				
			||||||
 | 
					            autoload -Uz vcs_info
 | 
				
			||||||
 | 
					            setopt prompt_subst
 | 
				
			||||||
 | 
					            precmd_vcs() {vcs_info}
 | 
				
			||||||
 | 
					            #when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
 | 
				
			||||||
 | 
					            zstyle ':vcs_info:*' nvcsformats '%~'
 | 
				
			||||||
 | 
					            zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
 | 
				
			||||||
 | 
					            zstyle ':vcs_info:*' actionformats '%r/%S %F{green}[%b] %F{red}<%a>%f'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          #the precmd function, called just before printing the prompt.
 | 
				
			||||||
 | 
					          function precmd() {
 | 
				
			||||||
 | 
					            precmd_vcs
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          #Make the right prompt blank, just to be sure.
 | 
				
			||||||
 | 
					          RPROMPT=""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					          #on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to  input next to...)
 | 
				
			||||||
 | 
					          PROMPT=$'%F{cyan}[%n@%m]%f%F{red}├────┤%f$${vcs_info_msg_0_} %F{white}[%D %T]%f\n»'
 | 
				
			||||||
 | 
					        '')
 | 
				
			||||||
 | 
					      ];
 | 
				
			||||||
 | 
					      autocd = true;
 | 
				
			||||||
 | 
					      autosuggestion.enable = true;
 | 
				
			||||||
 | 
					      defaultKeymap = "viins";
 | 
				
			||||||
 | 
					      history = {
 | 
				
			||||||
 | 
					        ignoreAllDups = true;
 | 
				
			||||||
 | 
					        extended = true;
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      shellAliases = {
 | 
				
			||||||
 | 
					        ll = "ls -lh";
 | 
				
			||||||
 | 
					        la = "ls -lha";
 | 
				
			||||||
 | 
					        please = "sudo $(fc -ln -1)";
 | 
				
			||||||
 | 
					        pyactivate = "source ./.venv/bin/activate";
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      syntaxHighlighting = {
 | 
				
			||||||
 | 
					        enable = true;
 | 
				
			||||||
 | 
					        highlighters = [
 | 
				
			||||||
 | 
					          "main"
 | 
				
			||||||
 | 
					          "brackets"
 | 
				
			||||||
 | 
					          "pattern"
 | 
				
			||||||
 | 
					          "regexp"
 | 
				
			||||||
 | 
					          "root"
 | 
				
			||||||
 | 
					          "line"
 | 
				
			||||||
 | 
					        ];
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					  services.gpg-agent.enableZshIntegration = true;
 | 
				
			||||||
 | 
					  home.packages = with pkgs; [
 | 
				
			||||||
 | 
					    curl
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -29,6 +29,10 @@
 | 
				
			||||||
    neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
					    neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ../../modules/hostopts.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  home-manager.useGlobalPkgs = true;
 | 
					  home-manager.useGlobalPkgs = true;
 | 
				
			||||||
  home-manager.useUserPackages = true;
 | 
					  home-manager.useUserPackages = true;
 | 
				
			||||||
  home-manager.extraSpecialArgs = {inherit inputs outputs;};
 | 
					  home-manager.extraSpecialArgs = {inherit inputs outputs;};
 | 
				
			||||||
| 
						 | 
					@ -11,12 +11,11 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
    inputs.home-manager.nixosModules.home-manager
 | 
					    inputs.home-manager.nixosModules.home-manager
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ../../roles/nixos/graphical-vm.nix
 | 
					    ../../roles/nixos/graphical-vm.nix
 | 
				
			||||||
    ../../modules/hostopts.nix
 | 
					    ../../configs/nixos/common.nix
 | 
				
			||||||
    ../../modules/nixos/common.nix
 | 
					    ../../configs/nixos/printing.nix
 | 
				
			||||||
    ../../modules/nixos/printing.nix
 | 
					    ../../configs/nixos/sound.nix
 | 
				
			||||||
    ../../modules/both/sound.nix
 | 
					    ../../configs/nixos/networking.nix
 | 
				
			||||||
    ../../modules/nixos/networking.nix
 | 
					    ../../configs/nixos/i3
 | 
				
			||||||
    ../../modules/both/i3
 | 
					 | 
				
			||||||
    ({
 | 
					    ({
 | 
				
			||||||
      config,
 | 
					      config,
 | 
				
			||||||
      pkgs,
 | 
					      pkgs,
 | 
				
			||||||
| 
						 | 
					@ -71,8 +70,8 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../../roles/home-manager/terminal.nix
 | 
					          ../../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../../modules/home-manager/common.nix
 | 
					          ../../configs/home-manager/common.nix
 | 
				
			||||||
          ../../modules/home-manager/email.nix
 | 
					          ../../configs/home-manager/email.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					          inputs.nixvim.homeManagerModules.nixvim
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -32,10 +32,10 @@ inputs.home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
      imports = [
 | 
					      imports = [
 | 
				
			||||||
        ../roles/home-manager/terminal.nix
 | 
					        ../roles/home-manager/terminal.nix
 | 
				
			||||||
        ../roles/home-manager/music.nix
 | 
					        ../roles/home-manager/music.nix
 | 
				
			||||||
        ../modules/home-manager/common.nix
 | 
					        ../configs/home-manager/common.nix
 | 
				
			||||||
        ../modules/home-manager/syncthing.nix
 | 
					        ../configs/home-manager/syncthing.nix
 | 
				
			||||||
        ../modules/home-manager/email.nix
 | 
					        ../configs/home-manager/email.nix
 | 
				
			||||||
        ../modules/home-manager/terminal/voice.nix
 | 
					        ../configs/home-manager/terminal/voice.nix
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    inputs.nixvim.homeManagerModules.nixvim
 | 
					    inputs.nixvim.homeManagerModules.nixvim
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -37,8 +37,8 @@ inputs.home-manager.lib.homeManagerConfiguration {
 | 
				
			||||||
      home.homeDirectory = /home/gabe;
 | 
					      home.homeDirectory = /home/gabe;
 | 
				
			||||||
      imports = [
 | 
					      imports = [
 | 
				
			||||||
        ../roles/home-manager/terminal.nix
 | 
					        ../roles/home-manager/terminal.nix
 | 
				
			||||||
        ../modules/home-manager/common.nix
 | 
					        ../configs/home-manager/common.nix
 | 
				
			||||||
        ../modules/home-manager/syncthing.nix
 | 
					        ../configs/home-manager/syncthing.nix
 | 
				
			||||||
      ];
 | 
					      ];
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,13 +14,12 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
    inputs.home-manager.nixosModules.home-manager
 | 
					    inputs.home-manager.nixosModules.home-manager
 | 
				
			||||||
    ./hardware-configuration.nix
 | 
					    ./hardware-configuration.nix
 | 
				
			||||||
    ../../roles/nixos/graphical-vm.nix
 | 
					    ../../roles/nixos/graphical-vm.nix
 | 
				
			||||||
    ../../modules/hostopts.nix
 | 
					    ../../configs/nixos/printing.nix
 | 
				
			||||||
    ../../modules/nixos/common.nix
 | 
					    ../../configs/nixos/sound.nix
 | 
				
			||||||
    ../../modules/nixos/printing.nix
 | 
					    ../../configs/nixos/networking.nix
 | 
				
			||||||
    ../../modules/both/sound.nix
 | 
					    ../../configs/nixos/nfsv2.nix
 | 
				
			||||||
    ../../modules/nixos/networking.nix
 | 
					    ../../configs/nixos/i3
 | 
				
			||||||
    ../../modules/nixos/nfsv2.nix
 | 
					    ../../configs/nixos/common.nix
 | 
				
			||||||
    ../../modules/both/i3
 | 
					 | 
				
			||||||
    ({
 | 
					    ({
 | 
				
			||||||
      config,
 | 
					      config,
 | 
				
			||||||
      pkgs,
 | 
					      pkgs,
 | 
				
			||||||
| 
						 | 
					@ -76,7 +75,7 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../../roles/home-manager/terminal.nix
 | 
					          ../../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../../modules/home-manager/common.nix
 | 
					          ../../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					          inputs.nixvim.homeManagerModules.nixvim
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,8 +9,7 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
  modules = [
 | 
					  modules = [
 | 
				
			||||||
    inputs.home-manager.nixosModules.home-manager
 | 
					    inputs.home-manager.nixosModules.home-manager
 | 
				
			||||||
    inputs.nixos-wsl.nixosModules.default
 | 
					    inputs.nixos-wsl.nixosModules.default
 | 
				
			||||||
    ../modules/hostopts.nix
 | 
					    ../configs/nixos/common.nix
 | 
				
			||||||
    ../modules/nixos/common.nix
 | 
					 | 
				
			||||||
    ({
 | 
					    ({
 | 
				
			||||||
      config,
 | 
					      config,
 | 
				
			||||||
      pkgs,
 | 
					      pkgs,
 | 
				
			||||||
| 
						 | 
					@ -56,7 +55,7 @@ inputs.nixpkgs.lib.nixosSystem {
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
        imports = [
 | 
					        imports = [
 | 
				
			||||||
          ../roles/home-manager/terminal.nix
 | 
					          ../roles/home-manager/terminal.nix
 | 
				
			||||||
          ../modules/home-manager/common.nix
 | 
					          ../configs/home-manager/common.nix
 | 
				
			||||||
          inputs.nixvim.homeManagerModules.nixvim
 | 
					          inputs.nixvim.homeManagerModules.nixvim
 | 
				
			||||||
        ];
 | 
					        ];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										7
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								modules/home-manager/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,7 @@
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  imports = [
 | 
				
			||||||
 | 
					    ./git.nix
 | 
				
			||||||
 | 
					    ./nvim
 | 
				
			||||||
 | 
					    ./voice.nix
 | 
				
			||||||
 | 
					  ];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,16 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.btop.enable = lib.mkEnableOption "enable btop";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.btop.enable {
 | 
					 | 
				
			||||||
    programs.btop = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      settings = {
 | 
					 | 
				
			||||||
        vim_keys = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,22 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  imports=[
 | 
					 | 
				
			||||||
  ./nushell
 | 
					 | 
				
			||||||
  ./zellij
 | 
					 | 
				
			||||||
  ./btop.nix
 | 
					 | 
				
			||||||
  ./direnv.nix
 | 
					 | 
				
			||||||
  ./git.nix
 | 
					 | 
				
			||||||
  ./gpg.nix
 | 
					 | 
				
			||||||
  ./irssi.nix
 | 
					 | 
				
			||||||
  ./pass.nix
 | 
					 | 
				
			||||||
  ./ssh-agent.nix
 | 
					 | 
				
			||||||
  ./starship.nix
 | 
					 | 
				
			||||||
  ./tiny-irc.nix
 | 
					 | 
				
			||||||
  ./voice.nix
 | 
					 | 
				
			||||||
  ./zsh.nix
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pgks,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.direnv.enable = lib.mkEnableOption "enable direnv";
 | 
					 | 
				
			||||||
  config= lib.mkIf config.user.direnv.enable{
 | 
					 | 
				
			||||||
  programs.direnv = {
 | 
					 | 
				
			||||||
    enable = true;
 | 
					 | 
				
			||||||
    nix-direnv.enable = true;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,17 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.gpg.enable = lib.mkEnableOption "enable gpg";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.gpg.enable {
 | 
					 | 
				
			||||||
    programs.gpg.enable = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    services.gpg-agent = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      enableSshSupport = true;
 | 
					 | 
				
			||||||
      pinentryPackage = lib.mkDefault pkgs.pinentry-tty;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,43 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.nushell.enable = lib.mkEnableOption "enable nushell";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.nushell.enable {
 | 
					 | 
				
			||||||
    home.file = {
 | 
					 | 
				
			||||||
      ".config/nushell/completions".source = ./completions;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    programs = {
 | 
					 | 
				
			||||||
      #sessionVariables, sessionPath and shellAliases are not applied to nushell.
 | 
					 | 
				
			||||||
      nushell = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        configFile.source = ./config.nu;
 | 
					 | 
				
			||||||
        envFile.source = ./env.nu;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      yazi.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      zoxide.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      starship.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      eza.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      carapace = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      direnv.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    services = {
 | 
					 | 
				
			||||||
      gpg-agent.enableNushellIntegration = true;
 | 
					 | 
				
			||||||
      pueue = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        settings = {
 | 
					 | 
				
			||||||
          daemon = {
 | 
					 | 
				
			||||||
            default_parallel_tasks = 5;
 | 
					 | 
				
			||||||
          };
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,20 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.pass.enable = lib.mkEnableOption "enable pass password manager";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.pass.enable {
 | 
					 | 
				
			||||||
    programs.password-store = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      settings = {
 | 
					 | 
				
			||||||
        PASSWORD_STORE_DIR = "$HOME/keys/password-store";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    programs.nushell.extraEnv = ''
 | 
					 | 
				
			||||||
      $env.PASSWORD_STORE_DIR = ($env.HOME | path join "keys" "password-store")
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.ssh-agent.enable = lib.mkEnableOption "enable ssh-agent";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.ssh-agent.enable {
 | 
					 | 
				
			||||||
    services.ssh-agent.enable = true;
 | 
					 | 
				
			||||||
    programs.nushell.extraEnv = ''
 | 
					 | 
				
			||||||
      $env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent"
 | 
					 | 
				
			||||||
    '';
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,112 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.starship.enable = lib.mkEnableOption "enable starship prompt";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.starship.enable {
 | 
					 | 
				
			||||||
    programs.starship = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      settings = {
 | 
					 | 
				
			||||||
        format = lib.concatStrings [
 | 
					 | 
				
			||||||
          "[](color_orange)"
 | 
					 | 
				
			||||||
          "$shell"
 | 
					 | 
				
			||||||
          "$username"
 | 
					 | 
				
			||||||
          "[@](bg:color_orange)"
 | 
					 | 
				
			||||||
          "$hostname"
 | 
					 | 
				
			||||||
          "[ ](bg:color_orange)"
 | 
					 | 
				
			||||||
          "[](bg:color_yellow fg:color_orange)"
 | 
					 | 
				
			||||||
          "$directory"
 | 
					 | 
				
			||||||
          "[](fg:color_yellow bg:color_aqua)"
 | 
					 | 
				
			||||||
          "$git_branch"
 | 
					 | 
				
			||||||
          "$git_status"
 | 
					 | 
				
			||||||
          "[](fg:color_aqua bg:color_blue)"
 | 
					 | 
				
			||||||
          "$git_metrics"
 | 
					 | 
				
			||||||
          "[](fg:color_blue bg:color_bg3)"
 | 
					 | 
				
			||||||
          "$git_commit"
 | 
					 | 
				
			||||||
          "[](fg:color_bg3 bg:color_bg1)"
 | 
					 | 
				
			||||||
          "$time"
 | 
					 | 
				
			||||||
          "[ ](fg:color_bg1)"
 | 
					 | 
				
			||||||
          "$line_break"
 | 
					 | 
				
			||||||
          "$character"
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        add_newline = false;
 | 
					 | 
				
			||||||
        palette = "gruvbox_dark";
 | 
					 | 
				
			||||||
        palettes.gruvbox_dark = {
 | 
					 | 
				
			||||||
          color_fg0 = "#fbf1c7";
 | 
					 | 
				
			||||||
          color_bg1 = "#3c3836";
 | 
					 | 
				
			||||||
          color_bg3 = "#665c54";
 | 
					 | 
				
			||||||
          color_blue = "#458588";
 | 
					 | 
				
			||||||
          color_aqua = "#689d6a";
 | 
					 | 
				
			||||||
          color_green = "#98971a";
 | 
					 | 
				
			||||||
          color_orange = "#d65d0e";
 | 
					 | 
				
			||||||
          color_purple = "#b16286";
 | 
					 | 
				
			||||||
          color_red = "#cc241d";
 | 
					 | 
				
			||||||
          color_yellow = "#d79921";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        hostname = {
 | 
					 | 
				
			||||||
          ssh_only = false;
 | 
					 | 
				
			||||||
          ssh_symbol = "🌐";
 | 
					 | 
				
			||||||
          format = "[$hostname $ssh_symbol]($style)";
 | 
					 | 
				
			||||||
          style = "bg:color_orange";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        shell = {
 | 
					 | 
				
			||||||
          disabled = false;
 | 
					 | 
				
			||||||
          bash_indicator = "$";
 | 
					 | 
				
			||||||
          fish_indicator = "<><";
 | 
					 | 
				
			||||||
          zsh_indicator = "%";
 | 
					 | 
				
			||||||
          nu_indicator = ">";
 | 
					 | 
				
			||||||
          format = "[$indicator ]($style)";
 | 
					 | 
				
			||||||
          style = "bg:color_orange";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        fill = {
 | 
					 | 
				
			||||||
          symbol = " ";
 | 
					 | 
				
			||||||
          style = "bg:color_bg3";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        username = {
 | 
					 | 
				
			||||||
          show_always = true;
 | 
					 | 
				
			||||||
          style_user = "bg:color_orange fg:color_fg0";
 | 
					 | 
				
			||||||
          style_root = "bg:color_orange fg:color_fg0";
 | 
					 | 
				
			||||||
          format = "[$user]($style)";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        directory = {
 | 
					 | 
				
			||||||
          style = "fg:color_fg0 bg:color_yellow";
 | 
					 | 
				
			||||||
          format = "[ $path ]($style)";
 | 
					 | 
				
			||||||
          fish_style_pwd_dir_length = 3;
 | 
					 | 
				
			||||||
          truncation_length = 4;
 | 
					 | 
				
			||||||
          truncation_symbol = "…/";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        git_branch = {
 | 
					 | 
				
			||||||
          symbol = "";
 | 
					 | 
				
			||||||
          style = "bg:color_aqua";
 | 
					 | 
				
			||||||
          format = "[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        git_status = {
 | 
					 | 
				
			||||||
          style = "bg:color_aqua";
 | 
					 | 
				
			||||||
          format = "[[($all_status$ahead_behind )](fg:color_fg0 bg:color_aqua)]($style)";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        git_metrics = {
 | 
					 | 
				
			||||||
          disabled = false;
 | 
					 | 
				
			||||||
          added_style = "bg:color_blue fg:bold green";
 | 
					 | 
				
			||||||
          deleted_style = "bg:color_blue fg:bold red";
 | 
					 | 
				
			||||||
          format = "([ +$added ]($added_style))([-$deleted ]($deleted_style))";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        git_commit = {
 | 
					 | 
				
			||||||
          only_detached = false;
 | 
					 | 
				
			||||||
          tag_disabled = false;
 | 
					 | 
				
			||||||
          format = "[($hash$tag)]($style)";
 | 
					 | 
				
			||||||
          style = "bg:color_bg3";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        time = {
 | 
					 | 
				
			||||||
          disabled = false;
 | 
					 | 
				
			||||||
          time_format = "%R";
 | 
					 | 
				
			||||||
          style = "bg:color_bg1";
 | 
					 | 
				
			||||||
          format = "[[  $time ](fg:color_fg0 bg:color_bg1)]($style)";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        line_break.disabled = false;
 | 
					 | 
				
			||||||
        character.disabled = false;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,14 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.zellij.enable = lib.mkEnableOption "enable zellij";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.zellij.enable {
 | 
					 | 
				
			||||||
    programs.zellij.enable = true;
 | 
					 | 
				
			||||||
    home.file = {
 | 
					 | 
				
			||||||
      ".config/zellij/config.kdl".source = ./config.kdl;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -1,110 +0,0 @@
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  config,
 | 
					 | 
				
			||||||
  pkgs,
 | 
					 | 
				
			||||||
  lib,
 | 
					 | 
				
			||||||
  ...
 | 
					 | 
				
			||||||
}: {
 | 
					 | 
				
			||||||
  options.user.zsh.enable = lib.mkEnableOption "enable zsh";
 | 
					 | 
				
			||||||
  config = lib.mkIf config.user.zsh.enable {
 | 
					 | 
				
			||||||
    programs = {
 | 
					 | 
				
			||||||
      starship.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      fzf.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      zoxide.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      yazi.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      eza.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      direnv.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      kitty.shellIntegration.enableZshIntegration = true;
 | 
					 | 
				
			||||||
      carapace.enableZshIntegration = false;
 | 
					 | 
				
			||||||
      zsh = {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        enableCompletion = true;
 | 
					 | 
				
			||||||
        initExtra = lib.mkMerge [
 | 
					 | 
				
			||||||
          ''
 | 
					 | 
				
			||||||
            #have the menu highlight while we cycle through options
 | 
					 | 
				
			||||||
            zstyle ':completion:*' menu select
 | 
					 | 
				
			||||||
            #case insensitive completion
 | 
					 | 
				
			||||||
            zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
 | 
					 | 
				
			||||||
            #allow completion from midword
 | 
					 | 
				
			||||||
            setopt COMPLETE_IN_WORD
 | 
					 | 
				
			||||||
            #move cursor to end of word after completing
 | 
					 | 
				
			||||||
            setopt ALWAYS_TO_END
 | 
					 | 
				
			||||||
            #complete aliases as well
 | 
					 | 
				
			||||||
            setopt COMPLETE_ALIASES
 | 
					 | 
				
			||||||
            #select first item when you press tab the first time.
 | 
					 | 
				
			||||||
            setopt MENU_COMPLETE
 | 
					 | 
				
			||||||
            #case insensitive globbing
 | 
					 | 
				
			||||||
            setopt NO_CASE_GLOB
 | 
					 | 
				
			||||||
            #sort globs that expand to numbers by number rather than alphabeticly
 | 
					 | 
				
			||||||
            setopt NUMERIC_GLOB_SORT
 | 
					 | 
				
			||||||
            #allows for some neat globbing.
 | 
					 | 
				
			||||||
            setopt EXTENDED_GLOB
 | 
					 | 
				
			||||||
            #allow backspacing beyond the point you entered insert mode:
 | 
					 | 
				
			||||||
            bindkey -v '^?' backward-delete-char
 | 
					 | 
				
			||||||
            bindkey "^W" backward-kill-word
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #cheat.sh is a wonderful tool, the less typing needed the better.
 | 
					 | 
				
			||||||
            cheat(){
 | 
					 | 
				
			||||||
              for i in $*; do;
 | 
					 | 
				
			||||||
              curl cheat.sh/$i
 | 
					 | 
				
			||||||
              done
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          ''
 | 
					 | 
				
			||||||
          (lib.mkIf (!config.programs.starship.enable) ''
 | 
					 | 
				
			||||||
            autoload -U promptinit
 | 
					 | 
				
			||||||
            promptinit
 | 
					 | 
				
			||||||
            autoload -U colors
 | 
					 | 
				
			||||||
            colors
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #stuff to show git things.
 | 
					 | 
				
			||||||
              autoload -Uz vcs_info
 | 
					 | 
				
			||||||
              setopt prompt_subst
 | 
					 | 
				
			||||||
              precmd_vcs() {vcs_info}
 | 
					 | 
				
			||||||
              #when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
 | 
					 | 
				
			||||||
              zstyle ':vcs_info:*' nvcsformats '%~'
 | 
					 | 
				
			||||||
              zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
 | 
					 | 
				
			||||||
              zstyle ':vcs_info:*' actionformats '%r/%S %F{green}[%b] %F{red}<%a>%f'
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #the precmd function, called just before printing the prompt.
 | 
					 | 
				
			||||||
            function precmd() {
 | 
					 | 
				
			||||||
              precmd_vcs
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #Make the right prompt blank, just to be sure.
 | 
					 | 
				
			||||||
            RPROMPT=""
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            #on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to  input next to...)
 | 
					 | 
				
			||||||
            PROMPT=$'%F{cyan}[%n@%m]%f%F{red}├────┤%f$${vcs_info_msg_0_} %F{white}[%D %T]%f\n»'
 | 
					 | 
				
			||||||
          '')
 | 
					 | 
				
			||||||
        ];
 | 
					 | 
				
			||||||
        autocd = true;
 | 
					 | 
				
			||||||
        autosuggestion.enable = true;
 | 
					 | 
				
			||||||
        defaultKeymap = "viins";
 | 
					 | 
				
			||||||
        history = {
 | 
					 | 
				
			||||||
          ignoreAllDups = true;
 | 
					 | 
				
			||||||
          extended = true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        shellAliases = {
 | 
					 | 
				
			||||||
          ll = "ls -lh";
 | 
					 | 
				
			||||||
          la = "ls -lha";
 | 
					 | 
				
			||||||
          please = "sudo $(fc -ln -1)";
 | 
					 | 
				
			||||||
          pyactivate = "source ./.venv/bin/activate";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        syntaxHighlighting = {
 | 
					 | 
				
			||||||
          enable = true;
 | 
					 | 
				
			||||||
          highlighters = [
 | 
					 | 
				
			||||||
            "main"
 | 
					 | 
				
			||||||
            "brackets"
 | 
					 | 
				
			||||||
            "pattern"
 | 
					 | 
				
			||||||
            "regexp"
 | 
					 | 
				
			||||||
            "root"
 | 
					 | 
				
			||||||
            "line"
 | 
					 | 
				
			||||||
          ];
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    services.gpg-agent.enableZshIntegration = true;
 | 
					 | 
				
			||||||
    home.packages = with pkgs; [
 | 
					 | 
				
			||||||
      curl
 | 
					 | 
				
			||||||
    ];
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
| 
						 | 
					@ -5,16 +5,14 @@
 | 
				
			||||||
  ...
 | 
					  ...
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ../../modules/home-manager/terminal
 | 
					    ../../configs/home-manager/btop.nix
 | 
				
			||||||
    ../../modules/home-manager/nvim
 | 
					    ../../configs/home-manager/direnv.nix
 | 
				
			||||||
 | 
					    ../../configs/home-manager/ssh-agent.nix
 | 
				
			||||||
 | 
					    ../../configs/home-manager/zsh.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  user = {
 | 
					  user = {
 | 
				
			||||||
    btop.enable = true;
 | 
					 | 
				
			||||||
    direnv.enable = true;
 | 
					 | 
				
			||||||
    git.enable = true;
 | 
					    git.enable = true;
 | 
				
			||||||
    ssh-agent.enable = true;
 | 
					 | 
				
			||||||
    zsh.enable = true;
 | 
					 | 
				
			||||||
    nvim.enable = true;
 | 
					    nvim.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,15 +6,12 @@
 | 
				
			||||||
}: {
 | 
					}: {
 | 
				
			||||||
  imports = [
 | 
					  imports = [
 | 
				
			||||||
    ./minimal-terminal.nix
 | 
					    ./minimal-terminal.nix
 | 
				
			||||||
    ../../modules/home-manager/terminal/nushell
 | 
					    ../../configs/home-manager/nushell
 | 
				
			||||||
    ../../modules/home-manager/terminal/starship.nix
 | 
					    ../../configs/home-manager/starship.nix
 | 
				
			||||||
    ../../modules/home-manager/terminal/tiny-irc.nix
 | 
					    ../../configs/home-manager/tiny-irc.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  user = {
 | 
					  user = {
 | 
				
			||||||
    nushell.enable = true;
 | 
					 | 
				
			||||||
    starship.enable = true;
 | 
					 | 
				
			||||||
    tiny.enable = true;
 | 
					 | 
				
			||||||
    nvim = {
 | 
					    nvim = {
 | 
				
			||||||
      enable-lsp = true;
 | 
					      enable-lsp = true;
 | 
				
			||||||
      enable-treesitter = true;
 | 
					      enable-treesitter = true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue