WaylandとFcitx5環境で日本語入力できない/Shift,Ctrlキーが効かない不便な症状の対処方法

WaylandとFcitx5環境で日本語入力できない/Shift,Ctrlキーが効かない不便な症状の対処方法
キーボードが正常に使えないツラさを体で表現しています

「がとらぼ」の中の人が常用しているPCのOSはLinuxで、 KDE neon というディストリビューションです。 KDE neon は Ubuntu LTS をベースに、最新世代の KDE Plasma や KDE アプリケーションを利用できるようにした環境です。 KDE Plasma では X11 から Wayland への移行が進んでおり、2026年10月にリリース予定の KDE Plasma 6.8 では Plasma の X11 セッションが廃止され、ログイン時に選択できる Plasma セッションは Wayland のみになります。ただし、 X11 アプリケーションそのものが動作しなくなるわけではなく、多くの X11 アプリケーションは XWayland という互換レイヤーを介して引き続き利用できます。

基本的には X11 から Wayland への移行は順調で、一般的なユーザー、特に日本語入力のようなインプットメソッド(IM)を必要としないユーザーにとっては、気付かないうちに Wayland へ置き換わっていた、という程度の変化で済むことも多いでしょう。しかし、日本語、中国語、韓国語などの入力にインプットメソッドを使用する環境では事情が異なります。 Wayland では X11 とは入力処理の仕組みが異なり、アプリケーション、 GUI ツールキット、 Wayland コンポジター、インプットメソッドの間で使用するプロトコルも関係するため、英数字だけを入力する環境では表面化しない問題が発生することがあります。

今回は、Linuxで日本語入力を行う人にとって比較的メジャーなインプットメソッドフレームワークであるFcitx 5をWaylandで使用する場合の備忘録です。

基本設定

Fcitx 5 を使用可能にするには、 Fcitx 5 本体や Mozc など必要なパッケージをインストールしたうえで、 KDE システム設定から「キーボード」「仮想キーボード」を開き、通常は「 Fcitx 5 」を選択します。「 Fcitx 5 Wayland Launcher (Experimental) 」が表示される環境もありますが、現在の Fcitx 公式ドキュメントで推奨されているのは「 Fcitx 5 」です。 KDE neon の更新に伴う不具合の回避策として「 Plasma Keyboard 」や「 Fcitx 5 Wayland Launcher (Experimental) 」を試した時期もありましたが、正しく動作しない部分があったため、通常は「 Fcitx 5 」を使用するのが適切です。 KDE Plasma の Wayland 環境では、この方法で KWin から Fcitx 5 を起動することが重要です。従来の X11 環境とは起動方法が異なるため、古いドキュメントなどに従って Fcitx 5 を別途自動起動する設定を追加することは避けます。また、この方法で起動した Fcitx 5 は KWin から Wayland 入力メソッド用の接続情報を受け取っているため、システムトレイのメニューから Fcitx 5 だけを再起動する操作も避けた方が安全です。なお、原因調査のためにターミナルから一時的に起動して動作を確認すること自体は問題ありません。

Waylandへの移行以前はアプリケーション側から Fcitx 5 を利用できるようにするため、 ~/.bashrc などへ以下の3行を記述する方法がよく使われていました。

export XMODIFIERS='@im=fcitx5'
export GTK_IM_MODULE="fcitx5"
export QT_IM_MODULE="fcitx5"

Fcitx の Wiki のドキュメント Using Fcitx 5 on Wayland によると、現在の KDE Plasma Wayland 環境では考え方が変わっています。基本構成では XWayland 上で動作するアプリケーションのために XMODIFIERS を設定しますが、 GTK_IM_MODULE と QT_IM_MODULE はシステム全体には設定せず、 GTK や Qt の Wayland ネイティブな入力経路を使用することが推奨されています。なお、 Qt 6.7 では複数の入力メソッドを優先順位付きで指定できる QT_IM_MODULES という環境変数が追加されました。これは KDE Plasma 6.7 の機能ではなく Qt 6.7 以降の機能で、互換性に問題のある Qt アプリケーションなどでフォールバックを用意する場合に利用できます。 GUI から起動するアプリケーションにも確実に環境変数を渡したい場合は、 ~/.bashrc ではなく /etc/environment など、ログインセッション全体へ適用される設定を使用します。

XMODIFIERS=@im=fcitx
QT_IM_MODULES=wayland;fcitx

従来の QT_IM_MODULE ではなく、末尾に"S"が付いた QT_IM_MODULES であることに注意が必要です。 QT_IM_MODULES は複数の入力メソッドをセミコロンで並べ、利用可能なものを順番に試すための変数です。なお、この QT_IM_MODULES はKDE PlasmaでFcitx 5を使うために必須というわけではなく、Qtアプリケーションの互換性を補うための設定として考えた方がよいでしょう。

