linux

swayでwayland

pyspa Advent Calendar 2021 の16日目のエントリです。 15日目は@ymotongpooのGoのリリースプロセスとブランチ戦略でした。 waylandにしよう ある日X serverの調子が悪いのかディスプレイマネージャーからログイン後すぐにログアウトしてしまうようになった。 bspwmを使っていて発生したがopenboxに変えたりしても状況変わらず。 コンソールから立ち上げたりしてもエラーが出てるわけでもなく、原因がわからないままにふと試しに入れていたswayを起動したらちゃんと動いた。なぜかwaylandは動くのである。 そういうことならもうwaylandに移行してみるかと新たなヤックの群れに立ち向かうことにした。 (※debian sidにて作業した記録です。) sway お試しでいれてみたswayだがこれはwaylandコンポジターの1種でi3wmのようなタイル型のレイアウトでウィンドウを扱うもの。 というか設定ファイルはほとんどi3と同じでwayland向けの設定が追加されているくらいのものである。 キーボード設定とか ひとまずディスプレイマネージャーを切って、コンソールからの立ち上げでいろいろ設定していくことにする。 waylandはx serverの役割とウィンドウマネージャーの役割をコンポジターが受け持っているので、そこらへんの設定も必要になる。 システムの設定は /etc/sway/config にあった。 ユーザーの設定ファイルは ~/.config/sway/confing になるのでこっちにコピーして修正していくことにしよう。 $ mkdir ~/.config/sway $ cp /etc/sway/config ~/.config/sway ひとまずキーボードをjp106に設定しよう。あとCAPSをCTRLにしておく。 input * { xkb_layout "jp" xkb_options "ctrl:swapcaps" } あとトラックパッドでタップ設定とナチュラルスクロールの設定とかもしておく。 input type:touchpad { tap enabled natural_scroll enabled } タスクバーとかランチャーとか swayにはswaybarというタスクバーが標準でついてくるが、まあいろいろ追加できるwaybarというものがあるのでそっちに交換する。 waybarはwlrootsを使っているコンポジターと相性がいいらしいので採用。 ランチャーについてはbspwmにrofiを使っていたがwaylandにポーティングかなんかしたwofiというのがあったので採用。 通知についてはdunstからmakoに変更。 まとめるとこんな感じ タスクバー: waybar ランチャー: wofi デスクトップ通知: mako waybarについてはexecするのではなくbarの設定でコマンド指定する。 bar { swaybar_command waybar } wofiはキーバインドで実行できるようにしておく。