Chienomi

久しぶりのPlasma Desktop、相当つらい

Live With Linux::software

この記事はLinuxカテゴリです!

本文はLinux上での話をしています

Linuxに関する疑問解消や共有は日本語Linuxers

CachyOSというディストリビューションをご存知だろうか。 ArchLinuxベースのディストリビューションで、パフォーマンスチューニングやゲーム環境を簡単に構築できることを特徴としている。

で、そのCachyOS、デフォルトのデスクトップがPlasmaなのだ。 なんでもLinuxゲーミング界隈ではPlasma (Wayland)が良いとされている、らしい。

で、その環境でやってみたわけだが、

  • Plasmaがマジで苦痛
  • Waylandがかなり苦痛
  • CachyOSも結構苦痛

でとても苦痛だった。

Windowsを捨てるためのゲーミング環境だが、苦痛度もWindows並にあった。 本格的に運用する環境では到底成立しないが、寝室PCの役割が限定的になったことでどうにかこの状態でも運用できている。

苦痛要素と戦い

Plasma Login ManagerとPlasmaキーボードレイアウト

Manjaroでも最新のイメージだと(LightDMでは)発生する問題なのだが、インストーラー(Calamares)で日本語キーボードを選択していてもこれを無視して英語配列になってしまう。

状況によって英語配列になったり英語配列になったりでパスワード関連でかなりのリスクを発生させる。

Plasmaに関してはインストーラーの問題で、よく見ると配列とは別にキーボードモデルの欄があり、これがGeneric PC105になっている。これが英語配列なので、日本語配列を選択しても英語配列にされてしまう。

モデルでJapanese PC106を選択すればPlasmaでは日本語配列になる。

ちなみに、Fcitxがキーボード配列をコントロールできるので、Fcitxをインストールすることでも解決できる。

Plasma Login Managerはこれを見ることもない。

localectl set-x11-keymap jp

とすることで日本語キーボードになるが、場合によっては「何も入力できない」になる場合もある。

Baloo

大暴走してシステムをフリーズさせることでおなじみのBaloo。 ファイル数が多かったり、オフィスファイルが多かったりするとシステムのフリーズにつながるので、停止させておく。

balooctl disable

Krunner

KRunnerはWindowsのような「検索機能」になっている。 かつ、動作が遅くいため、入力してから少し待たないと完全一致しているものも起動されない。 「入力してエンター」だと意図しないものが起動されてしまう。

これで余計なものを対象にするのを防ぐには「KDEシステム設定→検索→Plasma検索→Plasma検索」でプラグインを徹底的にオフにすることで抑制できるが、反応がすごく悪いのは変わらない。 加えて補完機能も履歴もなく、KDEがコマンドを発見できないと実行自体ができない。

そこでキーボードショートカットからAlt+F2を剥奪、コマンドを割り当てる。 一応私は

rofi -show run -matching prefix -theme-str 'configuration { sort: true; sorting-method: "levenshtein"; }'

としているが、起動に失敗するとrofiが消えなくなってしまう、入力中にフォーカスが奪われるとフォーカスを戻すのが困難といったストレスが残る。

Fcitx

Fcitxを使うにはインストールしたあと、「KDEシステム設定→キーボード→仮想キーボード」で「Fcitx5 Wayland launcher」を選択する。

のだが、Wayland環境の場合KWinによってFcitxが起動される必要があり、Fcitxの再起動ができない。

その上FcitxのKCMからの設定は項目が限られており、かなり使いにくい。

さらにさらに、ちょいちょい不安定で、入力を有効にできなくなることが結構ある。多くの場合、別のアプリケーションのウィンドウで有効を切り替えて戻せば一旦改善するが、結構な頻度で発生するのでストレスは強い。

Mozcの設定はKCMのFcitxの入力メソッドの設定からいくのだが、これもバラバラになっていて使いにくい。

キーリピートが無限になってしまう問題も発生しやすい。

PATHの問題

Archlinuxとしては~/.local/binはデフォルトでPATHに含まれているはずだが、CachyOSだと含まれていない。

それで含もうとしても全く意図したように動作しない。 ~/.config/environment.dに書いてもダメで、最終的には~/profile

export PATH="$HOME/.local/bin:$HOME/.local/sbin:$PATH"

として再起動することで動作した。 リログではダメだった。

mDNSの問題

nsswitch.confを無視してmDNSがIPv6で解決してしまう。 ちなみに、CachyOS Plasmaはそもそもnsswitch.confにmDNSの解決を含んでいない。

だが

hosts: mymachines mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns

としても依然としてIPv4に解決されてしまう。

どうもsystemd-resolvedが奪い取って独自のmDNS実装で解決しているようなので、/etc/systemd/resolved.conf

MulticaseDNS=no

に。

勝手にスリープ

Plasmaのデフォルト設定が、「操作がなければ勝手にスリープ」。

これは「電源管理→セッションをサスペンド→非アクティブ時」で設定可能だが、設定すると文句を言ってくる。

