按住空格键有时会返回 xev 格式的韩文

按住空格键有时会返回 xev 格式的韩文

我最近决定尝试一下 Emacs。我发现该软件非常令人沮丧的一件事是,大多数时候,当我按住空格键时,我只会插入一个空格字符,并显示一条消息:

<Hangul> is undefined

在回声区。按空格曾经工作得很好,我可以通过重复按空格键来实现多个空格字符,但按住空格键并没有按预期工作。我去 Google 进行故障排除,但除了这个线程我找不到太多有关它的信息。我很幸运地找到了解决方案,点击数字锁定似乎可以解决问题,但是每次打开 Emacs 时我都需要这样做(也许每次我打开一个新缓冲区时 - 我没有过多地使用它)。

我打开 xev,发现按住空格键大部分会产生空格字符,正如预期的那样,但有时它会产生韩文。这是一些示例输出

KeyPress event, serial 34, synthetic NO, window 0x2800001,
    root 0x6c4, subw 0x0, time 2848166447, (-197,490), root:(767,510),
    state 0x0, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XmbLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

KeyPress event, serial 34, synthetic NO, window 0x2800001,
    root 0x6c4, subw 0x0, time 2848166463, (-197,490), root:(767,510),
    state 0x0, keycode 130 (keysym 0xff31, Hangul), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2800001,
    root 0x6c4, subw 0x0, time 2848166511, (-197,490), root:(767,510),
    state 0x0, keycode 130 (keysym 0xff31, Hangul), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x2800001,
    root 0x6c4, subw 0x0, time 2848166567, (-197,490), root:(767,510),
    state 0x0, keycode 65 (keysym 0x20, space), same_screen YES,
    XLookupString gives 1 bytes: (20) " "
    XFilterEvent returns: False

很难重现这个错误,而且当它发生时我无法分辨出我做了什么不同的事情,但是每当我看到这个错误时,它似乎都遵循这个 Keypress Keypress Keyrelease Keyrelease 模式。

我使用了命令xkbcomp $DISPLAY my_keymap.xkb,并且我已经已将文件上传至github如果有帮助的话。朝鲜文是在那里定义的,但我仍然不明白它是如何被触发的。

我认为可能有帮助的一些附加信息:

  • 我使用的是 qwerty 键盘

  • 我正在使用 Linux Mint 19.2

  • 虽然显然这是一个系统范围的问题,因为它是由 xev 检测到的,但我没有注意到这会导致我运行的应用程序出现任何奇怪的行为(Emacs 除外)。如果我没有运行 Emacs,我可能不会知道这一点。

  • 的输出setxkbmap -query

    规则:evdev 型号:pc105 布局:us

任何解决此问题的帮助将不胜感激。

相关内容