diff --git a/home-manager/common/software/cli/fish.nix b/home-manager/common/software/cli/fish.nix new file mode 100644 index 00000000..505654cc --- /dev/null +++ b/home-manager/common/software/cli/fish.nix @@ -0,0 +1,182 @@ +{ ... }: { + programs.kitty.shellIntegration.enableFishIntegration = true; + programs.fish = { + enable = true; + interactiveShellInit = '' + GPG_TTY=$(tty) + EDITOR=vim + ssh-add > /dev/null &> /dev/null + if [ -z "$DISABLE_TMUX" ] && [ -z "$TMUX" ] ; then + tmux attach || exec tmux new-session && exit + fi + ''; + bashrcExtra = { + update_secrets = '' + pushd /etc/nixos/git + nix develop -c \ + find secrets -name "*.yaml" -exec sops updatekeys {} \; + ''; + restart-docker = '' + pushd /Storage/Data/docker-compose/sysctl.io/ + docker stop $1 + docker rm $1 + git pull + docker compose up -d $1 + popd + ''; + # Build ISOs/SD Card Images + nixos-build-all-images-verbose = '' + echo "Building Linode image..." + nixos-build-linode-img-verbose + echo "Building Raspberry Pi image..." + nixos-build-pi-img-verbose + echo "Building ISO Console image..." + nixos-build-console-verbose + echo "Building ISO Desktop image..." + nixos-build-desktop-verbose + ls -lah ~/ | grep nixos + ''; + nixos-build-all-images = '' + echo "Building Linode image..." + nixos-build-linode-img + echo "Building Raspberry Pi image..." + nixos-build-pi-img + echo "Building ISO Console image..." + nixos-build-console + echo "Building ISO Desktop image..." + nixos-build-desktop + ls -lah ~/ | grep nixos + ''; + nixos-build-pi-img-verbose = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-rpi4-img --show-trace --verbose + cp result/sd-image/nixos-sd-image* ~/. + rm -f result + popd + ''; + nixos-build-linode-img-verbose = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-linode-img --show-trace --verbose + cp result/nixos.img.gz ~/nixos-linode-`ddate`-`git rev-parse HEAD | cut -b 1-7`.img.gz + rm -f result + popd + ''; + nixos-build-console-verbose = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-iso-console --show-trace --verbose + cp result/iso/nixos.iso ~/nixos-console-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso + rm -f result + popd + ''; + nixos-build-desktop-verbose = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-iso-desktop --show-trace --verbose + cp result/iso/nixos.iso ~/nixos-desktop-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso + rm -f result + popd + ''; + nixos-build-pi-img = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-rpi4-img + cp result/sd-image/nixos-sd-image* ~/. + rm -f result + popd + ''; + nixos-build-linode-img = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-linode-img + cp result/nixos.img.gz ~/nixos-linode-`ddate`-`git rev-parse HEAD | cut -b 1-7`.img.gz + rm -f result + popd + ''; + nixos-build-console = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-iso-console + cp result/iso/nixos.iso ~/nixos-console-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso + rm -f result + popd + ''; + nixos-build-desktop = '' + pushd /etc/nixos/git + git pull + nix build .#imageConfigurations.nixos-iso-desktop + cp result/iso/nixos.iso ~/nixos-desktop-`ddate`-`git rev-parse HEAD | cut -b 1-7`.iso + rm -f result + popd + ''; + + # NixOS Related + nix-clean-all = '' + echo "Optimizing the nix store..." + sudo nix-store --optimize + echo "nix-store: Collecting Garbage..." + sudo nix-store --gc + echo "Collecting garbage..." + sudo nix-collect-garbage -d + ''; + }; + + shellAliases = { + prime-select = "nvidia-offload"; + screenshot = ''grim -g "$(slurp)" | wl-copy -t image/png''; + + # Don't use X to open emacs + emacs = "emacs -nw"; + + # docker + d = "docker"; + dc = "docker compose"; + de = "docker exec -it"; + dl = "docker logs -f "; + dps = ''docker ps --format "table [{{.ID}}] {{.Names}}\t{{.Status}}\t{{.State}}\t{{.Label \"type\"}}"''; + + # bash / system + ls = "exa --icons -F --group-directories-first --git"; + cp = "rsync -avr"; + ll = "exa -lah --icons -F --group-directories-first --git"; + rm = "rm -i"; + df = "duf"; + cat = "bat"; + + # git + g = "git"; + ga = "git add -A"; + gb = "git branch"; + gc = "git commit"; + gca = "git commit -a"; + gco = "git checkout"; + gd = "git diff"; + gp = "git pull --prune"; + gpu = "git push origin HEAD"; + gs = "git status -sb"; + + # time / date + tdate = "date +%Y.%m.%d..%H.%M"; + ttime = "date +%H.%M"; + ddate = "date +%Y.%m.%d"; + dday = "date +%A"; + + # nixos-rebuild + nr = "sudo nixos-rebuild"; + nrs = "sudo nixos-rebuild --upgrade switch"; + nrt = "sudo nixos-rebuild test"; + nrb = "sudo nixos-rebuild build"; + + # Rebuild everything + rebuild-home = "git -C /etc/nixos/git pull && home-manager switch -b backup --flake /etc/nixos/git"; + rebuild-host = "git -C /etc/nixos/git pull && sudo nixos-rebuild switch --flake /etc/nixos/git"; + rebuild-all = "rebuild-host && rebuild-home"; + rebuild-host-remote = "git -C /etc/nixos/git pull && sudo nixos-rebuild switch --flake /etc/nixos/git -j0"; + rebuild-home-remote = "git -C /etc/nixos/git pull && home-manager switch -b backup --flake /etc/nixos/git --max-jobs 0"; + rebuild-all-remote = "rebuild-host-remote && rebuild-home-remote"; + }; + + }; +}