dotfiles/zsh/.config/zsh/functions/utils.zsh

68 lines
1.7 KiB
Bash

#!/bin/zsh
function font-switch() {
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo "Usage: font-switch [font-name]"
echo "Quickly switch between font sets"
echo "Example: font-switch jetbrains-mono"
return 0
fi
if [[ -z "$1" ]]; then
echo "Available fonts:"
font-manager list
return 0
fi
local font_name="$1"
if ! font-manager list | grep -q "$font_name"; then
echo "Error: Font '$font_name' not found" >&2
echo "Available fonts:" >&2
font-manager list >&2
return 1
fi
echo "Switching to $font_name fonts..."
font-manager clean
font-manager extract "$font_name"
if [[ "$TERM" == "xterm-kitty" ]] && command -v kitty >/dev/null 2>&1; then
echo "Reloading kitty configuration..."
kitty @ set-colors --all ~/.config/kitty/kitty.conf
fi
echo "Font switch complete!"
}
function font-preview() {
if [[ "$1" == "-h" || "$1" == "--help" ]]; then
echo "Usage: font-preview [font-name]"
echo "Preview fonts in terminal"
echo "Example: font-preview jetbrains-mono"
return 0
fi
if [[ -z "$1" ]]; then
echo "Error: Font name required" >&2
echo "Usage: font-preview [font-name]" >&2
return 1
fi
local font_name="$1"
local preview_text="The quick brown fox jumps over the lazy dog
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789
!@#$%^&*()_+-=[]{}|;':\",./<>?"
echo "Previewing font: $font_name"
echo "----------------------------------------"
echo "$preview_text" | font-manager extract "$font_name" && echo "$preview_text"
}
alias fm='font-manager'
alias fml='font-manager list'
alias fms='font-manager status'
alias fmc='font-manager clean'
alias fma='font-manager all'