{ 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; keychain.extraFlags = ["--quiet" "--noask"]; fish = { enable = true; shellAliases = { cd = "z"; # cat = "bat"; la = "ls -a"; l = "ls -la"; jf = "jj-fzf"; # think of jeff }; interactiveShellInit = '' bind \e\[3\;5~ kill-word bind \cH backward-kill-word set fish_greeting set fish_cursor_default block blink set EDITOR hx ''; }; }; }; }