
У меня много фигурокширинаИксвысота(550-570)x(465-486) вюго-западлогически установлено там функцией Matlab movegui()
. Я хотел бы открыть все этиюго-западокна указанного размера на внешнем дисплее или в рабочей области 2.
МяухКоманда показывает эти размеры фигурыширинаИксвысота, их шестнадцатеричные коды и заголовки, куда я хотел бы переместить окна размером 560 x 475 дляширинаИксвысота, соответственно, в Workspace 2
masi@masi:~$ wmctrl -l -G
0x01c0000b 0 0 0 3840 1080 masi Desktop
0x01e00002 0 0 54 1920 1023 masi Edit - Unix & Linux Stack Exchange - Google Chrome
0x02200006 0 2088 333 1608 501 masi masi@masi: ~
0x0280003d 0 1920 78 1920 1041 masi MATLAB R2016a - academic use
0x02800ac6 0 11 113 568 465 masi Figure 1: data gray all 4
0x02800af2 0 687 113 560 475 masi Figure 2: data gray top half (1/2)
0x02800aff 0 1364 113 560 475 masi Figure 3: data gray top #1 (1/4)
0x02800b16 0 1364 621 560 475 masi Figure 4: Time domain
0x02800b2a 0 11 631 568 465 masi Figure 5: Memory/... Monitoring
0x02800b31 0 683 631 568 465 masi Figure 6: data Size(I) monitoring
0x02800b3b 0 11 621 560 475 masi Figure 7: Histograms
0x02800b85 0 774 594 386 28 masi Press SPACEBAR to continue
Выполнение команды meuh дает правильное количество wmctrl
команд, но отдельные команды не оказывают никакого эффекта (будьте осторожны, здесь шестнадцатеричные коды отличаются от приведенных выше из-за разной итерации)
masi@masi:~$ wmctrl -l -G |
> awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
> if(width>=550 && width<=570 && height>=465 && height<=485)
> printf "wmctrl -i -r %s -t 2\n",winid
> }' | sh -x
+ wmctrl -i -r 0x03200120 -t 2
+ wmctrl -i -r 0x03200149 -t 2
+ wmctrl -i -r 0x0320015f -t 2
+ wmctrl -i -r 0x03200173 -t 2
+ wmctrl -i -r 0x03200188 -t 2
+ wmctrl -i -r 0x0320019f -t 2
+ wmctrl -i -r 0x032001b2 -t 2
Почему Commond + wmctrl -i -r 0x03200120 -t 2
помещает окно в Workspace 2? Какой +
там символ?
- Я
wmctrl -r 1 -t 2
ничего не делаю, TODO как-то указать здесь размеры. - Как переместить окна размером 560x475 в Workspace 2?
- Как переместить окна размером (550-570)x(465-485) в рабочее пространство 2?
ОС: Debian 8.5 64 бит
Ядро Linux: 4.6 с бэкпортами
Matlab: 2016a
Оконный менеджер: Gnome 3.14
Оборудование: Asus Zenbook UX303UA, Asus PC
Другие источники: Commandlinefu searchwmctrlне приносит ничего существенного
решение1
Вы можете использовать небольшой скрипт awk, чтобы отфильтровать требуемые идентификаторы окон, используя ширину и высоту в разделенных пробелами столбцах 5 и 6:
wmctrl -l -G |
awk '$0~/^0x/{ winid=$1; width=$5; height=$6;
if(width>=550 && width<=570 && height>=465 && height<=485)
printf "wmctrl -i -r %s -t 2\n",winid
}' | sh
решение2
Поддерживаемого рабочего решения для Gnome 3.14 в Debian 8.5 нет. Будем надеяться, что следующий релиз Gnome в Q1-Q2 2017 поможет в этом деле.