Ler*_*ron 26 command-line workspaces quicklists
我正在尝试在 Workspace Switcher 启动器上创建一个快速列表,以便快速切换到某个工作区。(我的朋友有时使用我的电脑,只是不喜欢键盘快捷键,所以我想帮助他。)
那么,是否有一个命令可以在终端中输入以强制专注于某个工作区?
des*_*gua 41
您可以使用wmctrl。
基本命令:
wmctrl -d显示所有工作区。
wmctrl -s <workspace_name>更改为特定工作区。
如果您使用 Compiz,您将不得不做一个技巧,因为 Compiz“工作区”实际上是单个工作区的视口。
检查wmctrl -d例如的输出,我的是:
0 * DG: 4098x2304 VP: 1366,0 WA: 0,23 1366x745 N/A
Run Code Online (Sandbox Code Playgroud)
这意味着实际上我有一个 4098 x 2304 的工作区,而不是我“认为”我拥有的(九个“工作区”,3 x 3)。
我在应该是“工作区”2的地方,但实际上我在视口(VP)1366,0(4098 / 3 = 1366),如上面的输出所示。
这就是它的工作原理:我们将整个工作区划分为我们“认为”拥有的“工作区”数量。就我而言:4098 / 3 = 1366 和 2304 / 3 = 768。
如果我想进入我的“工作区”1,命令是:
wmctrl -o 0,0
Run Code Online (Sandbox Code Playgroud)
然后,如果我想进入我的“工作区”4,命令是:
wmctrl -o 0,768
Run Code Online (Sandbox Code Playgroud)
如果我想进入我的“工作区”8,命令是:
wmctrl -o 1366,1536
Run Code Online (Sandbox Code Playgroud)
如果我想进入我的“工作区”9,命令是:
wmctrl -o 2732,1536
Run Code Online (Sandbox Code Playgroud)
知道了?;-)
该-o标志“截断”了它们的值。换句话说,它改变了实际像素所属的“工作区”。以下是等效的:
wmctrl -o 0,0
wmctrl -o 1365,767
Run Code Online (Sandbox Code Playgroud)
小智 11
使用 实现您想要的东西非常简单xdotool,它有多个选项来管理不同的工作区(在程序文档中也称为“桌面”)。我发现将来自man xdotool; 的命令串在一起非常有趣和有创意;我在下面制定的命令可能在脚本中很有用。
注意:对于某些窗口管理器,或者如果您正在使用compiz,您可能需要使用xdotool诸如set_desktop_viewport和 之类的命令get_desktop_viewport。您可能需要以不同的方式指定命令,就像上面的desgua建议的那样,但对我来说,set_desktop和set_desktop_for_window命令在非 compiz 系统上被证明是最有用的。)
(该解决方案对 Xubuntu/Lubuntu 用户,或未运行 compiz 等的用户最有用。)
要列出当前工作区的数量,请输入
xdotool get_num_desktops
Run Code Online (Sandbox Code Playgroud)
仅当您至少有 1 个其他工作区时,以下命令才有效。
要将焦点更改为您的工作区 1,只需输入
xdotool set_desktop 1
Run Code Online (Sandbox Code Playgroud)
然后返回默认工作区,输入
xdotool set_desktop 0
Run Code Online (Sandbox Code Playgroud)
只需将工作区指定为命令中的最后一个值(1 或 2 或 3 等)。
要查找您当前所在工作区的编号,您可以使用
xdotool get_desktop
Run Code Online (Sandbox Code Playgroud)
这些命令可以在脚本中使用,它们对于实现你想要的应该非常有用。
有关如何将应用程序切换到特定桌面的信息,请在此处查看我的回答:
有关可用于工作区切换的更多有用选项,请参阅man xdotool。
| 归档时间: |
|
| 查看次数: |
34854 次 |
| 最近记录: |