これら設定を行っても完全に直るわけではありません。症状が出にくくなるか、出てもすぐに収まるそう言う類のものです。
どんな環境でも必ず起こるものでもないと思いますが
Plasma環境、あるいはGNOME環境が現在のWayland対応になる前までは問題なく、Dank Material Shellがv1.5(The Wolverine)になる前はそう言うことは特に起こりませんでしたが、SUPER(Windowsキー/⌘キー)、←矢印、BackSpace、ファンクションキーなどが長時間のスリープから復帰した時に一時的に効かなくなるということがありました。
これらは例えばテキストエディターであればカーソルがある位置で←矢印を押しっぱにすればその内に動いて、動けばその後は問題なく使用できる感じでした。←矢印が効かないと入力を間違った時に戻ることができず、タッチパッドやマウスでカーソルを動かしてdelキーを使用する必要があったり、同様にBackSpaceも入力間違いの時に戻れないことになりますから、いずれにしても面倒くさい状態でした。
ワークスペースの切り替えもSUPERが効かないことから行えず、ウィンドウの切り替えもできないと全てにおいて面倒くさい状態でした。
案外早い段階でfcitx5を終了すれば機能するというのはわかっていた
しばらくはずっと、テキストエディターのカーソル、あるいはファイルマネージャーで何かしらファイルを選んでおいて←矢印を押しっぱにするとその内にそれらが動いて直るというのは気づいていて、原因としてはfcitx5臭いと思ってはいました。
fcitx5を終了させて試すと動作する───。ということはHyprland環境には問題なく、コンポジターをNiriやMango WMに変更すると同様の症状が出るがfcitx5を終了するとやはり動く。
まだPlasma環境のアプリ(プロセス)が動作しているというのはあると言えばありますが、2日に渡ってスリープの状態を続け、時折スリープから復帰をしてみて試して現在の状態で問題ないだろうと思ったのでその状態をここに書いておく次第です。
何が起こっていたか
おそらくPlasmaやGNOMEが現状のWayland対応になる前、またDMSが1.5になる前というのはおそらく(想像ですが)、XWaylandを通じて単一のルートで通信していたものが、Waylandへの対応が進んだことによりinput-method-v2などへの対応が進み、fcitx5にはどのディストリビューションでも対応できるようにX11/XWayland/waylandなどのルートがあり、内部的には正しく動作していても設定でX11を使用するものがあれば通信に混乱が起こったのではなかろうかと。←矢印押しっぱで、その内に直るということもこれら通信が、ある時を境に正常に繋がって正しく動作していたと言うことなんだろうと思うわけです。
起動している間はHyprlandで正しく動作していたのに、スリープから復帰という状態を挟むとまた通信に混乱が起こる → fcitx5を終了させ再起動すると直る と言うのがここからもそうであったのではないかという説明が高い確率でできるようになったと思うのです。
どういう対処をすればよいか
X11の設定が邪魔なので、これらが機能しないようにする設定をして、またデフォルトでSUPERを使用するようなfcitx5のキーバインドを空欄か他のものに変えるようにすればキーの奪い合いがなくなり、正しくHyprlandのキーバインドが通るようになる、つまりはfcitx5がキーの横取りをしなくなると言うことになると考えます。
おそらく今後、ディストリビューションもDMSもfcitx5もバージョンアップをしていくでしょうから、スリープから復帰後にfcitx5を終了させて再起動させると言うことを別途設定する事で対処はできるにしても、修正された時に元に戻す方法を忘れたりと言う事があったりでそれらはできるだけしたくなかったのです。
hyprland.luaの設定
hl.env("XMODIFIERS", "@im=fcitx")
hl.on("hyprland.start", function()
-- default exec_once conf
hl.exec_cmd("fcitx5 -d")
end)
念のため環境変数にXMODIFIERSは設定しておきます。これは私がファイルマネージャーにThunarを使用しているからで、設定しなくても動作はするはずですがあくまでも念のためにというものです。fcitx5をシステム起動時にデーモン起動させるだけと言う設定にしてあります。
グローバルオプション・アドオン設定

fcitx5の設定自体はこんな感じで、上部タブにある「グローバルオプション」と「アドオン」の設定を変えていきます。
グローバルオプション

グローバルオプションでやったことはSUPER + ※と何かしらSUPERが使用されているものを空欄にしたことです。
アドオン
モジュール項目

Module(モジュール)と言う項目の「Wayland」にある項目で、「システムXKB設定の上書きを許可する(PlasmaとGNOMEのみサポート)」のチェックを外します。
Waylandの標準プロトコル(共通規格)では、セキュリティと設計の観点から「外部のアプリ(IMEなど)がデスクトップのキーボードレイアウトを勝手に書き換えてはならない」という強い制限があります。しかし、それでは利便性が落ちるため、独自にIME連携機能を拡張しているのが Plasma(KWin)とGNOME(Mutter)です。
これら理由からチェックを外します。