ただし、 Ubuntu 24.04 LTS をベースとする KDE neonでPlasma 6.7 を使用する環境では、Fcitx公式ドキュメントどおりに GTK_IM_MODULE と QT_IM_MODULE を設定しない構成にすると、Ubuntu側で提供されているFcitx 5のバージョンやWaylandとの組み合わせによって、 Shift や Caps Lock などの修飾キーが正常に処理されない問題が発生する場合があります。これは KDE Bug 520566 でも報告されている問題で、環境変数を設定したことによって発生する問題ではなく、逆に Ubuntu/KDE neon 側の Fcitx 5 と Wayland 入力メソッドとの組み合わせで発生する互換性問題です。この環境ではCtrlキーについても正常に扱われない症状が確認できました。

解決方法は KDE Bug 520566 を参照します。(以下)
Bug 520566 ではG TK_IM_MODULE、QT_IM_MODULE、XMODIFIERS を明示的に設定することで修飾キーの問題を回避できたと報告されています。しかし、「がとらぼ」の人の環境ではそれだけでは完全には解決せず、後述する Fcitx 5 本体の更新も必要でした。(全員に必ず必要ということではない可能性があります)

そこで、 Ubuntu/KDE neon 固有の問題を回避するため、 Plasma Wayland セッションの開始時から Fcitx 5 の入力メソッドモジュールを明示的に使用するよう、システム全体の環境変数を /etc/environment に設定します。これはFcitx公式が KDE Plasma 向けに示している標準構成とは異なり、 Ubuntu/KDE neon 環境で発生する互換性問題に対する回避策であることに注意してください。

/etc/environment (ファイルが存在しない場合は新規作成)
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx

/etc/environment ではシェルスクリプトのように export を付けるのではなく、「変数名=値」の形式で記述します。上記の値には空白が含まれていないため、二重引用符で囲む必要もありません。設定を変更した後は、すでに起動しているアプリケーションだけを再起動するのではなく、いったんログアウトして Wayland セッションへログインし直すか、OSを再起動して環境変数を反映させます。

なお、実際には上記の3行を /etc/environment へ記述していなくても、 printenv などで確認すると、設定した覚えのない GTK_IM_MODULE や QT_IM_MODULE が設定されている場合があります。 Ubuntu 系のディストリビューションでは Fcitx 5 関連パッケージのインストールに伴って im-config が導入されることがあり、この im-config が入力メソッド用の環境変数を設定するためです。 im-config には X11 セッション用の /etc/X11/Xsession.d/70im-config_launch が含まれていますが、 Wayland セッションでは主に /etc/profile.d/im-config_wayland.sh などの仕組みが使用され、 ~/.xinputrc またはシステム側の設定を読み込みます。そのため、Wayland環境で環境変数が設定されている原因を調べる場合は、 /etc/X11/Xsession.d/70im-config_launch だけを見るのではなく、 im-config -m の結果や ~/.xinputrc の内容も確認する必要があります。 KDE Plasma 側に Fcitx 5 の起動を任せ、 im-config から入力メソッドを有効化したくない場合は、 im-config -n none によって「 im-config では入力メソッドを有効化せず、デスクトップ環境の設定を使用する」状態にできます。

/etc/X11/Xsession.d/70im-config_launch後半
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# If already tweaked, keep hands off :-)
# If im-config is removed but not purged, keep hands off :-)
if [ -z "$XMODIFIERS" ] && \
   [ -z "$GTK_IM_MODULE" ] && \
   [ -z "$QT_IM_MODULE" ] && \
   [ -z "$CLUTTER_IM_MODULE" ] && \
   [ -z "$SDL_IM_MODULE" ] && \
   [ -r /usr/share/im-config/xinputrc.common ]; then
    IM_CONFIG_PHASE=1
    export IM_CONFIG_PHASE
    # initialize all im-config common functions and parameters
    . /usr/share/im-config/xinputrc.common
    unset TEXTDOMAIN
    unset TEXTDOMAINDIR
    # source the first found configuration file
    if [ -r "$IM_CONFIG_XINPUTRC_USR" ]; then
        . $IM_CONFIG_XINPUTRC_USR
    elif [ -r "$IM_CONFIG_XINPUTRC_SYS" ]; then
        . $IM_CONFIG_XINPUTRC_SYS
    fi
    # always export variables even for manual configuration.
    export XMODIFIERS
    export GTK_IM_MODULE
    export QT_IM_MODULE
    export CLUTTER_IM_MODULE
    export SDL_IM_MODULE
fi

前述のとおり、 /etc/X11/Xsession.d/70im-config_launch は X11 の Xsession で im-config を利用するためのスクリプトで、 Wayland セッションでは /etc/profile.d/im-config_wayland.sh など別の仕組みも使用されます。そのため、 70im-config_launch そのものを削除する必要はありません。ここでは KDE Plasma 側に Fcitx 5 の起動を任せるため、 im-config による入力メソッドの設定を無効化し、必要な環境変数は前述の /etc/environment から明示的に設定する構成にします。 im-config パッケージそのものは他のパッケージとの依存関係もあるため削除せず、次のコマンドでユーザー単位の設定を「none」に変更します。

