我想将键盘快捷键(Alt + Space)映射到一系列操作,并且希望获得一些帮助来编写脚本。
我有三个显示器。内置笔记本电脑显示器和两个外接显示器。当我编码时,我喜欢在一个显示器上显示代码,在另一个显示器上显示浏览器,在第三个显示器上显示第三个项目(Photoshop 或文件导航器)。
但是,当我向左看编写代码,或者向右看在浏览器中进行更改时,我发现我的脖子抽筋了。
我想要的键盘快捷键应该可以在显示器之间移动窗口。如果三个显示器中分别按顺序显示代码编辑器、浏览器和 Nautilus,则按一次 Alt + Space 会将其更改为 Nautilus、代码编辑器、浏览器。再次按下它会将其更改为浏览器、Nautilus、代码编辑器,第三次按下它会恢复第一个设置。
对于每台显示器上可能显示的任何内容,我该如何执行此操作?比如,如果我碰巧在第一个显示器上打开了三个窗口,在第二个显示器上打开了两个终端窗口,在第三个显示器上打开了五个浏览器窗口,那么每个屏幕上的内容会随机排列吗?也许可以使用工作区并重新排序?
一些帮助会很棒:)
更新:顺便说一下,在 Gnome 上。
答案1
看来您想在屏幕之间交换窗口。
为了韦兰,解决方案特定于窗口管理器。
- 对于 KWin,你可以尝试编写一个KWin 脚本。
为了X11,有一些选项可以与任何窗口管理器配合使用。您需要编写一些代码将所有内容绑定到一个有凝聚力的脚本中。如果屏幕在逻辑上并排,则可以使用模块化算法来计算位置。
用于
xrandr
改变屏幕的位置。如果屏幕尺寸不同,效果就不太好。xrandr --output HDMI1 --pos 1366x0 --output eDP1 --pos 0x0 xrandr --output eDP1 --pos 1366x0 --output HDMI1 --pos 0x0
用于
wmctrl -p -G -l
获取 Windows 列表。然后使用以下命令移动它们:wmctrl -i -r 0x0000000 -e 0,x,y,W,H
您可以根据需要计算位置
x,y
和大小。使用以保持相同的值。W,H
-1
xdotool
是另一个可能有用的工具。
答案2
我已经用 解决了这个问题wmctrl
。我将一些 bash 脚本映射到 ,以便Num Lock快速将窗口移动到新位置。这里是我的方法。例如,要移动到右侧屏幕:
#!/bin/bash
# Places the window to the right screen:
# [ ][x]
wmctrl -r :ACTIVE: -b remove,fullscreen
wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz
wmctrl -r :ACTIVE: -e 0,3840,0,1920,1050
wmctrl -r :ACTIVE: -b add,maximized_vert