设置在 KDE 中切换到虚拟桌面(或活动)时要运行的命令

Min*_*mus 6 kde command-line plasma

是否可以设置在 KDE 环境中切换到特定虚拟桌面(或活动)时运行命令?

我想为桌面(例如desktop2)运行命令,以便当我切换到该桌面时,键盘语言布局将自动更改为美国英语

vir*_*xtc 3

您可以使用以下命令行参数更改为虚拟桌面二:

wmctrl -s 2
Run Code Online (Sandbox Code Playgroud)

从而执行

wmctrl -s 2 && setxkbmap en
Run Code Online (Sandbox Code Playgroud)

应按照示例中的建议将您切换到桌面 2 并将语言更改为英语。

您可以使用 autokey 等键绑定程序或 KDE 自定义快捷键来为上述命令设置键绑定。或者,您可以将上述命令保存到以 .sh 结尾的文本文件中,然后使该文件可执行以具有可单击的脚本,该脚本将为您切换桌面和更改语言。

应按照示例中的建议将您切换到桌面 2 并将语言更改为英语。


切换活动是一个有点冗长的命令。

转到下一个活动非常简单,使用:

qdbus org.kde.kglobalaccel /component/plasma_desktop invokeShortcut "Next Activity"
Run Code Online (Sandbox Code Playgroud)

然而,要切换到特定的活动,您必须首先知道它的 ID,可以通过以下方式获取:

qdbus org.kde.kactivitymanagerd /ActivityManager/Activities ListActivities
Run Code Online (Sandbox Code Playgroud)

一旦知道活动 ID,您就可以通过以下方式切换到该活动:

qdbus org.kde.kactivitymanagerd /ActivityManager/Activities SetCurrentActivity activity-key-in-previous-step
Run Code Online (Sandbox Code Playgroud)

然后,在切换虚拟桌面时将其与“&& setxkbmap en”命令结合起来,以实现活动切换和语言更改。


另外值得注意的是:

export LC_ALL=C
Run Code Online (Sandbox Code Playgroud)

将系统语言更改为英语