僕は一寸
2021/09/09

Wayland 環境で SMPlayer がクラッシュする話

皆さん,Wayland 使ってますか.最近では GNOME や Plasma といった主要なデスクトップ環境でのサポートが進み,X11 の代替としてかなり実用的になってきた印象です.

私もようやく重い腰を上げて (とは言っても plasma-wayland-session を導入するだけですが) メインの Plasma 環境を X11 から Wayland に切り替えたのですが,一つの重大な問題に遭遇しました.

問題

MPlayer/mpv エラー

愛用している動画プレイヤーである SMPlayer がクラッシュします.

SMPlayer 設定

設定から「Wayland のサポート」といういかにもそれらしいチェックボックスをオンにしても,出力ドライバーを色々変えて試してみても,一向に正常に再生される気配はありません.

調べてみてもそれらしき症状を訴えている人は見つからないので環境依存の問題かもしれませんが,動画が再生できないままでは非常に困ります.

解決策

原因は SMPlayer と Wayland と自環境の相性が悪いことです.つまり,X11 であれば問題は発生しません.なので,SMPlayer を XWayland 経由で動作する X11 アプリケーションとして起動すればよいだけです.

SMPlayer は Qt 製のアプリケーションで,Qt アプリケーションは起動時に -platform xcb という引数を渡すことで X11 の利用を明示することができます.環境変数 QT_QPA_PLATFORM で指定することもできますが,これだと全ての Qt アプリケーションに適用されてしまうので今回は使いません.

試しにターミナルから上述の引数を渡して起動してみた所,あっさり解決しました.SMPlayer の上でマウスを動かすと xeyes はキョロキョロと目を回しており,確かに XWayland 上で動いています.

Battlefield 2042 のトレイラーを再生する SMPlayer

Battlefield 2042 のトレイラーもこの通り.

後は同じ引数をデスクトップエントリ (/usr/share/applications/smplayer.desktop とか ~/.local/share/applications/smplayer.desktop にあります) にも書いておけば完璧です.デスクトップエントリは,Plasma 5 の場合は kbuildsycoca5 でリロードできます.

まあ,Wayland も完璧ではないですよね.それでも workaround があるところが GNU/Linux ディストリビューションの良いところだと思います (と,適当に締めくくります) .

ちなみに,常用している環境を Wayland セッションに切り替えるにあたって,変換候補の位置がおかしくなる fcitx4 (fcitx) から fcitx5 に切り替えたりもしました.以前 fcitx5 を試した時は何かしらの不具合があって「まだ fcitx5 は常用できないな」と思っていたのですが,今は何の問題もなく快適に入力できています.ソフトウェアの歩みは早いですね.

← Arch Linux で Canon のインクジェットプリンターを使う Firefox アドオン “Simple URL Copy” の紹介 →