{ 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; keychain = { enable = true; keys = ["id_ed25519"]; extraFlags = [ "--quiet" "--noask" ]; }; fish = { enable = true; shellAliases = { # cd = "z"; cat = "bat"; la = "ls -a"; l = "ls -la"; }; interactiveShellInit = '' set fish_greeting set fish_cursor_default block blink set fish_cursor_insert line blink set fish_cursor_replace_one underscore blink set fish_cursor_visual block function fish_user_key_bindings fish_default_key_bindings -M insert fish_vi_key_bindings --no-erase insert end ''; }; }; }; }