P4チュートリアルのVMを日本語化する(fcitx + Mozc + タイムゾーン)

P4チュートリアルのVMを日本語化する(fcitx + Mozc + タイムゾーン)


Table of Contents

こんにちは.P4の公式チュートリアルで配られているVM(Lubuntu / Ubuntu 20.04,VirtualBox)を日本語化したので,手順をメモしておきます. 英語のままでも動くけど,日本語入力ができないとメモを取るときに地味に不便なんですよね.

日本語化していない状態から始める想定で,上から順にコマンドを打てば終わるようにしています. 最後に「Ctrl+Space を押しても日本語入力に切り替わらない」ときの原因と直し方も書きました.実際にハマったので.

対象環境

項目内容
OSUbuntu 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 分くらいの時間(ほぼダウンロード待ちです)

全体の流れ

  1. パッケージ一覧を更新する
  2. 日本語の言語パックとフォントを入れる
  3. システムのロケールを日本語にする
  4. 日本語入力(fcitx + Mozc)を入れる
  5. 入力メソッドを fcitx に切り替える
  6. タイムゾーンを日本時間にする
  7. ログインし直す
  8. 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-jaGTK アプリの日本語翻訳
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-gtkfcitx の設定画面
fcitx-frontend-gtk2 / fcitx-frontend-gtk3GTK アプリで fcitx を使うための部品
fcitx-frontend-qt5Qt5 アプリで 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です.

  1. キーボード - 英語 (US)(または日本語キーボード)
  2. 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 を実行して,** の付いた行を探してみてください.

これで快適に日本語でメモが取れる,はず.