$ im-config -n none

コマンドを実行すると ~/.xinputrc に run_im none が書き込まれます。この設定はファイルに保存されるため、一度設定すれば再起動後も有効です。これにより im-config は Fcitx 5 などの入力メソッドを自動的に選択・起動しなくなりますが、 /etc/X11/Xsession.d/70im-config_launch など im-config がインストールしたファイル自体を削除する必要はありません。

システムを再起動して問題が解決したのであれば、この時点で作業を終えても構いません。しかし、私の環境ではここまでの設定だけでは Shift キーや Ctrl キーの問題はまったく改善しませんでした。そこで、 Ubuntu 24.04 の標準リポジトリに含まれている Fcitx 5 が比較的古いことに着目し、 Fcitx 5 本体を更新することにしました。

Fcitxを5.1.12に更新

Ubuntu 24.04 LTS(Noble) の標準リポジトリで提供されている Fcitx 5 は 5.1.7 ですが、追加のリポジトリを利用すれば、それより新しい 5.1.11 をパッケージとして導入することもできます。しかし、今回問題になっている Wayland の zwp_input_method_v2 使用時の修飾キーの状態(modifier key state) やキーを離したイベント (key release event) が正しく送られない問題に関係する修正が明記されているのは Fcitx 5.1.12 です。 Fcitx 5.1.12 では、 zwp_input_method_v2 使用時の仮想キーボードの処理が改良されており、今回の Shift キーや Ctrl キーの異常と関係する可能性が高い変更が含まれています。もちろん現在では 5.1.12 より新しい Fcitx 5 もリリースされていますが、ここでは問題の修正が導入された 5.1.12 を基準として説明します。
Ubuntu 用の Fcitx 5.1.12 パッケージ自体は存在し、 Ubuntu 25.04(Plucky) では 5.1.12-2 が提供されていました。しかし、 Ubuntu 25.04 向けにビルドされたバイナリパッケージを Ubuntu 24.04 へそのままインストールするのは避けるべきです。パッケージは各 Ubuntu リリースのライブラリ構成を前提としてビルドされており、実際に Fcitx 5.1.12-2 も libstdc++6 など Ubuntu 25.04 側のバージョンを前提とした依存関係を持っています。無理に導入すると多数のシステムライブラリの更新を要求されたり、依存関係を壊したりする可能性があります。
そこで今回は少しだけ手間がかかりますが、 Ubuntu 24.04 の環境上で Fcitx 5.1.12 のソースパッケージをビルドし、その環境に適合した Debian パッケージを作成してインストールすることにしました。 Fcitx 5.1.12 のソースコードと Debian 用のパッケージングデータはすでに用意されているため、自分でソースコードへ修正パッチを作成する必要はありません。手順はいくつかありますが、プログラムそのものを一からビルドするほど大変な作業ではありませんでした。(以下)

$ sudo apt install build-essential devscripts dpkg-dev  #ビルド用パッケージのインストール
$ sudo apt build-dep fcitx5   #Fcitx 5用のビルド依存関係パッケージのインストール

Debian/Ubuntu 用に Fcitx 5.1.12 のソースパッケージが用意されているので3つのファイルをダウンロードします。

  • fcitx5_5.1.12-2.dsc 3.8 KiB 0a249245ec6f6faa8b9d059ea54055a22f324e609bfe7ce138ae852c279fdb0f
  • fcitx5_5.1.12.orig.tar.xz 7.2 MiB 09d7e98a6498136839983caa4b8c1df752deb6933a984e6390557602cab357a0
  • fcitx5_5.1.12-2.debian.tar.xz 12.1 KiB d864eb6cd943aba7651303cf5ad3df9102303c70f0bea4070a45a26604df32c7
上記は2026年8月下旬時点のものです。

Ubuntu 24.04(Noble) のソースパッケージ情報を有効にします。
/etc/apt/sources.list.d/ubuntu.sourcesファイルの Type: deb を Type: deb-src に書き換えます。

$ sudo sed -i 's/^Types: deb$/Types: deb deb-src/' /etc/apt/sources.list.d/ubuntu.sources

以下のようになります。

/etc/apt/sources.list.d/ubuntu.sources (修正後)
Types: deb deb-src
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

Types: deb deb-src
URIs: http://security.ubuntu.com/ubuntu/
Suites: noble-security
Components: main restricted universe multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg

以下を実行します。

$ sudo apt update
$ sudo apt build-dep fcitx5

$ mkdir -p ~/fcitx5-build
$ cd ~/fcitx5-build

先に取得した3つのソースパッケージファイル( fcitx5_5.1.12-2.dsc, fcitx5_5.1.12.orig.tar.xz, fcitx5_5.1.12-2.debian.tar.xz )を ~/fcitx5-build にコピー/移動させます。

