方法 | 键盘部分按键失灵怎么办?

图片来自pexels.com

前面这段闲扯淡,列位看官可以略过,直接奔干货
键盘部分按键失灵怎么办?当然是换了。
当然,如果是普通键盘,换一个无非几十块钱。
但是,如果是笔记本呢?甚至如果是机械键盘呢?前者得上百,后者得上几千了吧。当然,如果您是壕,请随意,当我没说。
比如,如果我一个机械键盘(假装我有)的一个重要的按键坏了,其它键都能用,难道我就要重买一个吗?我买这个时就咬着后槽牙呢好不好!
(重要按键举例:Fn, Ctrl, Home, End, PgUp, PgDn, Delete, Backspace......)
尤其是像我这样“扣门儿”的,我是抱着把牢底坐穿的精神去省钱,坚持以葛朗台老头儿为榜样,争取把他从坟墓里气活过来!
可是,最近我那“老破小”的笔记本几个按键失效了:方向键(尤其是上下键),Home, End。这几个键为什么重要?身为“脚本小子”的我们应该都理解吧。换一个得100多,没舍得。但是,我有“更改键盘映射”大法啊!

--------------------------------------------我是分割线------------------------------------------------

下面上干货。我的环境:
操作系统:Ubuntu18.04LTS
失灵的键:Up, Down, Home, End
我想用以下键代替它们:PgUp, PgDn, Menu, Control_R(右Ctrl键)

  • 第一个问题,如果我不知道键盘码(Keycode)是多少怎么办?
    键盘映射文件中,这些Keycode一般可以望文生义,实在不行你还可以查看:
#我的办法是:
xev > ~/keycode.txt #我把结果保存到我的家目录下的keycode.txt文件,以利查看
#然后,会弹出来一个对话框,记录你的键盘事件和鼠标事件
# 这时,依次按下:PgUp, PgDn, Menu, Control_R(也就是我想用以替换的键), 然后,关闭测试窗口
  • 打开结果文件:keycode.txt, 查看。类似下面这样:
KeyPress event, serial 34, synthetic NO, window 0x4600001,
    root 0x517, subw 0x0, time 1758003, (82,107), root:(713,492),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x4600001,
    root 0x517, subw 0x0, time 1758114, (82,107), root:(713,492),
    state 0x0, keycode 112 (keysym 0xff55, Prior), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

上面,Prior 就是PgUp 键的动作。

下面,更改键盘映射:

cd /usr/share/X11/symbols/
#先备份一下吧,否则你会很麻烦,别问我是怎么知道的。
sudo cp ./pc ./pc_Your_backup
#为什么加上你自己的用户名:是为了好让你一眼看出来是你自己备份的。
sudo vim ./pc

这个文件像这样:

    key   {   [ BackSpace, BackSpace  ]   };
    key    {   [ Tab,  ISO_Left_Tab    ]   };
    key   {   [ Return                ]   };
    key   {   [ Caps_Lock             ]   };
    key   {   [ Num_Lock              ]   };
    key   {   [ Shift_L               ]   };

依次查找并替换的条目(这是我自己的):

原           --  新
Control_R   --  End     //把右Ctrl键改为End
Home        --  Menu
Menu        --  Home    //把Menu键改为Home
Prior       --  Up      //把PgUp键改为Up
End         --  Control_R
Next        --  Down
Up          --  Prior
Down        --  Next
  • 如果未生效就重启系统。
  • 如果我改错了,电脑无法启动了怎么办?

这是我踩过的一个坑
我第一次修改过后,电脑可以启动,但是键盘不能用了。就好像治聋倒治哑了一样!别急,请拿出你的LiveCD,并启动,进入无法启动的系统的目录( /usr/share/X11/symbols/):

sudo cp ./pc_Your_backup ./pc   #覆盖掉原来的文件
#ps:
#说一下失败的可能原因:
#可能是因为[ ] { } 各自应该对齐。

现在,重新启动吧。
Cheers!

你可能感兴趣的:(方法 | 键盘部分按键失灵怎么办?)