user/settings/fish.nix (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | { pkgs
, lib
, ...
}: {
programs.fish = {
enable = true;
plugins = [
{
name = "tide";
src = pkgs.fetchFromGitHub {
# https://github.com/IlanCosman/tide
owner = "IlanCosman";
repo = "tide";
rev = "a3426e157f94b8a9cb5bcf96946b1e55625a1948";
sha256 = "1fwqmsrd6bpf67rgj6f362abjmpk6q8yynyskc4niwg3g15diqq5";
};
}
{
name = "fzf";
src = pkgs.fetchFromGitHub {
owner = "PatrickF1";
repo = "fzf.fish";
rev = "6d00ecc6e5b2b1313cfcb25515941ecfd5342b30";
sha256 = "1sd5f6707hys6dibs1zb6f1imlkspqad5i24j4gf7lk9cby0zh6i";
};
}
{
name = "ghq";
src = pkgs.fetchFromGitHub {
owner = "decors";
repo = "fish-ghq";
rev = "cafaaabe63c124bf0714f89ec715cfe9ece87fa2";
sha256 = "0cv7jpvdfdha4hrnjr887jv1pc6vcrxv2ahy7z6x562y7fd77gg9";
};
}
];
interactiveShellInit = ''
bind \es __ghq_repository_search
fzf_configure_bindings --directory=\cx\cf
'';
shellAliases = {
hist-freq-lines = lib.mkForce "history | sort | uniq -c | sort -gr | head -n100 | less";
hist-freq-commands = lib.mkForce "history | cut -d' ' -f 1 | sort | uniq -c | sort -gr | head -n100 | less";
};
shellAbbrs = {
"!!" = {
position = "anywhere";
function = "last_history_item";
};
};
functions = {
ds = "du -hd1 $argv[1] | sort -h";
last_history_item = "echo $history[1]";
};
};
xdg.configFile."fish/completions" = {
recursive = true;
source = ./fish/completions;
};
xdg.configFile."fish/functions" = {
recursive = true;
source = ./fish/functions;
};
}
|