nix/modules/home/fish.nix
Narrator f534aea373
Some checks failed
CI / formatting (push) Failing after 9m23s
CI / nix_flake_check (push) Failing after 9m20s
better i3bar
2025-12-11 13:23:10 +01:00

128 lines
3.5 KiB
Nix

{ pkgs, ... }: {
home.packages = [
pkgs.zoxide
# fzf for zi magic
pkgs.fzf
];
programs.fish = {
enable = true;
shellInit = ''
if test -e /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
source /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.fish
end
'';
interactiveShellInit = ''
set fish_greeting
direnv hook fish | source
zoxide init fish | source
set fish_tmux_autostart true
'';
shellAbbrs = {
# basics
ls = "lsd --long";
ll = "lsd -l";
la = "lsd -la";
tree = "${pkgs.tree}/bin/tree -C";
# docker/buildx
d = "docker";
di = "docker images";
dps = "docker ps -a";
dl = "docker logs -f";
dr = "docker run -it --rm";
db = "docker buildx build";
dbp = "docker buildx build --push";
dpr = "docker prune -af";
# zoxide
z = "zoxide query"; # fuzzy cd
zi = "zoxide interactive"; # menu cd
za = "zoxide add"; # mark dir
zrm = "zoxide remove"; # forget dir
# make
m = "make";
mc = "make clean";
mi = "make install";
# k8s poweruser
k = "kubectl";
kx = "kubectx";
kns = "kubens";
kgp = "kubectl get pods -o wide";
kgs = "kubectl get svc";
kgn = "kubectl get nodes -o wide";
kdelp = "kubectl delete pod";
kpf = "kubectl port-forward";
kep = "kubectl exec -it (kubectl get po -o jsonpath='{range .items[*]}{.metadata.name}{\"\t\"}{.status.phase}{\"\n\"}{end}' | fzf | cut -f1) --";
# git porcelain
g = "git";
ga = "git add";
gc = "git commit -v";
gca = "git commit -v -a";
gp = "git push";
gl = "git pull";
gst = "git status -sb";
glog = "git log --oneline --graph --decorate -10";
gb = "git branch";
gco = "git checkout";
grb = "git rebase -i";
gsta = "git stash push -m";
gdiff = "git diff --cached";
};
plugins = [
{
name = "fish-logo";
src = pkgs.fetchFromGitHub {
owner = "laughedelic";
repo = "fish_logo";
rev = "dc6a40836de8c24c62ad7c4365aa9f21292c3e6e";
sha256 = "sha256-DZXQt0fa5LdbJ4vPZFyJf5FWB46Dbk58adpHqbiUmyY=";
};
}
{
name = "grc";
src = pkgs.fishPlugins.grc.src;
}
{
name = "fzf.fish";
src = pkgs.fetchFromGitHub {
owner = "PatrickF1";
repo = "fzf.fish";
rev = "8920367cf85eee5218cc25a11e209d46e2591e7a";
sha256 = "sha256-T8KYLA/r/gOKvAivKRoeqIwE2pINlxFQtZJHpOy9GMM=";
};
}
{
name = "gitnow";
src = pkgs.fetchFromGitHub {
owner = "joseluisq";
repo = "gitnow";
rev = "818996a5a1de5af697d909a44fb27ac1c8856aad";
hash = "sha256-3pLOeeY1Wo9GJVhA2YxSTlVR0wWG9hHpr3BcHHfPrnA=";
};
}
{
name = "pure";
src = pkgs.fetchFromGitHub {
owner = "pure-fish";
repo = "pure";
rev = "f435b584884ebb7c9c75de8967202e3d3299b73a";
hash = "sha256-LtiaIlMJ1ZyzNvBzi5uPztoBV6G57Q6z6HUFcOBi9cg=";
};
}
{
name = "tmux.fish";
src = pkgs.fetchFromGitHub {
owner = "budimanjojo";
repo = "tmux.fish";
rev = "db0030b7f4f78af4053dc5c032c7512406961ea5";
hash = "sha256-rRibn+FN8VNTSC1HmV05DXEa6+3uOHNx03tprkcjjs8=";
};
}
];
functions.fish_greeting.body = ''
fish_logo
'';
};
}