我基本上想继续使用 GNOME,但模拟 i3 WM 行为,允许您根据窗口的位置来聚焦窗口,例如将窗口聚焦到当前窗口的右侧,聚焦左侧的窗口,等等。我研究了wmutils,它几乎可以工作,但它不适用于 GNOME。还有其他方法吗?
答案1
长答案短:使用扩展放窗户(“使用键盘移动焦点”说明了一切)
首先你检查一下目前确实不可能
- 该功能似乎没有在 GnomeShell CheatSheet 中列出,也没有在 Gnome3 > 键盘中列出。遗憾的是,似乎没有任何地方有详尽的键盘快捷键列表。
我访问了 extensions.gnome.org 并搜索了一个可以满足您要求的扩展,但我发现的只是一个名为“switcher”的扩展,这不是您想要的。在做任何其他事情之前你应该彻底搜索那里因为我没有浏览90页的结果。实际上有一个扩展可以做到这一点,称为“放置窗口”,OP在我写完这个答案后发现了它,所以下面的内容仅供参考。
你可以决定使用 Alt-tab 并完成它,这似乎是 Gnome3 的方式
然后你尝试自己让它成为可能
我看到了 3 种做事的方法:
- 创建一个 Gnome3 扩展(但我不确定您是否拥有实现您想要的功能所需的所有功能)。我并没有尝试这样做。
- 修改 Gnome3(但这可能不是您期望的答案)。我并没有尝试这样做。
- 使用 X11 / Wayland / Mir 来做到这一点。下面我将解释我尝试用 X11 做什么。当心,X11 很快就会成为遗留软件!目前可能无法使用 Wayland / Mir 做到这一点(但我没有检查)
我尝试使用 xdotool 对 X11 执行此操作
该解决方案并未完全发挥作用。这比其他任何事情都更像是一种乐趣
你可以试试我的演示选择.sh脚本。这是一个大约 200 行的 bash 脚本,所以我不会把它放在这里,但我将在下面解释它是如何工作的。使用方法:
- 在您的系统上安装 xdotool,它应该在您的存储库中:)
- 克隆https://gitlab.com/gabrieldevillers/xdotool-i3ization
- 转到 Gnome3 > 键盘 > 快捷方式 > 个人快捷方式,并分别添加 4 个带有命令的条目,
/path/to/select.sh *direction*
其中*direction*
分别为up
、down
、left
或right
脚本的问题:
- 它很慢(但可用:尝试一下)
- 窗口不得重叠。这是我用来替换以下事实的事实:我无法判断窗口是否对用户可见(请参阅问题“计算部分隐藏窗口的可见区域”和“X:找出窗口是否可见”给用户,即不被其他人覆盖”在这个网站上)。这种需要是由于 i3 和 Gnome3 之间的巨大差异:Gnome3 窗口可以重叠(并且它们确实重叠)真的经常)。
脚本的算法:
- 获取潜在窗口的列表:它们必须有一个名称,位于同一个工作区(可选?但要注意有一个奇怪的工作区,代码为“-1”),不在您排除的窗口列表中(可能是可选的,我从这个开始并保留了可能性),可见(在 X11 的意义上,这意味着不减少,你知道,就像在 Gnome2 中一样!)
- 过滤此列表以使窗口位于正确的位置(我的脚本的这部分有很大的改进空间)
- 选择离你最近的一个(在这里你可以再次改进我的脚本)
答案2
作为一个老I3用户,我一直怀念这个功能。我没能找到解决这个问题的方法,所以我决定编写一个 gnome 扩展来解决它。它不使用“xdotool”,而是使用内部 gnome 库。希望它能够在 X11 和 Wayland 中运行。
https://extensions.gnome.org/extension/4627/focus-changer
作为键盘驱动的用户,我希望您也会发现它有所帮助。