From 0a50d682ec85bf023bebd68a3ca388001f0c0677 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Tue, 8 Oct 2019 21:44:57 +0200 Subject: mv modules settings --- user/settings/zsh.nix | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 user/settings/zsh.nix (limited to 'user/settings/zsh.nix') diff --git a/user/settings/zsh.nix b/user/settings/zsh.nix new file mode 100644 index 00000000..467c426b --- /dev/null +++ b/user/settings/zsh.nix @@ -0,0 +1,181 @@ +{ config, pkgs, ... }: + +let + inherit (pkgs) stdenv; + lsOptions = if stdenv.isDarwin then "-p" else "-v --group-directories-first"; + lsIsoDate = if stdenv.isDarwin then "" else "--time-style=long-iso"; +in +{ + home.file = { + ".rm_recycle_home".text = ""; # use trash automatically in home directory + }; + home.packages = with pkgs; [ + fzf + ghq + ] ++ (if stdenv.isDarwin + then [] + else [ + pkgs.git + ]); + xdg.configFile.zsh = { + recursive = true; + source = ../zsh/.config/zsh; + }; + + home.file.".zplugin/bin" = { + source = pkgs.fetchFromGitHub { + owner = "zdharma"; + repo = "zplugin"; + rev = "028b1e1d6d3eae204b499c7f815f4eeeb5051517"; + sha256 = "1ynh323905iia3gwi9qghbywp94x306nna1yqk37frj5g7kg90fa"; + }; + }; + + programs.zsh = { + enable = true; + + enableAutosuggestions = true; + enableCompletion = true; + defaultKeymap = "emacs"; + + dotDir = ".config/zsh"; + + history = { + expireDuplicatesFirst = true; + extended = true; + path = ".cache/zsh/history"; + save = 20000; + size = 10000; + }; + + localVariables = { + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE = "fg=7"; + }; + + shellAliases = { + l = "ls ${lsOptions} -Bp"; + l1="ls -1"; + ls="ls ${lsOptions} -hF"; + la="ls ${lsOptions} -hA"; + ll="ls ${lsOptions} ${lsIsoDate} -hl"; + lal="ll -A"; + lla="lal"; + llr="ll -t"; + + https = "http --default-scheme https"; + kns = "kubens"; + kx = "kubectx"; + ava = "pnpx ava"; + avt = "pnpx ava --tap"; + avat = "pnpx ava --tap"; + pino = "pino-pretty"; + mocha = "pnpx mocha"; + prettier = "pnpx prettier"; + standard = "pnpx standard"; + tsc = "pnpx tsc"; + tslint = "pnpx tslint"; + tsnode = "pnpx ts-node"; + + history = "fc -l $(( $LINES - 2 ))"; + hist-freq-lines = "fc -l -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less"; + hist-freq-commands = "fc -l -2000 | cut -d' ' -f4 | sort | uniq -c | sort -g | tail -n10 | less"; + wprop = "xprop | egrep '^WM_(CLASS|NAME|WINDOW_ROLE|TYPE)'"; + + # Enable the following commands to support aliases. + sudo = "sudo "; + watch = "watch "; + + g = "rg"; + + ga = "git add"; + gi = "git"; + gs = "git st"; + gd = "git diff"; + gf = "git fetch"; + gk = "git push"; + gj = "git pull"; + gl = "git lg"; + gr = "git remote"; + gz = "git stash"; + gzl = "git stash list"; + gzp = "git stash pop"; + gdt = "git difftool"; + grl = "git reflog"; + gri = "git rebase --interactive"; + grs = "git reset"; + grsh = "git reset --hard"; + gsh = "git show"; + gsm = "git submodule"; + gci = "git commit"; + gco = "git checkout"; + gbr = "git br"; + gbrc = "git checkout -b"; + gbrd = "git branch --delete"; + gbrm = "git branch --move"; + gmup = "git mup"; + grup = "git rup"; + + hos = "home-manager switch"; + hon = "home-manager news"; + hoh = "home-manager-help"; + + n = "nix-env"; + ni = "nix-env -iA"; + nq = "nix-env -q"; + ne = "nix-env -e"; + nup = "nix-env -u"; + ngc = "nix-collect-garbage --delete-older-than 14d"; + }; + + # move to envExtra after 19.09 + initExtra = '' + case $OSTYPE in + darwin*) + os=darwin + ;; + linux-gnu) + os=linux + ;; + freebsd*) + os=freebsd + ;; + *) + os=unknown + ;; + esac + + case $MACHTYPE in + *64) + arch=amd64 + ;; + *) + arch=386 + ;; + esac + if [[ ''${path[(I)$HOME/.local/bin ]} ]] + then + path+=($HOME/.local/bin) + fi + + if [[ ''${path[(I)$HOME/go/bin ]} ]] + then + path+=($HOME/go/bin) + fi + + if [[ $HOST =~ satoshi ]] + then + EMAIL=alan@satoshipay.io + else + EMAIL=alan@alanpearce.eu + fi + + typeset -T GHQ_ROOT ghq_root + export GHQ_ROOT="$HOME/projects:$HOME/go/src:$HOME/quicklisp/local-projects" + + function hist-freq-subcommands () { + fc -l -m "$1*" -2000 | cut -d' ' -f4- | sort | uniq -c | sort -g | tail -n100 | less + } + + '' + builtins.readFile ../zsh/.config/zsh/.zshrc; + }; +} -- cgit 1.4.1