Man page - xmodmap(1)
Packages contains this manual
apt-get install x11-xserver-utils
Available languages:
en fr ro zh_TW zh_CNManual
XMODMAP
NAME总 览 (SYNOPSIS)
描 述 (DESCRIPTION)
选 项 (OPTIONS)
语 法 (EXPRESSION GRAMMAR)
示 例 (EXAMPLE)
环 境 变 量 (ENVIRONMENT)
另 见 (SEE ALSO)
BUGS
作 者 (AUTHOR)
[中 文 版 维 护 人 ]
[中 文 版 最 新 更 新 ]
《 中 国 Linux论 坛 man手 册 页 翻 译 计 划 》
跋
NAME
xmodmap - 在 X 环 境 中 调 节 键 盘 映 射 和 鼠 标 键 映 射
总 览 (SYNOPSIS)
xmodmap [-options ...] [filename]
描 述 (DESCRIPTION)
xmodmap 用 来 编 辑 或 显 示 键 盘 的 修 饰 键 映 射 (modifier map) 和 键 盘 映 射 表 (keymap table) , 客 户 程 序 用 它 们 把 键 码 (keycode) 事 件 转 换 为 keysym. 通 常 在 用 户 会 话 的 启 动 脚 本 中 使 用 xmodmap , 把 键 盘 配 置 成 用 户 喜 爱 的 风 格 .
选 项 (OPTIONS)
xmodmap
可 以 使 用 下 列
选 项 :
-display
display
这 个 选 项 指 定 主 机 和 显 示 器 .
|
-help |
这 个 选 项 在 标 准 错 误 设 备 显 示 命 令 行 参 数 的 说 明 . 如 果 出 现 了 无 法 识 别 的 参 数 , xmodmap 也 会 执 行 这 个 功 能 . |
-grammar
这 个 选 项 在 标 准 错 误 设 备 显 示 表 达 式 的 语 法 . 该 语 法 适 用 于 文 件 或 -e expression 选 项 .
-verbose
这 个 选 项 要 求 xmodmap 在 分 析 输 入 数 据 的 时 候 显 示 日 志 信 息 .
|
-quiet |
这 个 选 项 要 求 关 闭 verbose 日 志 信 息 . 这 是 缺 省 选 项 . |
|||
|
-n |
这 个 选 项 不 要 求 xmodmap 真 的 改 变 (键 盘 ,鼠 标 ) 映 射 , 而 只 是 显 示 出 它 可 能 做 什 么 , 如 同 make(1) 的 相 同 选 项 一 样 . |
-e expression
这 个 选 项 执 行 一 个 给 定 的 表 达 式 . 命 令 行 上 可 以 指 定 任 何 数 量 的 表 达 式 .
|
-pm |
这 个 选 项 要 求 在 标 准 输 出 设 备 显 示 当 前 的 修 饰 键 (modifier)映 射 . |
||
|
-pk |
这 个 选 项 要 求 在 标 准 输 出 设 备 显 示 当 前 的 键 盘 映 射 表 (keymap). |
||
|
-pke |
这 个 选 项 要 求 在 标 准 输 出 设 备 显 示 当 前 的 键 盘 映 射 表 (keymap). 输 出 格 式 能 够 作 为 xmodmap 的 输 入 . |
||
|
-pp |
这 个 选 项 要 求 在 标 准 输 出 设 备 显 示 当 前 的 鼠 标 (pointer)映 射 . |
||
|
- |
单 独 的 短 横 线 (-) 说 明 把 标 准 输 入 设 备 作 为 输 入 文 件 使 用 . |
filename 指 定 一 个 文 件 , 其 中 包 含 xmodmap 将 要 执 行 的 表 达 式 . 这 个 文 件 通 常 命 名 为 .xmodmaprc , 存 放 在 用 户 的 根 目 录 下 .
语 法 (EXPRESSION GRAMMAR)
xmodmap
读 入 一 连 串 的
表 达 式 , 在 执 行
它 们 以 前 , 对 所
有 表 达 式 进 行
分 析 . 这 样 就 可
以 不 用 担 心 重
定 义 的 keysym 出 现 名
字 冲 突 .
keycode
NUMBER
=
KEYSYMNAME ...
把 这 一 串 keysym 赋 于 指 定 的 键 码 . (键 码 可 以 是 十 进 制 数 , 十 六 进 制 数 , 八 进 制 数 , 可 以 用 xev 程 序 测 出 .)
keycode any = KEYSYMNAME ...
如 果 不 存 在 分 配 了 上 述 keysym 序 列 的 键 , xmodmap 就 选 择 键 盘 上 的 空 闲 键 , 把 这 些 keysym 分 配 给 它 . keysym 可 以 是 十 进 制 数 , 十 六 进 制 数 或 者 八 进 制 数 .
keysym KEYSYMNAME = KEYSYMNAME ...
左 边 的 KEYSYMNAME 翻 译 为 对 应 的 键 码 , 该 键 码 应 用 于 相 应 的 键 码 表 达 式 集 . 你 可 以 在 头 文 件 <X11/keysymdef.h> 中 找 到 keysym 的 名 称 列 表 (去 掉 XK_ 前 缀 ), 也 可 以 查 keysym 数 据 库 <XRoot>/lib/X11/XKeysymDB , 这 里 的 <XRoot> 指 X11 的 安 装 树 . 注 意 , 如 果 多 个 键 码 编 联 (bind)了 相 同 的 keysym, 那 么 每 个 对 应 的 键 码 都 要 执 行 这 个 表 达 式 .
clear MODIFIERNAME
删 除 给 定 修 饰 键 在 修 饰 键 映 射 表 中 的 所 有 表 项 , 修 饰 键 的 名 字 有 : Shift , Lock , Control , Mod1 , Mod2 , Mod3 , Mod4 , 和 Mod5 (修 饰 键 名 字 不 分 大 小 写 , 但 是 其 他 名 字 对 大 小 写 敏 感 ). 例 如 , ‘‘clear Lock’’ 将 删 除 所 有 编 联 为 shift lock 的 键 .
add MODIFIERNAME = KEYSYMNAME ...
这 条 语 句 把 所 有 包 含 给 定 keysym 的 键 加 入 到 指 定 的 修 饰 键 映 射 表 中 . 读 取 完 全 部 输 入 表 达 式 之 后 , xmodmap 才 分 析 这 些 keysym, 这 样 有 利 于 编 写 一 些 交 换 键 位 的 表 达 式 . (见 EXAMPLES 节 )
remove MODIFIERNAME = KEYSYMNAME ...
这 条 语 句 在 指 定 的 修 饰 键 映 射 表 中 删 除 所 有 包 含 指 定 keysym 的 键 . 和 add 不 同 , xmodmap 每 读 取 一 行 就 执 行 一 行 . 这 样 可 以 避 免 考 虑 这 些 键 是 否 被 重 分 配 过 .
pointer = default
这 条 语 句 把 鼠 标 映 射 设 置 为 缺 省 值 (按 键 1 产 生 代 码 1, 按 键 2 产 生 代 码 2, 等 等 ).
pointer = NUMBER ...
这 条 语 句 把 鼠 标 映 射 设 置 为 指 定 的 按 键 代 码 . 这 个 代 码 列 表 总 是 从 第 一 个 按 键 开 始 .
注 释 行 以 感 叹 号 (!) 开 始 .
如 果 你 打 算 改 变 某 个 修 饰 键 的 编 联 , 你 必 须 把 它 从 相 应 的 修 饰 键 映 射 表 中 同 时 删 除 .
示 例 (EXAMPLE)
大
多 数 鼠 标 设 计
成 右 手 食 指 按
第 一 个 键 , 左 撇
子 却 觉 得 如 果
把 按 键 代 码 反
过 来 , 使 左 手 食
指 按 上 主 键 会
更 舒 服 些 . 对 于
三 键 鼠 标 可 以
这 样 :
% xmodmap -e "pointer = 3 2 1"
很
多 应 用 程 序 支
持 Meta 键 , 然 而 , 有
些 服 务 器 的 键
盘 映 射 表 中 没
有 提 供 Meta keysym, 因 此
需 要 手 工 添 加 .
下 面 的 命 令 将
把 Meta 附 加 到 Multi-language
键 上 (有 时 也 称
为 Compose Character). 另 一 个
有 利 方 面 是 , 需
要 Meta 键 的 程 序 只
是 要 求 获 得 键
码 , 不 要 求 keysym 位
于 键 盘 映 射 表
的 第 一 列 . 这 意
味 着 需 要 Multi_key 的
程 序 不 会 发 觉
有 任 何 变 化 .
% xmodmap -e "keysym Multi_key = Multi_key
Meta_L"
类
似 的 , 有 些 键 盘
只 有 Alt 键 , 而 没 有
Meta 键 . 这 种 情 况 下
可 以 用 :
% xmodmap -e "keysym Alt_L = Meta_L Alt_L"
xmodmap
最 简 单 , 也 是 最
合 适 的 用 途 之
一 是 设 置 键 盘
的 "rubout" 键 , 产 生
替 换 的 keysym. 它 经
常 用 于 交 换 Backspace
和 Delete 键 . 如 果
xterm
的
ttyModes
资 源 也 做
了 同 样 的 设 置 ,
所 有 的 终 端 模
拟 窗 口 将 用 相
同 的 键 删 除 字
符 .
% xmodmap -e "keysym BackSpace = Delete"
% echo "XTerm*ttyModes: erase ˆ?" | xrdb
-merge
有
些 键 盘 按 下 shift 键
和 逗 号 , 句 号 键
时 , 不 能 产 生 小
于 号 和 大 于 号 .
这 个 现 象 可 以
通 过 重 新 编 联
逗 号 键 和 句 号
键 矫 正 :
!
! make shift-, be < and shift-. be >
!
keysym comma = comma less
keysym period = period greater
键
盘 间 最 烦 人 的
区 别 之 一 就 是
Control 和 Shift Lock 键 的 位
置 .
xmodmap
的 一 个
常 用 功 能 就 是
交 换 这 两 个 键 ,
象 这 样 :
!
! 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
如
果 要 对 多 个 键
码 分 配 同 一 个
keysym, 可 以 使 用
keycode
命 令 . 尽 管 这 个
做 法 不 能 移 植 ,
但 是 你 可 以 用
它 写 一 段 脚 本 ,
把 键 盘 复 位 为
已 知 状 态 . 下 面
的 脚 本 把 backspace 设
为 Delete (如 上 所 示 ),
清 除 cap lock 的 编 联 ,
把 CapsLock 设 为 Control 键 , F5
设 为 Escape, Break/Reset 设 为
shift lock.
!
! On the HP, the following keycodes have key caps as listed:
!
! 101 Backspace
! 55 Caps
! 14 Ctrl
! 15 Break/Reset
! 86 Stop
! 89 F5
!
keycode 101 = Delete
keycode 55 = Control_R
clear Lock
add Control = Control_R
keycode 89 = Escape
keycode 15 = Caps_Lock
add Lock = Caps_Lock
环 境 变 量 (ENVIRONMENT)
|
DISPLAY |
指 示 缺 省 的 主 机 和 显 示 器 号 . |
另 见 (SEE ALSO)
X(1), xev(1), Xlib 关 于 键 盘 和 鼠 标 事 件 的 文 档 .
BUGS
服 务 器 每 执 行 一 个 keycode 表 达 式 , 就 要 在 每 一 个 客 户 机 上 产 生 一 个 MappingNotify 事 件 . 这 可 能 导 致 某 些 异 常 情 况 . 所 有 的 改 变 都 应 该 收 集 在 一 起 , 然 后 一 次 完 成 . 那 些 接 收 了 键 盘 输 入 , 却 忽 略 了 MappingNotify 事 件 的 客 户 机 将 无 法 注 意 到 对 键 盘 映 射 的 任 何 改 变 .
如 果 编 联 了 某 个 修 饰 键 的 键 码 发 生 变 化 , Xmodmap 将 自 动 产 生 "add" 和 "remove" 表 达 式 .
应 该 有 某 种 办 法 , 当 你 确 实 搞 乱 了 键 盘 映 射 的 时 候 , 使 remove 表 达 式 接 受 键 码 以 及 keysym.
作 者 (AUTHOR)
Jim Fulton, MIT X 协 会 , 根 据 David Rosenthal 在 Sun Microsystems 中 的 早 期 版 本 改 写 .
[中 文 版 维 护 人 ]
徐 明 <xuming@users.sourceforge.net>
[中 文 版 最 新 更 新 ]
2003/05/13
《 中 国 Linux论 坛 man手 册 页 翻 译 计 划 》
http://cmpp.linuxforum.net
跋
本
页 面 中 文 版 由
中 文 man 手 册 页 计
划 提 供 。
中 文 man 手 册 页 计
划 :
https://github.com/man-pages-zh/manpages-zh