2 ポイント 投稿者 GN⁺ 2025-03-13 | 1件のコメント | WhatsAppで共有
  • 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/wlrootsと異なり、Niri/SmithayはRustで書かれている
    • コードは予想より取り組みやすかったという

従来型タイルウィンドウマネージャーへの不満

  • 従来型のタイルウィンドウマネージャーは、ユーザーにウィンドウ配置を最大限効率化するよう促し、その過程でウィンドウ再配置の最小化という誤った目標に認知負荷を費やさせる
  • 全画面と非全画面を行き来し続けたり、ワークスペースが足りなくなったりしないなら、開いているウィンドウは多くない状態だと見なせる
  • タブ型・スタック型レイアウトとネストしたコンテナは、スペース不足を覆い隠す、あまり人間工学的ではない応急処置だと評価している
  • 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件のコメント

 
GN⁺ 2025-03-13
Hacker News の意見
  • Gnomeを使っていて、ウィンドウはほとんど全部フルスクリーンで開いている。たまに win+left/right で半幅のウィンドウにすることもあるけど、これって原始人なのかな?

    • 筆者の「street cred」を見ると、まだ20歳だという点も考慮すべき。20歳のころは、ソフトウェアであらゆる手直しや無駄な苦労に耐える忍耐力が、数年働いたり家族ができたりした後と比べると、ほぼ無限にあったと感じる人は多いはず。
      この20年間で、「未来」と呼ばれたタイル型ウィンドウマネージャが十数個は現れては消えていくのを見てきた。現実的に生産性を大きく高める機能は、かなり前から主要なウィンドウマネージャに一通り入っており、純粋なタイル型ウィンドウマネージャは今後もニッチ製品にとどまる可能性が高い。
      結局、きちんと使うにはかなりの時間と労力をかける必要があるが、得られる生産性向上は現実には漸進的なレベルで、その代わりこうしたニッチ製品特有の粗削りな部分も一緒に受け入れなければならない。
    • 自分も似たような感じだったけど、自分のワークフローがタイル型ウィンドウマネージャとかなり相性がいいことに気づいた。一時的なアプリには分割を使い、たとえば30秒ほどターミナルに入るような形で、それ以外はアプリごとにワークスペースや画面を丸ごと1つ与えていた。
      Gnomeより少し良くなる程度ではあるが、最初からウィンドウが適切な場所にある可能性が高くなるし、正直ウィンドウをZ軸方向に重ねて積む必要がどれほど頻繁にあるのかと思う。
      最初はリアルタイムストラテジーゲームのカメラのように、位置とズーム率をキーバインドできる無限の2Dキャンバスのほうが、より良いウィンドウマネージャだと思っていた。でもNiriを使ってみると、自分のアイデアは複雑すぎて、Niriが機能性と使いやすさのちょうどいい地点を突いていると確信した。
      未来の異星人が贈ってくれた技術みたいだ。
    • たいていの人はそうやって作業していると思う。同僚がMacBookでReact開発しているのを見たが、ウィンドウはただ開いたときのサイズと位置のままで、フルスクリーンでもなかったので、モニター3台を使う自分の頭では理解できなかった。
      自分はノートPC、中央に横置き24インチ、縦置き24インチのモニターを使い、Spotify/Teams/シェル/Outlookは縦の半分割、ドキュメントはノートPC画面、IDEはメイン画面のフルスクリーンにしている。設計/調査、開発、個人用で仮想デスクトップも分けている。
      4Kやウルトラワイドではなく標準的なモニターサイズを維持すると、画面共有もずっと簡単になる。
      小さな不満としては、最近のUIデザインがあらゆる場所に10pxのパディングを入れるので、ほとんどのアプリやページが何かをするにはフルスクリーンでなければならない点だ。
    • まさに自分と同じ。本当に欲しいのは、たまに必要なときに3分割や4分割くらいをしてくれる、もう少しタイル化できるGnomeだ。
      ただ、自分のタイル化需要の大半はターミナル内にあり、tmuxがヒーロー役を果たしてくれている。
    • こういう拡張を好きな人はいそう。
      https://extensions.gnome.org/extension/4548/tactile/
      自分はi3から移ってきた人間だが、完全なタイル化拡張はいらず、タイル化の便利さだけ少し欲しいなら、Tactileはとてもシンプルな解決策なので便利に感じる。
  • 従来のタイル型ウィンドウマネージャから移る場合、ショートカット中心のワークフローがどうなるのか知りたい。
    自分にとって一番重要なのは、Super+[0-9]のように特定のウィンドウ、ワークスペース、実質的には特定のプログラムへ行く固定ショートカットだ。それが可能で、記事で言っている「ワークスペース管理」の問題まで解決されるなら、すぐに移行しそう。
    Niriでもこういう形で「ワークスペース」を使うのは理にかなっているのだろうか? たとえばブラウザ用のワークスペースを1つ、エディタ用を1つ、複数のターミナル用を1つ用意して、「ブラウザ」から「ターミナル群」へ即座に切り替えたい。アニメーション効果はないほうがいい。

    • 可能。NiriもSwayのようなウィンドウマネージャと同じく、番号付きワークスペースを今でもサポートしている。ただし今は横方向にスクロールすることもできる。
    • Niriもほかのタイル型ウィンドウマネージャと似たように使うことになるが、アプリ1つにつきワークスペース1つではなく、補助アプリをメインアプリとまとめておけるのがいい。
      たとえばパスワードマネージャはブラウザと同じワークスペースに置き、普段は画面外にある。パスワードを作る必要が出たらすぐ隣にある。テキストエディタの横に必要な補助ターミナルを置くのも同じやり方だ。
    • Swayではpapersway、Hyprlandではhyprscrollerで、Niri、正確にはPaperWMのようなタイル化を試すこともできる。自分は後者を使っているが、基本的には通常のタイル化とほぼ同じで、名前付きワークスペースも可能だ。
      ただ、既存の伝統的なタイル化の制約の中で作業していた筋肉記憶がかなり残っていると感じる。たとえば自分のモニターでは、ターミナルを3つ以上開いたら新しいワークスペースに行くべき、という具合だ。
      そのため実際にはその必要がないのに新しいワークスペースへよく移ってしまい、何がどこにあるのか少し混乱する。時には、以前の作業方式ともっとはっきり切り離したほうが楽かもしれないと思う。
      それでもNiriに似た方式のタイル化は本当に気に入っている。自分の考えでは、タイル型ウィンドウマネージャの欠点をほぼすべて取り除いてくれる。
    • この1年ほどi3を使っているが、この記事で言っている不便は全部感じている。
      全体としてはGnomeよりi3のほうをずっと好んでいるが、「すべてがリサイズされる」苦痛はかなり現実的だ。特にZoom通話が多いときはさらにひどく、Zoomの「通知」がシステム内蔵の通知を迂回し、それぞれを別ウィンドウのように扱っているようで、問題が増幅される。
      Niriを一度試してみようと思う。
    • MacでSuper+Xのような用途なら、rcmdも強くおすすめする。
  • 自分にはあまり合わなかった。画面の境界を越えて続くウィンドウの帯があり、時々ウィンドウの半分だけが見える様子が妙な不安を誘って、ずっと視線を引きつけられた。
    2か月ほど使ったあと、ウィンドウが画面境界と重ならない、より伝統的なタイル型コンポジタであるHyprlandに戻った。
    ただしNiriは技術的にはとても美しい。モダンなRustコードベースで、コード構造も良く、理解して手を入れ始めるのも簡単だ。

    • 自分は列幅をそう設定して、端に部分的なウィンドウがほとんど絶対に出ないようにしている。
      ノートPCでは作業に応じて全幅や1/2幅を使い、ウルトラワイドでは1/3幅を使うか、内部に列分割のあるエディタ用に全幅を使う。
    • ワイドスクリーンだと、これは良くなるのか悪くなるのか? 自分はUWQHDで作業するのが好きだ。
  • タイリングウィンドウマネージャの考え方が好きで、i3 と Hyprland をかなり長く使ってみたが、なぜか完全には定着できず、結局 Xfce に戻ることが多かった。昔からの習慣はなかなか消えない。
    実験が終わる瞬間は、たいていウィンドウ数が一定数を超えたときだ。ワークスペースやレイアウトなどを十分深く設定していないと、そこから管理がさらに難しくなる。
    さっき Niri を起動してみたが、10分でほかのタイリングウィンドウマネージャよりずっと快適に感じた。すぐ直感的に使えて、マウス統合も素晴らしい。
    勝利宣言するには早いが、本当に何年も望み、必要としていたまさにそれのように見える。どれほど良いかは、Xfce に戻りたいと思うまでにどれだけ時間がかかるかで判断するつもりだ。

    • 自分にもタイリングはあまり合わなかった。Linux を主にノートPCで使っているからかもしれないが、画面が小さいので、画面を半分に分ける程度以外はあまりタイリングしづらく、それでさえ IDE のようなものとは相性がよくない。
      平凡で退屈で流行に左右されないフローティングウィンドウマネージャ/デスクトップ環境に、軽い任意のタイリングが付いた構成が、自分には最適だった。
  • 面白く読んだ。誰にでも限界点はある。
    「当然、どのライブラリが破壊的変更をしたのか突き止めて git bisect を4時間回す代わりに、10年近くにわたる筋肉記憶とワークフロー改善を窓の外へ投げ捨てることにした」という部分がよかった。

  • 自分も長年の i3/Sway ユーザーで、Niri はかなり快適だ。フォーカス移動やウィンドウ移動のような Sway の筋肉記憶の大半をそのまま持ち込めた。安定性もとても高く、xwayland-satellite ともすぐにうまく動いた。
    最大の問題は、ウィンドウをしょっちゅう「見失う」ことだ。深く入れ子になったスタックの中にウィンドウを開いたまま別の作業をして、そのウィンドウをすでに開いていたことを忘れてしまう。
    Sway でもある程度は起きるが、すべてのワークスペースを見渡すのはずっと簡単だ。
    Alt-Tab に割り当てた「ウィンドウマップ」のようなものがあるとよさそうだ。

    • 前に自分がリンクしたこの issue みたいなものを言っているのかな? https://news.ycombinator.com/item?id=43347909
      ちなみに自分は niri IPC / bash / jq で作った妙な組み合わせで run-or-raise 機能をまねているが、本来の RoR よりたぶんよく動く。特定の appId に一致するウィンドウを循環し、なければ新しく起動する。
      ここに、開いているすべてのウィンドウをファジー検索で移動できる rofi(wayland)を組み合わせたら、体感が大きく良くなった。
    • alttab なら必要なものを満たせるだろうか? xmonad と一緒に使っているが、うまく動いている。 https://github.com/sagb/alttab
    • Niri と似た機能を持つ Hyprland プラグインの Hyprscroller には「expose」系の機能がある。ただ、自分はその機能があることをよく忘れる。
  • 自分は Hyprland を使う若い世代だが、Niri も少し使ってみて、かなりうまく動いた。平均的なシングルモニターの Windows ワークフローから移ってくる人には、特にオフィス系作業の大半にとてもよく合う。
    それでも、もっと複雑なタイリング設定のほうが生産性の上限は高いと思う。この筆者のようにワークスペースを10個以上開いておく人なら、Niri を選ぶべきだろう。
    ウィンドウを数個しか開かない人にもバッテリー駆動時間の増加が維持されるのかは気になる。ウィンドウマネージャを変えただけで2時間というのは、とてつもない差だ。

    • まだ Wayland と X11 の間を行き来しているが、自分の古い第2世代 T14s でも、X11+xmonad+コンポジタなしの組み合わせのほうが平均1.5時間長く持つ。
      これが自分が完全に移行しづらい主な理由のひとつだ。デスクトップ環境も使っていないし、コンポジタが実際に役立つ機能も使っていないので、自分の視点では利点がほとんど見えない。
      たまに目につくのは、自分が設定したシステムテーマに従わない gtk4 プログラムの影付きドロップダウンのせいで黒い縁が出るくらいだ。
  • Niri はまだ使っていないが興味はある。
    最近は GNOME で PaperWM 拡張を使って、スクロール可能なウィンドウマネージャ体験をかなりうまく味わえた: https://github.com/paperwm/PaperWM

    • Niri は PaperWM に着想を得ていて、ずっと滑らかだ。PaperWM が気に入ったなら niri も見る価値がある。
      ただし Gnome 環境の中で作られているわけではないので、少し不利な点がある。Gnome が「無料で」提供してくれるいくつかのものが Niri にはなく、かなり基本的な機能でも代替ツールを自分で探す必要がある。
      欠けているように見えるものは、デスクトップ通知、アプリランチャー、Dock や実行中アプリ一覧、X11 アプリケーションをシームレスに実行するための Xwayland だ。これらの機能はすべて Niri に含まれない別ツールが提供する必要がある。
      最大の不満は、X11 と Wayland の間のクリップボード同期がない点だ。Gnome はこれを自動で処理しているようだが、Niri ではそうではないので、Wayland アプリと X11 アプリの間でコピー&ペーストできないのが非常にいら立つ。
      回避策はあるが、これまで試したものの中で十分に快適で安定しているものはなかった。
  • スクロール可能なウィンドウマネージャは本当に素晴らしい。タイリングウィンドウマネージャの生産性の約80%を、20%の労力で得られる。
    これを見つけ出すのに30〜40年もかかったというのが不思議だ。

    • サイトの動画を見たが、プログラム間でドラッグ&ドロップをかなり頻繁に使う人間の立場からすると、完全な地獄のように見える。
      自分は開いているブラウザタブが無限に増えていき、最後には数百個をブックマークして全部閉じなければならないタイプでもあるので、このパラダイム全体は本当に自分に合わなさそうだ。
    • i3 を使っていたとき、かなり似たものを持っていた。
      名前でウィンドウをスタックの内外へ yank できるようにし、スタック内で最も古いウィンドウを退避させる、雑に作った Python コードだった。実質的にはウィンドウ用の LRU キャッシュだった。
      「動き」はしたが、大学生の頃に PaperWM があったら本当に楽しんでいたと思う。
      フローティングウィンドウマネージャにしか得意でないこともある。自分はドキュメントをいくつかフローティングで固定して画面のあちこちに表示し、あまり移動せず相互参照するという悪い習慣が好きだ。
  • Linuxデスクトップで何が起きているのかをもっと学びたいなら、誰にでも非標準のウィンドウマネージャーを一つくらい試してみることを勧められる
    タイリングウィンドウマネージャーをいじっていてLinuxについて学んだことは、他のどんな種類のソフトウェアよりも多かった
    実際に生産性が上がったかどうかは分からないが、素晴らしい学習体験で、人間工学的にも良く、ゼロから自分のデスクトップ環境を作っていく満足感はものすごい

    • 最も興味深いウィンドウマネージャーは何だと思う?