P4チュートリアルのVMを日本語化する(fcitx + Mozc + タイムゾーン)
Table of Contents
こんにちは.P4の公式チュートリアルで配られているVM(Lubuntu / Ubuntu 20.04,VirtualBox)を日本語化したので,手順をメモしておきます. 英語のままでも動くけど,日本語入力ができないとメモを取るときに地味に不便なんですよね.
日本語化していない状態から始める想定で,上から順にコマンドを打てば終わるようにしています.
最後に「Ctrl+Space を押しても日本語入力に切り替わらない」ときの原因と直し方も書きました.実際にハマったので.
対象環境
| 項目 | 内容 |
|---|---|
| OS | Ubuntu 20.04.6 LTS (Focal Fossa) |
| デスクトップ | Lubuntu(LXQt),X11 セッション |
| 実行環境 | VirtualBox 上の VM(P4 チュートリアル配布イメージ) |
| 入力メソッド | fcitx 4.2.9.7 + Mozc 2.23 |
| 初期の状態 | ロケールは en_US.UTF-8,タイムゾーンは UTC |
用意するものはこのくらい.
sudoが使えるユーザー- インターネットにつながる VM
- 10〜15 分くらいの時間(ほぼダウンロード待ちです)
全体の流れ
- パッケージ一覧を更新する
- 日本語の言語パックとフォントを入れる
- システムのロケールを日本語にする
- 日本語入力(fcitx + Mozc)を入れる
- 入力メソッドを fcitx に切り替える
- タイムゾーンを日本時間にする
- ログインし直す
- fcitx を設定して入力を試す
1. パッケージ一覧を更新する
sudo apt-get update
古いままだとパッケージが見つからないことがあるので,最初に実行しておきます.
2. 日本語の言語パックとフォントを入れる
sudo apt-get install -y language-pack-ja language-pack-gnome-ja fonts-noto-cjk
| パッケージ | 役割 |
|---|---|
language-pack-ja | 日本語ロケールと,基本ソフトの翻訳 |
language-pack-gnome-ja | GTK アプリの日本語翻訳 |
fonts-noto-cjk | 日本語フォント.無いと文字が豆腐(□)になる |
足りない言語サポートは,次のコマンドで調べられます.
check-language-support -l ja
kde-config-fcitx(KDE 用)や fonts-noto-cjk-extra(追加フォント)が出てくることがありますが,今回は入れなくて大丈夫です.
3. システムのロケールを日本語にする
# ja_JP.UTF-8 を生成対象にして,ロケールを作る
sudo sed -i 's/^# *ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen
grep -q '^ja_JP.UTF-8' /etc/locale.gen || echo 'ja_JP.UTF-8 UTF-8' | sudo tee -a /etc/locale.gen
sudo locale-gen
# 既定のロケールを日本語にする
sudo update-locale LANG=ja_JP.UTF-8 LANGUAGE=ja:en
/etc/default/locale が次のようになっていればOKです.
LANG=ja_JP.UTF-8
LANGUAGE=ja:en
LANGUAGE=ja:en は,日本語訳が無いメッセージを英語で出すための指定です.
設定が反映されるのは次にログインしたときなので,確認は「7. ログインし直す」でやります.
4. 日本語入力(fcitx + Mozc)を入れる
必要なパッケージをまとめて明示的に入れます.
sudo apt-get install -y \
fcitx fcitx-mozc fcitx-ui-classic fcitx-config-gtk \
fcitx-frontend-gtk2 fcitx-frontend-gtk3 fcitx-frontend-qt5 \
im-config
| パッケージ | 役割 |
|---|---|
fcitx | 入力メソッドの本体 |
fcitx-mozc | かな漢字変換エンジン(Mozc)を fcitx で使うための部品 |
fcitx-ui-classic | 画面表示(入力ウィンドウ,トレイアイコン,状態表示) |
fcitx-config-gtk | fcitx の設定画面 |
fcitx-frontend-gtk2 / fcitx-frontend-gtk3 | GTK アプリで fcitx を使うための部品 |
fcitx-frontend-qt5 | Qt5 アプリで fcitx を使うための部品.Lubuntu(LXQt)の端末やファイラーは Qt5 製なので必要 |
im-config | 使う入力メソッドを選ぶ道具 |
重要: fcitx-ui-classic を忘れない
fcitx-ui-classic は fcitx の「推奨(Recommends)」扱いで,必須の依存ではありません.
--no-install-recommends を付けて入れた環境や,fcitx-mozc だけ入れた場合には入らないことがあります.
これが無いと,fcitx は動いているのに画面には何も出なくて,Ctrl+Space が効いていないように見えます.動いてるのに何も見えないという,地味に心臓に悪いやつです.詳しくは末尾のトラブルシュートで書きます.
5. 入力メソッドを fcitx に切り替える
im-config -n fcitx
ホームに ~/.xinputrc ができて,中身はこうなります.
run_im fcitx
ログインし直すと,次の環境変数が設定されます.
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
6. タイムゾーンを日本時間にする
Ubuntu の初期状態だと時刻が UTC(協定世界時)で表示されます.これを日本時間(JST,UTC+9)にします.
まず,いまの設定を確認します.
timedatectl
Time zone: Etc/UTC (UTC, +0000) と出ていたら,まだ UTC です.
日本のタイムゾーン名を確認して,設定します.
timedatectl list-timezones | grep Tokyo # Asia/Tokyo と表示される
sudo timedatectl set-timezone Asia/Tokyo
ちゃんと変わったか確認します.
timedatectl
date
こう表示されれば完了です.
Time zone: Asia/Tokyo (JST, +0900)
2026年 10月 17日 土曜日 22:10:08 JST
この設定は再起動しても残るし,ログインし直さなくてもすぐ反映されます.
時刻の同期について
timedatectl に System clock synchronized: no と出ることがあります.
VirtualBox の VM はホスト PC の時刻に合わせることが多いので,時刻がずれていなければ気にしなくて大丈夫です.ずれるときは,自動同期(NTP)を有効にします.
sudo timedatectl set-ntp true
7. ログインし直す
ロケールと入力メソッドの設定を反映するために,一度ログアウトして入り直す(または再起動する)のが確実です.すでに開いていたアプリには反映されません.
入り直したら,端末で次のコマンドを打って確認します.
locale # LANG=ja_JP.UTF-8 になっているか
date # 「2026年 10月 17日 土曜日 ...」のように日本語で表示されるか
ls /nonexistent # エラーメッセージが日本語になるか
8. fcitx を設定して入力を試す
入力メソッドの一覧を確認する
設定画面を開きます.
fcitx-configtool
「入力メソッド」タブの一覧が,次のようになっていればOKです.
キーボード - 英語 (US)(または日本語キーボード)Mozc
Mozc が無かったら,左下の + ボタンで追加します.「現在の言語のみ表示」のチェックを外すと見つかります.
切り替えのキー
切り替えは既定値の Ctrl+Space をそのまま使います.設定ファイル ~/.config/fcitx/config だと次の行が既定値で,コメントアウトされていても有効です.
[Hotkey]
#TriggerKey=CTRL_SPACE
変えたいときは,設定画面の「全体の設定」タブにある「入力メソッドの切り替え」から変更できます.
入力を試す
テキストエディタやブラウザの入力欄を開いて Ctrl+Space を押します.Mozc のアイコン(「あ」など)や入力ウィンドウが出たら成功です.
nihongo と打って Space で変換,Enter で確定すれば「日本語」と入力できます.
日本語キーボードの PC なのに VM のキー配列が US になってると,記号の位置がずれます.配列はこのコマンドで確認できます.
setxkbmap -query
P4 の作業への影響
-
ロケールを日本語にすると,
makeやp4cなどのメッセージの一部が日本語になることがあります. -
エラーを検索するときは,元の英語メッセージで調べたほうが情報が見つかりやすいです.そのコマンドだけ英語で実行することもできます.
LANG=C make run -
仮想端末(
Ctrl+Alt+F1〜F6)の画面は日本語を表示できません.デスクトップ上のターミナル(QTerminal)なら問題ありません.
トラブルシュート: Ctrl+Space で日本語入力に切り替わらない
症状
Ctrl+Spaceを押しても日本語入力に切り替わらない(ように見える)- 入力ウィンドウも,トレイの入力メソッドアイコンも出ない
調べ方
fcitx には診断コマンドがあります.
fcitx-diagnose
日本語化したあとは出力も日本語になります.英語の出力で調べたいときは LANG=C fcitx-diagnose で.
出力の中で ** が付いている行が問題の箇所です.ただし,次の警告は日本語入力に関係ないので無視して大丈夫です.
kcmshell4が見つからない(KDE 用の設定ツール)- gtk2 用の設定 GUI が見つからない
- Qt4 の Fcitx 入力メソッドモジュールが見つからない
gtk-query-immodulesが見つからない(GTK の入力モジュールは別のキャッシュに登録されている)
今回の原因は,この警告でした(英語の出力です).
4. User Interface:
**Cannot find enabled fcitx user interface!**
2. XIM_SERVERS on root window:
**Cannot find xim_server on root window.**
「fcitx の画面表示(UI)が有効になってないよ」という内容です.
切り替え自体が動いているかは,次のコマンドで確認できます.
fcitx-remote # 1: 無効(英数) 2: 有効(日本語入力)
fcitx-remote -o # 日本語入力を有効にする
fcitx-remote -c # 無効にする
自分の場合は fcitx-remote -o を実行したら 1 から 2 に変わりました.つまり fcitx 自体は動いていて,切り替わっているのに画面に何も出ていなかっただけでした.
原因
fcitx-ui-classic が入っていませんでした.apt の履歴(/var/log/apt/history.log)にも,インストールした記録がありません.
直し方
sudo apt-get install -y fcitx-ui-classic
fcitx -r # fcitx を再起動
もう一度診断すると,UI と XIM の両方が有効になっています.
4. User Interface:
Found 1 enabled user interface addons:
実際のキー入力でも確認する
xdotool で Ctrl+Space を送って,状態が切り替わるか確かめることもできます.
sudo apt-get install -y xdotool
fcitx-remote # 1
xdotool key ctrl+space
fcitx-remote # 2 (切り替わった)
xdotool key ctrl+space
fcitx-remote # 1 (戻った)
確認が終わったら不要なので,sudo apt-get remove -y xdotool で消せます.
それでも切り替わらないときのチェックリスト
| 確認すること | コマンド |
|---|---|
| fcitx が動いているか | pgrep -a fcitx |
| 環境変数が正しいか | env | grep -E 'IM_MODULE|XMODIFIERS' |
| 入力メソッドの一覧に Mozc があるか | grep EnabledIMList ~/.config/fcitx/profile |
| 別のショートカットと衝突していないか | ~/.config/lxqt/globalkeyshortcuts.conf を確認 |
| 起動前に開いたアプリを使っていないか | アプリを再起動,またはログインし直す |
まとめ
- 日本語化の中身は「言語パックとフォント + ロケール設定 + fcitx と Mozc + タイムゾーン」です.
- fcitx の入れ忘れで多いのは
fcitx-ui-classicです.これが無いと,切り替えが動いても何も表示されません. - 困ったら
fcitx-diagnoseを実行して,**の付いた行を探してみてください.
これで快適に日本語でメモが取れる,はず.