Как "защелкнуть" окна сверху и снизу?

Можно аккуратно распределить пространство экрана в левой и правой частях, перетаскивая окно до тех пор, пока курсор не коснется левого или правого края экрана, и окно автоматически "защелкнется" на этой половине экрана. Как мне добиться такой же функциональности, чтобы разделить пространство экрана в "верхней" и "нижней" половинах вместо левой и правой?

Я не могу сделать это при перетаскивании окна, пока курсор не коснется верхней или нижней части экрана. Перетаскивание к вершине заставляет окно максимизироваться. Перетаскивание в нижнюю часть просто опускает остальную часть этого окна в нижнее "пространство экрана рабочего стола".

(Пожалуйста, исправьте мою терминологию, если есть определенные слова, которые я должен использовать.)

1 ответ

Несколько лет назад я хотел добиться функции моментального окна в Lubuntu 14.04. Я думаю, вам нужен openbox, чтобы это работало.

Посмотрите на https://github.com/lawl/opensnap


Ниже приводится краткое описание процедуры установки, приведенной на этой странице:

Установка

Если вы хотите установить opensnap Сначала убедитесь, что у вас установлен git. (Или загрузите ZIP-файл: https://github.com/lawl/opensnap/archive/master.zip)

Получить через git:

git clone https://github.com/lawl/opensnap.git

Получить через почтовый индекс:

wget https://github.com/lawl/opensnap/archive/master.zip

распакуйте master.zip

Убедитесь, что у вас есть все предпосылки:

sudo apt-get install build-essential libx11-dev libgtk-3-dev wmctrl

И, наконец, соберите и установите его:

cd opensnap*
make
sudo make install

А теперь начните с

opensnap

или же

opensnap --deamon

если вы хотите, чтобы это демонизировалось.


Если я хорошо помню, была ошибка при попытке отсоединить привязанное окно. Посмотрите на https://github.com/lawl/opensnap/issues/4 описанный обходной путь.

В моем случае Lubuntu 14.04 пришлось модифицировать /home/user/.config/openbox/lubuntu-rx.xmlКод между тегами <mousebind button="Left" action="Drag"> а также </mousebind> должен быть обменен:

  <mousebind button="Left" action="Drag">
    <!-- Unsnap if snapped-->
    <action name="if">
      <maximizedvertical>yes</maximizedvertical>
      <then>
        <action name="Unmaximize"/>
          <direction>vertical</direction>
        <action name="MoveResizeTo">
          <x>center</x>
          <!-- we center windows in order to mitigate discrepancies 
          between window placement and mouse cursor -->
          <y>current</y>
        </action>
        <action name="Move"/>
      </then>
      <else>
        <action name="Move"/>
      </else>
    </action>
  </mousebind>

Убедитесь, что вы находитесь внутри тегов <context name="Titlebar">

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