当前位置: 首页>>技术教程>>正文


是否有进入特定工作区的命令?

, ,

问题描述

我正在尝试在工作区切换器启动器上创建一个快速列表,以便快速切换到某个工作区。 (我的朋友有时使用我的电脑,但不喜欢键盘快捷键,所以我想帮助他。)

那么是否有一个可以在终端中输入的命令来强制关注某个工作区呢?

最佳思路

您可以使用 wmctrl

基本命令:\n wmctrl -d 显示所有工作区。\n wmctrl -s <workspace_name> 更改到特定工作区。

如果您使用 Compiz,则必须使用一个技巧,因为 Compiz “workspaces” 实际上是单个工作空间的视口。

技巧说明

检查wmctrl -d的输出例如我的是:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

这意味着实际上我有一个 4098 x 2304 的工作空间,而不是我所拥有的 “think”(九个 “workspaces”,3 x 3)。\n我位于应该是 “workspace” 2 的位置,但实际上我位于视口 (VP) 1366 ,0 (4098 /3 = 1366) 如上面的输出所示。

这就是它的工作原理:我们将整个工作空间除以 “workspaces” 和 “think” 的数量。就我而言:4098 /3 = 1366 和 2304 /3 = 768。

如果我想转到我的 “workspace” 1,命令是:

wmctrl -o 0,0

然后,如果我想转到我的 “workspace” 4,命令是:

wmctrl -o 0,768

如果我想转到我的 “workspace” 8,命令是:

wmctrl -o 1366,1536

如果我想转到我的 “workspace” 9,命令是:

wmctrl -o 2732,1536

知道了? 😉

-o 标志 “truncates” 的值。\n换句话说,它更改了实际像素所属的 “workspace”。\n以下内容是等效的:

wmctrl -o 0,0
wmctrl -o 1365,767

次佳思路

使用 xdotool 实现您想要的效果非常简单,它具有用于管理不同工作区的多个选项(在程序文档中也称为 ‘desktops’)。我发现将 man xdotool 中的命令串在一起非常有趣且富有创意;我在下面制定的命令可能在脚本中有用。

注意:对于某些窗口管理器,或者如果您使用 compiz ,则可能需要使用 xdotool 命令,例如 set_desktop_viewportget_desktop_viewport 。您可能必须以不同的方式指定命令,如上面 desgua 建议的那样,但对我来说,set_desktopset_desktop_for_window 命令被证明在非 compiz 系统上最有用。)

(该解决方案对于 Xubuntu/Lubuntu 用户或未运行 compiz 的用户最有用,等等。)

要列出当前工作区的数量,请输入

xdotool get_num_desktops

仅当您至少有 1 个其他工作区时,以下命令才有效。

要将焦点更改为工作区 1,只需输入

xdotool set_desktop 1 

然后要返回到默认工作区,请输入

xdotool set_desktop 0

只需将工作空间指定为命令中的最后一个值(1 或 2 或 3 等)。

要查找您当前所在的工作区编号,您可以使用

xdotool get_desktop

这些命令可以在脚本中使用,它们对于实现您的目标非常有用。

有关如何将应用程序切换到特定桌面,请参阅我的回答:

有关可用于工作区切换的更多有用选项,请参阅 man xdotool

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13957.html,未经允许,请勿转载。