設定変更前の準備
xmodmapってなに?
ラズパイのキー配置を変更したい。変えるのどうやるの?を検索してたどり着いたxmodmap。ぴぽこさんにxmodmapとはなんなのかということを調べてもらいました。
xmodmapは Xorg におけるキーマップやマウスボタンのマッピングを変更するためのユーティリティです。(ArchWiki)
Xorgってなんにゃろ。
Xorgは (一般的には単に X と呼ばれる)、Linux ユーザーの間で最も人気のあるディスプレイサーバーです。(ArchWiki)
ディスプレイサーバー…ってなんにゃろ。
ディスプレイサーバは、ウィンドウシステムにおいて、ポインティングデバイス・キーボード・ディプレイのハードウェア制御を行い、遠隔または同一のコンピュータ上で動作する他のプログラムに対し、ポインティングデバイス・キーボード・ディスプレイによる入出力の機能を提供するプログラムである。(wikipedia)
LinuxのGUIシステムにおけるキーマップ変更ソフト ということかな…。とにかく進めるにゃ。
xmodmap簡単実行の準備をする
番長のポリシー、GUIでできるとこはGUIで設定しますよ!
さてボタンぽんで起動の準備だにゃ。ラズパイのブラウザから ファイルを落として解凍してね!
xmodmap-set.zip をダウンロードしてダブルクリックしてファイルを展開
展開されたフォルダを確認するにゃ。隠しファイルを含むので「隠しファイルを表示する」お願いにゃ。展開されたファイルは tmpフォルダにあるにゃ。
展開されたフォルダの中身にはファイルが2つ。
KeyChangeファイルを右クリック。TextEditorで開いて、中身をみなさま用に修正するにゃ。
OSインストール時に設定したユーザー名に変えてにゃ! 変えたら上書き保存するにゃ。
ファイルを一つづつ移動するにゃ。片方のファイルは普通のファイラーじゃ移動できないので、管理者権限のファイラーを立ち上げてね!。
.xmodmap-mymap を /home/pi に移動するにゃ。
今度は 管理者権限のファイルマネージャーで /usr/share/applications を開きます。usrフォルダの中の、shareフォルダの中の、applicationsの中って意味にゃよ。
alacarte-made.desktop を /usr/share/applications に移動するにゃ。
これでスタートメニューから起動可能にゃ! まだ起動しないでね!
変更を確認しやすいようにテキストエディタをタスクバーに追加する
/home/pi に .xmodmap-mymap という設定記述ファイルを置いたけど、その設定が読み込まれて起動されるってことよね?
そのとおりです! 番長仕様の.xmodmap-mymap設定を基本に自分風に変更して使うのが良いと思うんだけど、 ちゃんと変更されたかのチェックをするのにテキストエディタが便利。すぐに起動できるようにタスクバーに置きましょう。タスクバーで右クリックにゃ
このランチャーが開いたら右の項目から追加したいアプリを「追加」にゃ
なるほど、タスクバーの項目はここから追加するのね。じゃついでに壁紙もサクっと変えてからxmodmapの設定しましょー。画面上で右クリック。Windowsと一緒ね。
ついでに壁紙も変えちゃう
xmodmapの設定をする
番長の設定済の状態の.xmodomapを説明します
では番長仕様の初期設定にゃ。さきほどメニューに登録した KeyChangeを起動するとこの配列になるにゃ。
おっけー! では /home/pi に置いた.xmodomap の中身を見てみます。
今回も独学で完全に把握してるわけじゃないんにゃけど、説明するにゃ。普通のキー変更はBブロックだけの記述でOKみたい。同時に押す特殊キーみたいのは、定義が必要。最初にクリアして最後に追加する。下にわかる範囲でまとめたにゃ。
- Shiftみたいなキーを押したまま他のキーを押すキー・トグルキーを特殊キー扱い
- 特殊扱いは8種の枠があるっぽい(Aブロック/Cブロックの8種)
- 特殊キーを変更する場合は clear または removeで登録解除して addし直す
特殊キーの変更例
左のShiftを通常の「S」キーに変更してみた例。
ピンク①番は記述変更してないけど、意味としてはShift枠を一度クリアしますよ、ピンク②番はShift_Lキー(50番)を、「S」キーにしますよ、ピンク③番はShiftキーとしての扱いはShift_Rキーだよという感じかにゃ
例えば今回のShift_Lキー 50番とかの番号はどこを調べればいいの?
(下の項目につづく)
keycodeの一覧を確認。
このキーはこの番号です。っていうのは
どこで調べられるの?
それはね、ターミナルから xmodmap -pke というコマンドを打つと一覧がでます!
下に全部を貼るけど、キーボードの言語や種類の設定などでもしかしたら変わるのかもしれないので、念のためにご自分の環境でもコマンド実行してみてね。ターミナルに出てきたのそのまま貼っちゃう。
これが基本になるキー番号ってことね。
keycode 8 =
keycode 9 = Escape NoSymbol Escape
keycode 10 = 1 exclam 1 exclam
keycode 11 = 2 quotedbl 2 quotedbl
keycode 12 = 3 numbersign 3 numbersign
keycode 13 = 4 dollar 4 dollar
keycode 14 = 5 percent 5 percent
keycode 15 = 6 ampersand 6 ampersand
keycode 16 = 7 apostrophe 7 apostrophe
keycode 17 = 8 parenleft 8 parenleft
keycode 18 = 9 parenright 9 parenright
keycode 19 = 0 asciitilde 0 asciitilde
keycode 20 = minus equal minus equal
keycode 21 = asciicircum asciitilde asciicircum asciitilde
keycode 22 = BackSpace BackSpace BackSpace BackSpace
keycode 23 = Tab ISO_Left_Tab Tab ISO_Left_Tab
keycode 24 = q Q q Q
keycode 25 = w W w W
keycode 26 = e E e E
keycode 27 = r R r R
keycode 28 = t T t T
keycode 29 = y Y y Y
keycode 30 = u U u U
keycode 31 = i I i I
keycode 32 = o O o O
keycode 33 = p P p P
keycode 34 = at grave at grave
keycode 35 = bracketleft braceleft bracketleft braceleft
keycode 36 = Return NoSymbol Return
keycode 37 = Control_L NoSymbol Control_L
keycode 38 = a A a A
keycode 39 = s S s S
keycode 40 = d D d D
keycode 41 = f F f F
keycode 42 = g G g G
keycode 43 = h H h H
keycode 44 = j J j J
keycode 45 = k K k K
keycode 46 = l L l L
keycode 47 = semicolon plus semicolon plus
keycode 48 = colon asterisk colon asterisk
keycode 49 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
keycode 50 = Shift_L NoSymbol Shift_L
keycode 51 = bracketright braceright bracketright braceright
keycode 52 = z Z z Z
keycode 53 = x X x X
keycode 54 = c C c C
keycode 55 = v V v V
keycode 56 = b B b B
keycode 57 = n N n N
keycode 58 = m M m M
keycode 59 = comma less comma less
keycode 60 = period greater period greater
keycode 61 = slash question slash question
keycode 62 = Shift_R NoSymbol Shift_R
keycode 63 = KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply XF86ClearGrab
keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 65 = space NoSymbol space
keycode 66 = Eisu_toggle Caps_Lock Eisu_toggle Caps_Lock
keycode 67 = F1 F1 F1 F1 F1 F1 XF86Switch_VT_1
keycode 68 = F2 F2 F2 F2 F2 F2 XF86Switch_VT_2
keycode 69 = F3 F3 F3 F3 F3 F3 XF86Switch_VT_3
keycode 70 = F4 F4 F4 F4 F4 F4 XF86Switch_VT_4
keycode 71 = F5 F5 F5 F5 F5 F5 XF86Switch_VT_5
keycode 72 = F6 F6 F6 F6 F6 F6 XF86Switch_VT_6
keycode 73 = F7 F7 F7 F7 F7 F7 XF86Switch_VT_7
keycode 74 = F8 F8 F8 F8 F8 F8 XF86Switch_VT_8
keycode 75 = F9 F9 F9 F9 F9 F9 XF86Switch_VT_9
keycode 76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10
keycode 77 = Num_Lock NoSymbol Num_Lock
keycode 78 = Scroll_Lock NoSymbol Scroll_Lock
keycode 79 = KP_Home KP_7 KP_Home KP_7
keycode 80 = KP_Up KP_8 KP_Up KP_8
keycode 81 = KP_Prior KP_9 KP_Prior KP_9
keycode 82 = KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract XF86Prev_VMode
keycode 83 = KP_Left KP_4 KP_Left KP_4
keycode 84 = KP_Begin KP_5 KP_Begin KP_5
keycode 85 = KP_Right KP_6 KP_Right KP_6
keycode 86 = KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add XF86Next_VMode
keycode 87 = KP_End KP_1 KP_End KP_1
keycode 88 = KP_Down KP_2 KP_Down KP_2
keycode 89 = KP_Next KP_3 KP_Next KP_3
keycode 90 = KP_Insert KP_0 KP_Insert KP_0
keycode 91 = KP_Delete KP_Decimal KP_Delete KP_Decimal
keycode 92 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift
keycode 93 =
keycode 94 = less greater less greater bar brokenbar bar
keycode 95 = F11 F11 F11 F11 F11 F11 XF86Switch_VT_11
keycode 96 = F12 F12 F12 F12 F12 F12 XF86Switch_VT_12
keycode 97 = backslash underscore backslash underscore
keycode 98 = Katakana NoSymbol Katakana
keycode 99 = Hiragana NoSymbol Hiragana
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana Romaji Hiragana_Katakana Romaji
keycode 102 = Muhenkan NoSymbol Muhenkan
keycode 103 =
keycode 104 = KP_Enter NoSymbol KP_Enter
keycode 105 = Control_R NoSymbol Control_R
keycode 106 = KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide XF86Ungrab
keycode 107 = Print Execute Print Execute
keycode 108 = Alt_R Meta_R Alt_R Meta_R
keycode 109 = Linefeed NoSymbol Linefeed
keycode 110 = Home NoSymbol Home
keycode 111 = Up NoSymbol Up
keycode 112 = Prior NoSymbol Prior
keycode 113 = Left NoSymbol Left
keycode 114 = Right NoSymbol Right
keycode 115 = End NoSymbol End
keycode 116 = Down NoSymbol Down
keycode 117 = Next NoSymbol Next
keycode 118 = Insert NoSymbol Insert
keycode 119 = Delete NoSymbol Delete
keycode 120 =
keycode 121 = XF86AudioMute NoSymbol XF86AudioMute
keycode 122 = XF86AudioLowerVolume NoSymbol XF86AudioLowerVolume
keycode 123 = XF86AudioRaiseVolume NoSymbol XF86AudioRaiseVolume
keycode 124 = XF86PowerOff NoSymbol XF86PowerOff
keycode 125 = KP_Equal NoSymbol KP_Equal
keycode 126 = plusminus NoSymbol plusminus
keycode 127 = Pause Break Pause Break
keycode 128 = XF86LaunchA NoSymbol XF86LaunchA
keycode 129 = KP_Decimal KP_Decimal KP_Decimal KP_Decimal
keycode 130 = Hangul NoSymbol Hangul
keycode 131 = Hangul_Hanja NoSymbol Hangul_Hanja
keycode 132 = backslash bar backslash bar
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R
keycode 135 = Menu NoSymbol Menu
keycode 136 = Cancel NoSymbol Cancel
keycode 137 = Redo NoSymbol Redo
keycode 138 = SunProps NoSymbol SunProps
keycode 139 = Undo NoSymbol Undo
keycode 140 = SunFront NoSymbol SunFront
keycode 141 = XF86Copy NoSymbol XF86Copy
keycode 142 = XF86Open NoSymbol XF86Open
keycode 143 = XF86Paste NoSymbol XF86Paste
keycode 144 = Find NoSymbol Find
keycode 145 = XF86Cut NoSymbol XF86Cut
keycode 146 = Help NoSymbol Help
keycode 147 = XF86MenuKB NoSymbol XF86MenuKB
keycode 148 = XF86Calculator NoSymbol XF86Calculator
keycode 149 =
keycode 150 = XF86Sleep NoSymbol XF86Sleep
keycode 151 = XF86WakeUp NoSymbol XF86WakeUp
keycode 152 = XF86Explorer NoSymbol XF86Explorer
keycode 153 = XF86Send NoSymbol XF86Send
keycode 154 =
keycode 155 = XF86Xfer NoSymbol XF86Xfer
keycode 156 = XF86Launch1 NoSymbol XF86Launch1
keycode 157 = XF86Launch2 NoSymbol XF86Launch2
keycode 158 = XF86WWW NoSymbol XF86WWW
keycode 159 = XF86DOS NoSymbol XF86DOS
keycode 160 = XF86ScreenSaver NoSymbol XF86ScreenSaver
keycode 161 = XF86RotateWindows NoSymbol XF86RotateWindows
keycode 162 = XF86TaskPane NoSymbol XF86TaskPane
keycode 163 = XF86Mail NoSymbol XF86Mail
keycode 164 = XF86Favorites NoSymbol XF86Favorites
keycode 165 = XF86MyComputer NoSymbol XF86MyComputer
keycode 166 = XF86Back NoSymbol XF86Back
keycode 167 = XF86Forward NoSymbol XF86Forward
keycode 168 =
keycode 169 = XF86Eject NoSymbol XF86Eject
keycode 170 = XF86Eject XF86Eject XF86Eject XF86Eject
keycode 171 = XF86AudioNext NoSymbol XF86AudioNext
keycode 172 = XF86AudioPlay XF86AudioPause XF86AudioPlay XF86AudioPause
keycode 173 = XF86AudioPrev NoSymbol XF86AudioPrev
keycode 174 = XF86AudioStop XF86Eject XF86AudioStop XF86Eject
keycode 175 = XF86AudioRecord NoSymbol XF86AudioRecord
keycode 176 = XF86AudioRewind NoSymbol XF86AudioRewind
keycode 177 = XF86Phone NoSymbol XF86Phone
keycode 178 =
keycode 179 = XF86Tools NoSymbol XF86Tools
keycode 180 = XF86HomePage NoSymbol XF86HomePage
keycode 181 = XF86Reload NoSymbol XF86Reload
keycode 182 = XF86Close NoSymbol XF86Close
keycode 183 =
keycode 184 =
keycode 185 = XF86ScrollUp NoSymbol XF86ScrollUp
keycode 186 = XF86ScrollDown NoSymbol XF86ScrollDown
keycode 187 = parenleft NoSymbol parenleft
keycode 188 = parenright NoSymbol parenright
keycode 189 = XF86New NoSymbol XF86New
keycode 190 = Redo NoSymbol Redo
keycode 191 = XF86Tools NoSymbol XF86Tools
keycode 192 = XF86Launch5 NoSymbol XF86Launch5
keycode 193 = XF86Launch6 NoSymbol XF86Launch6
keycode 194 = XF86Launch7 NoSymbol XF86Launch7
keycode 195 = XF86Launch8 NoSymbol XF86Launch8
keycode 196 = XF86Launch9 NoSymbol XF86Launch9
keycode 197 =
keycode 198 = XF86AudioMicMute NoSymbol XF86AudioMicMute
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
keycode 200 = XF86TouchpadOn NoSymbol XF86TouchpadOn
keycode 201 = XF86TouchpadOff NoSymbol XF86TouchpadOff
keycode 202 =
keycode 203 = Mode_switch NoSymbol Mode_switch
keycode 204 = NoSymbol Alt_L NoSymbol Alt_L
keycode 205 = NoSymbol Meta_L NoSymbol Meta_L
keycode 206 = NoSymbol Super_L NoSymbol Super_L
keycode 207 = NoSymbol Hyper_L NoSymbol Hyper_L
keycode 208 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 209 = XF86AudioPause NoSymbol XF86AudioPause
keycode 210 = XF86Launch3 NoSymbol XF86Launch3
keycode 211 = XF86Launch4 NoSymbol XF86Launch4
keycode 212 = XF86LaunchB NoSymbol XF86LaunchB
keycode 213 = XF86Suspend NoSymbol XF86Suspend
keycode 214 = XF86Close NoSymbol XF86Close
keycode 215 = XF86AudioPlay NoSymbol XF86AudioPlay
keycode 216 = XF86AudioForward NoSymbol XF86AudioForward
keycode 217 =
keycode 218 = Print NoSymbol Print
keycode 219 =
keycode 220 = XF86WebCam NoSymbol XF86WebCam
keycode 221 = XF86AudioPreset NoSymbol XF86AudioPreset
keycode 222 =
keycode 223 = XF86Mail NoSymbol XF86Mail
keycode 224 = XF86Messenger NoSymbol XF86Messenger
keycode 225 = XF86Search NoSymbol XF86Search
keycode 226 = XF86Go NoSymbol XF86Go
keycode 227 = XF86Finance NoSymbol XF86Finance
keycode 228 = XF86Game NoSymbol XF86Game
keycode 229 = XF86Shop NoSymbol XF86Shop
keycode 230 =
keycode 231 = Cancel NoSymbol Cancel
keycode 232 = XF86MonBrightnessDown NoSymbol XF86MonBrightnessDown
keycode 233 = XF86MonBrightnessUp NoSymbol XF86MonBrightnessUp
keycode 234 = XF86AudioMedia NoSymbol XF86AudioMedia
keycode 235 = XF86Display NoSymbol XF86Display
keycode 236 = XF86KbdLightOnOff NoSymbol XF86KbdLightOnOff
keycode 237 = XF86KbdBrightnessDown NoSymbol XF86KbdBrightnessDown
keycode 238 = XF86KbdBrightnessUp NoSymbol XF86KbdBrightnessUp
keycode 239 = XF86Send NoSymbol XF86Send
keycode 240 = XF86Reply NoSymbol XF86Reply
keycode 241 = XF86MailForward NoSymbol XF86MailForward
keycode 242 = XF86Save NoSymbol XF86Save
keycode 243 = XF86Documents NoSymbol XF86Documents
keycode 244 = XF86Battery NoSymbol XF86Battery
keycode 245 = XF86Bluetooth NoSymbol XF86Bluetooth
keycode 246 = XF86WLAN NoSymbol XF86WLAN
keycode 247 =
keycode 248 =
keycode 249 =
keycode 250 =
keycode 251 = XF86MonBrightnessCycle NoSymbol XF86MonBrightnessCycle
keycode 252 =
keycode 253 =
keycode 254 = XF86WWAN NoSymbol XF86WWAN
keycode 255 = XF86RFKill NoSymbol XF86RFKill
一覧から必要な箇所を抜き出して作業
番長仕様で変更しているキーの元の番号を 上のxmodmap -pke の一覧から抜き出したにゃ。
keycode 37 = Control_L NoSymbol Control_L
keycode 64 = Alt_L Meta_L Alt_L Meta_L
keycode 66 = Eisu_toggle Caps_Lock Eisu_toggle Caps_Lock
keycode 102 = Muhenkan NoSymbol Muhenkan
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana Romaji Hiragana_Katakana Romaji
keycode 133 = Super_L NoSymbol Super_L
番長仕様の.xmodomap keycode部分を再度貼ります。
keycode 37 = Super_L
keycode 64 = Control_L
keycode 66 = Control_L
keycode 102 = Zenkaku_Hankaku
keycode 100 = Escape
keycode 101 = Alt_R
keycode 133 = Alt_L
ならべるとわかりやすいね。ちなみに Super はwinキーにゃよ。
- 無変換キーを、半/全に変えたいな。
- 無変換キーのkeycode番号は?(元のキーリスト一覧から) 102番か。
- 全/半の記述はどう書くんだろ(元のキーリスト一覧から) Zenkaku_Hankakuだ。
- キー番号102番を全/半に変更!
- keycode 102 = Zenkaku_Hankaku
番長の.xmodomap をベースにするなら、変更しなくていいや!ってキーは1行消しちゃえばいいし、他のキーに変えたいなら一覧から追って、 = の右側をコピペすればいいのね。簡単!
ちなみに元のキーリスト一覧を見ると keycode 58 = m M m M とか 4つ以上並んでるとこもあるけど、最初の2つ 普通に押した時、shiftキーを押した時…. それ以外は 忘れてください。わかりません。
設定した配列を元に戻すには? xmodomapのメリット・デメリットは?
KeyChangeのショートカットから起動したあと、USBを抜くと初期状態に戻るにゃ。簡単に初期状態に戻るけど逆にいうとハードでの切替ケーブルなんかを使うと切り替えるたびにKeyChangeを起動しないといけないというデメリットがあるにゃ。その分、設定はやりやすいかにゃ。いじってみてはUSB抜いてKeyChange起動で試せるからにゃー。
VNC、Barrierは 操作マシンのキー設定そのままで操作できるから、xmodomapキーマップ変更が生きるのはラズパイ単体で作業するときよね。
ラズパイ単体でモニターとUSBキーボードをつないで、ということは、xmodomapの設定が自動起動された方が便利だとおもうから、自動起動のやりかたもちょこっとやってみようにゃ!
xmodomapで設定したキーマップを自動起動
普通のファイルマネージャーからautostartをひらくにゃ! 前回したブックマークからだとらくにゃね!
今回は xmodmap /home/pi/.xmodmap-mymap 。ユーティリティ名「xmodmap」を先頭につけてPathにゃ。@は@後のコマンドはクラッシュした際に自動的に再度実行されます。とのことにゃ。つけてもつけなくてもOK。ユーザー名には注意してね。
おっけー! 自動起動できましたー! キーボードはラズパイ起動前から挿しとかないだめだから注意だね!