ゲーム向けなのにも関わらず、ゲームをダウンロードしている間に放置しているだけでスリープに入る最悪の仕様。

だいたいPlasmaはものすごく細かい電源管理を設定できることがウリだったはずなのだが、バッテリー駆動かどうかの区別すらなくなっている。

画面転送

X11ならssh -Xで簡単だが、Waylandだとそれはできない。

Sunshine/Moonlightを試してみたが、フリーズの要因になったりしてあまりうまく動かなかった。

PipeWire

状況によりアプリケーションが接続できずにフリーズすることが多い。 また、pipewire-pulseはpactlはあるけどpacmdはないのでやれることは限定的。柔軟な仮想sink/仮想sourceのルーティングも限定的。

設定の反映

とにかく「時間をおかないとダメ」「リログしないとダメ」「再起動しないとダメ」みたいなのがめちゃくちゃ多い。システムが統合されておらず、スマートに動かない。

これは主にWaylandが悪い。

期限つきKeyringへのアクセスの問題

KWalletが期限つきのキーリングのインターフェイスを持っていないため、Gnome系アプリの要求する保存に応えることができない。

それならKWalletを使わないほうが合理的なのだが、KDE系のアプリがKWalletを使うように固定されていたりしてうまく動作しない。 また、キーリングの保存が永続しかないため、使いにくい。

KWalletの設定の「Kwallet を Secret Service インターフェースとして使用する」を無効にしてGnome Keyringを使うのがいいのかもしれない。

Alt+PrintScreen

アクティブウィンドウを撮影するキーとしておなじみのAlt+PrintScreenだが、このキーがKWin環境に伝播しないのでどうがんばっても使えない。

keydを使ってリマップするみたいな方法もあるのだが、それも動いたり動かなかったりする。

Manjaro Cinnamonのときみたいに一時的にSysRq無効にしてアサインすればいいとかではなく、入力自体が入らない。 どうやら確実な方法はなさそう。

SSHエージェントの問題

gcr-4を入れると$SSH_AUTH_SOCKが勝手にセットされてしまうが、Gnome Keyringがないと動作しない。

無効化して

systemctl --user mask gcr-ssh-agent.socket gcr-ssh-agent.service

代わりにssh-agent.serviceを有効化。

systemctl --user enable --now ssh-agent.service

環境変数を~/.config/environment.d/ssh.confで定義し

SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
SSH_ASKPASS="/usr/bin/ksshaskpass"
SSH_ASKPASS_REQUIRE="prefer"

~/.ssh/configでagentを使うように指定する。

Host *
  AddKeysToAgent yes

全画面

これはPlasmaにずっとある問題だけれど、マルチディスプレイでの全画面に対する挙動に一貫性がない。

Plasmaは基本的に全画面を最前面に固定する。 ところが、ディスプレイをまたぐとそうならない。

また、全画面表示になっているディスプレイでウィンドウスイッチャで切り替えた場合、「全画面になっているアプリにフォーカスされていれば切り替えたウィンドウが前にくる」という挙動で、この影響で複数のアプリが全画面になっているとまともに切り替えができない。

画像ビューワを全画面表示にして切り替えるといったことは普通にあることなので、かなりやりづらい。

Waylandそのものの問題

まともにスクリーンショットもとれないし、自動化も大いに妨げられる。

X11に備わっているほとんどの機能が欠けている。 必要なこと、すべきことがほとんどできない。まるでWindowsの劣化版のようだ。

Waylandの言う「セキュリティ」は、インターネットセキュリティと称してケーブルを抜くようなものだと言えるだろう。

詳しくは言えないやつだが、このWaylandの仕様のせいで従来やっていた作業の中にどうやってもできないものがあり、仕方なくその部分はX11を載せた別PCでやることになった。

デスクトップセッション

デスクトップセッションを復元するようになっているのがデフォルトで、これはPlasmaの伝統。

ただ、そのせいでおかしくなってしまうことが多々あるので、空のセッションで開始するように変更しないといけないのも伝統。

Cachy-Update

まず、実際に特権を行使するかどうかに関係なく段階ごとに特権を取得するため、「アップデートの間放置」というのが効かない。 これは非常に無駄な挙動。

アップデートがかなり頻繁に五月雨で降ってくるのでめんどくさい。 しかもそのせいでちゃんと整合性がとれていないことがある。

Yes/No問題

現在一般的には進行が右、中止が左でデフォルトは進行だが、Qtは進行が左、中止が右、デフォルトは中止。

これはWindowsと同じだが、最近の環境に慣れた身としてはかなり使いにくい。

なおKDE6アプリケーションは進行が左、中止が右というレイアウトのままだが、デフォルトは進行になっている。

Fish

CatchyOSのデフォルトシェルはFish。 どう考えてもデフォルトとして適切ではない。

ZshもCachyOSの設定があるが、Fishに寄せていてものすごく独特の設定。 普通にgrml-zsh-configを入れるのが無難。