aboutsummaryrefslogtreecommitdiff
path: root/nix/users/profiles/shell.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/users/profiles/shell.nix')
-rw-r--r--nix/users/profiles/shell.nix153
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";
+ };
+}