まえがき
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で作成した資料がここに簡単に載せられます。