是否有前往特定工作区的命令?


22

我正在尝试在Workspace Switcher启动器上创建一个快速列表,以允许快速切换到某个工作区。(我的朋友有时会使用我的计算机,只是不喜欢键盘快捷键,所以我想帮助他。)

那么,是否存在可以在终端中键入以强制某个工作区集中的命令?


也可以在kwin(切换桌面或其他)或其他桌面设置管理器的systemsettings5上设置键盘快捷方式。然后使用xdotool模拟快捷键,例如xdotool键ctrl + alt + b;
intika

Answers:


34

您可以使用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

1
有没有办法进入“当前桌面+1”?
xjcl

9

使用可以轻松实现您想要的功能xdotool,该功能具有多个选项来管理不同的工作空间(在程序文档中也称为“桌面”)。我发现将来自的命令串在一起是非常有趣和创造性的man xdotool; 我在下面编写的命令在脚本中可能很有用。

注意:对于某些窗口管理器,或者如果您正在使用compiz,则可能需要使用xdotool诸如set_desktop_viewport和的命令get_desktop_viewport。您可能需要像上面的desgua建议那样以不同的方式指定命令,但是对我来说,set_desktopand 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


我喜欢这个答案胜过接受的答案,谢谢。我用它来设置两个热点,以便在两个工作区之间轻松切换。
timetofly

也有用:使用相对标志切换到左/右下一个桌面:xdotool set_desktop --relative -- -1
xjcl


0

compiz Wiki上有一个名为compiz-send.py的脚本,可以部分解决您的问题:它不是特定的工作区,但您可以转到旁边的工作区。

这样,您可以发出命令
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
并使视口向左或向右移动1。


0

可以使用Python和pyautogui库实现转到特定的工作区并执行操作,该库使Python脚本可以执行鼠标单击,击键等操作。

我在Peppermint OS论坛上写了一个简短的教程,介绍如何在特定的工作场所启动应用程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.