147 lines
4.6 KiB
Plaintext
147 lines
4.6 KiB
Plaintext
|
#!/bin/bash
|
||
|
|
||
|
# fontctl - cli to handle fonts in Mabox: openbox, jgmenu, tint2, conky, gtk
|
||
|
CONKYDIR="$HOME"/.config/conky
|
||
|
BASECONKY="$CONKYDIR/sysinfo_mbcolor.conkyrc"
|
||
|
. $HOME/.config/mabox/mabox.conf
|
||
|
|
||
|
get_gtkfont() {
|
||
|
GTK2RC="$HOME"/.gtkrc-2.0
|
||
|
GTK3RC="$HOME"/.config/gtk-3.0/settings.ini
|
||
|
|
||
|
GTK_FONT=( $(grep "gtk-font-name" ${GTK2RC} | cut -d'"' -f2) )
|
||
|
GTK_FAMILY=${GTK_FONT[@]::${#GTK_FONT[@]}-1}
|
||
|
GTK_SIZE=${GTK_FONT[-1]}
|
||
|
}
|
||
|
|
||
|
gtk_fontfamily() {
|
||
|
get_gtkfont
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=\"${1} ${GTK_SIZE}\"" ${GTK2RC}
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=${1} ${GTK_SIZE}" ${GTK3RC}
|
||
|
reload-gtk
|
||
|
}
|
||
|
gtk_fontsize() {
|
||
|
get_gtkfont
|
||
|
case "$1" in
|
||
|
inc) SIZE=$((GTK_SIZE+1));;
|
||
|
dec) SIZE=$((GTK_SIZE-1));;
|
||
|
*) SIZE=${1};;
|
||
|
esac
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=\"${GTK_FAMILY} ${SIZE}\"" ${GTK2RC}
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=${GTK_FAMILY} ${SIZE}" ${GTK3RC}
|
||
|
reload-gtk
|
||
|
}
|
||
|
resetgtk() {
|
||
|
get_gtkfont
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=\"Ubuntu 10\"" ${GTK2RC}
|
||
|
sd "^gtk-font-name=.*" "gtk-font-name=Ubuntu 10" ${GTK3RC}
|
||
|
reload-gtk
|
||
|
}
|
||
|
resetob () {
|
||
|
nspace="http://openbox.org/3.4/rc"
|
||
|
cfg="$HOME/.config/openbox/rc.xml"
|
||
|
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:name' -v "Ubuntu" "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:name' -v "Ubuntu" "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v 9 "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v 9 "$cfg"
|
||
|
|
||
|
#add Weight and slant
|
||
|
|
||
|
openbox --reconfigure
|
||
|
}
|
||
|
resetmenus () {
|
||
|
mb-setvar menu_font_size=10
|
||
|
mb-setvar menu_sep_font_size=11
|
||
|
mb-setvar "menu_font_family=\'Ubuntu\'"
|
||
|
mb-setvar "menu_sep_font_family=\'Ubuntu Bold\'"
|
||
|
}
|
||
|
resetconky () {
|
||
|
sd "font .*=.*,$" "font = 'Ubuntu:size=8'," ${CONKYDIR}/*mbcolor.conkyrc
|
||
|
}
|
||
|
resetall () {
|
||
|
resetconky
|
||
|
resetob
|
||
|
resetmenus
|
||
|
resetgtk
|
||
|
|
||
|
}
|
||
|
|
||
|
inc_all() {
|
||
|
gtk_fontsize inc
|
||
|
inc_conky
|
||
|
inc_menus
|
||
|
}
|
||
|
dec_all() {
|
||
|
gtk_fontsize dec
|
||
|
dec_conky
|
||
|
dec_menus
|
||
|
}
|
||
|
inc_conky () {
|
||
|
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
|
||
|
FONT=${FONTDEF%:*}
|
||
|
FONTSIZE=${FONTDEF#*=}
|
||
|
((FONTSIZE++))
|
||
|
sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc
|
||
|
}
|
||
|
dec_conky () {
|
||
|
read FONTDEF <<< "$(grep "font .*=.*,$" ${BASECONKY} | cut -d'=' -f2,3 |cut -d"'" -f2)"
|
||
|
FONT=${FONTDEF%:*}
|
||
|
FONTSIZE=${FONTDEF#*=}
|
||
|
((FONTSIZE--))
|
||
|
sd "font .*=.*,$" "font = '${FONT}:size=${FONTSIZE}'," ${CONKYDIR}/*mbcolor.conkyrc
|
||
|
}
|
||
|
inc_menus () {
|
||
|
mb-setvar menu_font_size=$((menu_font_size+1))
|
||
|
mb-setvar menu_sep_font_size=$((menu_sep_font_size+1))
|
||
|
}
|
||
|
dec_menus () {
|
||
|
mb-setvar menu_font_size=$((menu_font_size-1))
|
||
|
mb-setvar menu_sep_font_size=$((menu_sep_font_size-1))
|
||
|
}
|
||
|
ob_fontsize () {
|
||
|
nspace="http://openbox.org/3.4/rc"
|
||
|
cfg="$HOME/.config/openbox/rc.xml"
|
||
|
case "$1" in
|
||
|
inc|increase)
|
||
|
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
|
||
|
if [ "$SIZE" -lt "21" ];then
|
||
|
((SIZE=SIZE+1))
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$SIZE" "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$SIZE" "$cfg"
|
||
|
fi
|
||
|
;;
|
||
|
dec|decrease)
|
||
|
SIZE=$(xmlstarlet sel -N a="$nspace" -t -v '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' "$cfg")
|
||
|
if [ "$SIZE" -gt "7" ];then
|
||
|
((SIZE=SIZE-1))
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$SIZE" "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$SIZE" "$cfg"
|
||
|
fi
|
||
|
;;
|
||
|
*)
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="ActiveWindow"]/a:size' -v "$1" "$cfg"
|
||
|
xmlstarlet ed -L -N a="$nspace" -u '/a:openbox_config/a:theme/a:font[@place="InactiveWindow"]/a:size' -v "$1" "$cfg"
|
||
|
;;
|
||
|
esac
|
||
|
openbox --reconfigure
|
||
|
}
|
||
|
|
||
|
case "$1" in
|
||
|
gtk_fontfamily) gtk_fontfamily "$2";;
|
||
|
gtk_fontsize) gtk_fontsize "$2";;
|
||
|
inc_all) inc_all;;
|
||
|
dec_all) dec_all;;
|
||
|
inc_conky) inc_conky;;
|
||
|
dec_conky) dec_conky;;
|
||
|
inc_menus) inc_menus;;
|
||
|
dec_menus) dec_menus;;
|
||
|
ob_fontsize) ob_fontsize "$2";; # arg: size, inc or dec
|
||
|
resetall) resetall;;
|
||
|
resetob) resetob;;
|
||
|
resetmenus) resetmenus;;
|
||
|
resetconky) resetconky;;
|
||
|
resetgtk) resetgtk;;
|
||
|
*):;;
|
||
|
esac
|