日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux键盘修改工具,Linux 键盘映射的修改(Console)

發布時間:2023/12/20 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux键盘修改工具,Linux 键盘映射的修改(Console) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你沒有過因為字符終端(Console)與 X 之間切換的不一致而煩惱,Console 到 X ,Alt-Fx ,Ctrl-Alt-Fx 都可以。而 X 到 Console 要 Ctrl-Alt-Fx ?重新映射一下鍵盤可以解決這個不一致的問題(當然還可以做其它的事)。下面我簡要介紹一下方法,供有興趣的同學參考。

這里首先說說 Console 下面的按鍵映射。Console 下面按鍵映射,可以用 showkey loadkeys dumpkeys 這三個工具搞定,基本流程是用 showkey 查看按鍵的 keycode, 用 dumpkeys DUMP 當前的 keymap 進行修改,當然也可以從其它地方找來一個 keymap 來改,最后用 loadkeys 來加載新的 keymap。如果把加載的命令放到 /etc/rc.local 里面,啟動后就自動加載了。所有的知識都在 showkey loadkeys dumpkeys 和 keymaps 的 man 手冊里面。這里只結合我的 keymap 進行簡要介紹。

第一行:

keymaps 0-1,4-5,8-9,12

這行很重要,因為 keymap 可以最多有 256 列,所以要先聲明該 keymap 定義哪些列。這里只定義 0-1, 4-5, 8-9, 12 這7行。如果像下面這種定義方式(參見 man keymaps,COMPLETE KEYCODE DEFINITIONS),定義一個 keycode 對應的 keysym,也就是該鍵對應的動作,就要把這7列都注明,定義為 VoidSymbol 表示沒有動作。像這種定義方式,第8列開始,以后沒有提及,就自動定義為 VoidSymbol 了。

keycode ?47 = +v ?+V ?Control_v VoidSymbol Meta_v Meta_V Meta_Control_v

那這7列都代表什么意思呢?

第0列(以0起記)表示純按該鍵的動作(例如,v),第1列表示 Shift-v,第4列表示 Control-v,第5列表示 Control-Shift-v,第8列表示 Alt-v,第9列表示 Alt—Shift-v,第12列表示 Control-Alt-v。

為什么是這樣呢?因為每個 modifier ,就象 Control 這種鍵,都有一個權重 (weight)。分別對應如下:

modifier ? ? ? ? ? ? ? ?weight

Shift ? ? ? ? ? ? ? ? ? 1

AltGr ? ? ? ? ? ? ? ? ? 2

Control ? ? ? ? ? ? ? ? 4

Alt ? ? ? ? ? ? ? ? ? ? 8

ShiftL ? ? ? ? ? ? ? ? ?16

ShiftR ? ? ? ? ? ? ? ? ?32

CtrlL ? ? ? ? ? ? ? ? ? 64

CtrlR ? ? ? ? ? ? ? ? ? 128

CapsShift ? ? ? ? ? ? ? 256

第0列對應權重為0,即不加任何 modifier 純按該鍵(plain)。第1列為1,即 Shift。第5列為5,即 Control+Shift。依次類推直到256。

第二行:

alt_is_meta

表示 alt meta 通用,加上就行了。

再下面就是定義每個鍵對應的動作了。不過再介紹另外一種定義方式(參見 man keymaps,SINGLE MODIFIER DEFINITIONS):

control keycode ? 7 = Control_asciicircum

像這種定義方式,只定義了 Control-7,其他沒有提及的按默認,來自內核。

再回到開頭,怎樣定義切換 Console 與 X 的按鍵呢?我是直接定義 F1-12 為切換 Console_1 - Console_12,而 F1-12 自身的輸入用 Shift-F? 代替。像下面這樣:

keycode ?59 = Console_1 ? ? ? F1

keycode ?60 = Console_2 ? ? ? F2

keycode ?61 = Console_3 ? ? ? F3

keycode ?62 = Console_4 ? ? ? F4

keycode ?63 = Console_5 ? ? ? F5

keycode ?64 = Console_6 ? ? ? F6

keycode ?65 = Console_7 ? ? ? F7

keycode ?66 = Console_8 ? ? ? F8

keycode ?67 = Console_9 ? ? ? F9

keycode ?68 = Console_10 ? ? ? F10

keycode ?87 = Console_11 ? ? ? F11

keycode ?88 = Console_12 ? ? ? F12

另外,為了方便,我把 Escape 和 Caps_Lock 調換了一下,把右 Alt 也定義成 Alt(有些鍵盤默認是定義成 AltGr 的),定義了 AAlt-Shift-v,把它綁定為 scroll-other-window-down。我的 keymap 附后,有興趣的同學自己看吧。

?wl.kmap.txt?

細心的同學可能會發現,那 X 下面不需要設置嗎?需要的,下篇我再簡要說說 X 下面的設置,呵!

閱讀(2398) | 評論(0) | 轉發(0) |

總結

以上是生活随笔為你收集整理的linux键盘修改工具,Linux 键盘映射的修改(Console)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。