Manpages

名 前

xmodmap - X上 で キ ー マ ッ プ や 、 ポ イ ン タ ボ タ ン の 割 り 当 て を 変 更 す る ユ ー テ ィ リ テ ィ

書 式

xmodmap [-options ...] [filename]

説 明

xmodmap は ク ラ イ ア ン ト の ア プ リ ケ ー シ ョ ン 上 で 、 イ ベ ン ト の キ ー コ ー ド を キ ー シ ム へ 変 換 す る 時 に 使 わ れ る キ ー ボ ー ド modifier マ ッ プ と keymap テ ー ブ ル を 、 表 示 し た り 編 集 す る 時 に 使 わ れ る 。 通 常 こ れ は ユ ー ザ セ ッ シ ョ ン の 起 動 ス ク リ プ ト か ら 、 キ ー ボ ー ド を ユ ー ザ が 自 分 の 好 み の キ ー 配 列 に す る 時 に 実 行 さ れ る 。

オ プ シ ョ ン

以 下 の オ プ シ ョ ン が xmodmap で は 使 わ れ る 。

−display display 使 用 す る ホ ス ト 名 と デ ィ ス プ レ イ を 指 定 す る 。

−help 標 準 エ ラ ー 出 力 に コ マ ン ド 行 の 簡 潔 な 説 明 を 表 示 す る 。

xmodmap が 処

理 で き な い 文 字 列 が 渡 さ れ た 場 合 に は 常 時 実 行 さ れ る 。

−grammar こ の オ プ シ ョ ン は フ ァ イ ル の 中 、 お よ び −e expressions で 用 い ら れ る 表 現 の 文 法 の ヘ ル プ メ ッ セ ー ジ を 標 準 エ ラ ー 出 力 に 表 示 す る .

−verbose こ の オ プ シ ョ ン は xmodmap が 入 力 を 解 析 す る 際 の ロ グ 情 報 を 出 力 す る 。

−quiet 冗 長 な ロ グ の 出 力 を し な い ( デ フ ォ ル ト )

−n こ の オ プ シ ョ ン を 指 定 す る と

xmodmap は 実 際 に は キ ー の マ ッ ピ ン グ を 変 更 し な い が 、 make(1) の −n オ プ シ ョ ン の よ う に ど の よ う に 変 更 さ れ る の か を 表 示 す る 。

−e expression こ の オ プ シ ョ ン は 実 行 さ れ る 表 現 を 指 定 す る 。 コ マ ン ド 行 か ら 任 意 の 数 の 表 現 を 指 定 す る 事 が 出 来 る 。

−pm こ の オ プ シ ョ ン は 現 在 の

modifier マ ッ プ の 状 態 を 標 準 出 力 に 表 示 す

る 。

−pk こ の オ プ シ ョ ン は 現 在 の キ ー マ ッ プ テ ー ブ ル を 標 準 出 力 に 表 示 す る 。

−pke こ の オ プ シ ョ ン は 現 在 の キ ー マ ッ プ テ ー ブ ル を

xmodmap に フ ィ ー ド バ ッ ク 出 来 る 形 式 で 標 準 出 力 に 表 示 す る 。

−pp こ の オ プ シ ョ ン は 現 在 の ポ イ ン タ ボ タ ン の マ ッ プ の 割 り 当 て 状 況 を 表 示 す る 。

ダ ッ シ ュ (

-) だ け を 指 定 す る と 入 力 フ ァ イ ル に 標 準 入 力 が 使 用 さ れ る 。

filename は 実 行 さ れ る xmodmap の 表 現 が 記 述 さ れ た フ ァ イ ル を 指 定 す る 。 こ の フ ァ イ ル は 通 常 は ユ ー ザ の ホ ー ム デ ィ レ ク ト リ に .xmodmaprc の 名 前 で 保 存 さ れ る 。

表 現 文 法

