xmodmap 命令
用途
修改 X 服务器中的键映射。
语法
xmodmap [ -display Display ] [ -e Expression ] [ -grammar | -help ] [ -n] [ -pk ] [ -pke ] [ -pm ] [ -pp ] [ -quiet | -verbose ] [ FileName ]
描述
xmodmap 命令编辑并显示键盘修饰符映射和客户机应用程序用来将事件键控代码转换为键符号的键映射表。 它通常从会话启动脚本运行,根据用户的个人喜好配置键盘。
每次键控代码表达式被求值时,服务器都会在每个客户机上生成一个 MappingNotify 事件。 所有更改都应该成批进行并一次完成。 接收键盘输入并忽略 MappingNotify 事件的客户机不会注意到对键盘映射作出的任何更改。
FileName 参数指定包含要运行的 xmodmap 命令表达式的文件。 该文件通常保存在用户主目录中,其名称 类似于 .xmodmaprc。 如果不指定任何文件,就从标准输入获取输入。
xmodmap 命令程序将读取表达式列表并在试图运行其中的任一命令之前对所有这些命令进行分析。 这样,我们就能够引用被自然地重新定义过的键符号,而不用过多地担心名称冲突。
| 项 | 描述 |
|---|---|
| 添加 | 键符号名在该行被读取时求值。 这允许您从修饰符除去键,而无需担心它们是否被再分配。 |
| add ModifierName = KeySymbolName... | 将给定的键符号添加到表明的修饰符映射。 键符号名在读取了所有输入表达式之后求值,使编写交换键的表达式变得很容易。 |
| 清除 ModifierName | 为给定的修饰符除去修饰符映射中的所有条目,其中有效的名称为 Shift、Lock、Control、Mod1、Mod2、Mod3、Mod4 和 Mod5(大小写在修饰符名中并不重要,但它会影响其他所有名称)。 例如,clear Lock 将除去所有绑定到 shift lock 修饰符的键。 |
| keycode Number = KeySymbolName... | 将键符号列表分配到所指示的键控代码(可以由十进制、十六进制或八进制指定,并通过运行 /usr/lpp/X11/Xamples/demos 目录中的 xev 程序决定)。 通常,只有一个键符号被分配到给定的代码。 |
| keysym KeySymbolName = KeySymbolName... | 左边的 KeySymbolName 将被转换为与其匹配的、用来执行相应的一组 keycode 表达式的键控代码。 可以在 keysym 数据库 /usr/lib/X11/XKeysymDB 或头文件 X11/keysymdef.h(没有 XK_ 前缀)中找到 keysym 名的列表。 注意:如果同一个 keysym 被绑定到多个键上,就会为每个匹配的键控代码运行表达式。 |
| 指针 = 缺省值 | 将指示器映射设置回缺省设置(例如,按钮 1 生成代码 1,按钮 2 生成代码 2,依此类推)。 |
| 指针 = Button1 Button2 Button3... | 将指针映射设置为包含指定的按钮代码。 列表总是以第一个物理按钮开始。 |
| 移除 ModifierName = KeySymbolName... | 从表明的修饰符映射除去所有包含给定 keysym 的键。 与 add 不同,keysym 名在读取该行时求值。 这样可以从修饰符除去键,而不需担心它们是否被再分配。 |
以 !(惊叹号)开头的行 将作为注释处理。
如果希望更改修饰符键的绑定,必须从相应的修饰符映射除去它。
标志
| 项 | 描述 |
|---|---|
| -display 显示 | 指定要使用的主机和显示器。 |
| -e 表达式 | 指定要运行的表达式。 可以从命令行指定任意数目的表达式。 |
| -grammar | 打印一条描述文件中使用的表达式语法的帮助消息,用 -e Expressions 标志将打印到标准错误。 |
| -help | 将一条关于命令行自变量的简要描述打印到标准错误。 无论您何时将未处理的参数提供给 xmodmap 命令,系统都会执行这个操作。 |
| -n | 表明 xmodmap 命令不应该更改映射,而应该显示当给定此标志时将显示的内容。 |
| -pk | 表明当前的键映射表应该打印到标准输出。 |
| -pke | 表明当前的键映射表应该按照能够反馈到 xmodmap 的表达式形式打印到标准输出。 此标志与 X11R5 有关。 |
| -pm | 表明当前的修饰符映射应该打印到标准输出。 |
| -pp | 表明当前的指针映射应该打印到标准输出。 |
| -quiet | 关闭详细日志记录。 这是缺省情况。 |
| -verbose | 表明 xmodmap 命令应该在分析其输入时打印日志信息。 |
示例
- 以下命令将撤销生成的按钮代码,以便使用左手的食指在 3 按钮指针上按下主按钮:
xmodmap -e "pointer = 1 2 3 4 5" - 以下命令将元连接到多语言键 (有时标注为 "组合字符")。 它还利用了这样一种情况:需要 Meta 键的应用程序只需要获取键控代码,并不需要键符号位于键映射表的第一列。 这意味着,需要 Multi_key(包括缺省的修饰符映射)的应用程序不会注意到任何更改。
keysym Multi_key = Multi_key Meta_L - 要在转换逗号和句点键时自动生成小于和大于字符,请使用以下脚本重置逗号和句点的绑定:
! ! make shift-, be < and shift-. be > ! keysym comma = comma less keysym period = period greater - 要交换 Control 和 Shift Lock 键的位置,请使用以下脚本:
! ! Swap Caps_Lock and Control_L ! remove Lock = Caps_Lock remove Control = Control_L keysym Control_L = Caps_Lock keysym Caps_Lock = Control_L add Lock = Caps_Lock add Control = Control_L