将超级密钥发送到远程 Citrix 会话

将超级密钥发送到远程 Citrix 会话

我在家用 GNU/Linux Debian(测试)桌面上使用 Citrix Receiver 远程连接到我的工作 Windows 计算机。

我广泛使用 Emacs,并且有许多使用超级键或元(alt)-shift 组合的键绑定。但是,我的超级键(例如s-g)和元换档字母组合(例如M-<)都没有传递到 Windows 计算机。s-g似乎要发送gM-<似乎要发送<

  1. 我怎样才能完成所有的移动按键操作?
  2. 怎样才能通过super修改器呢?

这是我能找到的最接近 Citrix 客户端设置文档的内容,但我没有找到任何有用的内容:https://www.citrix.com/content/dam/citrix/en_us/documents/downloads/citrix-receiver/linux-oem-guide-13-0-bk.pdf

更新通过编辑~/.ICAClient/All_Regions.ini文件以包含

[Virtual Channels\Keyboard]
TransparentKeyPassthrough=Remote

我可以在本地和远程成功地攻击超级密钥。等等M-<仍然不会被遥控器看到。

更新 http://support.citrix.com/article/CTX103576引入了-keylog命令(这显然是一个主要的安全漏洞,因此请确保在使用后将其关闭),该命令允许我捕获所看到的键码。

我意识到,如果我非常缓慢地按Mthen shiftthen .(以实现),M-<那么 Citrix 就能够正确解释它并将正确的命令发送到远程 emacs。这虽然不太理想,但至少是一种解决方法。 Citrix 看到的密钥代码是

Key down: special 8/0x8
Key down: special 5/0x5
Key down: Unicode '<' - 60/0x3c
Key up: Unicode '<' - 60/0x3c
Key up: special 5/0x5
Key up: special 8/0x8

而失败的尝试看起来像

Key down: special 5/0x5
Key down: special 64/0x40
Key down: Unicode '<' - 60/0x3c
Key up: Unicode '<' - 60/0x3c
Key up: special 64/0x40
Key up: special 5/0x5

超级密钥被 Citrix 视为special 65/0x41,如果我这样做,s-f它在键盘记录器中看起来像这样

Key down: special 65/0x41
Key down: Unicode 'f' - 102/0x66
Key up: Unicode 'f' - 102/0x66
Key up: special 65/0x41

但远程 Emacs 只能看到f.

更新这很奇怪。遥控器可以看到M-s-(元超级)绑定。它只是看不到s-绑定。

答案1

就我而言,我使用的是 Debian 11,我添加了

[Virtual Channels\Keyboard]
TransparentKeyPassthrough=Remote

除此之外,关键的更改是通过进入 /etc/gdm3/daemon.conf 并取消注释行来禁用 Wayland

#WaylandEnable=false

WaylandEnable=false

只有这两件事对我有用。原始知识来自于思杰论坛

相关内容