高级窗口放置

高级窗口放置

结论我正在寻找 ubuntu 的替代品窗户垫

Ctrl我知道窗口位置可以用- Alt-Numpad#Ctrl- Super-来定义,arrow但这些还不够。我确实有Compiz配置>循环切换多种尺寸

但我想指定一个热键,让窗口停留在左侧,全高,1/3 宽度。右侧也一样。中间也有一个。我习惯使用 Windowpad(在 Windows 上),它允许我定义几乎任何东西。而且我已经习惯了。

有什么办法可以调整这个吗?

澄清编辑。这不是关于打开窗口,而是关于当前活动窗口。

答案1

听起来你正在寻找xdotool或者wmctrl。这些工具可让您编写与 GUI 的各种交互脚本。两者都可以从存储库安装,您可以使用您喜欢的任何一种:

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 设置中将该命令分配给键盘快捷键,一切就绪。

相关内容