$ dpkg-source -x fcitx5_5.1.12-2.dsc
$ cd ~/fcitx5-build/fcitx5-5.1.12
$ dpkg-checkbuilddeps     #依存するパッケージを調査
ここで不足するパッケージがあると
dpkg-checkbuilddeps: error: Unmet build dependencies: dh-exec
のように表示されます。この例では dh-exec が不足していると指摘されています。

$ sudo apt install dh-exec  #dh-execパッケージをインストール
$ dpkg-checkbuilddeps     #依存するパッケージを再調査

他に不足するパッケージが指摘されたら同様にインストールし、何も指摘されなければパッケージの依存関係は満たされています。

ビルドの実行
$ dpkg-buildpackage -b -uc -us

ビルドが始まり画面にはズラズラと表示されます。しばらく待ってエラーで停止しなければ完了です。
最後が以下のように表示されていればビルドは成功です。

**dpkg-deb:** building package 'fcitx5-frontend-all' in '../fcitx5-frontend-all\_5.1.12-2\_all.deb'. 
        Renaming fcitx5-modules-dbgsym\_5.1.12-2\_amd64.deb to fcitx5-modules-dbgsym\_5.1.12-2\_amd
64.ddeb 
 **dpkg-genbuildinfo --build=binary -O../fcitx5\_5.1.12-2\_amd64.buildinfo** 
 **dpkg-genchanges --build=binary -O../fcitx5\_5.1.12-2\_amd64.changes** 
**dpkg-genchanges:** info: binary-only upload (no source code included) 
 **dpkg-source --after-build .** 
**dpkg-buildpackage:** info: binary-only upload (no source included)

生成されたパッケージを確認します。

$ cd ~/fcitx5-build
$ ls -1 *.deb
パッケージインストールのシミュレーションを行います。(実際にはインストールされません)
$ sudo apt -s install \
  ./fcitx5_5.1.12-2_amd64.deb \
  ./fcitx5-data_5.1.12-2_all.deb \
  ./fcitx5-modules_5.1.12-2_amd64.deb \
  ./fcitx5-frontend-all_5.1.12-2_all.deb \
  ./libfcitx5core7_5.1.12-2_amd64.deb \
  ./libfcitx5config6_5.1.12-2_amd64.deb \
  ./libfcitx5utils2_5.1.12-2_amd64.deb

実行結果で削除件数が0であれば問題ないでしょう。

今度はパッケージインストール本番です。(オプションの -s を外して実行します)

$ sudo apt install \
  ./fcitx5_5.1.12-2_amd64.deb \
  ./fcitx5-data_5.1.12-2_all.deb \
  ./fcitx5-modules_5.1.12-2_amd64.deb \
  ./fcitx5-frontend-all_5.1.12-2_all.deb \
  ./libfcitx5core7_5.1.12-2_amd64.deb \
  ./libfcitx5config6_5.1.12-2_amd64.deb \
  ./libfcitx5utils2_5.1.12-2_amd64.deb

今回インストールしたパッケージが今後の ubuntu のパッケージ更新によって上書きされないようピンを追加します。 sudo から EOF まで一気にコピペして実行します。

$ sudo tee /etc/apt/preferences.d/fcitx5-local-5112.pref >/dev/null <<'EOF'
Package: fcitx5 fcitx5-data fcitx5-modules fcitx5-frontend-all libfcitx5core7 libfcitx5config6 libfcitx5utils2
Pin: version 5.1.12-2
Pin-Priority: 1300
EOF
インストールされているバージョンと候補のバージョンとプライオリティを確認します。
$ apt policy fcitx5 fcitx5-data fcitx5-modules libfcitx5core7
fcitx5:
  インストールされているバージョン: 5.1.12-2
  候補:               5.1.12-2
  バージョンテーブル:
 *** 5.1.12-2 1300
        100 /var/lib/dpkg/status
     5.1.11-2ubuntu1~noble1 500
        500 https://ppa.launchpadcontent.net/ikuya-fruitsbasket/fcitx5/ubuntu noble/main amd64 Packages
     5.1.7-1build3 1100
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
fcitx5-data:
  インストールされているバージョン: 5.1.12-2
  候補:               5.1.12-2
  バージョンテーブル:
 *** 5.1.12-2 1300
        100 /var/lib/dpkg/status
     5.1.11-2ubuntu1~noble1 500
        500 https://ppa.launchpadcontent.net/ikuya-fruitsbasket/fcitx5/ubuntu noble/main amd64 Packages
        500 https://ppa.launchpadcontent.net/ikuya-fruitsbasket/fcitx5/ubuntu noble/main i386 Packages
     5.1.7-1build3 1100
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
        500 http://archive.ubuntu.com/ubuntu noble/universe i386 Packages
