生活を良くします - 怠惰なプログラミング

生活を良くします-怠惰なプログラミング

外資系でエンジニアをやっています。便利なサービスや商品、プログラミングで作ったものなどを紹介していきます

VM Ubuntuでキーボードを日本語配列に - 入力がおかしい場合にkeyboard layoutがUSになっているのを変更する

キーボード入力がおかしい!

f:id:what_a_day:20170322233200p:plain

先に解決策から

GUIやその他のコマンドは一切効果がありませんでした。

そのため、ターミナルから次のコマンドを打ちます。

setxkbmap -print -verbose 10

このコマンドでキーボードの実際の設定がどうなっているのか見れます。

Setting verbose level to 10
locale is C
Applied rules from evdev:
model: pc105
layout: us
Trying to build keymap using the following components:
keycodes: evdev+aliases(qwerty)
types: complete
compat: complete+japan
symbols: pc+jp+inet(evdev)
geometry: pc(pc105)
xkb_keymap {
xkb_keycodes { include “evdev+aliases(qwerty)” };
xkb_types { include “complete” };
xkb_compat { include “complete+japan” };
xkb_symbols { include “pc+jp+inet(evdev)” };
xkb_geometry { include “pc(pc105)” };
};


ここでlayoutがusになっています。

大体の日本人は日本語配列のキーボードを使っているのでこれでは入力がおかしくなってしまいます。

そのため次のコマンドを打って日本語配列に対応させます。

setxkbmap -layout jp

これで完了です。

失敗した解決策たち

おそらく普通の環境だったら解決策になっていただろうものを列挙します。

sudo dpkg-reconfigure keyboard-configuration

Package `keyboard-configuration' is not installed and no info is available.
Use dpkg –info (= dpkg-deb –info) to examine archive files,
and dpkg –contents (= dpkg-deb –contents) to list their contents.
/usr/sbin/dpkg-reconfigure: keyboard-configuration is not installed.

本来ならこれで解決するはずなのですが、どうやらインストールされていないとのこと。

この段階で少しおかしいです、なぜなら他の人のブログではスムーズにこのコマンドだけでうまくいっているからです。

インストールされていないならインストールしてしまえばいいと思って実行しましたが、結論から言えば失敗しました。

sudo apt-get install keyboard-configuration

Reading package lists… Done
Building dependency tree
Reading state information… Done
E: Couldn’t find package keyboard-configuration

こちらが失敗したインストールの例です。

どうやら存在していない?と考えられるのですが、ちょっと特殊な環境でやっているので何かおかしいのでしょう。

sudo apt-get install console-common

Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/universe/c/console-common/console-common_0.7.85_all.deb 404 Not Found [IP: ]
E: Unable to fetch some archives, maybe run apt-get update or try with –fix-missing?

どこかのブログでたくさん見た解決方法ですが、うまくいきませんでした。

以下のコマンドたちもその仲間なのですが、これらも同様に失敗しました。

うまくいかない原因を探したのですが、うまくいった例がたくさん出てきてそこで探すのを諦めました。

sudo apt-get install console-data
sudo apt-get install console-locale
sudo apt-get install console-setup

sudo cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

これは時間を日本時間に設定するというものです。

これの後にsudo apt-get install keyboard-configurationを実行するとうまくいくらしいのですが、そもそも先に失敗しています。

結果として日本時間に変更できただけでした。

vim /etc/X11/xorg.conf

ここからレイアウトを探して変更できればよかったのですが、キーボードに関わる項目は見つかりませんでした。

setting panel -> extension

同じbodhiで参考になると思って実行しました。

Bodhi linux のキーボードレイアウトを変更したお(^ω^ ) : 全部假的

上のブログの通りに実行しました。途中までは完全に一緒で期待しましたが、なぜかキーボード関連の設定が自分の場合はなかったので途中で諦めるしかありませんでした。

他のGUIで操作するものでは、「キーボードレイアウトを設定する」という項目があるらしいのですが、自分の環境にはキーボード関連の設定は一つしかなくそれもレイアウトとは関係ないものでした。

症状について

Virtual Boxをインストールして環境を整えましたが、なぜかキーボードの入力がおかしいということに気づきました。

具体的には { を入力しているのにPC上には } が出てきたり、: を打つのにわざわざ shift + “:"を打たなければいけませんでした。

これはVirtual Boxの環境でキーボードをアメリカのUS配列として認識しているために起こっていることです。

ここまではすぐにはわかりましたが、そこからが長かったです。正直すぐに解決するだろうと考えていましたが、2時間くらいかかりました。

ちなみになんで間違っているのかというとキーボードによって対応しているキーが違っているからです。


こちらがUS配列のキーボード

f:id:what_a_day:20170322225404j:plain


こちらが日本語配列のキーボード

f:id:what_a_day:20170322225408j:plain

キーボード。日本語配列と英語配列。 - ツクモゲーム部


このようにアメリカと日本でキーボードの形自体が変わっています。

自分は日本語キーボードで打っているのに、パソコン側はUSキーボードとして受け取るためおかしな現象が起きていました。

原因について

Stanford大学の Compilersというオンライン講義を取っている時にどうしても講座で指定された環境で実行するしかありませんでした。

そのためある程度は完成された?環境で実行できるはずなのですが、スタンフォードはアメリカの大学です。

なのでキーボードレイアウトを指定するまでもなく最初からUS配列になっているのでしょう。

無料で勉強できているので文句ではないですが、少し大変でした。

ちなみにオンラインで無料で勉強できるサービスはたくさんあります。

以下の記事にまとめました。

www.what-a-day.net

まとめ

  • Stanfordのオンライン講座のためにVMを使った
  • 日本語レイアウトにする方法を色々と試した