layout: "post"
title: "Caps_Lock與右Ctrl互換"
category: "配置推薦"
tags:
date: "2016-07-14 08:59"
實(shí)現(xiàn)該功能的目的主要是切換中英文輸入法,在使用 ctrl 或者 shift 切換時(shí)徽职,很明顯這兩個(gè)鍵的位置遠(yuǎn)不如caps按起來(lái)方便棒搜,且 shift 往往作為大小寫功能使用,用來(lái)作為切換中英文輸入會(huì)恨混亂活箕,而 caps 作為大小寫時(shí)用起來(lái)相當(dāng)罕見力麸,作為中文輸入來(lái)說(shuō)更可以說(shuō)完全是雞肋的功能。大寫完全可以用 shift 代替的用戶群中育韩,無(wú)疑是占用了一個(gè)最好的位置克蚂,卻幾乎完全被遺忘的一個(gè)按鍵。下面將會(huì)總結(jié)一個(gè)既保留 Caps_Lock 鍵功能筋讨,又可以充分利用這個(gè)最好位置的按鍵映射方法埃叭。
linux系統(tǒng)下的實(shí)現(xiàn)
按鍵值查詢
linux 下可以通過(guò)命令小程序?qū)^大多數(shù)按鍵值進(jìn)行查找,要想修改鍵值映射, 先要知道按鍵的鍵值. 用如下命令查看: xev | grep keycode
悉罕。
同時(shí)我們可以查看需要映射的按鍵的映射名稱:
例如, 執(zhí)行命令查看 Menu 鍵相關(guān)的按鍵名:
xmodmap -pke | grep menu -i
顯示結(jié)果為:
keycode 135 = Menu NoSymbol Menu
keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
比如想把鍵盤的右邊的 Alt 改為 Menu : xmodmap -e "keycode 108=Menu"
赤屋,簡(jiǎn)而言之 xmodmap 程序就是用來(lái)控制系統(tǒng)按鍵的立镶,需要詳細(xì)了解這個(gè)軟件的操作,可以查看幫助文檔类早。
將Caps_Lock和鍵盤右邊的Ctrl調(diào)換
在當(dāng)前的用戶根目錄下~創(chuàng)建 .Xmodmap 文件(尤其注意:這邊名稱是Xmodmap首字母大寫,很多教程都忽略了這個(gè)問(wèn)題,往往導(dǎo)致配置出來(lái)有問(wèn)題)媚媒,書寫內(nèi)容如下:
remove Lock = Caps_Lock
remove Control = Control_R
keysym Control_R = Caps_Lock
keysym Caps_Lock = Control_R
add Lock = Caps_Lock
add Control = Control_R
這樣,caps lock 和 ctrl 就都是 ctrl 的功能涩僻。執(zhí)行下xmodmap ~/.Xmodmap 2>/dev/null
即可立即生效缭召。實(shí)際上,每次開機(jī)啟動(dòng)后逆日,系統(tǒng)會(huì)通過(guò) xmodmap 程序自動(dòng)加載 .Xmodmap 程序嵌巷,也就是一次創(chuàng)建更改 .Xmodmap 文件,終身配置有效室抽。
注意:完成上述步驟即可爽茴,以下步驟為最初設(shè)置時(shí),出現(xiàn)的問(wèn)題,可以忽略不看膳殷。
加入開機(jī)自啟
同大多數(shù)開機(jī)自啟并沒有太大區(qū)別炊琉,將xmodmap ~/.xmodmap 2>/dev/null
寫入到 /etc/rc.local 中即可弃甥。該方法經(jīng)常失效,不是太靈驗(yàn)神年,因此我設(shè)置了快捷鍵 ctrl+space 已维,每次按下這個(gè)快捷鍵時(shí),會(huì)自動(dòng)執(zhí)行xmodmap ~/.xmodmap 2>/dev/null
已日。
解決:由于上面命名錯(cuò)誤, .Xmodmap 文件的首字母是大寫垛耳,因此加載總是出錯(cuò),另外使用 xmodmap ~/.Xmodmap 2>/dev/null
命令后飘千,每次無(wú)需再加入啟動(dòng)項(xiàng)了堂鲜,一次配置成功即可。
windows下的更換按鍵
打開注冊(cè)表护奈,在運(yùn)行(win+R)中輸入 regedit 缔莲,注冊(cè)表位置:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout] (注意: KeyBoard Layout, 而不是 KeyBoard Layouts)如果沒有此鍵,就新建一個(gè)二進(jìn)制值的 Key霉旗,名叫: Scancode Map(注意名稱不能夠?qū)戝e(cuò)痴奏,錯(cuò)一個(gè)字母都沒法實(shí)現(xiàn)功能)。
輸入如下的值:
00,00,00,00
00,00,00,00
03,00,00,00
3A,00,1D,E0
1D,E0,3A,00
00,00,00,00
windows 各個(gè)鍵位值的參考:
Escape 01 00
Tab 0F 00
Caps Lock 3A 00
Left Alt 38 00
Left Ctrl 1D 00
Left Shift 2A 00
Left Windows 5B E0
Right Alt 38 E0
Right Ctrl 1D E0
Right Shift 36 00
Right Windows 5C E0
Backspace 0E 00
Delete 53 E0
Enter 1C 00
Space 39 00
Insert 52 E0
HOME 47 E0
End 4F E0
Num Lock 45 00
Page Down 51 E0
Page Up 49 E0
Scroll Lock 46 00
以上 windows 的按鍵更改僅在 windows 7 下實(shí)驗(yàn)過(guò)厌秒,其他系統(tǒng)有待驗(yàn)證读拆。
參考鏈接:
http://www.cnblogs.com/xiaobaibuhei/p/3629133.html
http://hanjc.me/post/2015-09-14-win7-exchange-capslock-and-ctrl/
http://www.mikewootc.com/wiki/linux/usage/linux_xmodmap_change_keyboard_map.html
http://baohaojun.github.io/blog/2015/01/12/0-How-to-swap-Escape-and-Caps-Lock-on-mainstream-PCs.html
http://www.xiaozhou.net/exchange_ctrl_and_capslock_key-2012-07-20.html
http://xahlee.info/kbd/linux_make_capslock_esc_key.html