{ config, pkgs, ... }: { 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" = { recursive = true; source = pkgs.fetchFromGitHub { owner = "zdharma"; repo = "zplugin"; rev = "028b1e1d6d3eae204b499c7f815f4eeeb5051517"; sha256 = "1ynh323905iia3gwi9qghbywp94x306nna1yqk37frj5g7kg90fa"; }; onChange = "${pkgs.zsh}/bin/zsh -c 'zcompile $HOME/.zplugin/bin/zplugin.zsh'"; }; 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"; }; # 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" '' + builtins.readFile ../zsh/.config/zsh/.zshrc; }; }