我已将 KDE 桌面的名称定义为工作站和本地计算服务器的名称。我想找到一种方法,当我在特定的命名桌面中打开 shell 时,它将在相应的计算机中打开 shell。
例如,以下是我的 KDE 桌面名称列表:
- 我的世界
- 铯1
- 铯2
当我在“Cs1”窗口中打开 shell 时,我希望它在“Cs1”而不是我当前工作的计算机上打开 SSH 会话。
我想如果我可以检索我正在从(konsole)打开终端的 KDE 桌面的名称并使用它来调用我的远程登录 SSH 脚本,我就可以做到这一点。
通过 Google 搜索,我发现了如何找到我正在使用的窗口号 ( xprop -root | egrep '^_NET_CURRENT_DESKTOP'
),但找不到任何告诉我如何检索窗口号的信息。姓名窗户的。我已经尝试过“qdbus”和“qdop”(包括图形 kdcop),但仍然找不到任何给我当前桌面名称的内容。
现在,我还要先说一下,我们使用的是旧版本的 RH5 (RedHatEnterpriseClient 5.6),而不是运行最新、最好的 KDE (KDE 3.54.el5_4.1)。
编辑:有评论问xprop -root | egrep '^_NET_DESKTOP_NAMES'
显示什么。我在发布问题之前尝试过,但我得到以下结果,但我不知道如何处理该结果:
_NET_DESKTOP_NAMES(UTF8_STRING) = 0x41、0x55、0x4c、0x57、0x53、0x30、0x38、0x34、0x0、0x41、0x55、0x4c、0x43、0x53、0x32、0x31、0x31、 , 0x41, 0x55, 0x4c, 0x43, 0x53 , 0x32, 0x31, 0x32, 0x0, 0x41, 0x55, 0x4c, 0x43, 0x53, 0x32, 0x31, 0x33, 0x0, 0x41, 0x55, 0x4c, 0x43, 0x53, 0x32, 0x31, 34、0x0`
运行dcop kwin KWinInterface currentDesktop
回报1
最后,在提交我的问题后,我发现了该网站上的另一篇文章以及wmctrl -d
.我决定尝试一下。我发现我们wmctrl
的系统中没有安装,所以我下载并编译了wmctrl
。wmctrl -d
确实返回了我需要的所有信息,除了提取从wmctrl -d
命令中获得的信息的麻烦之外。
有没有更简单的方法,使用dcop
或其他什么?
答案1
控制面板
您可以使用以下命令以编程方式获取工作区/窗口的名称:
$ wmctrl -d
0 * DG: 5760x900 VP: 0,0 WA: 0,25 1440x826 Workspace 1
1 - DG: 5760x900 VP: 0,0 WA: 0,25 1440x826
2 - DG: 5760x900 VP: 0,0 WA: 0,25 1440x826 N/A
3 - DG: 5760x900 VP: 0,0 WA: 0,25 1440x826 N/A
您还可以使用以下命令切换到另一个窗口:
$ wmctrl -s <workspace_name>