是否可以在 Unix 终端中更改某些键盘按键?
例如:当我按下 ,
然后_
打印?
如果这确实可能,我该怎么做呢?
我在Ubuntu上。
答案1
引用自这里:
定制桌子
您可以创建自己的地图并将其存储在您的主目录中(即~/.Xmodmap)。将当前的键盘映射表打印到配置文件中:
xmodmap -pke > ~/.Xmodmap
对 ~/.Xmodmap 进行所需的更改,然后使用以下命令测试新配置:
xmodmap ~/.Xmodmap
要在启动 Xorg 时激活自定义表,请添加以下内容:
~/.xinitrc if [ -f $HOME/.Xmodmap ]; then /usr/bin/xmodmap $HOME/.Xmodmap fi
或者,编辑全局启动脚本
/etc/X11/xinit/xinitrc
。测试变更
您还可以对当前会话进行临时更改。例如:
xmodmap -e "keycode 46 = l L l L lstroke Lstroke lstroke" xmodmap -e "keysym a = e E"
还:
请参阅man xmodmap
了解更多详情。
编辑:
澄清一下:xmodmap ~/.Xmodmap
可以在很多地方使用,而不仅仅是在启动 Xorg 时。例如,我的 ~/.bashrc 中有这两个函数:
# map caps to esc
mapcaps(){
xmodmap -e "clear lock"
xmodmap -e "keycode 0x42 = Escape"
echo mapcaps: caps-lock set to Escape via xmodmap
}
unmapcaps(){
xmodmap -e "keycode 0x42 = Caps_Lock"
xmodmap -e "add lock = Caps_Lock"
echo unmapcaps: caps-lock set to caps-lock via xmodmap
}
这样我就可以动态地将 Caps 映射到 Esc。
确实没有限制。请随意从 ~/.xinitrc、~/.bash_profile、自定义脚本等调用 xmodmap。
答案2
说实话,我从来没有尝试过做你正在尝试的事情。不过,我之前已经为终端(非 X)添加了备用键绑定(键组合)。
您可以使用以下命令查看您的按键绑定:showkey
或showkey -s
您将使用相关程序进行额外的研究和修改。
loadkeys
dumpkeys
keymaps
setkeycodes
对我来说,在 Slackware 中进行更改非常容易,我花了一些时间在 Ubuntu 中查找,但没有找到相同的文件/usr/share/kbd/keymaps/i386/qwerty/*map.gz
。虽然我只能访问实时启动的 Ubuntu 系统。你可能会过得更好。
答案3
如果您想在 X 窗口系统中执行此操作,可以使用 Xmodmap。我从来没有掌握过语法,所以找一个工作示例,然后从那里开始。