kb84tkhrのブログ

何を書こうか考え中です あ、あと組織とは関係ないってやつです 個人的なやつ

UbuntuをMacbook Airに入れてみる (8)

xmodmap覚えたところで、ちょっと気になってた特殊キー周りも見直してみる

  • 「英数」と「かな」が逆にアサインされているっぽい
  • 「caps」を押すと日本語入力のトグルになる
  • optionとcommand、PCで言うとどっちがALTでどっちがWin?

もしかしてキーボードレイアウトの選択とか何かが間違ってるのかなとは思うものの
"Apple"と"JIS"が入ってるの選んだはずだしここから修正していく

ひとつずつ

  • 「英数」と「かな」が逆にアサインされているっぽい

今はIMEの設定も逆にしてるから困ってはいないんだけど!
でも気持ち悪いの!
MacUbuntuを入れてる人もそれなりにいるみたいなんだけど
どうしてるんだろう
気にしてない?IMEの割当で済ませてる?

逆に、これから直すとIMEの設定もやりなおさなきゃなんだけど
でもやる

xmodmapの設定で言うとたぶんここ

keycode 130 = Eisu_toggle NoSymbol Eisu_toggle
keycode 131 = Hiragana_Katakana NoSymbol Hiragana_Katakana

xevで見るとkeycode 130が「かな」、keycode 131が「英数」

これは単純に入れ替えれば済むのではないか
~/.Xmodmapに以下を追記してxmodmap ~/.Xmodmap

keycode 130 = Hiragana_Katakana NoSymbol Hiragana_Katakana
keycode 131 = Eisu_toggle NoSymbol Eisu_toggle

できた
逆になってる
日本語入力しにくい
さっそくIMEの設定を変更

設定は新しいアプリから反映されます、って言われるんだよね
アプリを再起動ってことだと思うんだけどそれじゃ反映されない
OSから再起動する

日本語入力はOK
キーボードレイアウトは・・・逆!?直ってないよ?
左側にHiragana、右側にEisuになって逆のまま・・・

こっちはxmodmapじゃなくてキーボードレイアウトの方で表示されてるわけか
スペースの左が130で右が131ですよって覚えてるわけだな?
ここは直せるのか
検索してもdpkg-reconfigure keyboard-configurationで選択肢から
選ぶやりかたばっかり引っかかる
ドライバ書くとかそんなレベルなんだろうか
ここはもうあきらめておこう

xmodmapっていう名前からしX Windowのレイヤーで
キー割り当て変更してるっぽいけどこれはもっと下でやったほうが
いいのではないのか
X Windowの外側では無効なんだよね?
などと言ってもはじまらず

そういえば
IMEの設定では"Eisu_toggle"や"Hiragana_Katakana"ではなくて
"Eisu"や"Hiragana"と表示されてる
なにかもやっとしたものを感じてたんだけどこれだな
この文字列はどこから持ってきているんだろう

  • 「caps」を押すと日本語入力のトグルになる

ときどき、Ctrlを押すつもりでcapsを押してしまうと、大文字に
なるだけではなくて日本語入力になってしまってなにこれってなる

「キーボードレイアウトの表示」で見てみると
ひとつのキーに「Capslock Eisu_toggle」って表示されてる
なんでこうなった

xmodmapで関係ありそうなのはここ

keycode  66 = Eisu_toggle Caps_Lock Eisu_toggle Caps_Lock

そのまま押せばEisu_toggle、Shiftと押せばCaps Lockという設定
でもそのまま押してもCaps Lockとして動作する
Caps Lockはハードウェア的に動作してて+ソフトでEisu_toggleが
かかってるってことだろうか

あ、キーボードレイアウトで上に表示されてるのはShift押したときの
キーコードってことか納得
納得はしたけど解決はしていない

あとUbuntuインストールしたときに、たしか言語の切り替えかなんかで
Capsキーを使うってのを選んだんだよな
あれが影響してるのかもしれない
でも、何をやったら再設定できるのか
「設定」見てもそれっぽいのはない

dpkg-reconfigure keyboard-configurationに何かあったかな
もっかいやってみよ

あーそういえばここで、「日本語」を選ぶか「日本語(Macintosh)」を
選ぶかで悩んで「日本語(Macintosh)」にしたけど、カナ入力に
なっちゃって結局消したんだよな
なんか関係あるかな
使うのはMozcだから基本的には関係ないと思うんだけど
いやむしろ、ずっと「日本語(Mozc)」なんだから
「日本語」もいらないのか?消してみる?

