stty 的超级键符号

stty 的超级键符号

尝试在 ubuntu 框上交换 Ctrl 和 Super 键。

已成功使用 xmodmap 交换 Super 和 Ctrl。现在我只需将 stty intr 更改为 Super_L + C

我无论如何也找不到超级键的符号。(例如 ^ 是控制键)

有人知道 super with stty 的符号是什么吗?我希望能够输入

stty intr Super_L + C

例如。

或者其他更好的方法使 Super+C 成为中断

答案1

没有对此进行标记。

一般来说,stty(以及使用这些设置的操作系统组件)看不到因此,终端应用程序将这些键转换为字节序列,而 tty 层只能看到这些转换后的字节,stty 可以让你看到特定的字节这将使得tty层触发中断信号。

换句话说,intr 参数是一个字节值,对应于你可以实际进入(在早期的 Unix 系统中,intr 被设置为符号#。)

因此,当你将 intr 设置为 时^C,那只是 stty速记对于字节 0x03(比较:字母C在 ASCII 中为 0x43)。基本上 Shift 和 Ctrl 都只是设置和清除“基本”字节的某些位。然而,Super 没有这样的等价物。

因此,大多数终端只是忽略 Super 并发送未修改的基本字母;有些可能发送 ANSI“转义”序列(类似于箭头键或功能键的序列),但无论如何您都无法将它们与 stty 一起使用,因为它仍然需要一个字节。您无法将中断键绑定到多字节序列;它只会拾取第一个字节。

所以你唯一能做的要做的就是以某种方式破解终端应用程序本身,使其在收到 Super+C 按键时发送 0x03 字节。一些终端仿真器通过通用“键盘快捷键”支持此功能,其他终端仿真器可能需要实际的源代码补丁。

相关内容