xmodmap プ ロ グ ラ ム は 表 現 の リ ス ト を 実 行 す る 前 に そ れ ら の 表 現 を 一 旦 全 て 読 み 込 ん で 解 析 を 行 う 。 こ の こ と に よ り 普 通 の 方 法 で は 再 定 義 さ れ て し ま う キ ー シ ム 名 を 、 名 前 の 衝 突 に つ い て は そ れ ほ ど 気 に か け る こ と な く 参 照 す る こ と が 可 能 で あ る 。

keycode NUMBER = KEYSYMNAME ... キ ー シ ム の リ ス ト を 指 示 さ れ た キ ー コ ー ド に 割 り 当 て る 。 ( こ れ は 10,16,8進 数 で 指 定 す る こ と が で き 、 xev プ ロ グ ラ ム を 起 動 し て 決 め る 事 が 出 来 る 。 )

keycode any = KEYSYMNAME ... も し 、 キ ー が そ れ 自 身 を 指 定 す る キ ー シ ム に つ い て の 特 定 の リ ス ト を 持 た な い 場 合 、 キ ー ボ ー ド 上 で 代 わ り の キ ー が 選 択 さ れ て 、 そ の キ ー シ ム が 指 定 さ れ る 。 キ ー シ ム の リ ス ト は 10か 16、 あ る い は 8進 数 で 指 定 さ れ る 。

keysym KEYSYMNAME = KEYSYMNAME ... 左 辺 の KEYSYMNAME は 、 該 当 す る keycode 表 現 の 組 合 せ を 実 行 す る 際 に 使 わ れ る 、 そ れ に 適 合 し た キ ー コ ー ド へ 変 換 さ れ る 。 キ ー シ ム 名 の リ ス ト は ヘ ッ ダ ー フ ァ イ ル <X11/keysymdef.h>( XK_ プ レ フ ィ ッ ク ス な し ) 中 か あ る い は キ ー シ ム の デ ー タ ベ ー ス フ ァ イ ル <XRoot>/lib/X11/XKeysymDB 、 こ こ で <XRoot> は X11 の イ ン ス ト ー ル ツ リ ー の ル ー ト 、 に 見 出 さ れ る で あ ろ う 。 複 数 の キ ー に 同 じ キ ー シ ム が 結 び つ け ら れ て い る 時 は 、 表 現 は そ れ ぞ れ の 適 合 す る キ ー コ ー ド に 対 し て 実 行 さ れ る こ と に 注 意 す る こ と 。

clear MODIFIERNAME こ れ は modifier マ ッ プ か ら 与 え ら れ た modifier の 全 て の エ ン ト リ を 消 去 す る 。 有 効 な modifier 名 は : Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4, そ し て Mod5 で あ る 。 ( 他 の 名 前 に は 大 文 字 小 文 字 の 区 別 が あ る が 、 modifier 名 に は な い ) 例 え ば 、 clear Lock は shift lock modifier に 結 合 さ れ て い る あ ら ゆ る キ ー エ ン ト リ を 無 効 に す る で あ ろ う 。

add MODIFIERNAME = KEYSYMNAME ... 与 え ら れ た キ ー シ ム を 含 む 全 て の キ ー を 指 定 さ れ た modifier マ ッ プ に 加 え る 。 キ ー の 入 れ 換 え の 表 現 の 記 述 を 容 易 に す る た め 、 キ ー シ ム 名 は 入 力 さ れ た 表 現 を 全 て 読 み 込 ん だ 後 で 評 価 さ れ る ( EXAMPLEの 節 を 参 照 ) 。

remove MODIFIERNAME = KEYSYMNAME ... 与 え ら れ た キ ー シ ム を 含 む 全 て の キ ー を 指 定 さ れ た modifier マ ッ プ か ら 消 去 す る 。 add と は 異 な り 、 キ ー シ ム 名 は 行 が 読 み 込 ま れ る た び に 評 価 さ れ る 。 こ の こ と に よ り 、 キ ー が ダ ブ っ て 指 定 さ れ は し な い だ ろ う か と い う 不 安 を 抱 く こ と な く modifier か ら キ ー を 消 去 す る こ と が で き る 。

pointer = default ポ イ ン タ ボ タ ン の マ ッ プ を デ フ ォ ル ト 値 に 戻 す 。 ( ボ タ ン 1 は コ ー ド 1 を 生 成 、 ボ タ ン 2 は コ ー ド 2 を 生 成 …等 々 )

