Macbook AirにUbuntu 18.04を入れてみたときのメモ(キー割り当て編)
MacBook Air (13-inch, Early 2014)にUbuntu 18.04 (日本語Remix)を入れてみたときのキー割り当て関連の設定のメモです。なおキーボードはJIS。 が、キー割り当て、よくわかってません。いろんなレイヤーがあるようで。
dpkg-reconfigure keyboard-configurationで選ぶやつ
キーボードレイアウトって言うのかな
xmodmapで設定するやつ
「設定」「地域と言語」や、右上の「あ▼」で選ぶやつ
入力ソースと呼ぶ
アプリごとの設定
あらすじとしては、キーボードレイアウトは物理的にどのキーが押された(離された)というコードを送るもので、それをxmodmapで論理的なキーの機能を表すコードに変換して、入力ソースでは利用している言語にしたがってアプリケーションに送り込む、みたいな感じになってるんじゃないかと思うんですが、それだけでは説明がつかないような気がしています。
ファンクションキーの設定
初期設定では、F1〜F12を押すと、輝度や音量の調節、音楽の操作などになり、ファンクションキーとして使うにはFnと同時押しする必要があります。これを逆にするには、/sys/module/hid_apple/parameters/fnmodeに2を書き込んでやればいい模様。
具体的には、/etc/rc.localに以下のようなスクリプトを書きます(rc.localがすでにあれば追記)。
code:/etc/rc.local
echo 2 > /sys/module/hid_apple/parameters/fnmode
optとcommandを入れ替える
optキーにALTが、commandキーにSuperが割り当たっています。これはこれでいいのかもしれませんが、PCの設定などと見比べると、入れ替えてoptがWindowsキー、commandがAltキー的な並びにしたほうが雰囲気が出そうです。
これは/sys/module/hid_apple/parameters/swap_opt_cmdに1を書き込むことによって実現できますのでrc.localに追記します。
code:/etc/rc.local
:
echo 1 > /sys/module/hid_apple/parameters/swap_opt_cmd
入力ソースの設定
入力ソースは「日本語」「日本語(Mozc)」がインストールされている状態にします。OSのインストール時に「日本語」を選べばそうなるはず。なっていなければ「設定」「地域と言語」で設定します。「日本語(Macintosh)」はカナ入力になってしまうようで、不要です。入れてしまったら「設定」「地域と言語」で消してしまって問題ない模様。
右上の入力ソースメニュー(「あ▼」とか「ja▼」とか表示されているもの)で「日本語(Mozc)」を選んでおきます。「日本語」にする場面はなさそうなんですが、「日本語」まで消してしまうと英語キーボードとして扱われてしまう(キーボードレイアウトは変更してないのに?)ようなので残しておきます。
「英数」「かな」の設定
この状態では「英数」で日本語入力のトグル、「かな」で日本語入力オフになっていました。よくわかっていないので推測にもなりませんが、どうもキーボードレイアウトから間違っているような気がしてなりません。いちばんソレっぽいのということで「Apple Aluminum(JIS)」を選びましたが、これが間違っていた?
キーボードレイアウト自体をいじる方法までは見つかりませんでしたので、違う方法を探します。
a) Mozcの設定で対応
入力ソースメニューの「ツール」「プロパティ」で「キー設定の選択」の「編集」をクリックすると、「Mozcキー設定」画面が開きます。ここで、既存の設定を参考に、「Hiragana」で「IMEを無効化」、「Eisu」で「IMEを有効化」を入れていきます。
反対になったままなので気持ち悪いところはありますが、実用上は問題ありません。
b) キー割り当ての変更(&Mozcの設定)
xmodmapを使って、「英数」が「Eisu」に、「かな」が「Hiragana」になるようにキー割り当てを変更します。
「英数」「かな」のコードを確認します。xevを起動してキーを押せばコードがわかります。「英数」を押すとコード131(Hiragana_Katakana)、「かな」はコード130(Eisu-toggle)が送られているようです。そりゃ逆になるわけです。なにかおかしい。
code:keycode.sh
$ xev
:
KeyPress event, serial 34, synthetic NO, window 0x4400001,
root 0x14c, subw 0x0, time 21633837, (-885,451), root:(324,583),
state 0x0, keycode 131 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
:
:
KeyPress event, serial 37, synthetic NO, window 0x4400001,
root 0x14c, subw 0x0, time 21634989, (-885,451), root:(324,583),
state 0x0, keycode 130 (keysym 0xff30, Eisu_toggle), same_screen YES,
:
キー割り当てを変更するにはxmodmapコマンドを用います。念のため、現在の設定を保存しておきます。-pkeは、設定ファイルの形式で現在の設定を出力するオプションです。
code:backup_map.log
$ xmodmap -pke > ~/.Xmodmap_default
コード130、131を見ると以下のような設定になっています。
code:~/.Xmodmap_default
:
keycode 130 = Eisu_toggle NoSymbol Eisu_toggle
keycode 131 = Hiragana_Katakana NoSymbol Hiragana_Katakana
:
これを逆にした、修正用のファイルを作成します。130、131の行だけで大丈夫です。
code:~/.Xmodmap
keycode 130 = Hiragana_Katakana NoSymbol Hiragana_Katakana
keycode 131 = Eisu_toggle NoSymbol Eisu_toggle
あとはxmodmap ~/.Xmodmapで設定が読み込まれて、「英数」でEisu_toggle、「かな」でHiragana_Katakanaが送られるようになります。毎回実行しなくていいよう、.bashrcに書いておきました。ほんとはもっといい場所があると思います。
code:.bashrc
:
# Change key assigns
xmodmap ~/.Xmodmap
あとはMozcで「英数」「かな」の設定を追加すれば終わりです。今度は「Hiragana」で「IMEを有効化」、「Eisu」で「IMEを無効化」で大丈夫です。すっきりしました。
Caps lockで日本語入力にならないようにする
なぜかOSインストール後は「Caps lock」で日本語入力が開始されました(トグルしていた)。大文字にもなっていたんですが。
もとの設定はこうなっていたようです。
code:~/.Xmodmap_default
:
keycode 66 = Eisu_toggle Caps_Lock Eisu_toggle Caps_Lock
:
これを全部Caps_loclに変えて、.Xmodmapに追記します。
code:~/.Xmodmap
:
keycode 66 = Caps_Lock Caps_Lock Caps_Lock Caps_Lock
これで大丈夫。
Home、End、PageUp、PageDown
これは、Fn+カーソルキーで入力できます。なあんだ。