about summary refs log tree commit diff
path: root/nix/users/fcuny/shell.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/users/fcuny/shell.nix')
-rw-r--r--nix/users/fcuny/shell.nix90
1 files changed, 90 insertions, 0 deletions
diff --git a/nix/users/fcuny/shell.nix b/nix/users/fcuny/shell.nix
new file mode 100644
index 0000000..09fbc40
--- /dev/null
+++ b/nix/users/fcuny/shell.nix
@@ -0,0 +1,90 @@
+{ config, pkgs, ... }: {
+  home.packages = with pkgs; [
+    # shell
+    shellcheck
+
+    # shell utils
+    coreutils
+    direnv
+    dust
+    procs
+    ripgrep
+    tree
+    wget
+
+    # network
+    bandwhich
+
+    # data manipulation
+    jless
+    jq
+    yq
+  ];
+
+  programs.fish = {
+    enable = true;
+    interactiveShellInit = ''
+      # Configure classic prompt
+      set fish_color_user --bold blue
+      set fish_color_cwd --bold white
+
+      # Enable colour hints in VCS prompt:
+      set __fish_git_prompt_showcolorhints yes
+      set __fish_git_prompt_color_prefix purple
+      set __fish_git_prompt_color_suffix purple
+
+      set fish_greeting ""
+    '';
+    shellAbbrs = { ncg = "nix-collect-garbage -d"; };
+    shellAliases = {
+      c = "clear";
+      ls = "eza -l -L=1 --git --color=always --group-directories-first";
+      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";
+      k = "kubectl";
+      kctx = "kubie ctx";
+    };
+  };
+
+  # 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;
+    };
+  };
+
+  home.sessionVariables = {
+    ASPELL_CONF = "conf ${config.xdg.configHome}/aspell/config;";
+    EDITOR = "emacsclient -a=";
+    HOMEBREW_NO_AUTO_UPDATE = 1;
+    LESS = "-FRSXM";
+    LESSCHARSET = "utf-8";
+    PAGER = "less";
+    SHELL = "${pkgs.fish}/bin/fish";
+    VISUAL = "emacsclient -a=";
+  };
+}