The bare $HOME repo is gone. This is now the rice: install.sh, rice-* scripts in bin/, configs in home/ linked into $HOME, theme templates, st and the particle wallpaper. Clone to ~/rice and run install.sh.
33 lines
1.3 KiB
Bash
Executable file
33 lines
1.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# rice-font [family] - one monospace font for the whole rice: terminals, bar,
|
|
# menus, popups and notifications. Without an argument, pick from the
|
|
# installed Nerd Fonts. The choice is kept in ~/.config/rice/theme.override.toml,
|
|
# so it survives theme changes.
|
|
set -uo pipefail
|
|
|
|
override="${XDG_CONFIG_HOME:-$HOME/.config}/rice/theme.override.toml"
|
|
current=$(rice-theme get font 2>/dev/null)
|
|
|
|
mapfile -t fonts < <(fc-list :spacing=mono family | tr ',' '\n' | grep -i 'nerd font$' | grep -vi 'mono$\|propo$' | sort -u)
|
|
(( ${#fonts[@]} > 0 )) || { rice-notify send "Font" "No Nerd Fonts installed"; exit 1; }
|
|
|
|
if [[ -n ${1:-} ]]; then
|
|
font="$1"
|
|
else
|
|
active=""
|
|
for i in "${!fonts[@]}"; do [[ ${fonts[$i]} == "$current" ]] && active=$i; done
|
|
choice=$(printf '%s\n' "${fonts[@]}" |
|
|
rofi -dmenu -i -no-custom -format i -theme "$HOME/.config/rofi/menu.rasi" -p "Font" ${active:+-a "$active"}) || exit 0
|
|
font="${fonts[$choice]}"
|
|
fi
|
|
|
|
printf '%s\n' "${fonts[@]}" | grep -Fxq -- "$font" || { rice-notify send "Font" "\"$font\" is not an installed Nerd Font"; exit 1; }
|
|
|
|
mkdir -p "$(dirname "$override")"
|
|
touch "$override"
|
|
sed -i '/^font *=/d' "$override"
|
|
printf 'font = "%s"\n' "$font" >> "$override"
|
|
|
|
rice-theme reload
|
|
rice-hook font-set "$font"
|
|
rice-notify send "Font" "$font · open terminals pick it up when reopened"
|