pointer = NUMBER ... 指 定 さ れ た ボ タ ン コ ー ド を ポ イ ン タ マ ッ プ に 含 ま せ る 。 リ ス ト は 常 に 物 理 ボ タ ン の 一 番 目 か ら 指 定 す る こ と 。 エ ク ス ク ラ メ ー シ ョ ン マ ー ク ( !) か ら 始 ま る 行 は コ メ ン ト 行 と し て 扱 わ れ る 。 も し 、 modifer キ ー の バ イ ン デ ィ ン グ を 変 更 し た い 時 は 、 適 当 な modifer マ ッ プ か ら そ の modifier キ ー の 消 去 も し な け れ ば い け な い 。

多 く の ポ イ ン タ は 第 1ボ タ ン を 右 手 の 人 差 し 指 を 使 っ て 押 す よ う に 設 計 さ れ て い る 。 左 利 き の 人 は 時 に 、 良 く 使 う ボ タ ン を 左 手 の 人 差 し 指 で 押 せ る よ う に 、 ボ タ ン に 割 り 当 て ら れ て い る ボ タ ン コ ー ド の 順 序 を ひ っ く り 返 す と よ り 使 い 心 地 が 良 く な る と い う こ と に 気 づ く 。 こ の こ と は 3 ボ タ ン ポ イ ン タ で は 次 の よ う に す れ ば た ぶ ん 出 来 る だ ろ う 。

% xmodmap -e "pointer = 3 2 1" 多 く の ア プ リ ケ ー シ ョ ン は メ タ キ ー ( コ ン ト ロ ー ル の 代 わ り に メ タ が 押 さ れ る 場 合 を 除 く と 、 コ ン ト ロ ー ル キ ー と 似 て い る ) の 概 念 を サ ポ ー ト し て い る 。 し か し な が ら 幾 つ か の サ ー バ は デ フ ォ ル ト の キ ー マ ッ プ テ ー ブ ル に メ タ キ ー の キ ー シ ム を 持 っ て い な い の で 、 手 で 追 加 す る 必 要 が あ る 。 以 下 の コ マ ン ド は メ タ キ ー に 多 国 語 キ ー ( 時 に は 組 版 文 字 が 印 字 さ れ て い る ) の 機 能 を 付 加 す る 。 メ タ キ ー を 必 要 と す る ア プ リ ケ ー シ ョ ン は キ ー コ ー ド の み を 必 要 と し 、 キ ー マ ッ プ テ ー ブ ル の 第 1 カ ラ ム に 記 述 さ れ て い る キ ー シ ム は 必 要 と し な い と い う 事 実 も 利 用 す る 。 こ れ は Multi_key ( デ フ ォ ル ト の modifier マ ッ プ を 含 む ) を 探 し て い る ア プ リ ケ ー シ ョ ン が キ ー シ ム の い か な る 置 き 換 え に 対 し て も 気 が 付 か な い で あ ろ う と い う こ と を 意 味 す る 。
% xmodmap -e "keysym Multi_key = Multi_key Meta_L"
同 様 に 、 あ る キ ー ボ ー ド は メ タ キ ー を 持 た な い か わ り に ALT キ ー を 持 っ て い る 。 こ の 場 合 に は 以 下 の コ マ ン ド が 便 利 で あ る 。
% xmodmap -e "keysym Alt_L = Meta_L Alt_L"
最 も 単 純 で 、 そ れ で い て 便 利 な xmodmap の 利 用 法 の 一 つ は キ ー ボ ー ド の "抹 消 " キ ー を も う 一 つ の キ ー シ ム で 代 替 す る こ と で あ る 。 こ の こ と は ユ ー ザ に と っ て よ り 快 適 に な る 、 BS キ ー を DELETE キ ー と 入 れ 換 え る と い う こ と も 含 ん で い る 。 さ ら に 、 も し xterm で の ttyModes リ ソ ー ス が 設 定 さ れ て い る 場 合 に は 、 全 て の タ ー ミ ナ ル エ ミ ュ レ ー タ の ウ ィ ン ド ウ は 同 じ キ ー を 使 っ て 文 字 を 消 去 す る 。

