Ubuntu修改外接键盘的映射

作为一个emacs使用者,觉得把大写锁定和左侧的ctrl键交换一下是比较方便的做法,但是发现插了外接键盘之后之前修改的映射没法用了,于是上网搜索了一下解决方案,参考:http://blog.csdn.net/yxz329130952/article/details/52349163

HWDB

使用lsusb来确定外接键盘的ID并记下,后面会用到。例如:
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching HubBus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hubBus 001 Device 096: ID 046a:0014 Cherry GmbH Bus 001 Device 094: ID 046a:0011 Cherry GmbH G83 (RS 6000) KeyboardBus 001 Device 005: ID 17ef:100a Lenovo ThinkPad Mini Dock Plus Series 3Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver

确定需要映射键位的keycode,推荐使用getscancodes来检测对应键位的keycode,下载地址在这里, 下载后可以根据自己的情况进行编译:

$ cd getscancodes
$ makegcc -O2 -Wall -c -o getscancodes.o getscancodes.cgcc -o getscancodes getscancodes.o
$ ./getscancodes Usage: ./getscancodes /dev/input/eventXWhere X = input device number```

当然我是直接使用的下载文件夹中编译好的getscancodes文件。由于每个输入设备在*/dev/input*目录下都有一个对应的event文件,可以通过插拔对应的输入设备来确定设备对应的是哪个event文件,然后就可以使用getscancodes来确定对应键盘键位的keycode,例如*$ sudo ./getscancodes /dev/input/event11*
Input driver version is 1.0.1Input device ID: bus 0x3 vendor 0x46a product 0x14 version 0x111Input device name: "HID 046a:0014"458850 (0x70062)

其中按下对应键后屏幕输出的信息就是这个键位对应的信息,其中第四行中的***0x70062***就是对应键的keycode。

创建映射配置文件。在确定了输入设备ID和对应键位的keycode后,就可以在*/etc/udev/hwdb.d/*目录下创建配置文件来实现映射,配置文件必须以hwdb作为扩展名,示例内容如下:

keyboard:usb:v046DpC31C*
KEYBOARD_KEY_0x70039=rightctrl
KEYBOARD_KEY_0x700e4=capslock


其中第一行指明了需要修改映射的输入设备,其中v046Ap0014*就对应输入键盘的ID,**注意:ID中的字母必须为大写,并以v开头,p分隔和*号结尾。** 后面的几行必须以空格开头,等号前的16进制数据部分就是对应键的keycode,等号后面为键映射后的标示符,其中有效的标示符大家可以查看[这里](https://hal.freedesktop.org/quirk/quirk-keymap-list.txt)。创建好了配置文件4. 后就可以通过重启或者*$ sudo udevadm -d hwdb –update;sudo udevadm -d control –reload*来使配置生效。 最后[测试](http://lib.csdn.net/base/softwaretest)使用第二种方法成功将我的外接键盘进行了映射。但是还有一个问题是,如果在映射生效后如果再插拔设备,那么本次映射就失效了,需要重新执行第4步来重新使配置生效。不过好在这个问题应该可以通过shell脚本解决。

以下是标识符:

0
1
102nd
2
3
4
5
6
7
8
9
a
ab
addressbook
again
alterase
angle
apostrophe
archive
audio
aux
b
back
backslash
backspace
bassboost
battery
blue
bluetooth
bookmarks
break
brightnessdown
brightnessup
brl_dot1
brl_dot2
brl_dot3
brl_dot4
brl_dot5
brl_dot6
brl_dot7
brl_dot8
c
calc
calendar
camera
cancel
capslock
cd
channel
channeldown
channelup
chat
clear
close
closecd
coffee
comma
compose
computer
config
connect
copy
cut
cyclewindows
d
database
del_eol
del_eos
delete
deletefile
del_line
digits
direction
directory
displaytoggle
documents
dot
down
dvd
e
edit
editor
ejectcd
ejectclosecd
email
end
enter
epg
equal
esc
exit
f
f1
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f2
f20
f21
f22
f23
f24
f3
f4
f5
f6
f7
f8
f9
fastforward
favorites
file
finance
find
first
fn
fn_1
fn_2
fn_b
fn_d
fn_e
fn_esc
fn_f
fn_f1
fn_f10
fn_f11
fn_f12
fn_f2
fn_f3
fn_f4
fn_f5
fn_f6
fn_f7
fn_f8
fn_f9
fn_s
forward
forwardmail
front
g
games
goto
graphicseditor
grave
green
h
hangeul
hanguel
hanja
help
henkan
hiragana
home
homepage
hp
i
info
insert
ins_line
iso
j
k
katakana
katakanahiragana
kbdillumdown
kbdillumtoggle
kbdillumup
keyboard
kp0
kp1
kp2
kp3
kp4
kp5
kp6
kp7
kp8
kp9
kpasterisk
kpcomma
kpdot
kpenter
kpequal
kpjpcomma
kpleftparen
kpminus
kpplus
kpplusminus
kprightparen
kpslash
l
language
last
left
leftalt
leftbrace
leftctrl
leftmeta
leftshift
linefeed
list
m
macro
mail
media
memo
menu
messenger
mhp
min_interesting
minus
mode
move
mp3
msdos
muhenkan
mute
n
new
news
next
nextsong
numlock
o
ok
open
option
p
pagedown
pageup
paste
pause
pausecd
pc
phone
play
playcd
player
playpause
power
power2
presentation
previous
previoussong
print
prog1
prog2
prog3
prog4
program
props
pvr
q
question
r
radio
record
red
redo
refresh
reply
reserved
restart
rewind
right
rightalt
rightbrace
rightctrl
rightmeta
rightshift
ro
s
sat
sat2
save
screen
screenlock
scrolldown
scrolllock
scrollup
search
select
semicolon
send
sendfile
setup
shop
shuffle
slash
sleep
slow
sound
space
sport
spreadsheet
stop
stopcd
subtitle
suspend
switchvideomode
sysrq
t
tab
tape
teen
text
time
title
tuner
tv
tv2
twen
u
undo
unknown
up
v
vcr
vcr2
vendor
video
videophone
voicemail
volumedown
volumeup
w
wakeup
wlan
wordprocessor
www
x
xfer
y
yellow
yen
z
zenkakuhankaku
zoom
zoomin
zoomout
zoomreset
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 98,514评论 9 468
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,204评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 11,613评论 4 59
  • 下午,寝室的小黑打电话找我解闷唠嗑儿。她说自己在家太闷了,除了看电视,吃饭,睡觉就没有别的事儿了。 然后,我向她推...
    小小亭子阅读 263评论 2 1