{ config, lib, ... }: with lib; let cfg = config.shell.fish; in { options = { shell.fish.enable = mkEnableOption "enable fish"; }; config = mkIf cfg.enable { programs = { # atuin = { # enable = true; # flags = [ # "--disable-up-arrow" # ]; # }; # }; eza.enable = true; zoxide.enable = true; direnv.enable = true; direnv.silent = true; nix-your-shell.enable = true; keychain = { enable = true; # extraFlags = ["--quiet" "--noask"]; keys = ["id_ed25519"]; }; fish = { enable = true; shellAliases = { # cat = "bat"; cd = "z"; ed = "$EDITOR"; jf = "jj-fzf"; # think of jeff l = "ls -lah"; la = "ls -ah"; ll = "ls -lh"; s = "systemctl"; p = "pueue"; }; shellAbbrs = { pa = "pueue add --"; }; interactiveShellInit = '' bind \e\[3\;5~ kill-word bind \cH backward-kill-word set fish_greeting set fish_cursor_default block blink set EDITOR hx ''; }; }; }; }