Answers:
(我的另一个答案描述了为什么在一般情况下无法恢复窗口位置。)
对于可以保存和恢复窗口位置的特殊情况,对于不能由窗口管理器配置处理的情况,可以使用外壳脚本来保存和恢复位置或几何形状(几何形状是位置加大小)(请参见下文)。
有多种命令行工具可以读取和设置Windows的属性,例如wmiface
和wmctrl
。
一个最小的例子:
获取X几何格式(通常为WxH + X + Y)的窗口的几何(请注意y坐标-我正在使用16个compiz虚拟桌面/视口):
$ wmiface windowGeometry 46137711
1256x814+1186+5005
将窗口移到其他位置(注意几何图形的不同格式):
wmctrl -i -r 46137711 -e "0,1186,4005,1256,814"
ccsm
。
wmiface
,这是过时的,并且没有为ubuntu打包,可以用xdotool getwindowgeometry
或替换wmctrl -lGi | grep
(需要十六进制转换)。对我来说,他们两个都忽略了屏幕底部的面板,但是考虑到wmctrl -lGi
返回的尺寸也可以,因此可以在一段时间后备份和还原窗口的位置/大小。无论用例是什么。
wmctrl -lGi
按照答案中所述的相同方式进行备份和还原。
窗口的位置并非如“常识”所暗示的那样容易处理。
位置相对于某些参考(例如“屏幕”)而言是相对的。但是“屏幕”在这里可能意味着很多变体(见下文),以致无法以一般方式保存职位。
当然,可以采用多种方法来适应特定的环境-但是如果要“只保存位置,以后再恢复”,则不可能,因为尚不清楚恢复位置的坐标系。
那么,在屏幕上某个位置显示窗口有什么困难呢?
在Ubuntu下-与在任何现代的基于X11的系统上一样-在运行时,“屏幕”可以以多种方式更改,因此需要保存位置来处理。
例如,形状可能会改变;从一个矩形到两个并排的矩形,再到三个矩形,它们之间没有间距。“虚拟桌面”可以更改。视口可以更改。每个都会影响将要恢复的坐标。
一个特殊的问题是要确保没有任何东西移出“屏幕”的当前可访问部分。
在左上方打开窗口的侧面问题:您可以选择多种算法之一,以决定将新窗口放置在窗口处理设置中的位置(例如中的ccsm
)。例如,您可以在当前鼠标指针所在的位置打开它们。
以防万一有人落在这里,并真的希望Windows成为您放置它们的地方-安装Enlightenment桌面。您可以右键单击任何页面左上角的图标,选择窗口,记住并选择大小和位置。我喜欢这种选择,这也是我选择e17的原因之一。
sudo apt-get compizconfig-settings-manager
(如果尚未安装)