added enable options to termina modules.
This commit is contained in:
		
							parent
							
								
									6f0e167087
								
							
						
					
					
						commit
						3eee4e105d
					
				
					 16 changed files with 358 additions and 298 deletions
				
			
		| 
						 | 
				
			
			@ -4,10 +4,13 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.btop = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      vim_keys = true;
 | 
			
		||||
  options.user.btop.enable = lib.mkEnableOption "enable btop";
 | 
			
		||||
  config = lib.mkIf config.user.btop.enable {
 | 
			
		||||
    programs.btop = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      settings = {
 | 
			
		||||
        vim_keys = true;
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										22
									
								
								modules/home-manager/terminal/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								modules/home-manager/terminal/default.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,22 @@
 | 
			
		|||
{
 | 
			
		||||
  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
 | 
			
		||||
  ];
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -4,8 +4,11 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options.user.direnv.enable = lib.mkEnableOption "enable direnv";
 | 
			
		||||
  config= lib.mkIf config.user.direnv.enable{
 | 
			
		||||
  programs.direnv = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    nix-direnv.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@
 | 
			
		|||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    user.git = {
 | 
			
		||||
      enable= lib.mkEnableOption "enable git";
 | 
			
		||||
      workProfile = {
 | 
			
		||||
        enable = lib.mkEnableOption "git work profile";
 | 
			
		||||
        email = lib.mkOption {
 | 
			
		||||
| 
						 | 
				
			
			@ -26,7 +27,7 @@
 | 
			
		|||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  config = {
 | 
			
		||||
  config = lib.mkIf config.user.git.enable {
 | 
			
		||||
    programs.git = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      aliases = {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,11 +4,14 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.gpg.enable = true;
 | 
			
		||||
  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;
 | 
			
		||||
    services.gpg-agent = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      enableSshSupport = true;
 | 
			
		||||
      pinentryPackage = lib.mkDefault pkgs.pinentry-tty;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,33 +4,36 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.irssi = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    networks = {
 | 
			
		||||
      liberachat = {
 | 
			
		||||
        nick = "toric";
 | 
			
		||||
        server = {
 | 
			
		||||
          address = "irc.libera.chat";
 | 
			
		||||
          port = 6697;
 | 
			
		||||
          autoConnect = true;
 | 
			
		||||
          ssl = {
 | 
			
		||||
            enable = true;
 | 
			
		||||
            certificateFile = "${config.home.homeDirectory}/keys/certs/irc.pem";
 | 
			
		||||
            verify = true;
 | 
			
		||||
  options.user.irssi.enable = lib.mkEnableOption "enable irssi";
 | 
			
		||||
  config = lib.mkIf config.user.irssi.enable {
 | 
			
		||||
    programs.irssi = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      networks = {
 | 
			
		||||
        liberachat = {
 | 
			
		||||
          nick = "toric";
 | 
			
		||||
          server = {
 | 
			
		||||
            address = "irc.libera.chat";
 | 
			
		||||
            port = 6697;
 | 
			
		||||
            autoConnect = true;
 | 
			
		||||
            ssl = {
 | 
			
		||||
              enable = true;
 | 
			
		||||
              certificateFile = "${config.home.homeDirectory}/keys/certs/irc.pem";
 | 
			
		||||
              verify = true;
 | 
			
		||||
            };
 | 
			
		||||
          };
 | 
			
		||||
          channels = {
 | 
			
		||||
            libera.autoJoin = true;
 | 
			
		||||
            linux.autoJoin = true;
 | 
			
		||||
            programming.autoJoin = true;
 | 
			
		||||
            rust.autoJoin = true;
 | 
			
		||||
            nixos.autoJoin = true;
 | 
			
		||||
            git.autoJoin = true;
 | 
			
		||||
            neovim.autoJoin = true;
 | 
			
		||||
            kernel.autoJoin = true;
 | 
			
		||||
            hardware.autoJoin = true;
 | 
			
		||||
            lobsters.autoJoin = true;
 | 
			
		||||
            gamingonlinux.autoJoin = true;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
        channels = {
 | 
			
		||||
          libera.autoJoin = true;
 | 
			
		||||
          linux.autoJoin = true;
 | 
			
		||||
          programming.autoJoin = true;
 | 
			
		||||
          rust.autoJoin = true;
 | 
			
		||||
          nixos.autoJoin = true;
 | 
			
		||||
          git.autoJoin = true;
 | 
			
		||||
          neovim.autoJoin = true;
 | 
			
		||||
          kernel.autoJoin = true;
 | 
			
		||||
          hardware.autoJoin = true;
 | 
			
		||||
          lobsters.autoJoin = true;
 | 
			
		||||
          gamingonlinux.autoJoin = true;
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,34 +1,42 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  #sessionVariables, sessionPath and shellAliases are not applied to nushell.
 | 
			
		||||
  programs.nushell = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    configFile.source = ./config.nu;
 | 
			
		||||
    envFile.source = ./env.nu;
 | 
			
		||||
  };
 | 
			
		||||
  options.user.nushell.enable = lib.mkEnableOption "enable nushell";
 | 
			
		||||
  config = lib.mkIf config.user.nushell.enable {
 | 
			
		||||
    home.file = {
 | 
			
		||||
      ".config/nushell/completions".source = ./completions;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
  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;
 | 
			
		||||
      };
 | 
			
		||||
 | 
			
		||||
  programs.yazi.enableNushellIntegration = true;
 | 
			
		||||
  programs.zoxide.enableNushellIntegration = true;
 | 
			
		||||
  programs.starship.enableNushellIntegration = true;
 | 
			
		||||
  programs.carapace = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    enableNushellIntegration = true;
 | 
			
		||||
  };
 | 
			
		||||
  programs.direnv.enableNushellIntegration = true;
 | 
			
		||||
  services.gpg-agent.enableNushellIntegration = true;
 | 
			
		||||
 | 
			
		||||
  services.pueue = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      daemon = {
 | 
			
		||||
        default_parallel_tasks = 5;
 | 
			
		||||
      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;
 | 
			
		||||
          };
 | 
			
		||||
        };
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,14 +4,17 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.password-store = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
      PASSWORD_STORE_DIR = "$HOME/keys/password-store";
 | 
			
		||||
  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")
 | 
			
		||||
  '';
 | 
			
		||||
    programs.nushell.extraEnv = ''
 | 
			
		||||
      $env.PASSWORD_STORE_DIR = ($env.HOME | path join "keys" "password-store")
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,11 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  services.ssh-agent.enable = true;
 | 
			
		||||
  programs.nushell.extraEnv = ''
 | 
			
		||||
    $env.SSH_AUTH_SOCK = $"($env.XDG_RUNTIME_DIR)/ssh-agent"
 | 
			
		||||
  '';
 | 
			
		||||
  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"
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,106 +4,109 @@
 | 
			
		|||
  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";
 | 
			
		||||
  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;
 | 
			
		||||
      };
 | 
			
		||||
      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,6 +4,8 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options.user.tiny.enable=lib.mkEnableOption "enable tiny irc client";
 | 
			
		||||
  config=lib.mkIf config.user.tiny.enable {
 | 
			
		||||
  programs.tiny = {
 | 
			
		||||
    enable = true;
 | 
			
		||||
    settings = {
 | 
			
		||||
| 
						 | 
				
			
			@ -31,9 +33,6 @@
 | 
			
		|||
          ];
 | 
			
		||||
          sasl = {
 | 
			
		||||
            username = "toric";
 | 
			
		||||
            # password = {
 | 
			
		||||
            #   command = "pass show libera";
 | 
			
		||||
            # };
 | 
			
		||||
            pem = "${config.home.homeDirectory}/keys/certs/irc.pem";
 | 
			
		||||
          };
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			@ -47,4 +46,4 @@
 | 
			
		|||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
};}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,21 +4,17 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  options = {
 | 
			
		||||
    user.enable-speech = lib.mkEnableOption "espeak";
 | 
			
		||||
  };
 | 
			
		||||
  options.user.enable-speech = lib.mkEnableOption "espeak";
 | 
			
		||||
 | 
			
		||||
  config =
 | 
			
		||||
    lib.mkIf config.user.enable-speech
 | 
			
		||||
    {
 | 
			
		||||
      home.shellAliases = {
 | 
			
		||||
        say = "espeak -p 10 -s 150 -a 200";
 | 
			
		||||
      };
 | 
			
		||||
      home.packages = with pkgs; [
 | 
			
		||||
        espeak
 | 
			
		||||
      ];
 | 
			
		||||
      programs.nushell.extraConfig = ''
 | 
			
		||||
        alias say = espeak -p 10 -s 150 -a 200
 | 
			
		||||
      '';
 | 
			
		||||
  config = lib.mkIf config.user.enable-speech {
 | 
			
		||||
    home.shellAliases = {
 | 
			
		||||
      say = "espeak -p 10 -s 150 -a 200";
 | 
			
		||||
    };
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      espeak
 | 
			
		||||
    ];
 | 
			
		||||
    programs.nushell.extraConfig = ''
 | 
			
		||||
      alias say = espeak -p 10 -s 150 -a 200
 | 
			
		||||
    '';
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,14 @@
 | 
			
		|||
{
 | 
			
		||||
  config,
 | 
			
		||||
  lib,
 | 
			
		||||
  pkgs,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.zellij.enable = true;
 | 
			
		||||
  home.file = {
 | 
			
		||||
    ".config/zellij/config.kdl".source = ./config.kdl;
 | 
			
		||||
  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;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,101 +4,107 @@
 | 
			
		|||
  lib,
 | 
			
		||||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  programs.starship.enableZshIntegration = true;
 | 
			
		||||
  programs.fzf.enableZshIntegration = true;
 | 
			
		||||
  programs.zoxide.enableZshIntegration = true;
 | 
			
		||||
  programs.yazi.enableZshIntegration = true;
 | 
			
		||||
  programs.direnv.enableZshIntegration = true;
 | 
			
		||||
  programs.kitty.shellIntegration.enableZshIntegration = true;
 | 
			
		||||
  services.gpg-agent.enableZshIntegration = true;
 | 
			
		||||
  programs.carapace.enableZshIntegration = false;
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    curl
 | 
			
		||||
  ];
 | 
			
		||||
  programs.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
 | 
			
		||||
  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
 | 
			
		||||
            #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'
 | 
			
		||||
            #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
 | 
			
		||||
        }
 | 
			
		||||
            #the precmd function, called just before printing the prompt.
 | 
			
		||||
            function precmd() {
 | 
			
		||||
              precmd_vcs
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        #Make the right prompt blank, just to be sure.
 | 
			
		||||
        RPROMPT=""
 | 
			
		||||
            #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»'
 | 
			
		||||
      '')
 | 
			
		||||
            #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
 | 
			
		||||
    ];
 | 
			
		||||
    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"
 | 
			
		||||
      ];
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,16 +5,18 @@
 | 
			
		|||
  ...
 | 
			
		||||
}: {
 | 
			
		||||
  imports = [
 | 
			
		||||
    ../../modules/home-manager/terminal/zsh.nix
 | 
			
		||||
    ../../modules/home-manager/terminal/git.nix
 | 
			
		||||
    ../../modules/home-manager/terminal/zellij
 | 
			
		||||
    ../../modules/home-manager/terminal/ssh-agent.nix
 | 
			
		||||
    ../../modules/home-manager/terminal/direnv.nix
 | 
			
		||||
    ../../modules/home-manager/terminal/btop.nix
 | 
			
		||||
    ../../modules/home-manager/terminal
 | 
			
		||||
    ../../modules/home-manager/nvim
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  user.nvim.enable = true;
 | 
			
		||||
  user = {
 | 
			
		||||
    btop.enable = true;
 | 
			
		||||
    direnv.enable = true;
 | 
			
		||||
    git.enable = true;
 | 
			
		||||
    ssh-agent.enable = true;
 | 
			
		||||
    zsh.enable = true;
 | 
			
		||||
    nvim.enable = true;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
    sshfs
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +46,7 @@
 | 
			
		|||
  programs = {
 | 
			
		||||
    yazi.enable = true;
 | 
			
		||||
    fzf.enable = true;
 | 
			
		||||
    eza.enable = true;
 | 
			
		||||
    ripgrep.enable = true;
 | 
			
		||||
    bat.enable = true;
 | 
			
		||||
    man.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -11,9 +11,14 @@
 | 
			
		|||
    ../../modules/home-manager/terminal/tiny-irc.nix
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  user.nvim = {
 | 
			
		||||
    enable-lsp = true;
 | 
			
		||||
    enable-treesitter = true;
 | 
			
		||||
  user = {
 | 
			
		||||
    nushell.enable = true;
 | 
			
		||||
    starship.enable = true;
 | 
			
		||||
    tiny.enable = true;
 | 
			
		||||
    nvim = {
 | 
			
		||||
      enable-lsp = true;
 | 
			
		||||
      enable-treesitter = true;
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.packages = with pkgs; [
 | 
			
		||||
| 
						 | 
				
			
			@ -22,11 +27,6 @@
 | 
			
		|||
    hyperfine
 | 
			
		||||
  ];
 | 
			
		||||
 | 
			
		||||
  home.sessionVariables = {
 | 
			
		||||
    PIPENV_VENV_IN_PROJECT = 1;
 | 
			
		||||
    POETRY_VIRTUALENVS_IN_PROJECT = 1;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  programs = {
 | 
			
		||||
    zoxide.enable = true;
 | 
			
		||||
    tealdeer.enable = true;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue