118 lines
3.2 KiB
Nix
118 lines
3.2 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
|
|
'';
|
|
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=";
|
|
};
|
|
}
|
|
];
|
|
functions.fish_greeting.body = ''
|
|
fish_logo
|
|
'';
|
|
};
|
|
}
|