{ config, lib, ... }: with lib; mkIf (elem "zsh" config.machine.conffiles) { programs.zsh = { enable = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; shellAliases = { cat = ''bat --paging=never --theme="Solarized (dark)"''; less = ''bat --paging=always --style=changes --color=always --theme="Solarized (dark)"''; ls = "exa"; l = "exa -abgHhl@ --git --color=always --group-directories-first"; tree = "exa --tree --color=always"; ustrip = "sed -e '/\.service\|\.timer\|\.target\|\.socket\|\.slice\|\.scope\|\.path\|\.mount\|\.device)/!d' -e 's/loaded.*$//g' -e 's/^ \|^● //g'"; lsunits = "systemctl list-units | ustrip"; }; shellInit = '' function ll() { exa -abgHhl@ --git --color=always --group-directories-first $@ | bat --paging=always --style=changes --color=always --theme="Solarized (dark)" } function lln() { exa -abgHhl@ --git --color=always --group-directories-first $@ | bat --paging=always --style=changes --color=always --theme="Solarized (dark)" -n } function lszip() { unzip -l $@ 2>&1 | sed -e "1,3d" -e "s/^.*:.. *//g" | head --lines=-2 } function rwhich() { realpath $(which $@) } function cdf() { cd $(rwhich $@ | sed "s/$@$//") } function sfu() { lsunits | rg -i $@ } function map() { for f in "$\{@:2\}"; do; eval $1 \"$f\"; done } ''; ohMyZsh = { enable = true; plugins = [ "cabal" "docker" "gitfast" "python" "pip" "sudo" "systemd" "man" ]; theme = "gentoo"; }; }; }