nixfiles/home/c/programs/fish/default.nix
Callum Leslie 1d10befe61
Some checks are pending
/ ci (push) Waiting to run
dont use literal programs, use paths
2024-09-12 23:16:33 +01:00

43 lines
826 B
Nix

{
pkgs,
cLib,
...
}: let
mkFishPlug = pkg: {
name = pkg.pname;
inherit (pkg) src;
};
tmux = cLib.getProgFor pkgs "tmux";
in {
programs.fish = {
enable = true;
interactiveShellInit = ''
set fish_greeting
trap __trap_exit_tmux EXIT
'';
# TODO: dont use this directly
shellAliases = {v = "nvim";};
functions = {
__trap_exit_tmux = {
body = ''
test (${tmux} list-windows | wc -l) = 1 || exit
test (${tmux} list-panes | wc -l) = 1 || exit
${tmux} switch-client -t main
'';
};
};
plugins = with pkgs.fishPlugins; [
(mkFishPlug z)
(mkFishPlug hydro)
(mkFishPlug sponge)
(mkFishPlug grc)
(mkFishPlug done)
(mkFishPlug fzf-fish)
(mkFishPlug git-abbr)
];
};
}