fcitx5-modules:
  インストールされているバージョン: 5.1.12-2
  候補:               5.1.12-2
  バージョンテーブル:
 *** 5.1.12-2 1300
        100 /var/lib/dpkg/status
     5.1.11-2ubuntu1~noble1 500
        500 https://ppa.launchpadcontent.net/ikuya-fruitsbasket/fcitx5/ubuntu noble/main amd64 Packages
     5.1.7-1build3 1100
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages
libfcitx5core7:
  インストールされているバージョン: 5.1.12-2
  候補:               5.1.12-2
  バージョンテーブル:
 *** 5.1.12-2 1300
        100 /var/lib/dpkg/status
     5.1.11-2ubuntu1~noble1 500
        500 https://ppa.launchpadcontent.net/ikuya-fruitsbasket/fcitx5/ubuntu noble/main amd64 Packages
     5.1.7-1build3 1100
        500 http://archive.ubuntu.com/ubuntu noble/universe amd64 Packages

これで Fcitx 5.1.12 のビルド、インストール、インストール結果の確認まで完了しました。
KDE Plasma の Wayland 環境では、 Fcitx 5 を通常のアプリケーションのように手動で自動起動するのではなく、 KDE システム設定の「仮想キーボード」で Fcitx 5 を選択し、 KWin から起動させるのが基本です。そのため、いったんログアウトして Wayland セッションへログインし直すか、システムを再起動してから動作確認を行います。
念のため、再起動後に実際に使用されている Fcitx 5 のバージョンも確認しておきます。

$ fcitx5 --version

5.1.12 になっていれば、今回ビルドしてインストールした Fcitx 5 へ正常に更新されています。

続いて、 Kate (KDE のテキストエディタ)や Konsole (KDE のターミナル) で日本語を入力できることと、 [Shift] キーを押しながら英数字キーを押したときに大文字や記号を正しく入力できることを確認します。また、修飾キーが正常に動作していることも確認します。 Kate では [Ctrl]+[A] (全選択) 、 [Ctrl]+[C] (コピー)、 [Ctrl]+[V] (ペースト) などを試します。 Konsole では [Ctrl]+[C] は実行中の処理を中断するためのキーとして使われ、 [Ctrl]+[A] にもシェル側の機能が割り当てられているため、コピーとペーストの確認には [Ctrl]+[Shift]+[C] と [Ctrl]+[Shift]+[V] を使用します。また、多くのLinuxアプリケーションでは [Ctrl]+[Insert] がコピー、 [Shift]+[Insert] がペーストとして機能するため、これらについても確認できます。

多くのアプリケーションでは以上の設定で問題なく利用できるはずですが、一部のアプリケーションでは、それでも日本語を入力できなかったり、 Shift キーや Ctrl キーなどの修飾キーが正常に機能しなかったりすることがあります。これはアプリケーションごとに Wayland への対応方法や、 Fcitx 5 との間で使用する入力メソッドの経路が異なるためです。

Google Chromeブラウザ

Chrome/Chromium 系ブラウザを Wayland ネイティブの Ozone Wayland バックエンドで起動した場合、通常のキーボードイベントは KWin から Chrome へ渡され、日本語入力については Chrome と KWin の間で Wayland の text-input プロトコル、 KWin と Fcitx 5 の間で input-method プロトコルなどを使用して処理されます。今回の環境では、この Wayland ネイティブの入力経路を使用すると修飾キーの状態やキーを離したイベントの処理に問題が発生し、 Shift キーや Ctrl キーが正常に機能しないことがありました。そこで Chrome を --ozone-platform=x11 で起動し、 KWin → XWayland → Chrome(Ozone/X11)という X11 互換の経路へ変更します。これにより、問題が発生していた Wayland ネイティブの text-input/input-method 経路を回避できます。

WaylandとFcitx5環境で日本語入力できないアプリの対処方法 1
アプリケーションランチャーから Google Chrome ブラウザのアイコンを右クリックし、表示されたメニューから「アプリケーションを編集」を選択します。

WaylandとFcitx5環境で日本語入力できないアプリの対処方法 2
「全般」タブの「コマンドライン引数」の欄に、 "--ozone-platform=x11 " を追加します。元々存在していた "%u" の前に挿入します。右上の「保存」を押します。(2重引用符は入力しません)

Android Studio

Android Studio についても、 Wayland ネイティブ動作時に同様の問題が発生する場合は、フォールバックとしてAndroid Studio を確実に X11/XWayland 経由で動作させることができます。 Android Studio 2026.1 系を含む最近の IntelliJ Platform ベースの IDE では LinuxのWayland バックエンドが利用されますが、 Android Studio そのものを実行している Java 仮想マシンのカスタム VM オプションを指定することで、 AWT を従来の X11 用 XToolkit へ切り替えられます。

