diff options
Diffstat (limited to 'nix/users/profiles/shell.nix')
| -rw-r--r-- | nix/users/profiles/shell.nix | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/nix/users/profiles/shell.nix b/nix/users/profiles/shell.nix new file mode 100644 index 0000000..269c617 --- /dev/null +++ b/nix/users/profiles/shell.nix @@ -0,0 +1,153 @@ +{ + lib, + pkgs, + ... +}: +let + isLinux = pkgs.stdenv.isLinux; +in +{ + home.packages = + with pkgs; + [ + age # encryption tool + bandwhich # bandwhich - a better ifconfig + bottom # btm - a better top + coreutils # GNU core utilities + direnv # direnv - directory environment tool + dust # dust - a more intuitive du + jless # jless - a better cat + jq # jq - a better json + procs # procs - a better ps + restic # to manage backups + ripgrep # ripgrep - a better grep + shellcheck # shell script linter + tree # tree - a better ls + wget # wget - another download tool + yq # yq - a better yaml + ] + ++ (lib.optionals (isLinux) [ htop ]); + + # https://github.com/nix-community/home-manager/blob/master/modules/programs/fish.nix + programs.fish = { + enable = true; + interactiveShellInit = '' + set fish_greeting "" + + fish_add_path -p ~/.cargo/bin/ + + # Add utmctl to PATH + fish_add_path /Applications/UTM.app/Contents/MacOS/ + ''; + shellAbbrs = { + ncg = "nix-collect-garbage --delete-older-than 7d"; + ndc = "nix develop --command"; + nfc = "nix flake check"; + ngcroot = "ls -al /nix/var/nix/gcroots/auto/"; + nph = "nix profile history --profile /nix/var/nix/profiles/system"; + nsn = "nix search nixpkgs"; + nsv = "nix store verify --all"; + + g = "git"; + gap = "git add --patch"; + }; + shellAliases = { + la = "eza -la --git --color=always --group-directories-first"; + ll = "eza -la -L=1 --git --color=always --group-directories-first"; + lt = "eza -aT -L=2 --git --color=always --group-directories-first"; + }; + }; + + # an alternative to ls + programs.eza = { + enable = true; + icons = "never"; + enableFishIntegration = false; + extraOptions = [ + "--group-directories-first" + "--no-quotes" + "--git-ignore" + "--icons=never" + ]; + }; + + # an alternative to find + programs.fd = { + enable = true; + hidden = true; + ignores = [ + ".git/" + ".direnv/" + ]; + }; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + enableZshIntegration = true; + config = { + global.disable_stdin = true; + global.strict_env = true; + }; + }; + + programs.bat = { + enable = true; + config = { + theme = "ansi"; + pager = "less -FR"; + }; + }; + + programs.starship = { + enable = true; + settings = { + add_newline = false; + directory = { + fish_style_pwd_dir_length = 3; + }; + git_branch = { + symbol = "🌱 "; + }; + git_commit = { + commit_hash_length = 4; + tag_symbol = "🔖 "; + }; + git_state = { + format = "[($state($progress_current of $progress_total))]($style) "; + cherry_pick = "[🍒 PICKING](bold red)"; + }; + git_status = { + conflicted = "💢"; + ahead = "💨"; + behind = "😰"; + diverged = "😵"; + untracked = "🤷"; + stashed = "📦"; + modified = "📝"; + staged = "[++($count)](green)"; + renamed = "👅"; + deleted = "🗑️"; + }; + "$schema" = "https://starship.rs/config-schema.json"; + hostname = { + ssh_only = true; + }; + username = { + disabled = true; + }; + kubernetes = { + disabled = false; + style = "bold blue"; + }; + nix_shell.disabled = false; + }; + }; + + home.sessionVariables = { + LESS = "-FRSXM"; + LESSCHARSET = "utf-8"; + PAGER = "less"; + SHELL = "${pkgs.fish}/bin/fish"; + }; +} |
