Тайлингом пользуются в основном программисты,ну и кому он нравится.Но хоть к программированию не имею отношение,все-таки иногда требуется,что-то перекинуть,найти,то тогда эта технология очень выручает.Но так как это нужно для меня в нечастых случаях,то написал простенькую программку псевдо тайлинга для файлового менеджера rox.
При запуске скрипта появляется панелька с кнопками и два окна rox и кнопки переключения в 4 панели и обратно. Требуется наличие gtkdialog,wmctrl и файлового менеджера rox-как default file manager.Проверить наличие which gtkdialog ,which wmctrl или без which.
В строчке grep -v "ROX-Filer\|conky\|gtk2dialog\|TILING_ROX"
нужно задать ислючения для окон,которые не надо сворачивать при переключении сворачивания и разворачивания окон rox.ROX-Filer и TILING_ROX необходимый минимум в этой строке,остальное чтобы не сворачивалось при манипуляции с окнами ROX (например у меня:запущены allways top - conky и gtkradio)
Команда wmctrl -lx
показывает данные открытых окон .
#!/bin/sh
ROX_FUNCx2 () { defaultfilemanager /root ; wmctrl -r :ACTIVE: -e 0,120,100,800,400; defaultfilemanager /home ; wmctrl -r :ACTIVE: -e 0,930,100,800,400
}; export -f ROX_FUNCx2
ROX_FUNCx4 () { defaultfilemanager /usr ; wmctrl -r :ACTIVE: -e 0,120,550,800,400; defaultfilemanager /etc ; wmctrl -r :ACTIVE: -e 0,930,550,800,400
}; export -f ROX_FUNCx4 # ROX_FUNCx4 функция запускает дополнительные два окна ROX /usr /etc
ROX_FUNCx2 # Запускаются два окна ROX /root /home
min () {
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 min
max () {
for i in $(wmctrl -lx | grep "ROX-Filer" | cut -d ' ' -f 1 | tr '\n' ' '); do wmctrl -r "$i" -i -b remove,hidden; done
for a in $(wmctrl -lx | grep -v "ROX-Filer\|conky\|gtk2dialog\|TILING_ROX" | cut -d ' ' -f 1 | tr '\n' ' '); do wmctrl -r "$a" -i -b add,hidden; 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🍎</label><action>sublime &</action></button>
<togglebutton tooltip-text=" Свернуть развернуть окна ROX ">
<label>🔼 rox 🔽</label>
<action>if true min &</action>
<action>if false max &</action>
</togglebutton>
<togglebutton tooltip-text=" Открываются дополнительные 2 окна ROX ">
<label>🔢2x2 rox</label>
<action>if true ROX_FUNCx4 &</action>
<action>if false rox -D / && ROX_FUNCx2 &</action>
</togglebutton>
<button tooltip-text=" Закрыть только окна ROX "><label>❎close rox</label><action>"rox -D /"</action></button>
<button tooltip-text=" Закрыть панель "><label>close</label><action type="exit">TILING_ROX</action></button>
</hbox></vbox></window>'
gtkdialog --program=TILING_ROX -G 1615x36+120+50