diff --git a/programs/shell/default.nix b/programs/shell/default.nix index d3a763d..66930f5 100644 --- a/programs/shell/default.nix +++ b/programs/shell/default.nix @@ -5,6 +5,8 @@ }: { imports = [ ./git.nix + ./ssh.nix + ./starship.nix ./bottom.nix ./zellij.nix ]; @@ -42,151 +44,6 @@ changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; }; - ssh = { - enable = true; - forwardAgent = true; - compression = true; - serverAliveInterval = 15; - serverAliveCountMax = 3; - controlMaster = "auto"; - controlPersist = "10s"; - extraConfig = '' - AddKeysToAgent=yes - SetEnv TERM=xterm-256color - ''; - matchBlocks = { - "git*".user = "git"; - "legion" = { - user = "pixelifytica"; - hostname = "192.168.0.31"; - }; - "vanguard" = { - user = "pixelifytica"; - hostname = "192.168.0.90"; - }; - "ionos" = { - user = "root"; - hostname = "77.68.67.133"; - }; - "freia" = { - user = "elitherl"; - hostname = "freia020.hpc.l"; - forwardX11Trusted = true; - }; - "heimdall" = { - user = "elitherl"; - hostname = "heimdall003.jet.uk"; - forwardX11Trusted = true; - }; - }; - }; - starship = { - enable = true; - enableTransience = true; - settings = { - add_newline = false; - c = {symbol = " ";}; - character = { - success_symbol = "[󰁔 ](bold green)"; - error_symbol = "[󰁔 ](bold red)"; - }; - command_timeout = 2000; - container = {symbol = " ";}; - directory = { - truncation_length = 2; - fish_style_pwd_dir_length = 1; - truncate_to_repo = false; - }; - direnv = {disabled = false;}; - git_branch = { - symbol = " "; - only_attached = true; - ignore_branches = ["master" "main"]; - }; - git_commit = { - format = "[ $hash | $tag]($style) "; - tag_symbol = " "; - tag_disabled = false; - }; - git_metrics = {disabled = false;}; - git_status = { - stashed = " "; - ahead = " "; - behind = " "; - up_to_date = ""; - diverged = " "; - conflicted = " "; - deleted = " "; - renamed = " "; - modified = " "; - staged = " "; - untracked = " "; - typechanged = " "; - }; - hostname = { - ssh_only = true; - ssh_symbol = "󰢹 "; - }; - jobs = {symbol = "󰈏 ";}; - line_break = {disabled = false;}; - localip = {disabled = false;}; - lua = {symbol = " ";}; - memory_usage = {disabled = false;}; - nodejs = {symbol = " ";}; - os = { - disabled = false; - format = "on [$symbol]($style) "; - symbols = { - Alpine = " "; - Arch = " "; - Artix = " "; - CentOS = " "; - Debian = " "; - EndeavourOS = " "; - Fedora = " "; - FreeBSD = " "; - Gentoo = " "; - Illumos = " "; - Linux = " "; - Macos = " "; - Manjaro = " "; - Mint = " "; - NixOS = " "; - OpenBSD = " "; - openSUSE = " "; - Pop = " "; - Raspbian = " "; - Redhat = " "; - RedHatEnterprise = " "; - Solus = " "; - SUSE = " "; - Ubuntu = " "; - Unknown = " "; - Windows = " "; - }; - }; - python = { - python_binary = "python3"; - symbol = " "; - }; - shell = { - disabled = false; - format = "using [$indicator ]($style)"; - }; - status = { - disabled = false; - map_symbol = true; - pipestatus = true; - symbol = " "; - success_symbol = ""; - not_executable_symbol = " "; - not_found_symbol = " "; - sigint_symbol = " "; - signal_symbol = " "; - }; - sudo = {disabled = false;}; - }; - }; zsh = { enable = true; enableCompletion = true; diff --git a/programs/shell/ssh.nix b/programs/shell/ssh.nix new file mode 100644 index 0000000..75cd417 --- /dev/null +++ b/programs/shell/ssh.nix @@ -0,0 +1,44 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ + (writeShellScriptBin "ssh-keygen-defaults" + ''ssh-keygen -t ed25519 -C "$(whoami)@$(hostname)"'') + ]; + programs.ssh = { + enable = true; + forwardAgent = true; + compression = true; + serverAliveInterval = 15; + serverAliveCountMax = 3; + controlMaster = "auto"; + controlPersist = "10s"; + extraConfig = '' + AddKeysToAgent=yes + SetEnv TERM=xterm-256color + ''; + matchBlocks = { + "git*".user = "git"; + "legion" = { + user = "pixelifytica"; + hostname = "192.168.0.31"; + }; + "vanguard" = { + user = "pixelifytica"; + hostname = "192.168.0.90"; + }; + "ionos" = { + user = "root"; + hostname = "77.68.67.133"; + }; + "freia" = { + user = "elitherl"; + hostname = "freia020.hpc.l"; + forwardX11Trusted = true; + }; + "heimdall" = { + user = "elitherl"; + hostname = "heimdall003.jet.uk"; + forwardX11Trusted = true; + }; + }; + }; +} diff --git a/programs/shell/starship.nix b/programs/shell/starship.nix new file mode 100644 index 0000000..41c96f3 --- /dev/null +++ b/programs/shell/starship.nix @@ -0,0 +1,110 @@ +{...}: { + programs.starship = { + enable = true; + enableTransience = true; + settings = { + add_newline = false; + c = {symbol = " ";}; + character = { + success_symbol = "[󰁔 ](bold green)"; + error_symbol = "[󰁔 ](bold red)"; + }; + command_timeout = 2000; + container = {symbol = " ";}; + directory = { + truncation_length = 2; + fish_style_pwd_dir_length = 1; + truncate_to_repo = false; + }; + direnv = {disabled = false;}; + git_branch = { + symbol = " "; + only_attached = true; + ignore_branches = ["master" "main"]; + }; + git_commit = { + format = "[ $hash | $tag]($style) "; + tag_symbol = " "; + tag_disabled = false; + }; + git_metrics = {disabled = false;}; + git_status = { + stashed = " "; + ahead = " "; + behind = " "; + up_to_date = ""; + diverged = " "; + conflicted = " "; + deleted = " "; + renamed = " "; + modified = " "; + staged = " "; + untracked = " "; + typechanged = " "; + }; + hostname = { + ssh_only = false; + ssh_symbol = "󰢹 "; + }; + jobs = {symbol = "󰈏 ";}; + line_break = {disabled = false;}; + localip = {disabled = false;}; + lua = {symbol = " ";}; + memory_usage = {disabled = false;}; + nodejs = {symbol = " ";}; + os = { + disabled = false; + format = "on [$symbol]($style) "; + symbols = { + Alpine = " "; + Arch = " "; + Artix = " "; + CentOS = " "; + Debian = " "; + EndeavourOS = " "; + Fedora = " "; + FreeBSD = " "; + Gentoo = " "; + Illumos = " "; + Linux = " "; + Macos = " "; + Manjaro = " "; + Mint = " "; + NixOS = " "; + OpenBSD = " "; + openSUSE = " "; + Pop = " "; + Raspbian = " "; + Redhat = " "; + RedHatEnterprise = " "; + Solus = " "; + SUSE = " "; + Ubuntu = " "; + Unknown = " "; + Windows = " "; + }; + }; + package = {symbol = " ";}; + python = { + python_binary = "python3"; + symbol = " "; + }; + shell = { + disabled = false; + format = "using [$indicator ]($style)"; + }; + status = { + disabled = false; + map_symbol = true; + pipestatus = true; + symbol = " "; + success_symbol = ""; + not_executable_symbol = " "; + not_found_symbol = " "; + sigint_symbol = " "; + signal_symbol = " "; + }; + sudo = {disabled = false;}; + }; + }; +}