Answers:
您可以使用wmctrl。
基本命令:
wmctrl -d
显示所有工作区。
wmctrl -s <workspace_name>
更改为特定的工作区。
如果您使用的是Compiz,则必须做个技巧,因为Compiz的“工作区”实际上是单个工作区的视口。
检查输出,wmctrl -d
例如,我的是:
0 * DG: 4098x2304 VP: 1366,0 WA: 0,23 1366x745 N/A
这意味着实际上我有一个4098 x 2304的工作区,而不是我“想”的东西(9个“工作区”,3 x 3)。
我在原本应该是“工作区” 2的地方,但是实际上我在视口(VP)1366,0(4098/3 = 1366),如上面的输出所示。
这就是它的工作方式:我们将整个工作区除以我们“认为”的“工作区”的数量。以我为例:4098/3 = 1366和2304/3 = 768。
如果要转到“工作区” 1,该命令为:
wmctrl -o 0,0
然后,如果要转到“工作区” 4,命令为:
wmctrl -o 0,768
如果要转到“工作区” 8,该命令为:
wmctrl -o 1366,1536
如果要转到“工作区” 9,命令为:
wmctrl -o 2732,1536
得到它了?;-)
该-o
标志“截断”它们的值。换句话说,它更改了实际像素所属的“工作区”。以下是等效的:
wmctrl -o 0,0
wmctrl -o 1365,767
使用可以轻松实现您想要的功能xdotool
,该功能具有多个选项来管理不同的工作空间(在程序文档中也称为“桌面”)。我发现将来自的命令串在一起是非常有趣和创造性的man xdotool
; 我在下面编写的命令在脚本中可能很有用。
注意:对于某些窗口管理器,或者如果您正在使用compiz
,则可能需要使用xdotool
诸如set_desktop_viewport
和的命令get_desktop_viewport
。您可能需要像上面的desgua建议那样以不同的方式指定命令,但是对我来说,set_desktop
and set_desktop_for_window
命令在非compiz系统上被证明是最有用的。)
(该解决方案对于Xubuntu / Lubuntu用户或未运行compiz等的用户最有用。)
要列出当前工作空间的数量,请输入
xdotool get_num_desktops
以下命令仅在您至少有一个其他工作空间时才起作用。
要将焦点更改为工作区1,只需输入
xdotool set_desktop 1
然后返回默认工作区,输入
xdotool set_desktop 0
仅需要将工作空间指定为命令中的最后一个值(1或2或3等)。
要查找您当前所在的工作空间的编号,可以使用
xdotool get_desktop
这些命令可以在脚本中使用,它们对于实现目标非常有用。
有关如何将应用程序切换到特定桌面的信息,请参见以下答案:
有关可用于工作空间切换的更多有用选项,请参阅man xdotool
。
xdotool set_desktop --relative -- -1
我已经实现了一个脚本,可以执行您想要的操作。它在这里:https : //github.com/norswap/wmov/blob/master/wmov.sh
它确实按照desgua的帖子所述工作。它还具有将窗口发送到其他工作区的功能。
compiz Wiki上有一个名为compiz-send.py的脚本,可以部分解决您的问题:它不是特定的工作区,但您可以转到旁边的工作区。
这样,您可以发出命令
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
并使视口向左或向右移动1。