スクロール可能なタイル型 Wayland コンポジタ、Niri
(github.com/YaLTeR)- Niri はスクロール可能なタイル型の Wayland コンポジタ で、ウィンドウを水平方向に無限に並べられる
- 新しいウィンドウを開いても既存ウィンドウのサイズが変わらない構造 で、各モニターは独立したウィンドウストリップを持つ
- 動的ワークスペース、タブグループ、マウス/タッチパッドジェスチャ などのモダンな機能を提供
- マルチモニター対応、Xwayland 連携、Fractional scaling など、実用に適した多様な環境をサポート
- Rust ベースの高い安定性と 性能最適化 により、多くのユーザーに日常利用が推奨されている
概要
- Niri はスクロールベースのタイル型ウィンドウ管理に対応した Wayland コンポジタ で、オープンソースかつ日常利用に十分な安定性を備えた独自のウィンドウ配置インターフェースを提供する
- 従来の tiling window manager と異なり、ウィンドウを右方向へ無限に伸びる形でカラム(列)に配置し、どのウィンドウを開いても既存ウィンドウのサイズを自動変更しない
- 各モニターは独立したウィンドウストリップを持ち、ウィンドウが隣のモニターへまたがることはない
主な機能
- 動的ワークスペース: GNOME 方式のように、各モニターごとに独立したワークスペースが垂直方向へ動的に生成・管理される
- モニターの接続/切断時もワークスペース配置が保持され、再接続時には元のモニターへ戻る構造を維持
- ワークスペース/ウィンドウ概要: ウィンドウとワークスペース構成をひと目で確認できる Overview モード
- 内蔵スクリーンショットおよび録画 UI、xdg-desktop-portal-gnome を通じた スクリーンキャスト/ストリーミング をサポート
- 機密性の高いウィンドウをスクリーンキャストで ブロック処理 可能
- 対象ウィンドウの動的変更に対応
- タッチパッド/マウス ジェスチャ、ウィンドウを タブグループ にまとめる機能、各種レイアウト設定(余白、境界線、ウィンドウサイズなど)を提供
- グラデーション境界線(Oklab、Oklch)、アニメーション(カスタムシェーダ活用)、設定ファイルの ライブリロード
- スクリーンリーダー 対応によりアクセシビリティを強化
インストールと活用案内
- 実利用でも安定しており、複数のユーザーが日常的に満足して利用中
- 完全なデスクトップ環境ではないため、Waybar(パネル)や Fuzzel(ランチャー)などとの組み合わせを推奨
- 関連プロジェクトやアドオン、ドキュメントは awesome-niri で確認可能
環境および互換性
- マルチモニター 設計が中核であり、混在 DPI および Fractional scaling を完全サポート
- NVIDIA GPU でも問題なく動作可能
- Floating windows をサポート(25.01 バージョンから)
- タブレット、タッチパッド、タッチスクリーン(タッチパッドジェスチャ対応)など多様な入力デバイスをサポート
- 主要な Wayland プロトコル(layer-shell、gamma-control、screencopy など)と互換
- Xwayland(xwayland-satellite 連携、25.08 バージョンから)、軽量システム 向け最適化も実現(Eee PC 900 などの低スペック環境での動作実績あり)
開発とコミュニティ
- Rust ベース で実装されており、安定性・保守性・性能に優れる
- PaperWM(GNOME Shell 拡張)に着想を得て、各モニターの独立性と性能最適化を重視
- コミュニティは Matrix および Discord などで活発にサポートと交流を行っている
- 開発者インタビュー、技術発表、LWN 記事など、さまざまな資料が外部メディアで紹介されている
類似プロジェクト案内
- GNOME Shell 向け PaperWM、KDE 向け karousel、sway/i3 ベースの scroll・papersway、Hyprland 向け hyprscrolling・hyprslidr、macOS 向け PaperWM.spoon など、スクロール型タイルワークフローを実現する複数のプロジェクトと比較できる
貢献およびオープンソース情報
- プログラミング/非プログラミングのさまざまな分野でコミュニティ貢献が可能で、詳細は CONTRIBUTING.md を参照
- ライセンスは GPL-3.0
- コードは主に Rust(98.9%)で構成されており、多くの外部コントリビューターが参加している
要約
Niri はスクロール可能なタイル型ウィンドウ管理という独自の UX と多彩なモダン機能を組み合わせ、Rust ベースの高い信頼性、性能、アクセシビリティまで備えた Wayland 向けコンポジタである。特にマルチモニターや多様なワークフロー環境への対応に優れ、オープンソースとコミュニティのエコシステムも活発に成長している。
2件のコメント
以前使ったことがありますが、悪くはないものの、ウィンドウをいくつも開くとスクロールの意味がなくなってしまうんですよね。
そもそも移動するにも遠すぎますし、どこにあったのかも思い出せないので、結局テキストベースの検索でウィンドウを見つけるしかありません。
よく使われる「グループ番号」方式は、特定の基準(よく使うもの、または用途別)で分類しやすく、覚えやすいです。
Hacker Newsのコメント
Niriのおかげで、14年もxmonadを使っていた自分でも完全に乗り換えました。Niriではデスクトップ内のウィンドウ数に制限がなく、タイル構造を組み替え続ける必要もないので、以前は複数のデスクトップをテーマ別に分けて使っていたものを、今では1つのデスクトップで簡単に管理できています。「エディタとターミナル」のデスクトップと「ブラウザ」のデスクトップを分けて使っていましたが、今では同じデスクトップ内で水平移動するだけで関連するブラウザウィンドウに行けるので楽です。敷居はかなり低く、デフォルト設定のままでも十分よく動きます。Wayland対応の問題も少しありましたが(特にZoomのような一部アプリ)、時間が経つにつれて徐々に解決されています。ハードウェアは2017年製のSystem76 Bonobo WS、GTX 1080を2枚、マルチディスプレイ(4kを2台スケーリング + 1080pを2台)、PopOS環境です。最近の派手なアニメーションなど好みが分かれる変更はまだ経験しておらず、ソースを自分でビルドして使うのが難しくないなら敷居は低いと感じるタイプなので、自分の意見は偏っているかもしれません
最近のNiriはxwayland-satelliteとの統合が改善され、Waylandをサポートしないプログラムも簡単に動かせるようになりました 関連リンク
i3/swayが良いのは、テーマ別のデスクトップ(ブラウザ、コード、Slackなど)を割り当てられることで、ショートカット1つで必要なデスクトップへ即座に移動でき、作業効率がCMD+TabやMission Controlに依存するMacOSより圧倒的に高かったからです。Niriのスクロール方式は、むしろウィンドウを探してさまよう感じがして不思議です
自分もi3を10年以上使ってきましたが、Niriを使った瞬間に「なるほど!」という感覚がありました。最近のビルドには「ミニマップ」のようなズームアウト機能も追加されていて、以前はたまに今どこにいるのか分からなくなるときに役立ちます
Niriで唯一惜しいのはscratch layerです。アプリによっては必ずしもタイル化する必要がなく、どこからでも即座に呼び出せるべきです。たとえばmatrix clientのようなメッセンジャーはすぐに返信できると便利ですし、メディアプレーヤーも同様です。GNOMEのPaperwmにはこの機能があります
i3を7年以上使っていますが、スクロール方式がなぜ良いのかよく分かりません。タイル型WMの性質上きれいなスクリーンショットは多いですが、実際の生産性にどれほど役立つのか気になります。水平移動するときにどう動くのか、たとえばフルスクリーンのエディタから半分だけ見えているブラウザへ移動したら、エディタが切り取られるのか圧縮されるのか気になります。それと、dmenuとより深く統合されたブラウザ兼用のタイル型WMがあればいいのですが
Niriをメインデスクトップで数か月使っていて、LWNに体験談を書きました。一般的なタイル型WM/コンポジターは自分にはあまり合いませんでしたが、Niriのタイルモデルはぴったり合っています。Niriの前はPaperWMとGNOME拡張を使っていましたが、COSMICにスクロールタイルだけ追加されるなら、おそらく今後もNiriを使い続けるつもりです
COSMICチームが1.0リリース後にこの機能を追加する可能性はありそうです。それまでは、System76の社員が他のコンポジター(Niriを含む)を使えるようにする非公式拡張を作っています
自分もPaperWMからNiriへ移るときはためらいました。PaperWMは複数のアプリを個別に設定する必要がなく、ランチャーや設定、ロッカー、オーディオ/ネットワークウィジェットなどGNOME本来の機能がとても便利でしたが、PaperWM自体にウィンドウサイズ変更のバグや縦方向サイズ調整の問題など、地味に厄介な点がありました。結局、Niriのほうがずっと明快でした
COSMICにタイル機能だけ追加されれば最高です。COSMICは本当に気に入っているのですが、それだけが足りません
COSMICとの違いが気になっていたので参考になりました
今のNiriは人気が爆発的に高まっていて、開発者が過負荷状態です。貢献したいならIvanに支援するか、PRを作る前にほかのPRのレビューを手伝ってほしいです。NiriもSmithayも品質が高く、致命的な問題もなく、時間が経つごとに機能も増えています
一般の人がPRを事前レビューして、実際どれほど助けになるのか疑問です。結局、マージ前にはメンテナーが必ず自分で確認するでしょうし、浅い理解の人があれこれ言うのは、貢献者からするとむしろ不快かもしれません
毎日Niriを使っているユーザーなら、ぜひ感謝を示してほしいです。自分はすでに支援しました。参考までに自分のセットアップも公開しておくので、誰かの参考になればうれしいです セットアップのリンク
Hyprlandユーザーなら、なぜNiriに乗り換えるべきなのか、無限ウィンドウ機能が最大の魅力なのか気になります
支援リンク
MacOSではいつも全画面で何でも開いて、cmd-tab/cmd-backtickでウィンドウを切り替えるスタイルですが、本当にLinuxのtiling workflowがうらやましいです。MacOSでこういう環境を実現できず不満なのに、会社の規定上Linuxにも移れないので途方に暮れます。より良いワークフローを知っていても実践できないもどかしさに共感する人は多いと思います
この1か月、komorebiをMacOSに移植していて、スクロールレイアウトはNiriほどではないですが、両プラットフォームでうまく動いています。動画1 動画2
似たようにMacOSしか使えない状況で、自分は全画面の仮想マシンでLinuxを動かして使ったことがあります。技術的にはMacOSなのでIT部門にも問題視されず、セキュリティポリシーもそのまま通りました。会社によってはVMwareライセンスも支給してくれました
Mac向けウィンドウマネージャーではAerospaceが最高でした
MacでYabaiウィンドウマネージャーを使っていますが、大型モニターではとても良い一方、ノートPC1台だと結局いくつかのスペースに1〜2個ずつウィンドウを置くだけになってしまい、しっくりくるワークフローが見つかりませんでした
flashspaceをおすすめします。アプリを全画面で開くとき、ワークスペースをキーに割り当てておけばアニメーションなしで即座に切り替えられます
Niriを試していなかった理由は、設定ファイルが1つにしかできず、複数のデバイスで少しずつ違う環境を維持したいとき(たとえばgitignoreされた各自のローカル設定を適用するなど)に不便だったからです。ところが少し前に主要なPRが2つマージされ、関連PRのように個人ごとのオーバーライド/インクルードが可能になりました。まだリリースには入っていませんが、近いうちに期待しています
新しいtiling WMがなぜ良いのか、15年以上xmonadしか使ってこなかった立場から気になります。Waylandコンポジターも結局「タイル + Wayland」以外に何の利点があるのかと思います。特に以前Waylandを使うたび、X11と比べて致命的なバグが常にありました(特にNvidia環境で)
Nvidia+Arch+Gnome3+Wayland環境でこの1年ほどWaylandを再び試してみましたが、今ではほぼ問題なくすべてが動いており、Firefoxがとりわけ滑らかで効率的です
Waylandには、まだ特殊な作業をすると問題が残っています(例: グラフィックタブレットの向きを変えられない)。それでもNvidiaはドライバー570バージョンからうまく動くようになっています
どのLinuxディストリビューションで使ったかが重要です。自分はFedoraで長い間Waylandを使っていて、Intel/Nvidiaどちらの機材でも大きな問題はありませんでした
自分も似たような経験です(途中でrm事故で設定を消して書き直したことがありますが)。2009年から'23年までxmonadを使っていて、その後Niriに乗り換えました。詳しい理由はこちらにあります。PopOS、GTX 1080を2枚、マルチスクリーンでも問題なく動きます。無条件でおすすめです
Asus Rog G14 + Nvidia 3060でWaylandを使ってみましたが、疑っていた割にdrm.modesetを設定するだけですぐに問題なく動きました。外部モニター2台(HDMI 1台、USB-C経由のDP 1台)も問題なく認識しました。デイジーチェーン接続だけは別ですが、満足しています。まだ最近の体験なので全ケースを経験したわけではありませんが、自分にはXよりよく動いています
数週間前にi3からNiriへ移りましたが、とても満足しています。ウィンドウとワークスペースの使い方が自分の習慣により自然に合っています。1ワークスペースごとにプロジェクト単位で作業し、右側に一時的なターミナルやブラウザを1つ開いても他のウィンドウに影響したり再配置されたりしないので、一時的な参照やコマンド実行が本当に便利です。唯一の問題は、今や本当にウルトラワイドモニターが欲しくなったことです
NiriのコンセプトをSwayに適用した例 scrollリンク
昨日PopOSを再インストールしてNiriに乗り換えましたが、すぐに直感的に慣れました。以前i3wmを使っていたときのようにウィンドウサイズ調整を気にする必要がまったくなく、Niriではウィンドウがワークスペース内で増えても別途再配置することがほとんどないので、集中力がずっと高まりました。環境はRTX 3090、Pop OS 24.04ベータ、4K 43インチモニターで、cargo buildでのNiriインストールも簡単でしたし、VS Code、Obsidian、Zoom、BlenderなどのX11アプリを動かすにはxwayland-satelliteのインストールが必須です
Hyprlandをカスタマイズしていていろいろ不満がありGNOMEに戻りましたが(ブラウザを数十〜数百開くことやトレイ拡張などが必須なので)、GNOMEはバージョンアップのたびに拡張の互換性が壊れるので、今では完全にGNOME離れを宣言しています。今回はRiver、QTile、Niriを一通り試した末にNiriに落ち着き、必要な機能を少しずつ自分で追加しています。動的なワークスペースのグルーピングが直感的で便利ですし、キーボードショートカットも自分好みに設定できます。DEはwaybar、swayncで補っています。Claude Code/Codexのような自動化ツールでスクリプトを書くのも楽しいです。たとえばwaybarで現在のウィンドウ活動を表示するniri-workspaces、fuzzelと連携してワークスペース名を変更するniri-workspace-names、AltTabのカスタムなど、いろいろ試しています。ここにLiveサムネイルのような機能を入れるのは大きなプロジェクトになりそうです。新しいコーディングエージェントのおかげで、詳しいドキュメントがなくてもかなり思い通りに環境設定を変えられるようになりました