同じくモジュールの項目のXCBの設定ですが、「システムXKBの設定のオーバーライドを許可する」では、XCB(X C Binding)は、fcitx5が X11(およびWayland上で動くXWayland)のディスプレイサーバーと通信するためのモジュールとなっています。つまりX11(XWayland)でキーボードマップの定義自体を直接書き換える命令をしているということです。
つまりfcitx5が制御するのではなく、Hyprland等がfcitx5を動作させるという仕組みにしたいため、チェックを外します。
クイックフレーズとクリップボード


クイックフレーズとクリップボードの項目ですが、これらはグローバルオプションであったようにSUPERを使用するキーバインドが使用されていたので空欄に設定しました。
フロントエンド

Waylandインプットメソッドでは、「現在実行中のアプリケーションを検出する」のみにチェックを入れてあります。
「キーイベント処理がされない場合はテキストを確定せずにキーイベントを転送する」は、キーボードのキーが押された際、fcitx5側でそのキー操作をハンドリング(IMEの処理として利用)しなかった場合、そのキーイベントをどう扱うかを規定する設定です。
「V2プロトコルの仮想キーボードオブジェクトを維持する(再起動が必要)」は、Wayland のinput-method-v2プロトコルにおいて、fcitx5はシステム上に「仮想キーボード(Virtual Keyboard)」という通信オブジェクトを生成してアプリに文字を送信します。

XIM(X Input Method)は、X11時代の非常に古い入力プロトコルです。現在のWaylandやGTK/Qtアプリは新しい通信規格(Wayland共通プロトコルやDBus)を使うので出番はありませんが、一部の古いX11アプリやJavaアプリ(XWayland 経由)などで互換性のために利用されます。
現代のWayland/XWayland環境において、XIMの「On The Spot」を有効(ON)にすると、
- XWayland 経由で動く古いアプリやツールキットは、XIM の「On The Spot」コールバック命令を正しく処理できないことが多く、変換中の文字が消えたり、全く関係ない画面の隅に候補ウィンドウが飛んでしまう現象が多発します。
- アプリ側に文字を描画させる通信のやり取り(イベントルーティング)が増えるため、キー入力の反映が一瞬遅延したり、変換中のキーイベントがスタックする原因になります。
これら問題があるとされるので、これら設定はチェックを外しています。
まとめ
これらの設定で2日間、「シャットダウン」や「ログアウト」せずスリープしたままで必要なときにだけスリープから復帰させて試してみました。SUPERの反応が遅れるとウィンドウやワークスペースの切り替えができなかった時もありましたが、余裕を持って再度SUPERを押しつつ操作したら機能しており、1秒で、ワークスペース1~3を数回切り替えるような操作でも問題なく応答するようになりました。
他の環境に変える時、例えばログアウトしてからMango WMや、あるいはPlasma/Gnomeなどをログイン画面で選んで、そのセッションで始めたらどうなるかはわかりませんが、そもそもの話、X11かWaylandかどちらかに絞って使えば正しく機能すると言う結果でもあると思うので、Hyprlandで動作しているなら他のコンポジター(NiriやMango WM)でも機能するはずですし、PlasmaやGNOMEでも動作するだろうと思っています。
ただX11が絡んでくるとわかりません。そう言う時は環境変数を追加すればたいてい解決するだろうと思います。
今後どのようになるかは予想でしか無いですが、ほとんどのディストリビューション及びアプリがWaylandに対応してきている中で、未来的にはこれら設定をせずともデフォルトでWaylandに完全対応となるだろうと思います。「X11のアプリを使用する時のみ設定する」と言うこれまでと設定が逆転する事になっていくでしょう。
Waylandへの過渡期にあると、ほぼWaylandとなった今でもどうしてもX11の名残でそれが問題になることもあるわけですから、その道中にいる私たちにとっては、生まれた時にはPS5と言う現代の若者のような便利さはありませんし、むしろ面倒くさいことが多いわけです。
前に何処かでも書きましたが、自動運転はまだかと未来に期待する若者を横目に、タクシーに乗ればいいやんと、何が違うんだと口を紡いで思うだけで、若者に忖度するような大人にはなりたくないなとも思うわけです。
Waylandに移っていく過程は面倒くさいことも多く、これら設定も同様の面倒臭さを含んでいますがこれらを体験できることは、それらをすっ飛ばした未来にいる人よりも絶対に意味があるはずです。過渡期の面倒を乗り越える経験は、決して無駄にはならないと思うのです。