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 |