总览 (SYNOPSIS)

loadkeys [ -d --default ] [ -h --help ] [ -q --quiet ] [ -v --verbose [ -v --verbose ]...] [ -m --mktable ] [ -c --clearcompose ] [ -s --clearstrings ] [ filename... ]

描述 (DESCRIPTION)

Loadkeys 读取 由 filename... 指定的 文件 内容. 它的 主要目的 是 为 控制台 调入 内核键盘映射表(kernel keymap).

设为缺省 (RESET TO DEFAULT)

如果 指定了 -d (或 --default ) 选项, loadkeys 调入 缺省的 键盘映射 文件 defkeymap.map, 可能 在 /usr/share/keymaps 或 /usr/src/linux/drivers/char 目录 下. (前者 可能是 用户定义的, 而 后者 是 针对 PC 机 qwerty 键盘 的 映射 - 也许 你 不需要.) 某些情况下, 如果 遇上 奇怪的 键盘映射 (把 减号 '-' 弄成了 某种 陌生的 修饰组合), 你 只要 轻松的 键入 `loadkeys defkeymap' 就可以了.

(译注: qwerty 是一种常用的 PC 键盘布局, 由 键盘 字母区 左上角 的 连续横向 六个 字母键 得名)

调入内核键盘映射 (KERNEL KEYMAP)

loadkeys 的 主要作用 是 调入 或 修改 键盘驱动程序 的 翻译表. 当 指出了 文件名 的 时候, 标准输入 用 短横线(-) 表示. 如果 没有指出 文件名, loadkeys 就 从 标准输入 读取 数据.

对于 许多 国家 和 各种 键盘类型, 系统 已经 提供了 对应的 键盘映射表, 只需 用一条 诸如 `loadkeys uk' 的 命令 就可以 满足 需要. 而且 很容易设计 自己的 键盘映射表. 用户 必须 识别 哪些 符号 属于 哪些 键. 可以 用 showkey(1) 命令 查出 键值(keycode), 手册页 keymaps(5) 对 键盘映射表 格式 做了 说明, 也可以 参考 dumpkeys(1) 命令 输出 的 内容.

调入内核 ACCENT 表

如果 输入文件 没有 定义 任何 组合键(compose key), 内核 accent 表 就 保持 不变, 除非 使用了 -c (或 --clearcompose ) 选项, 此时 内核 accent 表 被 清空. 如果 输入文件 定义了 组合键, 那么 清除 原有 定义, 换成 新的 定义. 内核 accent 表 是 一组 表项 (缺省为 68 项), 用来 描述 区分符(dead diacritical sign) 和 组合键 怎么 工作. 例如, 这行

compose ',' 'c' to ccedilla

表示 <ComposeKey><,><c> 组合 产生 <ccedilla>. 使用 命令 `dumpkeys --compose-only' 能够 查看 当前 accent 表.

(译注: Compose 键 可以 用 dumpkeys 命令 查出, 我的 系统上 是 ctrl+句号, 因此 相继 按下 'ctrl-.', ',', 'c' 就可以 产生 上述的 'ccedilla'.)

调入内核字符串表 (KERNEL STRING TABLE)

选项 -s (或 --clearstrings ) 用于 清除 内核字符串表. 如果 不使用 这个 选项, loadkeys 只会 添加 或 调换 字符串, 而不是 清除 它们. (因而 需要 选项 -s 实现 友好定义 状态.) 内核字符串表 是 一组 命名 字符串, 就象 F31. 例如, 你 可以 使 功能键 F5 (普通 PC 键盘上 有) 产生 字符串 `Hello!', 使 Shift+F5 产生 `Goodbye!':

keycode 63 = F70 F71
string F70 = "Hello!"
string F71 = "Goodbye!"

把 这三行 加进 键盘映射表 即可. 缺省的 功能键 定义 大多是来自 VT100 终端 的 转码序列 (escape sequence).

创建内核源文件表 (KERNEL SOURCE TABLE)

如果 给出了 -m (或 --mktable )
选项, loadkeys 在 标准输出 产生 一个文件, 可以 用做
/usr/src/linux/drivers/char/defkeymap.c, 它 定义了 内核的 缺省 键盘编联 (但 不影响 当前
键盘映射).

选项 (OPTION)

-h --help
在 标准错误 上 显示 版本号 和 简短 的 用法, 然后 结束.

-v --verbose
显示 更新 细节, 用的越多, 细节越细.

-q --quiet
不要 显示 一般信息.

-c --clearcompose
清除 内核的 组合键表 (就是 accent 表). 如果 没有 使用 这个选项, 而且输入文件 没有 定义 组合键, 内核组合键表 保持 不变.

-s --clearstrings
清除 内核的 字符串表. 如果 没有 使用 这个选项, loadkeys 将 添加 或 调换 字符串, 而不是 删除 它们.

文件 (FILE)

/usr/lib/kbd/keymaps/ 键盘映射文件 的 缺省目录.

/usr/lib/kbd/keymaps/defkeymap.kmap 用 -d 选项 调入的 缺省 键盘映射文件. (译注:
对于 比较 新的 系统 请查看 /usr/lib/kbd/keymaps/i386/qwerty/, 注意 这里 最后面的 两个 目录, 前者 是 系统平台,
后者 是 键盘类型)

BUGS