%  xmodmap -e "keysym BackSpace = Delete"
%  echo "XTerm*ttyModes:  erase ^?" | xrdb -merge幾 つ か の キ ー ボ ー ド は 「 コ ン マ

+ shift」 と 「 ピ リ オ ド + shift」 に 対 し て 自 動 的 に 「 <」 と 「 >」 を 与 え な い 。 こ れ は コ ン マ と ピ リ オ ド の キ ー バ イ ン デ ィ ン グ を 以 下 の ス ク リ プ ト に よ っ て リ セ ッ ト す る こ と に よ り xmodmap で 矯 正 す る こ と が で き る 。

!
! make shift-, be < and shift-. be >
!
keysym comma = comma less
keysym period = period greaterキ ー ボ ー ド の 違 い で 、 よ り 苛 立 た せ ら れ る こ と の 一 つ は コ ン ト ロ ー ル キ ー と シフ ト ロ ッ ク キ ー の 位 置 で あ る 。

xmodmap の あ り ふ れ た 使 い 方 は こ れ ら 2 つ の キ ー を 以 下 の コ マ ン ド で 入 れ 換 え る こ と で あ る 。

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

keycode コ マ ン ド は 複 数 の キ ー コ ー ド に 同 じ キ ー シ ム を 指 定 す る 際 便 利 で あ る 。 移 植 性 は よ く な い も の の 、 キ ー ボ ー ド を 、 あ る 知 ら れ た 状 態 に リ セ ッ ト す る ス ク リ プ ト を 書 く こ と が で き る 。 以 下 の ス ク リ プ ト は BS キ ー に Delete の 機 能 を 持 た せ ( 上 記 を 参 照 ) 、 今 あ る caps lock の バ イ ン デ ィ ン グ を 全 て 消 去 し 、 Capslock キ ー を Control キ ー に 換 え 、 F5 キ ー に Escape の 機 能 を 持 た せ 、 Break/Reset を shift lock に す る 。

!
! HP で は 以 下 の  keycode は 下 記 に 挙 げ る  key cap を 持 つ :
!
!     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

環 境 変 数

DISPLAY は デ フ ォ ル ト の ホ ス ト 名 と デ ィ ス プ レ イ 番 号 を 得 る 。

関 連 項 目

X(7), xev(1), Xlib の キ ー と ポ イ ン タ イ ベ ン ト に 関 す る ド キ ュ メ ン ト 。

バ グ

keycode 表 現 が 評 価 さ れ る た び に サ ー バ は 各 々 の ク ラ イ ア ン ト に 対 し て MappingNotify イ ベ ン ト を 生 成 す る 。 こ の こ と が 幾 ら か の 問 題 を 起 こ す 。 全 て の 変 換 は ま と め て バ ッ チ 処 理 さ れ 、 同 時 に 実 行 さ れ て し ま う 。 キ ー ボ ー ド 入 力 を 受 取 り 、 MappingNotify イ ベ ン ト を 無 視 す る ク ラ イ ア ン ト は キ ー ボ ー ド マ ッ ピ ン グ に 対 し て な さ れ た 如 何 な る 変 化 に も 気 が 付 か な い 。 あ る modifier に 規 定 さ れ て い る キ ー コ ー ド が 変 更 さ れ た 場 合 は 何 時 で も Xmodmap は "add" と "remove" 表 現 を 自 動 的 に 生 成 し て し ま う 。 表 現 は マ ッ ピ ン グ を 台 無 し に し て し ま っ た 時 の た め に キ ー シ ム と 同 様 に キ ー コ ー ド も remove 表 現 が 受 け 付 け ら れ る よ う な 方 法 を 用 意 す べ き で あ る 。

著 者

Jim Fulton, MIT X コ ン ソ ー シ ア ム 。 初 期 の バ ー ジ ョ ン は サ ン マ イ ク ロ シ ス テ ム ズ 社 の David Rosenthal に よ っ て 書 か れ た 。