AWTは Abstract Window Toolkit の略で、 Java で GUI アプリケーションを画面に表示し、 OS のウィンドウシステムやキーボード・マウス入力を扱うための基盤です。
Android Studio の画面そのものは Java 系の GUI 技術で作られており、その下の層で AWT が Linux のデスクトップ環境とやり取りします。大まかには、
Android Studio → Swing / IntelliJ UI → AWT → Linuxの画面システム (Wayland または X11)
という関係です。
ここで重要なのが、 AWT には Linux の画面システムへ接続するための実装が複数あることです。

  • WLToolkit:Wayland へ直接接続する新しい AWT バックエンド
  • XToolkit:従来の X11 へ接続する AWT バックエンド

XToolkit を指定することで、この AWT の表示・入力処理を Wayland ネイティブではなく X11/XWayland 経由へ切り替えることができます。

WaylandとFcitx5環境で日本語入力できないアプリの対処方法 3
Android Studio を起動し、上部のメニューバーから「ヘルプ」ドロップダウンから「カスタム VM オプションの編集」を選択します。

WaylandとFcitx5環境で日本語入力できないアプリの対処方法 4
「カスタム VM オプションの編集」の実体は studio64.vmoptions というファイルで、 Linux では ~/.config/Google/AndroidStudio2026.1.3/ などのAndroid Studioの設定ディレクトリにあります。正確なディレクトリ名は使用している Android Studio のバージョンや Stable/Beta/Canary などのリリース種別によって異なるため、「Help」 → 「Edit Custom VM Options...」から開くのが確実です。 Android Studio を新しい世代へ更新すると、対応する新しい設定ディレクトリが作成されることがあります。メモリ割り当てなどをすでにカスタマイズしている場合は、 -Xmx3072m のような VM オプションがこのファイルに記載されていることもあります。

-Dawt.toolkit.name=XToolkit

という1行を追加します。このオプションは、 Android Studio の Java GUI で使用するAWTツールキットを Wayland 用の WLToolkit ではなく、 X11 用の XToolkit へ切り替えるためのものです。 Wayland セッション上で XToolkit を使用した Android Studio は XWayland を介して表示されます。 Android Studio では編集した設定ファイルは通常自動的に保存されますが、この VM オプションが読み込まれるのは次回起動時なので、入力後はいったん Android Studio を完全に終了して再起動します。今回の環境では、これによって日本語入力が正常に行えるようになり、 Shift キーと Ctrl キーも正常に機能するようになりました。

2026年10月にリリース予定の Plasma 6.8 では Plasma の X11 ログインセッションが廃止され、 Wayland セッションのみになります。ただし、これは X11 アプリケーションを動作させるための XWayland まで廃止するという意味ではありません。 KDE は Plasma 6.8 以降も X11 アプリケーションの互換性を XWayland によって提供する方針を示しているため、 Chrome を Ozone/X11 で動かしたり、 Android Studio を XToolkit で動かしたりする今回の回避策は、 Plasma 6.8 以降も当面は利用できると考えられます。ただし、これらはあくまで Wayland ネイティブ動作で問題が発生するアプリケーション向けのフォールバックであり、将来的に KWin、Fcitx 5、Chromium、JetBrains Runtime 側の問題が解消された場合は、 Wayland ネイティブへ戻す方が望ましいでしょう。

令和に蘇る昭和のMacintosh II ケースのレトロブライト (前編)

令和に蘇る昭和のMacintosh II ケースのレトロブライト

「がとらぼ」の中の人はもともと、Apple製品にはほとんど興味がありませんでした。新製品が登場するたびに熱狂する熱心なユーザーたちを、少し離れたところから冷ややかに眺めていた側です。これまで自分で購入したApple製品も、ウェブサイトの表示互換性確認用のMacintosh Quadra 800の一台だけでした。

ところが、そのQuadra 800も私にとっては満足に使えるものではありませんでした。当時のMacintoshに搭載されていた「System 7」などの、いわゆるSystem xxと呼ばれるOSがどうしても好きになれず、最終的にはNetBSDをインストールして使用していました。そのため、Appleのコンピューターそのものに愛着を持つことはなく、Macintoshの文化や歴史にも積極的に関心を向けてきませんでした。

そんな私でも、Macintosh IIとMacintosh SEのデザインだけは別でした。Apple製品であるかどうかとは関係なく、純粋に工業製品として見たとき、その端正で無駄のない姿には強く感心していました。特にMacintosh IIの横置きケースと、Macintosh SEの一体型の造形には、ほかのコンピューターにはない完成度があります。使ってみたいというより、その姿を手元に置いて眺めていたいと思わせる魅力があり、興味のないApple製品の中で、この2機種だけは以前から密かな憧れの存在でした。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 0a
Macintosh II

今回入手したのは、1987年に登場したAppleのMacintosh II (実際には1988年発売のMacintosh IIx)です。発売からすでに40年近くが過ぎているため、現在では名前を聞いても、その姿を思い浮かべられない人のほうが多いかもしれません。しかしMacintosh IIは、性能面だけでなく、Appleの工業デザインを語るうえでも非常に重要な一台です。16MHzの68020プロセッサーと6基のNuBusスロットを備え、外付けディスプレイを使用する拡張型Macintoshとして登場しました。当時は一式揃えるのは車を買うのに匹敵するほど高価でした。