任何人 只要有 对 /dev/console 的 读访问权 就能够 运行 loadkeys , 从而 改变
键盘布局, 使 它 可能 无法使用. 键盘翻译表 由 所有 虚拟控制台共用, 所以 任何 对 键盘编联 的 改变 会 同时 影响 所有的 虚拟控制台.

注意, 由于 改变 能够 影响 所有的 虚拟控制台, 因此 它 比 用户的 会话期 更长. 这意味着 即使 在 登录 提示 阶段, 键值编联 也会 影响
用户 的 使用.

缺省的 键盘映射 应该 编译在 内核中. ( /usr/src/linux/drivers/char/defkeymap.c ).

loadkeys - 调入键盘翻译表的更多相关文章

  1. dumpkeys - 转储显示键盘翻译表

    总览 (SYNOPSIS) dumpkeys [ -hilfn1 -Sshape -ccharset --help --short-info --long-info --numeric --full- ...

  2. Visual Studio Code 键盘参考表

    2019年4月6日,对照中英翻译. 一般 Ctrl+Shift+P, F1 显示命令调色板 Ctrl+P 快速打开,转到文件… Ctrl+Shift+N  新建窗口/实例 Ctrl+Shift+W   ...

  3. 六、React 键盘事件 表单事件 事件对象以及React中的ref获取dom节点 、React实现类似Vue的双向数据绑定

    接:https://www.cnblogs.com/chenxi188/p/11782349.html 事件对象 .键盘事件. 表单事件 .ref获取dom节点.React实现类似vue双向数据绑定 ...

  4. C++ 模拟虚拟键盘按键表

    键盘VK键值列表 /* Virtual Keys, Standard Set*/ VK_LBUTTON                                      0x01 VK_RBU ...

  5. keymaps - 对键盘映射文件的描述

    描述 (DESCRIPTION) loadkeys(1) 能够 通过 调入 指定的 文件 修改 键盘翻译表, 键盘翻译表 通常 用于 内核的 键盘驱动程序; 另外 dumpkeys(1) 可以 根据 ...

  6. Linux 中的键盘映射【转】

    本文转载自:http://hessian.cn/p/144.html [转]Linux 中的键盘映射 原文地址:http://www.linuxidc.com/Linux/2011-04/35197. ...

  7. SysErrorMessage 函数和系统错误信息表

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示.但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢?FormatMessa ...

  8. Delphi SysErrorMessage 函数和系统错误信息表

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...

  9. delphi SysErrorMessage 函数和系统错误信息表 good

    在看 API 文档时, 我们经常见到 GetLastError; 它可以返回操作后系统给的提示. 但 GetLastError 返回的只是一个信息代码, 如何返回对应的具体信息呢? FormatMes ...

随机推荐

  1. jQuery file upload cropper的 click .preview事件没有绑定成功

    测试 修改https://github.com/tkvw/jQuery-File-Upload/blob/master/basic-plus.html var node = $('<p id=& ...

  2. 线对 Line pairs、LP(分辨率cy/mm)

    线对 (Line pairs) 是胶片.镜头等电影摄影领域的专用名词. 每毫米线对一般指分辨率的单位,指仪器在一毫米内能分辨出多少对线. 在一定尺度内的可分辨线对数常被用来衡量仪器的空间分辨能力,能分 ...

  3. 前端需要注意哪些SEO

    1.合理的title.description.keywords:搜索对这三项的权重逐个减小,title值强调重点即可,重要关键词不要超过2次,而且要靠前,不同页面title要有所不同:descript ...

  4. Mac上的应用,例如Xcode需要输入原始下载账号才能更新问题

    为了免下载安装Xcode,安装时使用了别人提供的Xcode.dmg安装,或者公司接管上任同事使用的Mac时,上面的应用都是用别人的账号购买下载的,而非使用自己账号在AppStore下载的. 这样的安装 ...

  5. Linux_OpenSSH远程连接

    目录 目录 SSH server SSH服务属性 SSH协议执行原理 SSH连接方式 ssh Commands scp commands sftp commands SSH在生产环境中的使用 系统间备 ...

  6. Python基本语法_基本数据类型_序列类型详解

    目录 目录 序列 序列的标准操作符 切片操作符 一个例子 字符串的连接 序列的功能函数 enumerate 枚举出序列对象的元素 len 获取序列对象的长度 min 取出sequence中的最小值 m ...

  7. C#高级应用

    学习编程也有大半年了,想起老师前天说的:“你们写的代码都是小儿科”,顿时有点心塞...想想也是,不可能就写一个For循环或者Foreach循环就可以拿到高薪了?我也觉得不太可能,下面我就来为大家简单介 ...

  8. rename()函数(包含更改索引列列名的方法)

    1 rename()可以更换列名和行名,必须写上columns或index,否则无效 import pandas as pd df = pd.DataFrame({'a':[1,2], 'b':[3, ...

  9. mysql5.7无法启动原因排查

    前天刚刚拷了同事最新的MySQL5.7,安装成功后运行良好,今天却无法启动,Navicat也无法连接. 开始排查原因: 1.进入dos命令窗口,输入net start mysql启动,提示 百度出现错 ...

  10. Java ——扩展:内部类 匿名内部类 IO file 设计模式

    内部类的拓展 定义类or方法内部的类 最外层的类只能使用public和默认修饰 class Demo { class A { } public static void main(String[] ar ...