如何“快速拆分”窗口顶部和底部?

DBi*_*nJP 5 mouse window-manager compiz window snap-windows

通过拖动窗口直到光标接触屏幕的左边缘或右边缘,可以在左右部分整齐地共享屏幕空间,窗口将自动“对齐”到屏幕的那一半。我如何实现相同的功能以在“顶部”和“底部”两半而不是左右共享屏幕空间?

拖动窗口时我无法这样做,直到光标触及屏幕的顶部或底部。拖动到顶部会使窗口最大化。拖到底部只会将该窗口的其余部分放入较低的“桌面屏幕空间”。

(如果我应该使用指定的词,还请更正我的术语。)

Ale*_*nux 0

几年前我想在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
Run Code Online (Sandbox Code Playgroud)

通过 zip 获取:

wget https://github.com/lawl/opensnap/archive/master.zip
Run Code Online (Sandbox Code Playgroud)

解压master.zip

确保您具备所有先决条件:

sudo apt-get install build-essential libx11-dev libgtk-3-dev wmctrl
Run Code Online (Sandbox Code Playgroud)

最后构建并安装它:

cd opensnap*
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

现在启动 opensnap

opensnap
Run Code Online (Sandbox Code Playgroud)

或者

opensnap --deamon
Run Code Online (Sandbox Code Playgroud)

如果你想让它守护进程。


如果我没记错的话,在尝试取消捕捉窗口时出现了一个错误。看一下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>
Run Code Online (Sandbox Code Playgroud)

确保您位于以下标签内<context name="Titlebar">