{ config, pkgs, ... }: { programs.zsh.enable = true; environment.shells = [ pkgs.zsh ]; environment.pathsToLink = [ "/share/zsh" ]; users.defaultUserShell = pkgs.zsh; environment.sessionVariables = { SHELL = "${pkgs.zsh}/bin/zsh"; }; home-manager.users.andrew = let homeDir = "${config.users.users.andrew.home}"; in { programs.zsh = { enable = true; shellAliases = { sudo = "nocorrect sudo "; xargs = "nocorrect xargs "; cp = "rsync -avz"; top = "htop"; bc = "bc -l"; pgrep = "pgrep -f"; make = "make -j6"; diff = "diff -u"; gdb = "gdb -q"; mail = "neomutt"; iroha = "ssh andrew@iroha"; moyo = "ssh andrew@moyo"; zasshi = "ssh andrew@zasshi"; denpa = "ssh moyo -t 'ssh 192.168.122.89'"; rod = "ssh -p 1738 rod"; bmrg = "ssh boomerang"; cmv = "$HOME/c/camu/scripts/cmv.sh"; cmv-add = "$HOME/c/camu/scripts/cmv_add.sh"; cmv-pause = "cmv-add PAUSE"; cmv-next = "cmv-add NEXT"; cmv-prev = "cmv-add PREV"; cmv-shuffle = "cmv-add SHUFFLE"; cmv-sort = "cmv-add SORT"; cmv-reverse = "cmv-add REVERSE"; cmv-clear = "cmv-add CLEAR"; }; defaultKeymap = "emacs"; history = { save = 10000; size = 10000; append = true; expireDuplicatesFirst = true; extended = true; path = "${homeDir}/.histfile"; # Don't share history between sessions. share = false; }; # Completion tanks startup performance. enableCompletion = false; zprof.enable = false; initExtra = '' autoload -U colors && colors exit_code_guy() { if [[ $? == 0 ]]; then echo "(・_・) >" else echo "(″ロ゛) > %{$fg[red]%}$?%{$fg[cyan]%}" fi } setopt prompt_subst if [[ -v NIX_SHELL ]]; then PS1="($NIX_SHELL)%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " else PS1="%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " fi ''; }; }; }