Provided by: manpages-zh_1.5-1_all bug

NAME

       xmodmap - 在 X 環境中調節鍵盤映射和滑鼠鍵映射

` (SYNOPSIS)
       xmodmap [-options ...] [filename]

yz (DESCRIPTION)
       xmodmap   用來   編輯   或   顯示  鍵盤的  Mg(modifier  map)LMg(keymap table), 客戶程式 用 它 把 鍵碼(keycode) 事件  轉換為
       keysym.  通常 在 使用者會話 的 啟動稿本 中 使用 xmodmap, 把 鍵盤 配置成
       使用者 喜愛的 榆.

 (OPTIONS)
       xmodmap 可以 使用 下列 選項:

       -display display
               這蚇龠 指定 主機 和 顯示器.

       -help   這蚇龠 在 標準錯誤設備 顯示 命令行參數 的  說明.  如果  出現了
               無法識別 的 參數, xmodmap 也會 執行 這 功能.

       -grammar
               這蚇龠 在 標準錯誤設備 顯示 表達式 的 語法. 該語法 適用於 檔案
               或 -e expression 選項.

       -verbose
               這蚇龠 n求 xmodmap 在 分析 輸入數據 的 時 顯示 日誌信息.

       -quiet  這蚇龠 n求 關閉 verbose 日誌信息. 這是 預設選項.

       -n      這蚇龠 不n求 xmodmap 真的改變 (鍵盤,滑鼠) 映射, 而只是  顯示出
               它 可能 做什麼, 如同 make(1) 的 相同 選項 一樣.

       -e expression
               這蚇龠 執行 一 給定的 表達式. 命令行上 可以 指定 任何 數量 的
               表達式.

       -pm     這蚇龠 n求 在 標準輸出設備 顯示 當前的 袡Ⅸ(modifier)映射.

       -pk     這蚇龠 n求 在 標準輸出設備 顯示 當前的 鍵盤映射表(keymap).

       -pke    這蚇龠 n求 在  標準輸出設備  顯示  當前的  鍵盤映射表(keymap).
               輸出格式 能夠 作為 xmodmap 的 輸入.

       -pp     這蚇龠 n求 在 標準輸出設備 顯示 當前的 滑鼠(pointer)映射.

       -       單獨的 短橫線(-) 說明 把 標準輸入設備 作為 輸入檔案 使用.

       filename  指定  一蚗仵,  其中 包含 xmodmap 將n 執行的 表達式.  這蚗仵
       通常 命名為 .xmodmaprc, 存放在 使用者的 根目錄下.

yk (EXPRESSION GRAMMAR)
       xmodmap 讀入 一連串的 表達式, 在 執行 它 以前,  對  所有  表達式  進行
       分析.  這樣 就可以 不用擔心 咿w義 的 keysym 出現 名字沖突.

       keycode NUMBER = KEYSYMNAME ...
               把  這一串  keysym  賦於  指定的  鍵碼.  (鍵碼 可以是 十進制數,
               十六進制數, 八進制數, 可以用 xev 程式 測出.)

       keycode any = KEYSYMNAME ...
               如果 不存在 分配了 上z keysym  序列  的  鍵,  xmodmap  就  選擇
               鍵盤上  的  空閒鍵,  把  這些  keysym 分配 給 它. keysym 可以是
               十進制數, 十六進制數 或者 八進制數.

       keysym KEYSYMNAME = KEYSYMNAME ...
               左邊的 KEYSYMNAME 翻譯為  對應的  鍵碼,  該鍵碼  應用於  相應的
               鍵碼表達式集.   你  可以  在  頭檔案  <X11/keysymdef.h> 中 找到
               keysym 的 名稱列表 (去掉 XK_ 前綴),  也可以  查  keysym  數據庫
               <XRoot>/lib/X11/XKeysymDB,  這裏的  <XRoot>  指  X11 的 安裝樹.
               注意, 如果 多 鍵碼 編聯(bind)了 相同的 keysym, 那麼 每 對應的
               鍵碼 都n 執行 這 表達式.

       clear MODIFIERNAME
               刪除  給定  袡Ⅸ 在 袡Ⅸ銢M射表 中 的 所有 表項, 袡Ⅸ 的 名字
               有: Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4,  和  Mod5  (-
               袡Ⅸ鉿W字  不分  大小寫, 但是 其他 名字 對 大小寫 敏感).  例如,
               ``clear Lock'' 將 刪除 所有 編聯為 shift lock 的 鍵.

       add MODIFIERNAME = KEYSYMNAME ...
               這條語句  把  所有  包含  給定  keysym  的  鍵  加入到   指定的
               袡Ⅸ銢M射表  中.   讀取完  全部 輸入表達式 之後, xmodmap 才分析
               這些 keysym, 這樣 有利於 編寫 一些 交換  鍵位  的  表達式.  (見
               EXAMPLES 節)

       remove MODIFIERNAME = KEYSYMNAME ...
               這條語句 在 指定的 袡Ⅸ銢M射表 中 刪除 所有 包含 指定 keysym 的
               鍵. 和 add 不同, xmodmap 每 讀取 一行 就 執行 一行.  這樣  可以
               避免 考慮 這些鍵 是否 被 咫幫t過.

       pointer = default
               這條語句 把 滑鼠映射 設置為 預設 (按鍵1 產生 代碼1, 按鍵2 產生
               代碼2, 等等).

       pointer = NUMBER ...
               這條語句 把 滑鼠映射 設置為 指定的 按鍵代碼. 這 代碼列表  總是
               從 第一 按鍵 開始.

       注釋行 以 感嘆號(!) 開始.

       如果 你 打算 改變 某 袡Ⅸ 的 編聯, 你 必須 把它 從 相應的 袡Ⅸ銢M射表
       中 同時 刪除.

 (EXAMPLE)
       大多數 滑鼠 設p成 右手 鼠 按 第一蚆, 左撇子 卻覺得 如果 把 按鍵  代碼
       反過來, 使 左手 鼠 按上 主鍵 會 更舒服些. 對於 三鍵滑鼠 可以 這樣:

            %  xmodmap -e "pointer = 3 2 1"

       很多  應用程式  支持  Meta  鍵, 然而, 有些 伺服器 的 鍵盤映射表 中 沒有
       提供 Meta keysym, 因此 需n 手動  添加.  下悸  命令  將把  Meta  附加到
       Multi-language 鍵上 (有時也 稱為 Compose Character).  另一 有利方 是,
       需n Meta 鍵 的 程式 只是n求 獲得 鍵碼, 不n求 keysym 位於 鍵盤映射表  的
       第一列.  這 意味著 需n 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  鍵.   如果
       xtermttyModes 資源 也 做了 同樣的 設置, 所有的 終端模擬視窗 將 用
       相同的鍵 刪除 字符.

            %  xmodmap -e "keysym BackSpace = Delete"
            %  echo "XTerm*ttyModes:  erase ^?" | xrdb -merge

       有些鍵盤 按下 shift 鍵 和 逗號, 句號鍵 時, 不能 產生 小於號 和  大於號.
       這茞{象 可以 通過 奐s編聯 逗號鍵 和 句號鍵 矯正:

            !
            ! 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

       如果 n 對 多 鍵碼 分配 同一 keysym, 可以 使用 keycode 命令.  儘管 這-
       荌答k 不能 移植, 但是 你可以 用它 寫一段 稿本, 把 鍵盤 復位為 已知狀態.
       下悸 稿本 把 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

q (ENVIRONMENT)
       DISPLAY 指示 預設的 主機 和 顯示器號.

t (SEE ALSO)
       X(1), xev(1), Xlib 關於 鍵盤 和 滑鼠 事件 的 文件.

BUGS

       伺服器 每執行 一 keycode  表達式,  就n在  每一  客戶機  上  產生  一
       MappingNotify  事件.  這可能 導P 某些 異常情況. 所有的 改變 都應該 收集
       在一起, 然後 一次 完成. 那些 接收了 鍵盤輸入, 卻  忽略了  MappingNotify
       事件 的 客戶機 將 無法 注意到 對 鍵盤映射 的 任何 改變.

       如果  編聯了 某 袡Ⅸ 的 鍵碼 發生 變化, Xmodmap 將 自動 產生 "add" 和
       "remove" 表達式.

       應該 有 某種辦法, 當你 確實 搞亂了 鍵盤映射 的 時,  使  remove  表達式
       接受 鍵碼 以及 keysym.

@ (AUTHOR)
       Jim  Fulton, MIT X 協會, 根據 David Rosenthal 在 Sun Microsystems 中 的
       朽薊岩 改寫.

[]
      } <xuming@users.sourceforge.net>

[]
       2003/05/13

mLinuxanhttp://cmpp.linuxforum.net