- Added `set fish_greeting` to disable the default greeting in interactive shell initialization. - Simplifies the shell startup experience for users.
39 lines
897 B
Nix
39 lines
897 B
Nix
{
|
|
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 = ''
|
|
set fish_greeting # Disable greeting
|
|
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
|
|
'';
|
|
};
|
|
};
|
|
}
|