Linux系统管理:linux修改键盘按键


http://www.examw.com/linux/all/199820/

 

我的电脑:Fedora-19

  $ uname -a

  Linux localhost.localdomain 3.11.10-200.fc19.i686 #1 SMP Mon Dec 2 20:48:22 UTC 2013 i686 i686 i386 GNU/Linux

  使用xmodmap工具进行修改,使用man xmodmap,里面就有交换按键caplock(大小写切换键)和右ctrl键的例子,

  如果您的修改不同,可以做相应的替换即可。我就是参考这个例子对我的右Alt键和Ctrl键进行修改的。

  下面先看man自带的例子

  !

  ! Swap Caps_Lock and Control_L

  !

  remove Lock = Caps_Lock

  remove Control = Control_L

  keysym Control_L = Caps_Lock

  keysym Caps_Lock = Control_L

  add Lock = Caps_Lock

  add Control = Control_L

  将上面的语句写入文件,例如keymaprc,然后xmodmap keymaprc即可生效,因为这个是交换键的功能,如果您执行第二次的话,按键就又会恢复回来的。

  注意:这个重启会失败。

  下面是我自己的修改,为了重启也能有效,我将命令xmodmap keymaprc写入启动脚本里面,也把keymaprc命名为隐藏文件: .keymaprc,放在$HOME目录下。

  $ cat ~/.keymaprc

  remove Control = Control_R

  remove mod1 = Alt_R

  keysym Control_R = Alt_R

  keysym Alt_R = Control_R

  add Control = Control_R

  add mod1 = Alt_R

  alt对就MODIFIERNAME为mod1,可以在man文档中找到其他的MODIFIERNAME,也可以直接xmodmap查看,window键应该对应mod4

  $ xmodmap

  xmodmap: up to 4 keys per modifier, (keycodes in parentheses):

  shift Shift_L (0x32), Shift_R (0x3e)

  lock Caps_Lock (0x42)

  control Control_L (0x25), Control_R (0x69)

  mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)

  mod2 Num_Lock (0x4d)

  mod3

  mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)

  mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)

  为了重启有效,在~/.bashrc文件最后面加入下面的执行命令,存在问题,每打开一个终端命令就会被调用一次,按键就被恢复过来的,不知道放哪

  xmodmap $HOME/.keymaprc

  重启就会生效了,当然也可以直接source ~/.bashrc不过只有当前终端生效。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM