i3 likeなwayland compositorのswayを使ってみている

Wayland何度か試してみてまあぼちぼち動くが、いいdesktop環境にはなってないなという感じだった。そんなところへ、いま使っている普通のタイルWMなi3とcompatibleなswayというwayland上desktop環境(wayland composiotr)を見つけたので試している。いまのところ結構いい感じに使えている。

github.com

インストールして、とりあえず起動してみると、i3のconfigを読んでいるらしく、いままで通りに使える。べんりだ。

そのままでも、だいたい動くんだけど、 .i3/configから.sway/configにcopyして調整した方がいい。

ちゃんと動くの?

わりとだいたいのものが動いている。Firefoxで動画とかも見れている。i3と操作が変わらないので、悪くなった感じはあまりない。

時々、GPU hangして落ちてしまって困るけど、これはXの時でも起きてるし、そもそもkernelがRCだからそっちもあやしい。ただ、Xの時はcompositorであるcomptonが死ぬだけで、i3は大丈夫なんだけど、swayだとGPU hangしたらswayごと死んでしまう。しかたないけど。

アプリは動くの?

swayはwlcというwayland compositorを作るlibraryを使っていて、これがXWaylandを立ててXのものもWaylandに乗せて動かしてくれるっぽい。べんり

X固有のものは?

Xに依存したものとして、xrandrとかxbacklightコマンドがある。これらは当然Wayland上で動かないので置きかえる必要がある。

xrandrに対応する機能はswayのconfigで実現できている。

HDMI接続の画面だったら

output HDMI-A-1 res 1920x1080 pos 1920 0

 のように書いておくと、メイン画面の右側になる、という感じ。

configに書いてなくても、

swaymsg -t command output HDMI-A-1 res 1920x1080 pos 1920 0

 というコマンドで動的に認識できる。

画面の名前は

swaymsg -t get_outputs

で、出てくるJSONを見ればわかる。

xbacklightコマンドは使えないので、適当に/sys/class/backlightを使ってがんばる。多分、時間が経ったら画面が消えるとかも現状ない感じがする。

あとタスクトレイが現状動いていない。まあなくてもいいやってことで忘れている。

壁紙は?

これもswayのoutputコマンドで設定できる

swaymsg -t command output eDP-1 bg wallpapers/foo.jpg fit

 こんな感じ。

i3との違いは?

i3でlauncherとしてrofiを使っている。これがswayだとうまく動かない。floatしてるwindowに対して入力できない?っぽい。裏にwindowいると、入力できるのでinputの当たり判定かなんかだろうか。"-normal-window"引数つけておけば動くのでそうしてる。

Rofi

入力deviceの設定も、swayのconfigで出きる。こんな感じ。device nameは"swaymsg -t get_inputs"で

input "2:7:SynPS/2_Synaptics_TouchPad" {
  accel_profile adaptive
  natural_scroll enabled
}

ところでWaylandのよさは出てるの?

よくわからない…。結局ほとんどのものはXWayland経由になってるし、directにwaylandしゃべってるやつは多分いない。入出力まわりよくなってんのかな? 劇的な体感はないけど、まあおもしろいし動くし使ってみている。Waylandでこんな動くんだな、と思うと楽しいのは楽しい。