在Ubuntu 14.04中记住窗口位置(也是最好的大小)

我刚刚在Windows上安装了Ubuntu 14.04,我发现有一点非常烦人。 也就是说,当我打开任何应用程序时,它会在屏幕的左上角打开。

对于每个打开的应用程序,我必须做的第一件事就是将它移动到屏幕的中心(或者我希望它在哪里)。 然后我会关闭应用程序。 但是下一次,它又回到了屏幕的左上角!

我已经在AskUbuntu和网络上阅读了相关的问题。 但是我想知道,因为那些问题是关于Ubuntu 12 .04,如果14.04用户有更好的解决方案吗? 不应该在设置中这样的东西吗? 我的意思是,这只是常识。 不是吗? 我真的不知道了。

安装ccsm(CompizConfigSettingsManager)。

启动ccsm(从Unity搜索按钮启动)后,执行以下操作:

(单击)Windows Manager
(单击)放置Windows

使用这些设置:

解决方法Unticked
多输出模式Place across all outputs

Smart展示位置模式是记住所需位置的关键。

请记住,某些应用程序已编程为覆盖系统的优先设置。

( 我的另一个答案描述了为什么一般情况下无法恢复窗口位置。)

对于保存和恢复窗口位置的特殊情况,可以使用shell脚本来保存和恢复位置或几何(几何是位置加大小),以用于窗口管理器配置无法处理的情况(参见下文)。

有各种命令行工具可以读取和设置windows的属性 – 例如wmifacewmctrl
一个最小的例子:

以X几何格式获取窗口的几何(通常为WxH + X + Y)(注意y坐标 – 我使用16个compiz虚拟桌面/视口):

 $ wmiface windowGeometry 46137711 1256x814+1186+5005 

将窗口移动到其他位置(请注意几何的不同格式):

 wmctrl -i -r 46137711 -e "0,1186,4005,1256,814" 

另一种方法是为某些窗口定义固定位置,而不是恢复其位置。 这通常可以在窗口处理配置的详细信息中配置,例如ccsm

窗口位置并不像“常识”所暗示的那样容易处理。
一个位置与某些参考相关 – 就像“屏幕”一样。 但是,“屏幕”在这里可能意味着什么变化(见下文),以一般方式保存位置是不可能的。

当然,它可以通过适应某些环境的各种方式完成 – 但如果它是“只是保存一个位置,并在以后恢复” – 这是不可能的,因为恢复位置的坐标系不清楚。

那么,在屏幕上的某个位置显示窗口有什么困难呢?

在Ubuntu下 – 与任何基于X11的现代系统一样 – “屏幕”可以以各种方式改变 – 在运行时,因此保存位置需要处理它。

例如,形状可以改变; 从一个矩形到两个矩形并排,到三个矩形,中间有无法访问的空间。 “虚拟桌面”可以改变。 视口可以更改。 每个都会影响要恢复的坐标。

一个特殊的问题是确保没有任何东西移出“屏幕”的当前可访问部分。


在左上方打开窗口的问题上:您可以选择多种算法中的一种来决定在窗口处理设置中放置新窗口的位置(例如,在ccsm )。 例如,您可以在当前鼠标指针所在的位置打开它们。

万一有人在这里登陆,并且真的希望窗户在你放置的位置 – 安装启动桌面。 您可以右键单击任何页面左上角的图标,选择窗口,记住,然后选择大小和位置。 我喜欢这个选项,这也是我留在e17的原因之一。