Linux 键盘:如何将欧元键从序列 ALT 0128 重新映射到 PgUp?

Linux 键盘:如何将欧元键从序列 ALT 0128 重新映射到 PgUp?

我有笔记本电脑 Acer Aspire E1-772G,光标键附近有欧元键。我不使用欧元,而且它已实现,因此按下它会生成序列 ALT 0 1 2 8

# showkey -k
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
keycode  28 release
^[0^[1^[2^[8keycode  56 press
keycode  82 press
keycode  82 release
keycode  79 press
keycode  79 release
keycode  80 press
keycode  80 release
keycode  72 press
keycode  72 release
keycode  56 release

这会带来很多问题,因为我经常错误地按下它。在mc它终止它,它在历史中搜索等等

我想将其重新映射到 PgUp,以按照光标键块的预期行为,但我找不到它的定义位置或如何重新映射它。有人可以帮助我吗?

我使用 Gentoo 和 Fluxbox 和 uxrvt 作为终端。

PS:showkey即使没有 也显示相同的内容X,但按下该键只会产生一个方框字符(我想印刷的欧元不好)

PSS:为什么它不重复:

  • xbindkeys我没有运行就遇到问题

  • 即使没有运行 X,我也会遇到问题

  • 我的问题是相反的 - 如何阻止按键发送代码序列,而不是如何发送此类序列 - 并且解决方案(运行程序发送序列)无助于“吃掉”序列,我也不能停止使用提到的程序,因为它尚未运行,并且xmacroplay甚至不存在于我的笔记本电脑上

答案1

鉴于 ALT0128 是 Microsoft 的东西(在 Windows 上使用 Microsoft 字符集中的十进制代码点输入字符),我怀疑它是在硬件/固件中完成的,而不是在(基于 Linux 的)操作系统中完成的。

也许 Linux 看到的所有内容与按下以下键时看到的内容完全相同:keydown alt key 0 key 1 key 2 key 8 keyup alt。

要确认这一点,您可以运行:

watch -d -n 0.2 cat /proc/interrupts

并比较当您使用 键入时会发生A什么

您应该看到 的某个数字增加了 2 A,如果 的数字增加了 10 ,那么您在操作系统级别可能无能为力。

您可以向 Acer 咨询是否有办法重新编程键盘,或者您可以物理断开、破坏、粘合或粘贴该按键。

虽然我不认为在操作系统甚至 X11 级别上可以做很多事情,但使用 GNU screen,您可以将终端在该系列事件上发送的字符序列绑定到某些操作,例如正常插入字符序列生成于PageUP(在 ~/.screenrc 中):

bindkey \0330\0331\0332\0338 stuff "\033[2~"

那么至少对于您在screen.

相关内容