![stty 的超级键符号](https://linux22.com/image/1521920/stty%20%E7%9A%84%E8%B6%85%E7%BA%A7%E9%94%AE%E7%AC%A6%E5%8F%B7.png)
尝试在 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 字节。一些终端仿真器通过通用“键盘快捷键”支持此功能,其他终端仿真器可能需要实际的源代码补丁。