1980年代初頭のAppleは、製品ごとにばらばらだった外観を整理し、ひと目でApple製品だと分かる統一されたデザインを必要としていました。Steve Jobsは世界水準のデザイナーを求め、ドイツ出身の工業デザイナーHartmut Esslingerと、彼が率いるfrogdesignを採用します。そこで作られたのが、Apple IIcなどから展開された「Snow White」と呼ばれるデザイン言語です。細く均等に並ぶ水平スリット、控えめな角の丸み、明るいプラチナ色、機能部分を外観のリズムとして見せる処理によって、無機質になりがちなコンピューターに整然とした品格が与えられました。おもしろいことに、Snow Whiteデザインが全盛を迎えたのはSteve JobsがAppleを去った後のJohn Sculleyの時代です。

Macintosh IIのケースは、その考え方を横置きのデスクトップ型に落とし込んだ、完成度の高いデザインです。正面には必要な要素だけが静かに配置され、広い平面と水平線によって低く安定した姿に見えます。過度な曲線や装飾、時代性の強い色や素材に頼っていないため、現代の机に置いても古びた印象になりません。むしろ、現在販売されているシンプルなPCケースの中に混ざっていても、不思議ではないほどです

残念ながら「Show White」は1990年のMacintosh IIfxを最後に採用が終わり、以降の数年間はSnow Whiteの劣化版でただのベージュの箱のようなデザインが採用されました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 0
ディスプレイ一体の箱型タイプの(デザインだけ)最高峰 Macintosh SEとMacintosh SE/30

MacintoshやMacには、その時代を象徴する個性的な製品が数多くあります。ただし、強い個性を前面に出したデザインは、最初の印象が鮮烈である一方、長く眺めているうちに飽きを感じることもあります。「Snow White」でデザインされたMacintosh IIやMacintosh SEはその反対です。目立つための形ではなく、機能を素直に整理した形なので、何年見ても落ち着きがあり、いつまでも手元に置いておきたくなります。約40年前の製品でありながら、現在でも十分に通用する、PCケースとして非常に秀逸なデザインです。

本来、基板や電源、ドライブまで揃った貴重なMacintosh IIであれば、内部を取り除いて現代のPCを組み込むのはためらわれます。しかし今回購入したものは、最初から中身のないケースだけです。歴史的な一台を壊してしまうわけではないため、修復方法や内部加工についても比較的気楽に考えられます。この美しい外観を生かし、最終的には現在のPCを収めるケースとして再利用する予定です。

もっとも、届いたケースは長い年月の影響で樹脂が大きく変色し、全体が非常に黄ばんでいました。表面の汚れも目立ち、このままでは本来の端正な姿を十分に楽しめません。そこで、まずはケースを分解して洗浄し、黄変した樹脂をできるだけ元の色調へ近づけるため、レトロブライトを行うことにしました。

今回は洗濯用の漂白剤ではなくクリームタイプの染毛剤で過酸化水素濃度が6%の製品を購入しました。クリーム状ということで乾きが遅いことを期待しましたが意外と乾くのが早かったので高頻度での重ね塗りを行うことになりました。臭いは予想よりキツくなくレトロブライトの作業用として良い品でした。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 1
今回は、ヤフオクでMacintosh IIのケースを入手しました。正確にはMacintosh IIxのケースです。樹脂はひどく黄変しており、汚れや傷も多く、正直なところ修復にはかなり手間がかかりそうです。しかし、内部の基板類がすでに取り除かれた状態なので、どのように活用しても罪悪感がありません。何より、落札価格が1,200円という安さだったのが最高です。なお、購入したのは5月です。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 2
実際に届いたMacintosh IIxです。本体のほかに、金属製のフレーム類がプチプチに包まれた状態で付属していました。今回はMacintosh IIxを本来の姿へ復元する予定ではないため、これらの部品は使用しません。鉄と思われる素材で作られているため、見た目以上に重量があります。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 3
本体正面です。フロッピーディスクドライブは、1台のみ使用できる構成のモデルだったようです。正面のAppleロゴには、虹を思わせる6色の横縞が使われています。これは、Appleがかつて公式に使用していた、初代ロゴです。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 4
本体側面です。上部には前面から背面へ向かって多数の水平スリットが並び、下部には縦方向のスリットが配置されています。向きの異なるスリットを組み合わせた、Macintosh IIらしい特徴的なデザインです。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 5
本体の上面です。側面と同じように、前面から背面へ向かう細いスリットが多数並んでいます。左半分の中央寄りには、内部の熱を逃がすための通気孔が設けられています。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 6
背面は、右側に拡張カード用スロットの蓋、左下にI/Oポート、左上に京町家の格子戸を思わせる通気孔が配置されています。基本的な構成は現在のデスクトップPCとほとんど変わりません。約40年前の製品であることを考えると、非常に先進的な設計だったことが分かります。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 7
上蓋を開けると、プチプチに包まれていた金属フレーム類とは別に、ベースプレート、フロッピーディスクドライブ、電源ユニットが本体内部に残されていました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 8
当時のMacintoshには、SONY製の電源ユニットが採用されていました。この電源は経年劣化によって故障すると修理が難しいため、一般的なPC用電源を流用してMacintoshを再生する方法もよく用いられています。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 9
上蓋の内側です。右下に「13.8.89」と記されているため、1989年8月に製造された個体と思われます。Macintosh IIの外装は樹脂製ですが、内側にはほぼ全面にアルミ製のプレートが貼られており、電磁波対策が施されています。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 10
電源ユニットを取り外しました。電源ユニットに覆われていた部分だけは、アルミプレートが鏡面に近い状態を保っており、とてもきれいです。ただし、その周囲には大量の埃が詰まっていました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 11
本体内部に残されていたフロッピーディスクドライブです。大量の埃に加え、金属板の錆もかなり進行しています。この状態からディスクドライブユニットを再生するのは、かなり難しそうに見えます。

