Re-arrange fish
This commit is contained in:
parent
227bd48f5b
commit
78c2c0e2ef
3 changed files with 71 additions and 255 deletions
home-manager/common/software/cli
|
@ -2,6 +2,11 @@
|
|||
programs.kitty.shellIntegration.enableFishIntegration = true;
|
||||
programs.starship.enableFishIntegration = true;
|
||||
|
||||
imports = [
|
||||
./fish/functions.nix
|
||||
./fish/aliases.nix
|
||||
];
|
||||
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellInit = ''
|
||||
|
@ -28,262 +33,7 @@
|
|||
body = "__fish_default_command_not_found_handler $argv[1]";
|
||||
onEvent = "fish_command_not_found";
|
||||
};
|
||||
# GPG related functions
|
||||
encrypt = ''
|
||||
set output $argv-$(ddate).enc
|
||||
gpg --encrypt --armor --output $output -r $PGP_KEY_ID "$argv" && echo "Encrypted: $argv -> $output"
|
||||
'';
|
||||
decrypt = ''
|
||||
set output $(echo $argv | rev | cut -c16- | rev)
|
||||
gpg --decrypt -r $PGP_KEY_ID --output $output $argv && echo "Decrypted: $argv -> $output"
|
||||
'';
|
||||
|
||||
update_secrets = ''
|
||||
pushd /etc/nixos/git
|
||||
nix develop -c \
|
||||
find secrets -name "*.yaml" -exec sops updatekeys {} \;
|
||||
'';
|
||||
restart-docker = ''
|
||||
if [ (hostname) = "nuc-server" ]
|
||||
pushd /Storage/Data/docker-compose/ifargle.com/
|
||||
else
|
||||
pushd /Storage/Data/docker-compose/sysctl.io/
|
||||
end
|
||||
docker stop $argv
|
||||
docker rm $argv
|
||||
git pull
|
||||
docker compose up -d $argv
|
||||
popd
|
||||
'';
|
||||
# Deploy-RS script
|
||||
deploy-rs = ''
|
||||
pushd /etc/nixos/git/
|
||||
echo -en "Restarting DERP Relays.... "
|
||||
echo -en "Osaka"
|
||||
ssh -qA osaka-linode-01 "sudo systemctl restart podman-derp"
|
||||
echo -en ", Frankfurt"
|
||||
ssh -qA frankfurt-linode-01 "sudo systemctl restart podman-derp"
|
||||
echo -en ", Milan"
|
||||
ssh -qA milan-linode-01 "sudo systemctl restart podman-derp"
|
||||
echo -e "... Done"
|
||||
deploy -s
|
||||
popd
|
||||
'';
|
||||
# Build ISOs/SD Card Images
|
||||
nixos-build-all-images = ''
|
||||
echo "Building Linode image..."
|
||||
nixos-build-linode-img $argv
|
||||
echo "Building Raspberry Pi image..."
|
||||
nixos-build-pi-img $argv
|
||||
echo "Building ISO Console image..."
|
||||
nixos-build-console $argv
|
||||
echo "Building ISO Desktop image..."
|
||||
nixos-build-desktop $argv
|
||||
ls -lah ~/ | grep nixos
|
||||
'';
|
||||
nixos-build-pi-img = ''
|
||||
pushd /etc/nixos/git
|
||||
git pull
|
||||
nix build .#imageConfigurations.nixos-rpi4-img $argv
|
||||
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 $argv
|
||||
cp result/nixos.img.gz ~/nixos-linode-$(ddate)-$(git rev-parse HEAD | cut -b 32-).img.gz
|
||||
rm -f result
|
||||
popd
|
||||
'';
|
||||
nixos-build-console = ''
|
||||
pushd /etc/nixos/git
|
||||
git pull
|
||||
nix build .#imageConfigurations.nixos-iso-console $argv
|
||||
cp result/iso/nixos.iso ~/nixos-console-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
|
||||
rm -f result
|
||||
popd
|
||||
'';
|
||||
nixos-build-desktop = ''
|
||||
pushd /etc/nixos/git
|
||||
git pull
|
||||
nix build .#imageConfigurations.nixos-iso-desktop $argv
|
||||
cp result/iso/nixos.iso ~/nixos-desktop-$(ddate)-$(git rev-parse HEAD | cut -b 32-).iso
|
||||
rm -f result
|
||||
popd
|
||||
'';
|
||||
|
||||
# NixOS Related
|
||||
nix-clean-all = ''
|
||||
echo -ne "Cleaning up home manager... "
|
||||
systemctl --user start clean-home-manager.service 2> /dev/null
|
||||
echo " done"
|
||||
echo -ne "Optimizing the nix store... "
|
||||
sudo nix-store --optimize 2> /dev/null
|
||||
echo " done"
|
||||
echo -ne "nix-store: Collecting Garbage..."
|
||||
sudo nix-store --gc 2> /dev/null
|
||||
echo " done"
|
||||
echo -ne "Collecting garbage... "
|
||||
sudo nix-collect-garbage -d 2> /dev/null
|
||||
echo " done"
|
||||
'';
|
||||
|
||||
# BTRFS Related
|
||||
clean-boot-snapshots = ''
|
||||
echo -en "Deleting boot snapshots...."
|
||||
for i in $(sudo snapper -c root list | grep boot | awk {'print $1'} | head -n -4);
|
||||
echo -en " $i,"
|
||||
sudo snapper -c root delete $i;
|
||||
end
|
||||
echo "Remaining snapshots:"
|
||||
sudo snapper -c root list
|
||||
echo -e " done."
|
||||
'';
|
||||
|
||||
clean-all-snapshots = ''
|
||||
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
|
||||
set types "timeline" "boot" "btrfs-backup"
|
||||
set num_timeline "14"
|
||||
set num_boot "5"
|
||||
set num_btrfs_backup "5"
|
||||
|
||||
for volume in $subvolumes;
|
||||
echo "Found Volume: $volume";
|
||||
for type in $types;
|
||||
set safe_type (string replace -a "-" "_" $type)
|
||||
set type_num (eval "echo \$num_$safe_type")
|
||||
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
|
||||
|
||||
echo -en " Deleting snapshots.... "
|
||||
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
|
||||
for snapshot in $snapshots
|
||||
echo -en " $snapshot,"
|
||||
sudo snapper -c $volume delete $snapshot
|
||||
end
|
||||
echo -e " done."
|
||||
end;
|
||||
|
||||
echo " Remaining Snapshots in subvolume $volume"
|
||||
sudo snapper -c $volume list
|
||||
end
|
||||
'';
|
||||
clean-timeline-snapshots = ''
|
||||
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
|
||||
set types "timeline"
|
||||
set num_timeline "14"
|
||||
|
||||
for volume in $subvolumes;
|
||||
echo "Found Volume: $volume";
|
||||
for type in $types;
|
||||
set safe_type (string replace -a "-" "_" $type)
|
||||
set type_num (eval "echo \$num_$safe_type")
|
||||
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
|
||||
|
||||
echo -en " Deleting snapshots.... "
|
||||
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
|
||||
for snapshot in $snapshots
|
||||
echo -en " $snapshot,"
|
||||
sudo snapper -c $volume delete $snapshot
|
||||
end
|
||||
echo -e " done."
|
||||
end;
|
||||
|
||||
echo " Remaining Snapshots in subvolume $volume"
|
||||
sudo snapper -c $volume list
|
||||
end
|
||||
'';
|
||||
clean-btrfs-backup-snapshots = ''
|
||||
set subvolumes $(sudo snapper list-configs --column config | tail -n +3)
|
||||
set types "btrfs-backup"
|
||||
set num_btrfs_backup "5"
|
||||
|
||||
for volume in $subvolumes;
|
||||
echo "Found Volume: $volume";
|
||||
for type in $types;
|
||||
set safe_type (string replace -a "-" "_" $type)
|
||||
set type_num (eval "echo \$num_$safe_type")
|
||||
echo " Retaining '$type_num' snapshots for volume '$volume' snaphsot type '$type'";
|
||||
|
||||
echo -en " Deleting snapshots.... "
|
||||
set snapshots $(sudo snapper -c $volume list | grep $type | awk {'print $1'} | head -n -$type_num)
|
||||
for snapshot in $snapshots
|
||||
echo -en " $snapshot,"
|
||||
sudo snapper -c $volume delete $snapshot
|
||||
end
|
||||
echo -e " done."
|
||||
end;
|
||||
|
||||
echo " Remaining Snapshots in subvolume $volume"
|
||||
sudo snapper -c $volume list
|
||||
end
|
||||
'';
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
# Tsilcale helpers
|
||||
ts-dns-disable ="sudo tailscale set --accept-dns=false";
|
||||
ts-dns-enable ="sudo tailscale set --accept-dns=true";
|
||||
|
||||
# GPG Related
|
||||
sign = "gpg -u $PGP_KEY_ID --armor --detach-sig";
|
||||
verify = "gpg -u $PGP_KEY_ID --verify";
|
||||
|
||||
prime-select = "nvidia-offload";
|
||||
screenshot = ''grim -g "$(slurp)" | wl-copy -t image/png'';
|
||||
yt-mp3 = ''yt-dlp -x --audio-format mp3 --audio-quality 0 -P "/Storage/Media/Music/YouTube/_STAGING/"'';
|
||||
|
||||
# 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\"}}"'';
|
||||
|
||||
# fish / 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";
|
||||
gcam = "git commit -am";
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
66
home-manager/common/software/cli/fish/aliases.nix
Normal file
66
home-manager/common/software/cli/fish/aliases.nix
Normal file
|
@ -0,0 +1,66 @@
|
|||
{ ... }: {
|
||||
programs.fish.shellAliases = {
|
||||
# Tsilcale helpers
|
||||
ts-dns-disable ="sudo tailscale set --accept-dns=false";
|
||||
ts-dns-enable ="sudo tailscale set --accept-dns=true";
|
||||
|
||||
# GPG Related
|
||||
sign = "gpg -u $PGP_KEY_ID --armor --detach-sig";
|
||||
verify = "gpg -u $PGP_KEY_ID --verify";
|
||||
|
||||
prime-select = "nvidia-offload";
|
||||
screenshot = ''grim -g "$(slurp)" | wl-copy -t image/png'';
|
||||
yt-mp3 = ''yt-dlp -x --audio-format mp3 --audio-quality 0 -P "/Storage/Media/Music/YouTube/_STAGING/"'';
|
||||
|
||||
# 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\"}}"'';
|
||||
|
||||
# fish / 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";
|
||||
gcam = "git commit -am";
|
||||
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";
|
||||
};
|
||||
}
|
0
home-manager/common/software/cli/fish/functions.nix
Normal file
0
home-manager/common/software/cli/fish/functions.nix
Normal file
Loading…
Add table
Reference in a new issue