stty 的超级键符号

Stu*_*ter 6 linux bash ubuntu stty

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

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

我一辈子都找不到超级键的符号。(例如^是控制键)

有谁知道 super 和 stty 的表示法是什么?我希望能够打字

stty intr Super_L + C
Run Code Online (Sandbox Code Playgroud)

例如。

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

use*_*686 1

没有任何注释。

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n\n

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

\n