1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ChromeOS Linux(Crostini)でElectronアプリの日本語入力ができない問題を解決する

1
Last updated at Posted at 2026-04-14

※この記事はAIを使用して作成しています。

はじめに

ChromeOS のLinux環境(Crostini)でVS CodeやAntigravity、ObsidianなどのElectronアプリを使っていると、日本語入力(IME)に切り替えられないという問題に遭遇することがあります。そんな経験をした方も多いのではないでしょうか。

この記事では、その原因と解決方法を詳しく解説します。


環境

  • ChromeOS Linux(Crostini / Debian bookworm, arm64)
  • XDG_SESSION_TYPE=wayland
  • GTK_IM_MODULE=cros(ChromeOS IMEブリッジ)

原因

Electronのバージョンによるデフォルト表示プラットフォームの違い

ChromeOS Linux環境では XDG_SESSION_TYPE=wayland が設定されています。

Electronバージョン デフォルトの表示プラットフォーム 日本語入力
〜25.x X11(XWayland経由) ✅ 動作する
29.x〜 Waylandauto優先) ❌ 動作しない

VS Code 1.82.0がなぜ動くのか?

VS Code 1.82.0 はElectron 25.8.0 を使用しているため、X11がデフォルトです。ChromeOS IME(GTK_IM_MODULE=cros)はXIM(X Input Method)プロトコル経由でXWayland上で動作するため、問題なく機能します。

注意: VS Code 1.87以降ではElectron 29以降を採用しており、同様の問題が発生する可能性があります。その場合は以下の手順で対応してください。

なぜ他のアプリで動かないのか?

Obsidian、Antigravity(v1.22.2)などの新しいElectronアプリはElectron 29以降を使用しており、XDG_SESSION_TYPE=wayland を検出してWaylandモードで起動します。ChromeOS IMEはこのモードでは機能しないため、日本語入力に切り替えられなくなります。


解決方法

Electronアプリを強制的にX11モードで起動するには、以下の2つを設定します。

  • 環境変数: ELECTRON_OZONE_PLATFORM_HINT=x11
  • 起動フラグ: --ozone-platform=x11

注意: デスクトップエントリ(.desktopファイル)の Exec= に直接 env VAR=value ... と書く方法はChromOSのランチャーでは効かない場合があります。必ずラッパースクリプト経由で設定してください。


手順

ステップ1: ラッパースクリプトを作成する

/usr/local/bin/ にラッパースクリプトを作成します。

Obsidian の場合

sudo tee /usr/local/bin/obsidian > /dev/null << 'EOF'
#!/bin/sh
export ELECTRON_OZONE_PLATFORM_HINT=x11
exec /opt/obsidian/obsidian-<バージョン>-arm64/obsidian --no-sandbox --ozone-platform=x11 "$@"
EOF
sudo chmod +x /usr/local/bin/obsidian

汎用(他のElectronアプリ)

sudo tee /usr/local/bin/<アプリ名> > /dev/null << 'EOF'
#!/bin/sh
export ELECTRON_OZONE_PLATFORM_HINT=x11
exec /path/to/app/binary --ozone-platform=x11 "$@"
EOF
sudo chmod +x /usr/local/bin/<アプリ名>

ステップ2: デスクトップエントリを更新する

/usr/share/applications/<アプリ名>.desktopExec= をラッパースクリプトのパスに書き換えます。

# 変更前
Exec=/opt/obsidian/obsidian-1.12.7-arm64/obsidian --no-sandbox %u

# 変更後
Exec=/usr/local/bin/obsidian %u

ステップ3(VS Codeフォークのみ): argv.json を設定する

VS Codeフォーク(Antigravity、VSCodium など)はElectron起動設定ファイル argv.json にフラグを追加することもできます。

mkdir -p ~/.config/<AppName>
cat > ~/.config/<AppName>/argv.json << 'EOF'
{
    "enable-crash-reporter": false,
    "ozone-platform": "x11"
}
EOF

アプリ名(ディレクトリ名)は nameShort に対応します。/usr/share/<appname>/resources/app/product.json で確認できます。

