きゃべログ

Raspberry PiでUSキーボード使用時のキー配置がおかしい時の対処法

Linux開発環境

今回の問題の概要

本題に入る前に問題が起こった背景

割と事の発端からだらだらと書いてあるので、解決方法だけに興味があるかたは解決方法のセクションだけ読んでください。たぶんこれだけ読めば設定できます。

先日Raspberry Piを購入しました。その流れでラズパイ専用のキーボードを買うことになったのですが、「やっぱり開発するなら英字キーボードが格好いいよな」なんて考えながら下記のアツい記事によりUSキーボードの購入を決めました。

買ったキーボードがこれです。私は普段Macを使っているので、よく似たデザインのものが欲しかったのです。タッチはまあまあ違うのですが、格好いいのでいい買い物だったと思います。商品名が日本語配列と書いてありますが、届いた製品は完全にUS配列でした。ちょっとした詐欺?

参考

なぜJISよりUSキーボードをオススメするのか、というお話 | coardware

IoTデバイスプログラミング入門―Windows10 IoT CoreとRaspberry Piで作るIoTデバイス
北山 洋幸
カットシステム
売り上げランキング: 340,792

デフォルト設定ではUSキーボードがうまく使えない?

さっそくOSをインストールしたラズパイに買ったキーボードを使いながら初期設定を進めていきました。最初は特に問題なく文字も打てましたし、むしろキーボードの操作感を楽しんでいました。一通り日本語化のソフトウェアをapt-getでインストールをし終えたので、きちんとインストールできているか確認のために、dpkg -l | grep jfbtermで確認しようとしました。

そのとき

入力がおかしい

「あれ、パイプ(縦棒)を入力したはずなのになぜ#(シャープ)が出るんだ? 何かの間違いだろう。」

入力がおかしい2

「?????」

キーボード図解

使っているキーボードのキー配置はこのようになっている。 確かに「む」のところをShiftを押しながら打っていた。 何かの間違いかも知れないので、\(バックスラッシュ)が表示されることを期待してShiftを押さずに打ってみる。

tilda

「チ…チルダじゃないかッ…!!!」

ラズパイって欧米のものだからUSキーボードはそのまま使えると思っていたのですが、何がおかしいのか追求することにしました。

解決編

原因究明

何はともあれ、キーボードのことだからキーボード設定を見ないと始まらないということで、sudo raspi-configから設定をいじります。

青い画面が出てきて、5 Internationalization Options Set up language and regional settings to match your location > I3 Change Keyboard Layout Set the keyboard layout to match your keyboard からキーボードの設定を変更します。

するとどのモデルのキーボードを使っているかを設定する画面になります。表示されているモデルの候補の多いこと。メジャーなMicrosoftやサンワサプライなどのブランドは結構リストに載っているのですが、今回買ったGMYLEというブランドは載っていません。メジャーなキーボードのうちどれにフィットするか確認する作業が始まるのか……とマイナーなブランドのキーボードを買ったことを悔やみました。

モデルの設定を変更し、ラズパイを再起動すること数回、あることに気づきました。

Configuration Screen

モデルを設定した後にどんなキーレイアウトを設定する画面に移るのですが、候補がすべてUKだったんですね。 「……UK?USじゃないのか。UKとUSはどちらも英語なんだから配列が違うわけ……」 すかさず調べてみました。

UKキーボードのアルファベット配列はUSキーボード(QWERTY配列)と同じですが、以下の点が異なります。

  • @、~などの記号キーの位置が異なる
  • 多用する記号キーがEnterキー周辺に集められているのが特徴。

これやん!!!まさに〜(チルダ)の配置が違うやん!!!

というわけで、レイアウトがUS配列じゃなくてUK配列となっていたことが原因であるとわかりました。モデルをすべて検証していく必要があると思っていましたが、どうやらその必要はなくレイアウトをUS配列に設定したらなんとかなりそうですね。

解決方法

簡潔に設定方法を解説していきます。

  • $ sudo raspi-configをターミナルで入力しラズパイの設定画面を開く。
  • 青い画面が出るので5 Internationalization Options Set up language and regional settings to match your locationを選択する。
  • 次に3 Change Keyboard Layout Set the keyboard layout to match your keyboardを選択する。
  • たくさんキーボードのモデル名が並んでいるので一般的と思われるGeneric 105-Key(Intel) PCを選択する。多分ここはそんなに問題ではない。
  • レイアウトの設定画面に移るのでOtherを選択する。
  • 国を選ぶ画面になるので、English(US)を選択する。
  • するとレイアウトの設定に戻り、UKでなくUS配列が並んでいるはずなので最もシンプルなEnglish(US)を選択する。
  • sudo rebootで再起動する。
  • これで無事US配列としてキーボードが使えるようになりました。よく知らないブランドのキーボードを買ったのが悪いわけではなかったようです。やったね!!

補足

どうしてデフォルトのキー配列がUK配列だったのかが疑問だったのですが、どうやらRaspberry Piの生みの親であるEben Upton氏の出身地がUKだったんですね。とても腑に落ちる理由ですね。

参考

Eben Upton - Wikipedia, the free encyclopedia

まとめ

今回はRaspberry PiでUSキーボードを使うための設定方法について解説しました。わかってしまえば単純な話ですが、UKとUSの配列に違いがあるというところが落とし穴ですね。少しでも同じような悩みを持った人がハッピーになることを祈ります。


きゃべ (@cab_kyabe)
きゃべ (@cab_kyabe)
Software Engineer / Product Manager