{ config, pkgs, ... }: { home.username = "shubh"; home.homeDirectory = "/Users/shubh"; # You should not change this value, even if you update Home Manager. If you do # want to update the value, then make sure to first check the Home Manager # release notes. home.stateVersion = "23.05"; home.packages = with pkgs; [ git unzip wget gnupg pass tmux fzf docker neovim nmap lf pinentry_mac postgresql docker kubectl kubelogin-oidc terraform kops k9s kubernetes-helm python38 # gui zoom-us slack ]; home.file = { ".gnupg/gpg-agent.conf" = { text = '' pinentry-program ${pkgs.pinentry_mac}/Applications/pinentry-mac.app/Contents/MacOS/pinentry-mac ''; }; }; home.sessionVariables = { PATH = "$PATH:$HOME/.bin"; EDITOR = "nvim"; MANPAGER = "nvim +Man!"; }; programs.home-manager.enable = true; programs.zsh = { enable = true; enableCompletion = true; enableAutosuggestions = true; dotDir = ".zsh"; history = { ignoreAllDups = true; path = "$HOME/.zsh/history"; }; initExtra = '' zstyle ':completion:*' menu select zstyle ':completion:*' matcher-list 'm:{[:lower:][:upper:]}={[:upper:][:lower:]}' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' 'm:{[:lower:][:upper:]}={[:upper:][:lower:]} l:|=* r:|=*' zmodload zsh/complist bindkey -M menuselect 'h' vi-backward-char bindkey -M menuselect 'k' vi-up-line-or-history bindkey -M menuselect 'l' vi-forward-char bindkey -M menuselect 'j' vi-down-line-or-history bindkey '^f' autosuggest-accept source ${pkgs.zsh-vi-mode}/share/zsh-vi-mode/zsh-vi-mode.plugin.zsh zvm_after_init_commands+=('source ${pkgs.fzf}/share/fzf/completion.zsh && source ${pkgs.fzf}/share/fzf/key-bindings.zsh') ''; shellAliases = { ".." = "cd .."; l = "ls --color -al"; ls = "ls --color"; v = "nvim"; o = "xdg-open"; t = "tmux"; f = "lf"; tf = "terraform"; k = "kubectl"; gst = "git status --short"; ga = "git add"; gp = "git push"; gl = "git log --oneline --decorate --graph"; gc = "git commit -v -S"; gd = "git diff --minimal"; }; plugins = [ { name = "pure"; src = pkgs.fetchFromGitHub { owner = "sindresorhus"; repo = "pure"; rev = "v1.22.0"; sha256 = "177vabhvgrxdcwvc29rmfmfr96wl75hrkhymnd8qcaky2v4047jd"; }; } ]; }; programs.fzf = { enable = true; enableZshIntegration = false; defaultOptions = [ "--height 40%" "--layout=reverse" "--border" ]; }; programs.git = { enable = true; userEmail = "ssaini@fispan.com"; userName = "Shubham Saini"; signing = { key = "E0404DDE4BCF9DB5"; signByDefault = true; }; }; programs.lf = { enable = true; settings = { shell = "sh"; icons = true; drawbox = true; scrolloff = 10; shellopts = "-eu"; }; commands = { extract = '' %{{ set -f case $f in *.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;; *.tar.gz|*.tgz) tar xzvf $f;; *.tar.xz|*.txz) tar xJvf $f;; *.zip) unzip $f;; *.rar) unrar x $f;; *.7z) 7z x $f;; esac }} ''; open = '' %{{ case $(file --mime-type -Lb $f) in text/*) lf -remote "send $id \$$EDITOR \$fx";; *) for f in $fx; do $OPENER $f > /dev/null 2> /dev/null & done;; esac }} ''; }; keybindings = { "" = "shell"; "." = "set hidden!"; }; }; }