サーバにはCentOS7をインストールして使っている。
基本的にサーバにはsshかvncで接続して使っているわけだが、端末としてはMacOSXを使用しており、キーボードもmacの(それもかなりレガシーな)US配列のものを使っているため、いまいちキーマップが一致せず、意図した動作ができないということが多かったので、その辺の環境を一度整理してみることにした。あとあまり必要ではないのだけれど日本語の入力、表示も一応できるようにしたい。
初期状況:
CentOS7はlocaleを日本語としている。
super keyが割り当てられていない?
日本語入力ができない。
Macで作成した日本語ファイルが文字化けする。日本語をmacからCentOSにコピペすると化ける。
まず行ったこと:日本語入力環境を入れる。
アプリケーション→システムツール→設定
を開く
地域と言語を選択すると
こんな感じになっている。入力ソースに日本語、とあるから日本語が入力できるのかと思ったら、どうやらできない。
したのプラスボタンを押して
日本語(かな漢字)を追加してやると入力、漢字変換もできるようになるというわけ。
変換のショートカットなどを変更するならここをいろいろいじる。
で、普通に半角英数入力とちゃっちゃと切り替えて使うには
この英語(US)も足しておく必要がある。(特にmacのUSキーボードで入力しているなら以下の理由によりマストだと思う)
さて、これで漢字変換できるようになったが、英数・かな漢字の切り替えのショートカットがこのままでは使えない(VNC環境で)
というのもMacのUSキーボードにはかな・漢字キーなどがないからね。
入力ソースのオプションというボタンを押すと
こんな風に書かれていて、変更を受け付けない状態になっているのだが、このsuperキーってのがMacにはないのね。
なので切り替えようがない。
いろいろ悩んだが、これはMacのVNC viewerの側で解決できた。
VNC viewerのPreferenceで
このようにLeftCmdKeyをSuper_Lに、LeftOptKeyをAlt_Lに設定してやると良い。
ちなみにデフォルトではLeftCmdKeyがAlt_Lに設定されている。
まあこの辺はWindowsのキーボードのWinキーとAltキーの並び順に従っているのだろうけど、macのoptionキーにはAltと表示されているんだがな。でsuperキーを設定せずに放置しているのってどういうことよ、って思うね。
なおSSHやVNCの端末はUSキーボードだからといってlocalectlでキーボードレイアウトをUSにしておく必要はないようだ。localectlでは直接サーバにつないだキーボードの設定を変えるコマンドで、SSH、VNCで接続した場合はそれぞれの端末でキーボードレイアウトを読み取って送信しているのだね。
なお、日本語のコピペが文字化けるのは仕様のようで。