wlroots
詳細情報
- 作者
- Drew DeVault
- 公開年
- 種類
- ライブラリ
- ライセンス
- MIT
- ソース
- gitlab.freedesktop.org/wlroots/wlroots
Waylandコンポジタの開発を6万行の仕事から千行の仕事に変えたライブラリ。2017年にSway用に作られ、MutterとKWin以外の大半のコンポジタの土台になった。
Waylandはプロトコルなので、コンポジタを作る側はXサーバがやっていたことをすべて書かねばならない。DRM/KMSとの通信、libinputによる入力、OpenGLやVulkanでの描画、xdg-shellなど十数のプロトコルの実装、レガシークライアント用のXWaylandの起動。Drew DeVaultは、Swayが前身のwlcライブラリの限界を超えた2017年にwlrootsを始めた。READMEには「どうせ書くことになる6万行のコード」とある。モジュール同士の結合は意図的に緩く、コンポジタは欲しい部品だけを選び、ウィンドウやフォーカスに関する判断はすべて自分で握る。
DRM、libinput、X11や別のWaylandセッション内への入れ子、ヘッドレス動作のバックエンド、3種類のレンダラ、ダメージ追跡と再描画を担うシーングラフ(wlr_scene、2021年)、約千行のCで書かれたサンプルコンポジタtinywlを備える。Sway、river、labwc、Wayfire、Cage、dwlがこの上にあり、Hyprlandも2024年に独自のAquamarineへ移るまではそうだった。DeVaultが身を引いた後はSimon Serが主なメンテナとなり、コードはfreedesktop.orgのGitLabに移った。バージョンは1.0に達したことがなく、0.xが上がるたびにAPIが壊れる。コンポジタ側はそれに慣れた。