欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2023/12/20 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。