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)映 射 .
射 表 (keymap).
输 出 格 式 能 够 作 为 xmodmap 的 输 入 .
(-) 说 明 把 标 准 输 入 设 备 作 为 输 入 文 件 使 用 . filename 指 定 一 个 文 件 , 其 中 包 含 xmodmap 将 要 执 行 的 表 达 式 . 这 个 文 件 通 常 命 名 为 .xmodmaprc, 存 放 在 用 户 的 根 目 录 下 . 语 法 (EXPRESSION GRAMMAR)xmodmap
读 入 一 连 串 的
表 达 式 , 在 执 行
它 们 以 前 , 对 所
有 表 达 式 进 行
分 析 . 这 样 就 可
以 不 用 担 心 重
定 义 的 keysym 出 现 名
字 冲 突 . 示 例 (EXAMPLE)大 多 数 鼠 标 设 计 成 右 手 食 指 按 第 一 个 键 , 左 撇 子 却 觉 得 如 果 把 按 键 代 码 反 过 来 , 使 左 手 食 指 按 上 主 键 会 更 舒 服 些 . 对 于 三 键 鼠 标 可 以 这 样 : % xmodmap -e "pointer
= 3 2 1" 很 多 应 用
程 序 支 持 Meta 键 , 然
而 , 有 些 服 务 器
的 键 盘 映 射 表
中 没 有 提 供 Meta keysym,
因 此 需 要 手 工
添 加 . 下 面 的 命
令 将 把 Meta 附 加 到
Multi-language 键 上 (有 时 也
称 为 Compose Character). 另 一
个 有 利 方 面 是 ,
需 要 Meta 键 的 程 序
只 是 要 求 获 得
键 码 , 不 要 求 keysym
位 于 键 盘 映 射
表 的 第 一 列 . 这
意 味 着 需 要 Multi_key
的 程 序 不 会 发
觉 有 任 何 变 化 .
% 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)
另 见 (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 [AT] users.net> [中 文 版 最 新 更 新 ]2003/05/13 《 中 国 Linux论 坛 man手 册 页 翻 译 计 划 》跋本 页 面 中 文 版 由 中 文 man 手 册 页 计 划 提 供 。 中 文 man 手 册 页 计 划 : https://github.com/man-pages-zh/manpages-zh |