2021年のWayland
次世代ウィンドウプロトコルサーバWaylandをベースにしたLinuxデスクトップを作って使っているので、何やったかメモしていく
物理的な環境はデスクトップに
モチベーション
以前からWaylandには興味を持っていたが、デスクトップのGPUがGTX1660Tiであり、たいていのコンポジタはnvidiaドライバの提供するバッファAPI(EGLStreams)をサポートしていないので、使えず、泣きながらX11を利用していた
一念発起してRadeonのGPUを買ったので、念願のWayland環境に挑戦することに
ちょうどFirefoxやChromeもWaylandへの対応が進みつつあり、「ちゃんと使える」環境が整ってきたというのもある
総評
現代的なHiDPIサポートがある!これだけで使う価値がある気がする
非常に設定する項目が多く、三度の飯より設定が好きな環境構築マニアしか使いたくないみたいなフェーズ。使えるけど
XWaylandとHiDPIのパッチも入りそうな雰囲気だしgnomeとかのデスクトップ環境を使うのもアリじゃないでしょうか
ネイティブ環境(Wayland)と互換環境(XWayland)があり、アプリケーションを今どっちで動かしているのか意識する必要があるのは少々しんどい
基本構成
Linux
ディストリはArchLinux
ウィンドウプロトコル
Wayland
X Window System互換としてXWayland
ウィンドウコンポジタ
Sway
後述するが、恐らくXWaylandのHiDPIスケーリングパッチが利用できるコンポジタがこれしかない
そもそもi3wmに魂を縛られているので、これしか使えない
音
PulseAudio
PipeWireなるものがあるらしいが、あまりに不安定なのでやめた
日本語入力
fcitx5
SKKでAZIKできれば文句がないので、動けば何でもいい
ブラウザ
Firefox
WaylandでFirefoxがURLを開けないとき
メニュー
scoopta/wofi
通知デーモン
emersion/mako
スクリーンショット
emersion/grimとemersion/slurpとjtheoof/swappy
grim -g $(slurp) - | swappy -f -している
GTK
テーマ
Adapta-Nokto
GTK3アプリをXWaylandで動かす
Qt
QtアプリをXWaylandで動かす
インストール
ArchLinuxをWikiに従って入れる
インストールガイドに従って入れる
ユーザーを追加して、sudoerに設定し、ログイン
AURヘルパ(tosuke.iconはyayを使っている。Go製なので依存が少なくて助かる)
$ git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si
TODO: 時代はparu
グラフィックドライバを入れる
欲しければEarly KMSを設定
Swayを入れる
$ sway
起動したらとりあえずインストールは完了
ひたすらパッケージを入れつつ、設定
Swayのドキュメントは必読
1つ補足として、HiDPIの項目に小数スケーリングは推奨されない的なことが書いてあるが、Waylandアプリケーションは基本的にHiDPIをちゃんとハンドリングするので、実は問題ない
Sway周辺にはmanを使ったドキュメント文化があるので、困ったらそっちを見るといい
各ツールキットをWaylandで動くようにする
GDK_BACKENDやQT_QPA_BACKENDなどです
Chromeは
$ google-chrome --enable-features=UseOzonePlatform --ozone-platform=wayland
で動くが、サポートしたのが最近(Chrome 87~)なので全くこなれていない。例として
日本語入力ができない
ハードウェアビデオアクセラレーションが全く効かない
ハック
Waylandの環境変数
XWaylandとHiDPI