Тайлингом пользуются в основном программисты,ну и кому он нравится.Но хоть к программированию не имею отношение,все-таки иногда требуется,что-то перекинуть,найти и тогда эта функция очень выручает.Но так как это нужно для меня в нечастых случаях,то написал простенькую программку псевдо тайлинга для файлового менеджера rox.
При запуске скрипта появляется панелька с кнопками и два окна rox и кнопки переключения в 4 панели и обратно. Требуется наличие gtkdialog,wmctrl и файлового менеджера rox-как default file manager.Проверить наличие which gtkdialog ,which wmctrl или без which.
#!/bin/sh
############# В настройке rox выставить - без изменения размера ##########################
########################################################################################
ROX_FUNCx2 () { defaultfilemanager /root ; wmctrl -r :ACTIVE: -e 0,120,100,800,400; defaultfilemanager / ; wmctrl -r :ACTIVE: -e 0,930,100,800,400
}; export -f ROX_FUNCx2
ROX_FUNCx2
function ROX_FUNCx4()
{
case $1 in
start)
if [ ! -f /tmp/win3 ]; then defaultfilemanager /usr ; wmctrl -r :ACTIVE: -e 0,120,550,800,400
defaultfilemanager /etc ; wmctrl -r :ACTIVE: -e 0,930,550,800,400
wmctrl -l | grep "/usr" | cut -d ' ' -f 1 > /tmp/win3
wmctrl -l | grep "/etc" | cut -d ' ' -f 1 > /tmp/win4; fi
;;
stop)
if [ -f /tmp/win3 ]; then wmctrl -r "$(cat /tmp/win3)" -i -b add,hidden; wmctrl -r "$(cat /tmp/win4)" -i -b add,hidden
fi
;;
esac
}
export -f ROX_FUNCx4
minimize () {
for i in $(wmctrl -lx | grep "ROX-Filer" | cut -d ' ' -f 1 | tr '\n' ' '); do wmctrl -r "$i" -i -b add,hidden; done
}
export -f minimize
max () {
for i in $(wmctrl -lx | grep "ROX-Filer" | cut -d ' ' -f 1 | tr '\n' ' '); do wmctrl -r "$i" -i -b remove,hidden; wmctrl -r "$i" -i -b add,above; done
}
export -f max
export TILING_ROX='
<window title="TILING_ROX" resizable="false" decorated="false">
<vbox>
<hbox homogeneous="true">
<button><label>🌍browser🌍</label><action>defaultbrowser &</action></button>
<button><label>🍎sublime_text🍎</label><action>sublime &</action></button>
<togglebutton tooltip-text=" свернуть развернуть окна ROX ">
<label>🔼 rox 🔽</label>
<action>if true minimize &</action>
<action>if false max &</action>
</togglebutton>
<togglebutton tooltip-text=" Дополнительные 2 окна ROX ">
<label>🔢2x2 rox</label>
<action>if true ROX_FUNCx4 start &</action>
<action>if false ROX_FUNCx4 stop &</action>
</togglebutton>
<button tooltip-text=" Закрыть все "><label>❎close</label><action>rm -f /tmp/win3 /tmp/win4</action><action>"rox -D /"</action><action type="exit">TILING_ROX</action></button>
</hbox></vbox></window>'
gtkdialog --program=TILING_ROX -G 1615x36+120+50