# Compression compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; } alias decompress="tar -xzf" # Write iso file to sd card iso2sd() { if [ $# -ne 2 ]; then echo "Usage: iso2sd " echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda" echo -e "\nAvailable SD cards:" lsblk -d -o NAME | grep -E '^sd[a-z]' | awk '{print "/dev/"$1}' else sudo dd bs=4M status=progress oflag=sync if="$1" of="$2" sudo eject $2 fi } # Create a desktop launcher for a web app web2app() { if [ "$#" -ne 3 ]; then echo "Usage: web2app (IconURL must be in PNG -- use https://dashboardicons.com)" return 1 fi local APP_NAME="$1" local APP_URL="$2" local ICON_URL="$3" local ICON_DIR="$HOME/.local/share/applications/icons" local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop" local ICON_PATH="${ICON_DIR}/${APP_NAME}.png" mkdir -p "$ICON_DIR" if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then echo "Error: Failed to download icon." return 1 fi cat > "$DESKTOP_FILE" <" return 1 fi local APP_NAME="$1" local ICON_DIR="$HOME/.local/share/applications/icons" local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop" local ICON_PATH="${ICON_DIR}/${APP_NAME}.png" rm "$DESKTOP_FILE" rm "$ICON_PATH" } # Ensure changes to ~/.XCompose are immediately available refresh-xcompose() { pkill fcitx5 setsid fcitx5 &>/dev/null & } # Ensure that external keyboards that use an fn key has the F keys as the default alias fix_fkeys='echo 2 | sudo tee /sys/module/hid_apple/parameters/fnmode'