{ lib , config , pkgs , ... }: let inherit (lib) mkEnableOption mkIf; cfg = config.metacfg.cli-apps.fish; in { options.metacfg.cli-apps.fish = { enable = mkEnableOption "FISH shell"; }; config = mkIf cfg.enable { programs.fish = { enable = true; interactiveShellInit = '' function msh --wraps mosh --description 'mosh with tmux' if not set -q argv[1] echo 'Usage: msh [user@]host [command]' else ${pkgs.mosh}/bin/mosh $argv -- tmux new-session -A -s 0 end end function tsh --wraps ssh --description 'ssh with tmux' if not set -q argv[1] echo 'Usage: tsh [user@]host [command]' else ${pkgs.openssh}/bin/ssh -t $argv -- tmux new-session -A -s 0 end end ''; plugins = [{ name = "foreign-env"; src = pkgs.fetchFromGitHub { owner = "oh-my-fish"; repo = "plugin-foreign-env"; rev = "dddd9213272a0ab848d474d0cbde12ad034e65bc"; sha256 = "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs"; }; }]; # shellInit = # '' # # nix # if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh # fenv source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh # end # # # home-manager # if test -e $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh # fenv source $HOME/.nix-profile/etc/profile.d/hm-session-vars.sh # end # ''; }; }; }