{ 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 ''; }; }; }