终端更改键

joh*_*nes 6 ubuntu terminal

是否可以在 Unix 终端中更改某些键盘键?

例如:当我按下 ,然后_打印?

如果这确实可能,我该怎么做?

我在 Ubuntu 上。

Emi*_*mil 6

这里引用:

自定义表

您可以创建自己的地图并将其存储在您的主目录中(即 ~/.Xmodmap)。将当前的键盘映射表打印到配置文件中:

xmodmap -pke > ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)

对 ~/.Xmodmap 进行所需的更改,然后使用以下命令测试新配置:

xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)

要在启动 Xorg 时激活自定义表,请添加以下内容:

~/.xinitrc
if [ -f $HOME/.Xmodmap ]; then
    /usr/bin/xmodmap $HOME/.Xmodmap
fi
Run Code Online (Sandbox Code Playgroud)

或者,编辑全局启动脚本 /etc/X11/xinit/xinitrc

测试更改

您还可以对当前会话进行临时更改。例如:

xmodmap -e "keycode  46 = l L l L lstroke Lstroke lstroke"
xmodmap -e "keysym a = e E"
Run Code Online (Sandbox Code Playgroud)

还:

有关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
   }
Run Code Online (Sandbox Code Playgroud)

这样我就可以将 Caps 动态映射到 Esc。

真的没有限制。随意从~/.xinitrc、~/.bash_profile、自定义脚本等调用xmodmap。


小智 1

如果您想在 X 窗口系统中执行此操作,可以使用 Xmodmap。我从来没有掌握过语法,所以找到一个有效的示例,然后从那里开始。