AltGrで「キーボード配置のデフォルト」っていうのも意味がよくわからない
結局どのキーになってるの?
ていうかいらないか・・・
AltGrなしにしちゃう?した
でもそれっぽいものはなかった

再起動
お?
なんか直ってるっぽい?
キーボードレイアウトはどうかな?

Caps LockがAの隣に来て、Controlが左下に来てる
Caps LockがEisu_toggleとセットじゃなくなってるから
日本語に切り替わらなくなったのかな
・・・というのはいいとして
これ英語キーボードのレイアウトじゃないか
だめだこりゃ

「日本語」を入れ直す
キーボードレイアウトは変わったけど「英数」「かな」は出てこない
再起動したら出てきた
もうよくわからなくなっている

あれ?
でもcaps押しても日本語入力に切り替わらなくなってる
なに?なになに?
AltGrの設定が関係ある?
いやそれはないと思うんだけどなあ
キーボードレイアウトを表示させるとCaps LockとEisu_toggleが
同居してた

切り分け失敗してるな・・・

いやちょっとまて
Caps LockとEisu_toggleが同居してる、んだよな?
Eisu_toggleはさっきIMEオフに設定したよな?
つまりcapsを押すとIMEオフになるのか

どれ
あーなるなる
何も解決してなかった(涙

じゃ、もともとの構想どおりxmodmapの設定を変更してみるね!

keycode 66 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock

今度こそ直ったみたい
どんだけ横道だったのかというね
キーボードレイアウトの表示ではEisu_toggleが消えて
Caps Lock単独になった
なぜか上段にいるけど

まあいいや

  • optionとcommand、PCで言うとどっちがALTでどっちがWin?

xevによるとcommandキーにSuper、optionキーにAltが割り当てられている模様
なおShift+optionでMetaになるようだ

横道だけど、アプリ側でoption+shiftを判定したりするようになっていると
こういうのって想定外の動作にならないんだろうか
アプリ側は「お、Metaのコードが来た ってことはshiftとoptionが
押されたんだな」とか考えないような気がするんだけど
どうももやっとするなあ

話を戻して
コレ単体で見れば別に問題はないと思うけど
WindowsではWinキーが左、Altキーが右
Macだと、option(altとも書いてある)が左、commandが右

Windowsでは当然、AltキーでAltが送られてくるだろう
ということは左右が逆になるのではないか
Win機にUbuntuを入れたとき、キーが逆になってて困ったりしないか
WindowsMacを使うときも、なんとなくMacのcommandはWindows
Altに近いようなイメージあったし(かなり違うけど

UbuntuはどっちかというとPC上で動くことを想定されてるだろうから、
Windowsの操作に合ってたほうがよさそうな気がする
あと右commandがどっちとして働くべきか
自分はあんまり右command使わないから、ほかの便利そうなキーに
してしまってもいいんだけど

どうしようかな
「設定」「デバイス」「キーボード」でショートカットキーを
見ながら考える
やっぱりSuperがWindowsキーだな ということは左
ここは刻印でなく左右を優先しよう

で、何を変更すればいいの
xevだと、左commandはxevが受け取るより先にGNOMEインターセプトして
しまってわからないんだけどたぶんこれ
(右commandもAltにするつもりで)

keycode  64 = Alt_L Meta_L Alt_L Meta_L
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R

こうかな

keycode  64 = Super_L NoSymbol Super_L
keycode 133 = Alt_L Meta_L Alt_L Meta_L
keycode 134 = Alt_R NoSymbol Alt_R

あれー
command+tabでアプリ切り替えができなくなった
さっきまでcommand+tabでもoption+tabでもできてたのになあ
commandに(Windowsで言うところの)Altを割り当てるなら
Alt+tabでできてほしいところなんだけど!

探してみたら同志も多いようで
xmodmapでやるやり方もあったけど
/sys/module/hid_apple/parameters/swap_opt_cmd
1を書き込んでやればいい、というのも見つかった
もとから用意されてるならこれでいいか
xmodmapの方は思ってたよりすこしだけややこしくて
もうちょっと理解してからじゃないとやりたくない感じだった

.Xmodmapをもとに戻してから/etc/rc.localに以下を追記

echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd

で再起動
できた