cat /usr/share/antigravity/resources/app/product.json | grep nameShort
# → "nameShort": "Antigravity"
# → ~/.config/Antigravity/argv.json に配置

ステップ4: デスクトップデータベースを更新する

sudo update-desktop-database /usr/share/applications/

アプリを再起動して日本語入力が切り替えられるか確認してください。


実際の適用例

Obsidian 1.12.7

# ラッパースクリプト
sudo tee /usr/local/bin/obsidian > /dev/null << 'EOF'
#!/bin/sh
export ELECTRON_OZONE_PLATFORM_HINT=x11
exec /opt/obsidian/obsidian-1.12.7-arm64/obsidian --no-sandbox --ozone-platform=x11 "$@"
EOF
sudo chmod +x /usr/local/bin/obsidian

# デスクトップエントリ
sudo sed -i 's|Exec=.*|Exec=/usr/local/bin/obsidian %u|' /usr/share/applications/obsidian.desktop

sudo update-desktop-database /usr/share/applications/

VS Code(Electron 29以降の場合)

# ラッパースクリプト
sudo tee /usr/local/bin/code-x11 > /dev/null << 'EOF'
#!/bin/sh
export ELECTRON_OZONE_PLATFORM_HINT=x11
exec /usr/share/code/code --ozone-platform=x11 "$@"
EOF
sudo chmod +x /usr/local/bin/code-x11

# デスクトップエントリ(/usr/share/applications/code.desktop の Exec= を変更)
sudo sed -i 's|Exec=/usr/share/code/code|Exec=/usr/local/bin/code-x11|g' \
  /usr/share/applications/code.desktop

# argv.json(VS Codeフォーク共通の設定)
mkdir -p ~/.config/Code
cat > ~/.config/Code/argv.json << 'EOF'
{
    "enable-crash-reporter": false,
    "ozone-platform": "x11"
}
EOF

sudo update-desktop-database /usr/share/applications/

VS Code 1.82.0(Electron 25.x)では上記の対応は不要です。インストール済みバージョンのElectronバージョンを確認してから適用してください。


Antigravity 1.22.2(VS Codeフォーク)

# ラッパースクリプト
sudo tee /usr/local/bin/antigravity-x11 > /dev/null << 'EOF'
#!/bin/sh
export ELECTRON_OZONE_PLATFORM_HINT=x11
exec /usr/share/antigravity/antigravity --ozone-platform=x11 "$@"
EOF
sudo chmod +x /usr/local/bin/antigravity-x11

# デスクトップエントリ
sudo sed -i 's|Exec=/usr/share/antigravity/antigravity|Exec=/usr/local/bin/antigravity-x11|g' \
  /usr/share/applications/antigravity.desktop

# argv.json(二重の保険)
mkdir -p ~/.config/Antigravity
cat > ~/.config/Antigravity/argv.json << 'EOF'
{
    "enable-crash-reporter": false,
    "ozone-platform": "x11"
}
EOF

sudo update-desktop-database /usr/share/applications/

対応が不要なアプリ

  • VS Code 1.82.0(Electron 25.x): X11がデフォルトのため対応不要。ただし 1.87以降はElectron 29以降を使用するため上記の対応が必要になる場合あり
  • GTKアプリ(Gedit、FileManager等): GTK_IM_MODULE=cros がそのまま機能する

原因の調べ方

Electronのバージョンは以下のコマンドで確認できます。

# アプリのpackage.jsonを確認
grep '"electron"' /usr/share/<アプリ名>/resources/app/package.json

Electron 29以降ならこの記事の対応が必要です。


まとめ

やること 理由
ラッパースクリプトで ELECTRON_OZONE_PLATFORM_HINT=x11 を設定 WaylandモードをX11に強制切り替え
--ozone-platform=x11 を直接バイナリに渡す 環境変数より確実にX11を強制
.desktopExec をラッパースクリプトに変更 ChromeOSランチャーは env 構文を解釈しない

ChromeOS + Linux環境でElectronアプリの日本語入力に悩んでいる方の参考になれば幸いです。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?