我刚刚在 Windows 上安装了 Ubuntu 14.04,我发现一个非常烦人的问题。那就是,当我打开任何应用程序时,它都会在屏幕的左上角打开。
对于每个打开的应用程序,我要做的第一件事就是将其移至屏幕中央(或我想要的任何位置)。然后我会关闭该应用程序。但下一次,它又回到了屏幕的左上角!
我在 AskUbuntu 和网络上读过相关问题。但是我很好奇,因为这些问题是针对 Ubuntu 提出的12.04,对于 14.04 用户来说,是否有更好的解决方案来解决这个问题?这样的内容不应该在“设置”中吗?我的意思是,这真的是常识。不是吗?我真的不知道了。
答案1
(我的另一个答案描述了为什么在一般情况下无法恢复窗口位置。)
对于可以保存和恢复窗口位置的特殊情况,可以使用 shell 脚本来保存和恢复位置或几何形状(几何形状是位置加上大小),适用于窗口管理器配置无法处理的情况(见下文)。
有各种命令行工具可以读取和设置窗口的属性 - 例如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
。
答案2
安装 ccsm (CompizConfigSettingsManager)。
启动 ccsm(从 Unity 搜索按钮启动)后,执行以下操作:
(单击)窗口管理器
(单击)放置窗口
使用这些设置:
解决方法 Unticked
多输出模式Place across all outputs
放置模式Smart
是记住您所需位置的关键。
请记住,某些应用程序被编程为覆盖系统的首选设置。
答案3
窗口位置并不像“常识”所暗示的那样容易处理。
位置与某个参考点相关 - 例如“屏幕”。但是“屏幕”在这里的含义有很多变体(见下文),因此不可能以通用方式保存位置。
当然,它可以以适应某些环境的各种方式来完成 - 但如果是关于“仅保存一个位置,然后稍后恢复” - 那是不可能的,因为恢复位置的坐标系不清楚。
那么,在屏幕的某个位置显示一个窗口有什么困难呢?
在 Ubuntu 下 - 与任何基于 X11 的现代系统一样 - “屏幕”可以在运行时以各种方式发生变化 - 因此保存位置需要处理这一点。
例如,形状可以改变;从一个矩形变成两个并排的矩形,再变成三个矩形,中间有不可访问的空间。“虚拟桌面”可以改变。视口可以改变。每个都会影响要恢复的坐标。
一个特殊的问题是确保没有任何东西移出“屏幕”当前可访问的部分。
关于在左上角打开窗口的附带问题:您可以在窗口处理设置中选择多种算法之一来决定将新窗口放置在何处(例如在 中ccsm
)。例如,您可以在当前鼠标指针所在的位置打开它们。
答案4
如果有人来到这里,真的想让窗口回到你放置它们的位置,请安装 Enlightenment 桌面。你可以右键单击任何页面左上角的图标,选择窗口,记住,然后选择大小和位置。我喜欢这个选项,这也是我坚持使用 e17 的原因之一。