Как переместить окна размерного диапазона в рабочую область 2?

Как переместить окна размерного диапазона в рабочую область 2?

У меня много фигурокширинаИксвысота(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 поможет в этом деле.

Связанный контент