archiso/zshrc
2025-01-25 02:15:55 +00:00

150 lines
No EOL
3.1 KiB
Bash

#
# ~/.zshrc
#
# PS1='\e[31m[\u\e[0m@\h \W]\$ '
# Reset pacman keys
function pacman-key-reset
{
/usr/bin/bash -c "rm -r /etc/pacman.d/gnupg/* -f"
pacman-key --init
pacman-key --populate
}
# iwd connection status
function iwd-status
{
iwctl station $(iwctl station list | grep connected | awk '{print $(NF-1)}') show
}
# Reflector mirrors
function mirrors
{
[ ${1} ] || return 1
echo
reflector --country ${1} --age 24 --latest 20 --protocol https --fastest 25 --sort rate --save /etc/pacman.d/mirrorlist
echo
cat /etc/pacman.d/mirrorlist
echo
}
# Wireguard functions
function wglist
{
if [ ${1} ]
then
ls /etc/wireguard | grep ${1}
else
ls /etc/wireguard
fi
}
function wd
{
for wireguard in $(wg show | grep interface | awk '{print $2}')
do
wg-quick down ${wireguard}
done
}
function wu
{
wd
if [ ${1} ]
then
wg-quick up $(ls /etc/wireguard | grep ${1} | shuf -n 1 | sed "s/.conf//g")
else
wg-quick up $(ls /etc/wireguard | shuf -n 1 | sed "s/.conf//g")
fi
}
# Shortcuts for optional auxilliaries
function install-i3
{
mount -o remount,size=2G /run/archiso/cowspace
pacman -Sy --ask 4 \
xorg xorg-xinit i3-gaps i3status dmenu konsole kate dolphin breeze-icons pipewire-jack phonon-qt5-gstreamer \
firefox firefox-decentraleyes firefox-ublock-origin ttf-dejavu
echo 'exec i3' > ~/.xinitrc
echo -e '\nXDG_CURRENT_DESKTOP=gnome' >/etc/environment
startx
}
function install-zfs
{
mount -o remount,size=2G /run/archiso/cowspace
pacman-key --init
cat >>/etc/pacman.conf <<'EOF'
[archzfs]
Server = https://archzfs.com/$repo/$arch
EOF
pacman-key -r DDF7DB817396A49B2A2723F7403BD972F75D9D76
pacman-key --lsign-key DDF7DB817396A49B2A2723F7403BD972F75D9D76
pacman -Sy --ask 4 archzfs-dkms linux-headers
modprobe zfs
}
# Bash completion
autoload bashcompinit
bashcompinit
function _installer
{
local cur prev
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
case ${COMP_CWORD} in
1)
COMPREPLY=($(compgen -W "arch arch-vm vm arch-passthrough passthrough airgap server homelab recover" -- ${cur}))
;;
*)
COMPREPLY=()
;;
esac
}
complete -F _installer installer
function _iwd-connect
{
iwd_station=$(iwctl station list | grep connected | awk '{print $(NF-1)}')
[ ${iwd_station} ] || return 1
local cur prev
cur=${COMP_WORDS[COMP_CWORD]}
prev=${COMP_WORDS[COMP_CWORD-1]}
case ${COMP_CWORD} in
1)
COMPREPLY=($(compgen -W "$(iwctl station ${iwd_station} get-networks | awk '{print $1}' | grep -v -- 'Available\|---\|.*90m.*\S*')" -- ${cur}))
;;
*)
COMPREPLY=()
;;
esac
}
complete -F _iwd-connect iwd-connect
# Turn off sshd public-key-only authentication
function ssh-off
{
rm /etc/ssh/sshd_config.d/zz-archiso.conf
systemctl restart sshd.service
}
function ssh-on
{
echo 'PasswordAuthentication no
AuthenticationMethods publickey' >/etc/ssh/sshd_config.d/zz-archiso.conf
systemctl restart sshd.service
}