Macintosh IIの外装は細い溝やスリットが多いため、刷毛と中性洗剤を使って徹底的に清掃します。洗剤をかけながら刷毛で溝の内部まで丁寧にこすり、長年蓄積した汚れや埃を取り除きます。

美容院などで使用される、過酸化水素を高濃度で配合したクリーム状の薬剤を刷毛で塗布します。ケース全面に日光がしっかり当たるよう、ときどき向きを変えます。時間が経つと表面の薬剤が乾いてくるため、乾燥する前に何度か刷毛で塗り重ねました。水分の蒸発を防ぐためにラップで包む方法もありますが、乾く前に再塗布を繰り返すほうが簡単だと思います。

以下はレトロブライトの施工前の写真が撮れていなかったため、漂白剤を塗り重ねてある程度白くなり始めた状態からの写真です。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 12
底面と正面です。「Macintosh IIx」と記されたモデル名の文字やAppleロゴは、漂白剤の影響を受ける可能性があります。本来の姿へ忠実に復元する場合は、ロゴの背面に穴を開けて押し出し、あらかじめ取り外しておく方法があります。また、印刷された文字が消えないよう、薬剤の濃度や処理時間にも注意が必要です。しかし、「がとらぼ」の中の人にとっては、モデル名もAppleロゴもそれほど重要ではないため、気にせず薬剤をたっぷり塗っていきます。今回はPC-9801FAのレトロブライトでの反省から高濃度過酸化水素の使用と短時間施工を行うため文字剥がれは発生しない可能性もあります。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 13
上蓋も同じ方法で処理します。全面に日光が均等に当たるよう、ときどき向きを変えながら、刷毛で薬剤を塗布します。表面が完全に乾く前に塗り重ねる作業を繰り返しました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 14
本体側面は特に汚れがひどく、以前にテープのようなものが貼られていた跡も残っていました。薬剤を塗って処理したところ、表面に残っていた粘着剤もきれいに除去できました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 15
レトロブライト1日目の処理を約3時間行った後の上蓋です。すでに中性洗剤と水で薬剤を徹底的に洗い流し、十分に乾燥させています。以前に処理したPC-9801FAと比べると、はるかに短い時間でかなり白くなりました。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 16
本体底面と背面です。上蓋と同様に、1日目のレトロブライトを約3時間行った後、中性洗剤と水で徹底的に洗浄し、乾燥させました。目立っていたひどい黄ばみは、ほとんど解消しています。ただし、まだわずかに黄変が残っています。

令和に蘇る昭和のMacintosh II ケースのレトロブライト 17
本体正面です。以前の所有者によって、表面に何らかの塗料が塗られていた形跡があります。刷毛で塗ったニスのようなものでしょうか。レトロブライトを行ったことで、表面に残っていた刷毛目がはっきりと浮かび上がりました。ほかの面と比べても、正面には黄変がやや強く残っています。

1回目のレトロブライトによって、正面以外の黄変は大部分が改善しました。しかし、正面だけはまだ黄ばみが強く残っています。印刷された文字が剥がれ落ちる覚悟があるなら、目の細かいサンドペーパーを取り付けたサンダーで研磨し、過去に塗られたと思われる塗膜を完全に除去したほうがよさそうです。最近、YouTubeでトナー転写を行う動画を見たため、PC-9801FAのときに採用したインクジェットプリンター用の転写シートではなく、今回はトナー転写による文字の再生を試してみたいと考えています。特にこのケースは、正面のモデル名付近に目立つ引っかき傷があるため、パテで傷を補修して塗装した後、トナー転写で文字を再現する予定です。Appleロゴについては、今回の短時間のレトロブライトでは、目立った色落ちは確認できませんでした。

関連記事:
Up