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

jay*_*t55 14 windows settings window 14.04

我刚刚在 Windows 旁边安装了 Ubuntu 14.04,我发现一件非常令人恼火的事情。也就是说,当我打开任何应用程序时,它都会在屏幕的左上角打开。

对于打开的每个应用程序,我要做的第一件事就是将它移动到屏幕的中心(或我想要的任何位置)。然后稍后我将关闭该应用程序。但下一次,它又回到了屏幕的左上角!

我在 AskUbuntu 和整个网络上阅读了相关问题。但是我想知道,由于这些问题是针对 Ubuntu 12 .04 提出的,对于 14.04 用户是否有更好的解决方案?设置中不应该有这样的东西吗?我的意思是,这真的只是常识。不是吗?我真的不知道了。

Vol*_*gel 5

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

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

有多种命令行工具可以读取和设置 Windows 的属性 - 例如wmifacewmctrl.
一个最小的例子:

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

$ wmiface windowGeometry 46137711
1256x814+1186+5005
Run Code Online (Sandbox Code Playgroud)

将窗口移到别处(注意几何体的不同格式):

wmctrl -i  -r 46137711 -e "0,1186,4005,1256,814"
Run Code Online (Sandbox Code Playgroud)


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


Vol*_*gel 2

窗口位置并不像“常识”所暗示的那么容易处理。
位置与某些参考相关——例如“屏幕”。但是“屏幕”在这里的含义有很多变体(见下文),因此不可能以通用方式保存位置。

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

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

在 Ubuntu 下——就像在任何现代的基于 X11 的系统上一样——“屏幕”可以在运行时以各种方式改变,所以保存位置需要处理这个问题。

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

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


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