如何获得在Linux上使用Java应用程序的数字键盘箭头

数字键盘上的箭头键不适用于Linux上的Java应用程序。 奇怪的是,Home,End,PgUp,PgDn,Ins,Del都工作正常。

使用Intellij进行编程时,这特别烦人。

你如何使箭头键工作?

Solutions Collecting From Web of "如何获得在Linux上使用Java应用程序的数字键盘箭头"

IntelliJ(和CLion)提供了配置密钥映射的功能。 在File->Settings->Keymap->Editor actions ,可以将两个击键(“正常”上/下/左/右和键盘)分配给相应的动作。 一旦完成,所有的作品就像一个魅力。 没有必要摆弄xkb或其他东西。

键盘上的物理键被映射到使用xkb的键码。 下面是我如何在Linux的Debian衍生工具上使用Java应用程序(如Intellij)的数字键:

  1. 切换到root用户
  2. cd / usr / share / X11 / xkb / symbols
  3. (为了以防万一)
  4. 编辑小键盘,分别用上替换所有出现的KP_UpKP_DownKP_LeftKP_Right
  5. 保存
  6. dpkg-reconfigure xkb-data
  7. 重启

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

我没有足够的评价来评价,但彼得的解决方案在经过了很长的一段时间之后才真正解决了这个问题。

我创建了一个bash脚本来实现自动化,并认为我会在这里分享它:

 #!/bin/bash SYMBOLS="/usr/share/X11/xkb/symbols" KEYPAD="$SYMBOLS/keypad" # create a backup in a temporary directory TMP=$(mktemp -d) cp "$KEYPAD" "$TMP/keypad" # make a numbered backup in the original directory sudo cp --backup=numbered "$TMP/keypad" "$SYMBOLS" # fix the keypad file into the temporary directory KEYS=("Up" "Down" "Left" "Right" "Home" "End" "Prior" "Next") REGEX="s/KP_\("${KEYS[0]}$(printf "\|%s" "${KEYS[@]:1}")"\)/\1/g" sed -e "$REGEX" "$KEYPAD" > "$TMP/keypad" # overwrite the original keypad file sudo cp "$TMP/keypad" "$KEYPAD" # delete the temporary directory rm -rf "$TMP" # update the xkb symbols sudo dpkg-reconfigure xkb-data 

编辑:改进版本

另外一个选择:

  1. 编辑/ etc / default / keyboard(保存一份副本以防万一)
  2. 将XKBOPTIONS的值添加或更新为“numpad:microsoft”
  3. 保存存档
  4. 重启