- Swayとi3を長く使ってきたユーザーが、Swayのクリック・ドラッグのバグをきっかけに、従来型のタイル型ウィンドウマネージャーからNiriへ移行した
- Niriはワークスペースを左右にスクロールする無限の帯のように扱い、新しいウィンドウを開いても既存のウィンドウ配置が大きく崩れない
- 移行後数時間で十分使える設定を作り、1週間以内にSwayより自分に合う状態になった。ウィンドウ単位の画面共有、画面共有からの除外、内蔵スクリーンショット、約2時間のバッテリー増加を利点に挙げている
- 従来型のタイル型ウィンドウマネージャーは、ウィンドウの再配置とワークスペース管理に認知負荷を生み、Swayでは11個以上使っていたワークスペースがNiriでは5個以下に減った
- さまざまな画面サイズと処理性能を考えると、従来型タイル型がパワーユーザーの標準ワークフローである必要はなく、SwayやWaylandベースのタイル型を使っている人はNiriを試す価値がある
SwayからNiriへ移ったきっかけ
- 筆者は人生の35%にあたる期間、タイル型ウィンドウマネージャーを使ってきており、Swayを5年、i3を2年使っていた
- Waylandを比較的早い時期から使い、多くのものが壊れている状態に慣れ、Swayのワークフローにも長く適応していた
- 直接のきっかけは、Swayでテキストを選択した後にドラッグすると、マウスを離した後も選択動作が続くクリック・ドラッグ問題だった
- 数日が数週間になっても問題が解決せず、テキストをクリックして選択する動作自体が不安定に感じられるようになった
- 原因のライブラリを探したり
git bisectを回したりする代わりに、長年の筋肉記憶とワークフローを捨ててNiriを試した
Niriの動作方式と第一印象
- Niriはスクロール型タイルウィンドウマネージャーで、各ワークスペースが左右にスクロールできる無限に広い帯のように動作する
- 新しいウィンドウを開いても他のウィンドウの配置を変えないため、ターミナルを開いたときにFirefoxが予期しない位置へ押し出されることが減る
- 数時間以内に十分使える設定を作り、1週間以内にはSwayより自分に合う状態になった
- 新しく危険に見えるツールを無謀に試していた、ディストリビューションやウィンドウマネージャーを乗り換えていた頃の感覚をまた味わったという
Swayと比べて体感した改善点
- Niriはウィンドウ単位の画面共有に対応し、特定のウィンドウを画面共有に表示しないようにする機能も提供する
- 課題をストリーミングするとき、銀行のメール通知のようなセンシティブな通知が画面の隅に表示される心配が減る
- 内蔵スクリーンショットツールに満足しており、Swayで推奨されるgrim+slurpの組み合わせより良いと評価している
- Swayと比べてバッテリー駆動時間が約2時間延びた
- NiriのIPC機能を追加してみる過程でも、開発体験は良かった
従来型タイルウィンドウマネージャーへの不満
- 従来型のタイルウィンドウマネージャーは、ユーザーにウィンドウ配置を最大限効率化するよう促し、その過程でウィンドウ再配置の最小化という誤った目標に認知負荷を費やさせる
- 全画面と非全画面を行き来し続けたり、ワークスペースが足りなくなったりしないなら、開いているウィンドウは多くない状態だと見なせる
- タブ型・スタック型レイアウトとネストしたコンテナは、スペース不足を覆い隠す、あまり人間工学的ではない応急処置だと評価している
- Swayではワークスペースをしばしば11個まで開き、足りなくなって11〜20番のワークスペース用ショートカットまで追加した
- ワークスペースを節約しようとウィンドウを閉じて、プロジェクトの流れを失うことがあった
- Niriでは大きなプロジェクト3つ、複数のチャットアプリ、YouTube動画、授業3つ分の作業を開いても、ワークスペースは5個を超えない
- 同じ構成はSwayでは15番のワークスペースまで押し出され、必要な資料を探すには複数のワークスペースを行き来する必要があった
画面サイズ、DPI、ウルトラワイドでの文脈
- さまざまな画面サイズと向上した処理性能を考えると、従来型のタイルウィンドウマネージャーがパワーユーザーのワークフローにおける標準の選択肢である必要はないと考えている
- 従来型タイル型はスペースを人工的に制限し、コンテンツの再配置を強制し、非標準のモニターレイアウトとも相性が良くないと評価している
- Waylandへ移行した主な理由は混在DPIだった
- 同じ物理サイズの4KモニターとFHDモニターを一緒に使うと、4K側のピクセル密度は約4倍高い
- 固定ピクセル幅のウィンドウは、4Kでは小さく、FHDでは大きく見えることがある
- ウィンドウを物理的に同じくらいの大きさに見せるにはスケーリングが必要になる
- X11の実装は当時うまく合わず、Waylandはこれを中核機能としてサポートしている
- X11では1.6のような非整数倍率のフラクショナルスケーリングも難しく、この点ではWaylandのほうが優れているという
- スクロール型タイルウィンドウマネージャーはウルトラワイドモニターと相性が良いと見ている
- Swayでは新しいウィンドウがウルトラワイド全体を埋めるが、Niriのモデルはより自然にタイル化し、スペースをよりうまく活用できる
- SwayのようなWaylandベースの従来型タイルウィンドウマネージャーのユーザーには、Niriをすぐ試してみることを勧めている
- Swayに近いキーバインド体験を望むなら、公開されているNiri設定を参考にできる
1件のコメント
Hacker News の意見
Gnomeを使っていて、ウィンドウはほとんど全部フルスクリーンで開いている。たまに win+left/right で半幅のウィンドウにすることもあるけど、これって原始人なのかな?
この20年間で、「未来」と呼ばれたタイル型ウィンドウマネージャが十数個は現れては消えていくのを見てきた。現実的に生産性を大きく高める機能は、かなり前から主要なウィンドウマネージャに一通り入っており、純粋なタイル型ウィンドウマネージャは今後もニッチ製品にとどまる可能性が高い。
結局、きちんと使うにはかなりの時間と労力をかける必要があるが、得られる生産性向上は現実には漸進的なレベルで、その代わりこうしたニッチ製品特有の粗削りな部分も一緒に受け入れなければならない。
Gnomeより少し良くなる程度ではあるが、最初からウィンドウが適切な場所にある可能性が高くなるし、正直ウィンドウをZ軸方向に重ねて積む必要がどれほど頻繁にあるのかと思う。
最初はリアルタイムストラテジーゲームのカメラのように、位置とズーム率をキーバインドできる無限の2Dキャンバスのほうが、より良いウィンドウマネージャだと思っていた。でもNiriを使ってみると、自分のアイデアは複雑すぎて、Niriが機能性と使いやすさのちょうどいい地点を突いていると確信した。
未来の異星人が贈ってくれた技術みたいだ。
自分はノートPC、中央に横置き24インチ、縦置き24インチのモニターを使い、Spotify/Teams/シェル/Outlookは縦の半分割、ドキュメントはノートPC画面、IDEはメイン画面のフルスクリーンにしている。設計/調査、開発、個人用で仮想デスクトップも分けている。
4Kやウルトラワイドではなく標準的なモニターサイズを維持すると、画面共有もずっと簡単になる。
小さな不満としては、最近のUIデザインがあらゆる場所に10pxのパディングを入れるので、ほとんどのアプリやページが何かをするにはフルスクリーンでなければならない点だ。
ただ、自分のタイル化需要の大半はターミナル内にあり、tmuxがヒーロー役を果たしてくれている。
https://extensions.gnome.org/extension/4548/tactile/
自分はi3から移ってきた人間だが、完全なタイル化拡張はいらず、タイル化の便利さだけ少し欲しいなら、Tactileはとてもシンプルな解決策なので便利に感じる。
従来のタイル型ウィンドウマネージャから移る場合、ショートカット中心のワークフローがどうなるのか知りたい。
自分にとって一番重要なのは、Super+[0-9]のように特定のウィンドウ、ワークスペース、実質的には特定のプログラムへ行く固定ショートカットだ。それが可能で、記事で言っている「ワークスペース管理」の問題まで解決されるなら、すぐに移行しそう。
Niriでもこういう形で「ワークスペース」を使うのは理にかなっているのだろうか? たとえばブラウザ用のワークスペースを1つ、エディタ用を1つ、複数のターミナル用を1つ用意して、「ブラウザ」から「ターミナル群」へ即座に切り替えたい。アニメーション効果はないほうがいい。
たとえばパスワードマネージャはブラウザと同じワークスペースに置き、普段は画面外にある。パスワードを作る必要が出たらすぐ隣にある。テキストエディタの横に必要な補助ターミナルを置くのも同じやり方だ。
ただ、既存の伝統的なタイル化の制約の中で作業していた筋肉記憶がかなり残っていると感じる。たとえば自分のモニターでは、ターミナルを3つ以上開いたら新しいワークスペースに行くべき、という具合だ。
そのため実際にはその必要がないのに新しいワークスペースへよく移ってしまい、何がどこにあるのか少し混乱する。時には、以前の作業方式ともっとはっきり切り離したほうが楽かもしれないと思う。
それでもNiriに似た方式のタイル化は本当に気に入っている。自分の考えでは、タイル型ウィンドウマネージャの欠点をほぼすべて取り除いてくれる。
全体としてはGnomeよりi3のほうをずっと好んでいるが、「すべてがリサイズされる」苦痛はかなり現実的だ。特にZoom通話が多いときはさらにひどく、Zoomの「通知」がシステム内蔵の通知を迂回し、それぞれを別ウィンドウのように扱っているようで、問題が増幅される。
Niriを一度試してみようと思う。
自分にはあまり合わなかった。画面の境界を越えて続くウィンドウの帯があり、時々ウィンドウの半分だけが見える様子が妙な不安を誘って、ずっと視線を引きつけられた。
2か月ほど使ったあと、ウィンドウが画面境界と重ならない、より伝統的なタイル型コンポジタであるHyprlandに戻った。
ただしNiriは技術的にはとても美しい。モダンなRustコードベースで、コード構造も良く、理解して手を入れ始めるのも簡単だ。
ノートPCでは作業に応じて全幅や1/2幅を使い、ウルトラワイドでは1/3幅を使うか、内部に列分割のあるエディタ用に全幅を使う。
タイリングウィンドウマネージャの考え方が好きで、i3 と Hyprland をかなり長く使ってみたが、なぜか完全には定着できず、結局 Xfce に戻ることが多かった。昔からの習慣はなかなか消えない。
実験が終わる瞬間は、たいていウィンドウ数が一定数を超えたときだ。ワークスペースやレイアウトなどを十分深く設定していないと、そこから管理がさらに難しくなる。
さっき Niri を起動してみたが、10分でほかのタイリングウィンドウマネージャよりずっと快適に感じた。すぐ直感的に使えて、マウス統合も素晴らしい。
勝利宣言するには早いが、本当に何年も望み、必要としていたまさにそれのように見える。どれほど良いかは、Xfce に戻りたいと思うまでにどれだけ時間がかかるかで判断するつもりだ。
平凡で退屈で流行に左右されないフローティングウィンドウマネージャ/デスクトップ環境に、軽い任意のタイリングが付いた構成が、自分には最適だった。
面白く読んだ。誰にでも限界点はある。
「当然、どのライブラリが破壊的変更をしたのか突き止めて git bisect を4時間回す代わりに、10年近くにわたる筋肉記憶とワークフロー改善を窓の外へ投げ捨てることにした」という部分がよかった。
自分も長年の i3/Sway ユーザーで、Niri はかなり快適だ。フォーカス移動やウィンドウ移動のような Sway の筋肉記憶の大半をそのまま持ち込めた。安定性もとても高く、xwayland-satellite ともすぐにうまく動いた。
最大の問題は、ウィンドウをしょっちゅう「見失う」ことだ。深く入れ子になったスタックの中にウィンドウを開いたまま別の作業をして、そのウィンドウをすでに開いていたことを忘れてしまう。
Sway でもある程度は起きるが、すべてのワークスペースを見渡すのはずっと簡単だ。
Alt-Tab に割り当てた「ウィンドウマップ」のようなものがあるとよさそうだ。
ちなみに自分は niri IPC / bash / jq で作った妙な組み合わせで run-or-raise 機能をまねているが、本来の RoR よりたぶんよく動く。特定の appId に一致するウィンドウを循環し、なければ新しく起動する。
ここに、開いているすべてのウィンドウをファジー検索で移動できる rofi(wayland)を組み合わせたら、体感が大きく良くなった。
自分は Hyprland を使う若い世代だが、Niri も少し使ってみて、かなりうまく動いた。平均的なシングルモニターの Windows ワークフローから移ってくる人には、特にオフィス系作業の大半にとてもよく合う。
それでも、もっと複雑なタイリング設定のほうが生産性の上限は高いと思う。この筆者のようにワークスペースを10個以上開いておく人なら、Niri を選ぶべきだろう。
ウィンドウを数個しか開かない人にもバッテリー駆動時間の増加が維持されるのかは気になる。ウィンドウマネージャを変えただけで2時間というのは、とてつもない差だ。
これが自分が完全に移行しづらい主な理由のひとつだ。デスクトップ環境も使っていないし、コンポジタが実際に役立つ機能も使っていないので、自分の視点では利点がほとんど見えない。
たまに目につくのは、自分が設定したシステムテーマに従わない gtk4 プログラムの影付きドロップダウンのせいで黒い縁が出るくらいだ。
Niri はまだ使っていないが興味はある。
最近は GNOME で PaperWM 拡張を使って、スクロール可能なウィンドウマネージャ体験をかなりうまく味わえた: https://github.com/paperwm/PaperWM
ただし Gnome 環境の中で作られているわけではないので、少し不利な点がある。Gnome が「無料で」提供してくれるいくつかのものが Niri にはなく、かなり基本的な機能でも代替ツールを自分で探す必要がある。
欠けているように見えるものは、デスクトップ通知、アプリランチャー、Dock や実行中アプリ一覧、X11 アプリケーションをシームレスに実行するための Xwayland だ。これらの機能はすべて Niri に含まれない別ツールが提供する必要がある。
最大の不満は、X11 と Wayland の間のクリップボード同期がない点だ。Gnome はこれを自動で処理しているようだが、Niri ではそうではないので、Wayland アプリと X11 アプリの間でコピー&ペーストできないのが非常にいら立つ。
回避策はあるが、これまで試したものの中で十分に快適で安定しているものはなかった。
スクロール可能なウィンドウマネージャは本当に素晴らしい。タイリングウィンドウマネージャの生産性の約80%を、20%の労力で得られる。
これを見つけ出すのに30〜40年もかかったというのが不思議だ。
自分は開いているブラウザタブが無限に増えていき、最後には数百個をブックマークして全部閉じなければならないタイプでもあるので、このパラダイム全体は本当に自分に合わなさそうだ。
名前でウィンドウをスタックの内外へ yank できるようにし、スタック内で最も古いウィンドウを退避させる、雑に作った Python コードだった。実質的にはウィンドウ用の LRU キャッシュだった。
「動き」はしたが、大学生の頃に PaperWM があったら本当に楽しんでいたと思う。
フローティングウィンドウマネージャにしか得意でないこともある。自分はドキュメントをいくつかフローティングで固定して画面のあちこちに表示し、あまり移動せず相互参照するという悪い習慣が好きだ。
Linuxデスクトップで何が起きているのかをもっと学びたいなら、誰にでも非標準のウィンドウマネージャーを一つくらい試してみることを勧められる
タイリングウィンドウマネージャーをいじっていてLinuxについて学んだことは、他のどんな種類のソフトウェアよりも多かった
実際に生産性が上がったかどうかは分からないが、素晴らしい学習体験で、人間工学的にも良く、ゼロから自分のデスクトップ環境を作っていく満足感はものすごい