おもちゃ、家電、もろもろの修理の足跡と備忘録

色々と忘れるので。趣味のメモ

ChromeOS_Flex + Crostini + VScode(.deb)で日本語入力設定メモ

まえがき

MSの基盤から離れた環境を作りたかったので、Ubuntuサーバも動かしてみたが、ChromeOSを使ったことがなかったので、ChromeOS Flexをインストールし、Linuxを動かしてVScodeで日本語入力ができるようにしてみたので、それの設定メモ。(そのうちChromeOSF FlexとAndroidが一緒になってしまうようではありますが、、)

最終的にはどういう環境になるのか

  • ChromeOS_Flex
  • Crostini
  • Linux
  • VS_Code(.deb)

でVS_Code上でEmacs_keybindingで日本語入力が動くように設定するメモ

とはいえ、かなり手強い、、、。

とはいえ、これで古いPC(Lifebook S560@core i5<初代>)でもそれなりにLinuxが動く環境ができたのでうれしぃ。

%久しぶりにPCを起動したらkeyboardが壊れていたので、USB keyboardをつなげて作業。割とまともに動くようになったので、交換用のkeyboardを探してきて動くようにするかな。

注意

- ChromeOS Flex側のIMEと、Linux側のIMEは別物(別々に動く)
- LinuxのTerminal上は、ChromeOS側のIMEで日本語入力できるがVScodeの上ではそれは動かない
- Linux上のVScode上は、Linux上のIME(以下のfcitx5+mozc)で動かす
- Linux側の個人用の動作の設定は、基本的には.profileに記載する。(Linuxの基本と同じ)
- cronはもちろんどちらも効かない。

.profileと.bashrcの使い分け例

file Crostiniでの意味 役割
.profile ログイン時に一回起動 環境変数やセッション初期化
.bashrc 対話用設定(.bashrcは.profileから呼ばれる。
.bash_aliasesは.bashrcから呼ばれる)
alias, prompt, 補完

ChromeOS側からも呼ぶのであればすくなくとも.profile側に書いておかないと実行されない(多分。私は使わないので良いけれど、、)。

1. 準備

  • ChromeOS FlexをPCに載せる(他の人の記事を参照してください)
  • ChromeOSの画面右下時計から歯車マーク(設定)
  • 「ChromeOSについて」、から「デベロッパー」、「Linux開発環境」 →Linuxをインストールする

以下、最終的にうまくいった構成まとめ

2. 日本語入力(fcitx5 + mozc)

インストール

sudo apt update
sudo apt upgrade -y
sudo apt install -y \
  fcitx5 \
  fcitx5-mozc \
  fcitx5-configtool \
  fonts-noto-cjk \
  dbus-x11

3. 環境変数 & 自動起動(.profile)

以下を~/.profile に追加:

# IME environment
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx

# fcitx5 auto start
if command -v fcitx5 > /dev/null 2>&1; then
  pgrep -x fcitx5 > /dev/null 2>&1 || fcitx5 -d > /dev/null 2>&1
fi

# JISキーボード固定(XWayland対策)
# これをしておかないと、VScode上でkeyboardがenになっちゃう
# setxkbmap -layout jp >/dev/null 2>&1
# ★→次の項目で記載しているが、.bashrcに移動

4. ".bashrc"に追加

どうも、setxkbmap -layout jp を.profileに記載してもLinuxの起動時にシステムが書き換えちゃうようでsetxkbmap -queryで見るとen(us)なる事が多い。これを避けるために、念のために毎回起動するようにタイマー遅延を加えて.bashrcに記載することとする。.bashrcの最後に以下を加える

# for VScode
(sleep 1 && setxkbmap -layout jp >/dev/null 2>&1)

# 参考 以下でkeyboardmapの状態がわかる
# setxkbmap -query

その後、Linuxをシャットダウン → 再起動。

5. VS Code は X11 で起動

Wayland ではVScode上でうまく IME が動かなかったため、

code --ozone-platform=x11

で起動する。毎回面倒なので".bashrc"にaliasで設定、ないしは".bash_aliases"に書いておく

alias code="code --ozone-platform=x11"

で対応。

!!! 注意 この設定にすると、ChromeOS側のランチャーから起動するとうまくゆかないかも。(私は使わないから良いけれど、、、)

6. VScode 側設定

settings.json に追加: VScodeで、左下歯車マークから設定、設定のタイトルの右側にあるファイルのアイコンにに矢印(→)がついているやつ、を選択するとjsonが直接見られる。

{
  "keyboard.dispatch": "keyCode",
  "editor.inlineSuggest.enabled": false
}

これでJIS配列ズレ防止&IME安定。

これで実現できたこと

  • Linux起動時にfcitx5自動起動
  • VS Codeで日本語入力OK
  • JISキーボード配列OK
  • Ctrl+Spaceで切替OK →変換、無変換に変更する(以下参照)
  • warningは無視してOK →出さないようにする(以下参照)

今の構造は

> ChromeOS (Wayland)
>  ↓
> XWayland
>  ↓
> VS Code (X11強制)
>   ↓
> fcitx5 + mozc

ChromeOS Flex + Crostini ではこのVScodeの「X11固定」構成が最も安定な感じです。

VScode側の設定

拡張機能

  • 拡張機能で、日本語を入れる(Japanese Language Pack for Visual Studio Code)
  • 拡張機能で、Emacs keybindingにするためのモジュールを入れる(Awesome Emacs Keymapなど→ctrl-x ctrl-sで file_saveとか)

あとはお好きで機能拡張をどうぞ(例えば、markdown Viewerとか、、)

fcitx/mozc の起動keybindの変更

defaultで、”ctrl-\<space>”キーが、変換に設定されていて、Emacsの選択開始とダブってとても使いにくいので変更。

fcitx5-configtool

で起動して、「Global Options」で - 「Trigger Input Method」で"ctrl-\<space>"を削除する - 変換開始機能を別なKeyに追加する(例えば、"変換"キーを設定するとか)

20260228」20260301」

ちょっと修正はしたけれど、markdownでかけますね。素晴らしい。これでVScodeのmarkdownで作成した資料がここに簡単に載せられます。