如何让数字键盘箭头在 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_UpKP_DownKP_LeftKP_Right 替换为 Up 分别 保存 dpkg-reconfigure xkb-data 重启

现在数字键盘将发出常规的箭头键代码,而不是 java 无法识别的数字键盘箭头键代码。

【讨论】:

嗨彼得,我正在尝试做同样的事情(但我使用大写锁定来访问额外的键和键盘映射略有不同)并面临同样的问题。我很好奇这个技巧是否能解决您安装中 Freeplane 的问题。对我来说,RedirectKey 适用于非 Java 应用程序和一些 Java 应用程序(如 Eclipse),但无法在 Freemind/Freeplane 中工作。我设法让 Freeplane 使用叠加层看到这些键,但未能使用修饰符制作键(例如 u 用于 Ctrl-Lefto 用于 Ctrl-RightRedirectKey(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 应用程序一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如何让键盘上的箭头键触发博客内的导航(上一页/下一页)链接

使用数字键盘但没有箭头按钮的跨浏览器数字输入

为啥linux 默认不启动小键盘

林间空地键盘(转义,箭头)加速器

在移动设备上输入时,如何让我的 React TextField 打开数字键盘?

idea中展开折叠的文件夹