{ config, lib, pkgs, ... }: { options.zpha.programs.shellUtilities.enable = lib.mkEnableOption "useful shell-utilities"; config = lib.mkIf config.zpha.programs.shellUtilities.enable { preservation.preserveAt."/persist".users.zaphyra.directories = [ ".local/share/zoxide" ".local/share/mcfly" ]; users.users.zaphyra.maid = { packages = with pkgs; [ zoxide eza bat ripgrep fd pwgen (pkgs.writeShellScriptBin "use" '' declare -a all for p in "$@"; do all+=("''${NIXPKGS_PATH}#$p") done eval nix shell ''${all[@]} '') mcfly mcfly-fzf fzf wget curl rsync fx jq bc file trash-cli zpha.nix-cleanup ]; programs.fish = { config = '' zoxide init fish | source mcfly init fish | source mcfly-fzf init fish | source ''; aliases = { ".." = "cd .."; "..." = "cd ../.."; cd = "z"; cdi = "zi"; ls = "eza"; ll = "eza -l"; la = "eza -a"; lla = "eza -la"; tree = "eza --tree -a"; cat = "bat -pp"; less = "bat"; rm = "trash-put"; diff = "diff --color"; ip = "ip --color=auto"; killall = "pkill"; grep = "rg"; find = "fd"; wget = "wget --hsts-file=\"~/.local/state/wget-hsts\""; zzz = "sleep 1 && systemctl suspend"; }; }; }; }; }