#!/bin/bash

while true ; do
	base=$(xrdb -query | grep "^Xft.dpi" | grep -o "[0-9]*" | head -n 1)
	
	if [ "a${base}" == "a" ] ; then
		base=$(xdpyinfo | grep dots | grep -o "[0-9]*" | head -n 1)
	fi
	
	input=$(yad --title "linuxBean 文字の大きさ" \
		--window-icon=font --on-top --center --form \
		--field="文字用のdpi（インチ毎のドット数）を設定してください。\n数字が大きくなるほど文字は大きくなります。\n<span font='sans 5'>\n</span>MacOS・OSX	72dpi\nWindows 標準	96dpi\nWindows 中	120dpi\nWindows 大	144dpi\n<span font='sans 5'>\n</span>文字サイズ1ポイント ＝ 1/72インチ\n12ポイント ÷ 72インチ × 96dpi ＝ 16ドット\n<span font='sans 5'>\n</span>変更はアプリの次回起動時に反映されます。:LBL"  "" \
		--field=":LBL"                     ""   \
		--field="DPI:NUM" "${base}!72..360!1")
	
	if [ $? -gt 0 ] || [ "a${input}" == "a" ] ; then
		exit 1
	fi
		
	dpi=$(echo ${input} | cut -d\| -f3 | cut -d. -f1)
	
	if [ -f "${HOME}/.Xresources" ] ; then
		line="Xft.dpi: ${dpi}"
		sed -i -e "s|^Xft\.dpi.*$|$line|" "${HOME}/.Xresources"
	else
		echo "Xft.dpi: ${dpi}" > "${HOME}/.Xresources"
	fi
	
	xrdb -merge "${HOME}/.Xresources"
	
	if [ $(ps alxxx | grep lxpanel | grep -v grep | grep -v pcmanfm | \
	     grep -m 1 '\-\-profile' | wc -l) -gt 0 ] ; then
		prof=$(ps alxxx | grep lxpanel | grep -v grep | grep -v pcmanfm | \
		       grep -m 1 '\-\-profile' | sed -e 's/^.*--profile\s\+//igm' | cut -d\  -f1)
		killall lxpanel
		for i in $(seq 1 10)
		do
			if [ $(ps alxxx | grep lxpanel | grep -v grep | grep $(id -u) | grep -v sudo | wc -l) -eq 0 ] ; then
				break
			fi
			sleep 1
		done
		eval nohup lxpanel --profile ${prof} > /dev/null 2>&1 &
	fi
	
	if [ $(ps alxxx | grep pcmanfm | grep -v grep | grep -v lxpanel | \
	     grep -m 1 '\-\-profile' | wc -l) -gt 0 ] ; then
		prof=$(ps alxxx | grep pcmanfm | grep -v grep | grep -v lxpanel | \
		       grep -m 1 '\-\-profile' | sed -e 's/^.*--profile\s\+//igm' | cut -d\  -f1)
		killall pcmanfm
		for i in $(seq 1 10)
		do
			if [ $(ps alxxx | grep pcmanfm | grep -v grep | grep $(id -u) | grep -v sudo | wc -l) -eq 0 ] ; then
				break
			fi
			sleep 1
		done
		eval nohup pcmanfm --desktop -d --profile ${prof} > /dev/null 2>&1 &
	fi
	
	if [ $(pgrep openbox | wc -l) -gt 0 ] ; then
		openbox --restart
		sleep 1
	fi
done

exit 0

