Расширенное размещение окон

TLDR Я ищу Ubuntu замену оконной панели

Я знаю, что расположение окон можно определить с помощью Ctrl-Alt-Numpad# а также Ctrl-Super-arrow Но это не достаточно. У меня есть CompizConfig > Цикл через несколько размеров

Но я хочу назначить горячую клавишу, чтобы сделать окно слева, полная высота, 1/3 ширины. То же самое для права. и один для середины. Я привык использовать Windowpad (на окнах), который позволяет мне определять практически все что угодно. И я так привык к этому.

Есть ли способ настроить это?

Уточнить уточнить Речь идет не об открытии окон, а о текущих активных окнах.

1 ответ

Решение

Похоже, вы ищете xdotoolили же wmctrl, Это инструменты, которые позволяют создавать сценарии различных взаимодействий с графическим интерфейсом. Оба могут быть установлены из репозиториев, вы можете использовать тот, который вы предпочитаете:

sudo apt-get install wmctrl xdotool

У меня дисплей 1920 x 1080, поэтому 1/3 ширины будет 640. Чтобы разместить активное окно с левой стороны экрана, на полную высоту и 1/3 ширины, я бы запустил:

wmctrl -r :ACTIVE: -e 0,0,0,640,1080

Формат объясняется в man wmctrl:

-r <WIN>
     Specify a target window for an action.
-e <MVARG>
     Resize and move a window that has been specified with a -r action 
     according to the  <MVARG> argument.

 [...]

<MVARG>
     A move and resize argument has the format 'g,x,y,w,h'.  All five components  are  integers.
     The  first  value, g, is the gravity of the window, with 0 being the
     most common value (the default value for the window). [...]
     The four remaining values are a standard geometry specification: x,y 
     is the position of the top  left  corner  of  the  window, and w,h
     is the width and height of the window [...].

<WIN>
     This  argument  specifies a window that is the target of an action. [...]
     The  window name string :ACTIVE: may be used to instruct wmctrl to 
     use the currently active window for the action.

Вы также можете сделать его более динамичным, автоматически определяя ширину. Эта команда печатает ширину вашего дисплея:

$ xrandr | grep -Po 'current\s*\K\d+'
1920

Поэтому вы можете интегрировать его в wmctrl как это:

wmctrl -r :ACTIVE: -e 0,0,0,$(($(xrandr | grep -Po 'current\s*\K\d+')/3)),1080

Теперь все, что вам нужно сделать, это назначить эту команду сочетанию клавиш из настроек Unity, и все готово.

Другие вопросы по тегам