dotfiles/.config/zsh/utils.zsh
2024-04-10 10:54:23 -06:00

64 lines
1.6 KiB
Bash

# Utility functions
function copylastcmd() {
echo -n $(fc -ln -1) | wl-copy
}
function getkernelpkg() {
if [[ ${OS_ID} == "arch" ]]; then
pacman -Qqo /usr/lib/modules/$(uname -r)/vmlinuz
else
echo "Unsupported OS" >&2
fi
}
function random-xkcd() {
curl $(curl -L https://c.xkcd.com/random/comic/ 2>/dev/null | (echo "https:"$(xmllint --html --xpath 'string(//html/body/div[@id="middleContainer"]/div[@id="comic"]/img/@src)' - 2>/dev/null))) | feh -
}
if [[ $(hostnamectl chassis) == "container" ]]; then
DEFAULT_WINDOW_NAME="Container Connection: [ $os_icon $hostname Console ]"
elif [[ -z "${SSH_CONNECTION+x}" ]]; then
DEFAULT_WINDOW_NAME="$os_icon $hostname Console"
else
DEFAULT_WINDOW_NAME="Remote Connection: [ $os_icon $hostname Console ]"
fi
function _rename_window() {
echo -ne "\033]0;$@\007"
}
function _reset_window_name() {
_rename_window "$DEFAULT_WINDOW_NAME"
}
function rename_window() {
_rename_window "$@"
DEFAULT_WINDOW_NAME="$@"
}
_rename_window "$DEFAULT_WINDOW_NAME"
function ssh-clean() {
# Clean up ssh connection sockets
for i in $(find ~/.ssh/cm/ -type s); do
fname=$(basename $i)
conn=$(echo $fname | cut -d- -f2-)
user=$(echo $conn | cut -d@ -f1)
host=$(echo $conn | cut -d@ -f2 | cut -d: -f1)
echo "Closing connection to $user@$host"
ssh -O exit -S $i -q _ 2>/dev/null
done
}
function lsssh() {
# List active ssh connections
for i in $(find ~/.ssh/cm/ -type s); do
fname=$(basename $i)
conn=$(echo $fname | cut -d- -f2-)
user=$(echo $conn | cut -d@ -f1)
host=$(echo $conn | cut -d@ -f2 | cut -d: -f1)
echo "$user@$host"
done
}