xmodmap 重新映射在 java swing 应用程序(如 Intellij-IDEA)中不起作用

xmodmap 重新映射在 java swing 应用程序(如 Intellij-IDEA)中不起作用

我创建了一个.Xmodmap文件来将我的重新映射Caps_LockMode_switch。这允许我重新分配键盘的箭头/导航块到主行。
一切都运行良好,直到我意识到,在 Java 平台上编写并使用的程序Swing(如 Jetbrains 的编辑器)无法识别这些重新映射。

现在我想将这些设置移植到xkb,因为 已弃用xmodmap
(我认为这可以解决这个问题,但我真的不知道如何使用 xkb 来实现同样的效果。)配置xkb让我感到困惑,而且对于这几个重新映射来说,这似乎是一种非常复杂的方法。

那么,我该怎么做呢?

我真的更喜欢另一种方法/解决方法来解决 java 问题,这样我就可以保留我的 xmodmap 配置。

这是我的.Xmodmap文件:

! Disable Caps Lock and use it as mode switch
keycode 66 = Mode_switch Mode_switch

! Toggle Caps Lock with <Mode_switch> + <Control_R>
keysym Control_R = Control_R Control_R Caps_Lock

! Remap navigation block to ijkl...
keysym j = j J Left Left
keysym l = l L Right Right
keysym i = i I Up Up
keysym k = k K Down Down
keysym u = u U Home Home
keysym o = o O End End

! ö Ö
keycode 47 = odiaeresis Odiaeresis BackSpace BackSpace

keysym h = h H Delete Delete 
keysym n = n N Prior Prior

! enable mu for use with Iso_Level_3 (the right alt key on german keyboards)
keysym m = m M Next Next mu mu

! Space to Escape
keysym space = space space Escape


这是我的 xmodmap 输出:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Mode_switch (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

答案1

我没有办法让它工作,xmodmap幸运的是,我偶然发现一个家伙已经用 做了类似的东西xkb。只需点击此链接并按照那里的说明使用映射到 的“扩展”布局来扩展键盘Caps_Lock布局ISO_Level_5http://forum.colemak.com/viewtopic.php?id=1438&p=1

请继续阅读论坛,了解我如何解决困扰我的一些小问题。
如果您的 ttys 和 capslock 无法正常工作,请查看此处:http://forum.colemak.com/viewtopic.php?id=1438&p=4

谢谢Øystein Bech“DreymaR”Gadmar,让这一切成为可能!

玩得开心!

答案2

我找到了允许使用重新映射键的解决方案修改映射比如你的箭pycharm

在“设置”>“键盘映射”中使用国家/地区布局来设置快捷键

请参阅此链接:https://youtrack.jetbrains.com/issue/IDEA-263057

相关内容