长按 Enter 键作为 Control 键

长按 Enter 键作为 Control 键

我是 Emacs 用户,我想将长按 Enter 作为额外的控制键。我以前在 Mac OS 中使用 KeyboardRemap4Macbook 来实现这一点。但无法找到如何在 Ubuntu Unity 中实现它。这将大大节省我的左手手指 :)

答案1

这个问题可以通过使用 xcape 解决(sudo apt-get install xcape或者从 github 上查看 -https://github.com/alols/xcape

并按照 README 中的脚本进行操作:

# Map an unused modifier's keysym to the spacebar's keycode and make it a
# control modifier. It needs to be an existing key so that emacs won't
# spazz out when you press it. Hyper_L is a good candidate.
spare_modifier="Hyper_L"
xmodmap -e "keycode 65 = $spare_modifier"
xmodmap -e "remove mod4 = $spare_modifier" # hyper_l is mod4 by default
xmodmap -e "add Control = $spare_modifier"

# Map space to an unused keycode (to keep it around for xcape to
# use).
xmodmap -e "keycode any = space"

# Finally use xcape to cause the space bar to generate a space when tapped.
xcape -e "$spare_modifier=space"

无论发行版是什么,它对我来说都有效 - 除了 Ubuntu 17.04 之外,我还在 Fedora 23 和 Debian9 上运行过它,因为它是一个通用解决方案。谢谢

相关内容