如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用
Posted
技术标签:
【中文标题】如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用【英文标题】:How to get numeric keypad arrows working with java applications on Linux 【发布时间】:2015-09-24 04:08:35 【问题描述】:数字键盘上的箭头键不适用于 Linux 上的 Java 应用程序。奇怪的是,Home、End、PgUp、PgDn、Ins、Del 都可以工作。
这在使用 Intellij 进行编程时尤其烦人。
如何使箭头键起作用?
【问题讨论】:
我曾经在带有“Fn”键的键盘上使用这种方法。但现在我使用 xkb: ***.com/q/32822857/358006 在传统键盘上模拟“Fn”键。但是感谢@mikesullivan,他的答案似乎比我的更简单。 【参考方案1】:IntelliJ(和 CLion)提供配置键映射的功能。在File->Settings->Keymap->Editor actions
下,可以将两个击键(“正常”上/下/左/右和键盘击键)分配给相应的操作。完成此操作后,所有工作都像魅力一样。不需要摆弄 xkb 什么的。
【讨论】:
这对除“Del”按钮(CLion 将其解释为“Period”)之外的所有小键盘键都具有魅力【参考方案2】:键盘上的物理键使用xkb 映射到键码。以下是我如何在 Linux 的 Debian 衍生产品上使用 Java 应用程序(如 Intellij)使用数字键:
-
切换到root用户
cd /usr/share/X11/xkb/symbols
cp keypad keypad.original(以防万一)
编辑键盘并将所有出现的 KP_Up、KP_Down、KP_Left 和 KP_Right 替换为 Up 、下、左和右分别
保存
dpkg-reconfigure xkb-data
重启
现在数字键盘将发出常规的箭头键代码,而不是 java 无法识别的数字键盘箭头键代码。
【讨论】:
嗨彼得,我正在尝试做同样的事情(但我使用大写锁定来访问额外的键和键盘映射略有不同)并面临同样的问题。我很好奇这个技巧是否能解决您安装中 Freeplane 的问题。对我来说,RedirectKey
适用于非 Java 应用程序和一些 Java 应用程序(如 Eclipse),但无法在 Freemind/Freeplane 中工作。我设法让 Freeplane 使用叠加层看到这些键,但未能使用修饰符制作键(例如 u
用于 Ctrl-Left
和 o
用于 Ctrl-Right
和 RedirectKey(modifiers=Control, ...)
)并且在使用其他修饰符按下大写锁定时出现奇怪的错误键。
@krvkir,对不起,我不使用 Freeplane。我认为 xkb hack 对一切都有效。我每天都使用类似的 xkb hack 来获取 an integrated cursor movement keypad,它适用于我的所有目的。
这听起来像是other answer 暗示为什么需要这个改变...
@matanster,不确定你的意思。【参考方案3】:
另一种选择:
-
编辑 /etc/default/keyboard(保存一份以防万一)
将 XKBOPTIONS 的值添加或更新为“numpad:microsoft”
保存文件
重启
【讨论】:
以上是关于如何让数字键盘箭头在 Linux 上与 Java 应用程序一起使用的主要内容,如果未能解决你的问题,请参考以下文章