**Wayland コンポジタとウィンドウマネージャーの分離**

2026/03/16 0:09

**Wayland コンポジタとウィンドウマネージャーの分離**

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

River 0.4.0 は、コンポジタをウィンドウマネージャーコンポーネントから分離し、モジュラー型 Wayland アーキテクチャを構築します。これにより入力遅延が削減されつつ、フレームは完全にタイムリーに提供されます。
従来の単一体制では、各フレームごとにコンポジタとディスプレイサーバー間で往復通信が発生し遅延を増大させていました。River の新設計はウィンドウマネージャーがレイアウトポリシーを独立して処理できるようにし、ほとんどのイベントについてフレームごとの通信を排除します。river-window-management-v1 プロトコルは状態を window‑management(寸法・フォーカス・バインディング)と rendering(位置・順序・装飾)の2つに分離し、変更を「manage」と「render」の原子化されたシーケンスとしてまとめ、コンポジタがそれらを開始します。これにより、高水準のガベージコレクション言語でウィンドウマネージャーを書いても性能や入力遅延に影響しません。
コンポジタを分離することで開発者への敷居が下がり、デバッグが向上しクラッシュの隔離が可能になります。現在利用できる 15 の独立したウィンドウマネージャーからもその恩恵はすでに確認されています。一部の非従来型パラダイム(例:VR、揺れウィンドウ)はまだサポートされていませんが、シンプルなアニメーションはうまく動作し、将来リリースではカスタムシェーダーも検討できる可能性があります。
今後のリリースではウィンドウマネージャー間の切替をスムーズにすること、小規模な CLI の調整、および 1.0.0 マイルストーン前のその他 UX 改善に注力し、進捗は issue ラベルで追跡されます。結果としてユーザーには低遅延でより滑らかなアニメーションが提供され、開発者は新しいウィンドウマネージャーを貢献しやすくなり、Wayland の広範な採用の加速に寄与する可能性があります。

本文

従来の Wayland コンポジタ

モノリシック(単一)アーキテクチャでは、コンポジタとウィンドウマネージャを同じプログラムに統合します。
その結果、Wayland のウィンドウマネージャは不要なまでにコンポジタ全体を実装せざるを得ず、冗長になってしまいます。

river(0.4.0 リリース) は、非モノリシック Wayland コンポジタとして、この伝統から逸脱し、ウィンドウマネージャを別プロセスに分離しました。
現在、多くのウィンドウマネージャが river をサポートしています。
安定版

river-window-management-v1
プロトコルは、ウィンドウマネージャに以下を完全に制御させます。

  • ウィンドウ位置
  • キーバインディング
  • それ以外のすべてのウィンドウ管理ポリシー

一方 river 自体はフレーム完璧なレンダリング、優れたパフォーマンス、低レベルの plumbing を提供します。

この記事では、このプロトコルに裏打ちされた設計決定を高レベルで概観します – FOSDEM 2026 で発表した内容とほぼ同じ情報です。


ディスプレイサーバ、コンポジタ、ウィンドウマネージャ

従来の Wayland アーキテクチャでは、3 つの役割をコンポジタプロセスに統合しています。

役割責務
ディスプレイサーバカーネルからウィンドウへ入力イベントを転送し、バッファをカーネルへ供給する。
コンポジタ表示可能なすべてのウィンドウバッファを 1 つに合成してカーネルへ出力する。
ウィンドウマネージャウィンドウ配置、キーバインディング、その他ユーザー向け挙動を管理する。

なぜ Wayland がこれらの役割を統合したか

X11 ではディスプレイサーバはコンポジタやウィンドウマネージャから分離されていました。

  1. ユーザーがウィンドウ内でボタンをクリック。
  2. カーネルが入力イベントをディスプレイサーバへ送信。
  3. ディスプレイサーバはイベントを対象ウィンドウへ転送(コンポジタのシーングラフを知らない)。
  4. ウィンドウは新しいバッファを提出 → ディスプレイサーバがそれをコンポジタへ転送 → コンポジタが合成し、カーネルが表示。

ディスプレイサーバは不要な仲介者となり、レイテンシと往復回数を増やします。

Wayland はディスプレイサーバとコンポジタを 1 プロセスに統合してこの問題を解決しました。しかしウィンドウマネージャの統合は必須ではなく、おそらく最も簡単な道だっただけです。


ウィンドウ管理プロトコル設計上の制約

river-window-management-v1
プロトコルは以下を満たす必要があります。

  1. フレームごとや入力ごとの往復回数を避ける – モノリシック Wayland コンポジタと同等に入力遅延がないこと。
  2. フレーム完璧 を保持する:ユーザーはタイル配置変更時にギャップ、重なり、寸法不一致を決して目撃しない。
  3. 短時間のタイムアウトを許容し、ウィンドウが遅い場合はフレーム完璧性を徐々に低下させ、永遠にハングしないようにする。

ウィンドウ管理ステートマシン

プロトコルでは状態を 2 つの相互排他カテゴリに分けます。

カテゴリ影響範囲
ウィンドウ管理状態コンポジタと個々のウィンドウ間で通信(寸法、フルスクリーン、フォーカス、キーバインディング)。
レンダリング状態実際に描画される出力のみ(位置・順序・装飾・クロッピング)。

変更は原子単位の更新としてバッチ化されます。

  • ウィンドウ管理変更 →
    manage sequence
  • レンダリング変更 →
    render sequence

両シーケンスはコンポジタが開始し、ウィンドウマネージャは状態変化(例:キーバインディングの押下や新しいウィンドウ)が起きるまでアイドルです。

この設計により、複雑なタイルレイアウトやサーバー側装飾でもフレーム完璧性を確保しつつ、同期作業はコンポジタ側で完結します。


モチベーション

コンポジタとウィンドウマネージャを分離する主なメリットは次の通りです。

  • Wayland ウィンドウマネージャを書くハードルが下がる。
  • ポリシーに専念でき、フルコンポジタ実装の負担が不要。
  • クラッシュ隔離が向上:ウィンドウマネージャのクラッシュはセッション全体を終了させず、再起動や差し替えが可能。
  • 高レベルでガベージコレクション言語(Python, Rust など)を使ってウィンドウマネージャを開発でき、フレームごとの往復回数がないためコンポジタ性能に影響しない。

river はすでに 15 件以上の異なるウィンドウマネージャをサポートしており、この可能性を示しています。


制限事項

river-window-management-v1
は従来型 2D デスクトップを想定しています。

  • VR サポートはありません。
  • 「ワッビーボタン」など過剰な視覚効果は対象外です。シンプルアニメーションは十分に機能します。
  • 将来的にはカスタムシェーダでより細かなレンダリング制御が可能になるかもしれませんが、優先度は低いです。

これらの範囲を超える機能が必要な場合は issue を立てていただければ、プロトコル拡張について検討します。


今後のロードマップ

0.4.0 で river は任意の互換ウィンドウマネージャとともに日常使用に十分な機能を備えています。
プロトコルは安定しており、既存マネージャは 1.0.0 後も互換性があります。

今後のリリースでは次の点に注力します。

  • river 互換ウィンドウマネージャを起動・切替時の UX 改善。
  • 必要ならば小規模な CLI の変更(次期メジャーリリースは 1.0.0 を想定)。

寄付

River の開発は金銭的支援なしでは持続できません。このプロジェクトが価値あるものだと感じたら、Liberapay(推奨)で継続寄付を検討してください。
一括または月額の寄付も GitHub Sponsors や Ko-fi で受け付けています。

ご支援ありがとうございます!


ギャラリー

以下は river 上で動作している様々なウィンドウマネージャのスクリーンショットです。
選択は視覚的に興味深い例を優先していますが、他にも多くの優れたマネージャがあります。

  • Canoe – クラシックな見た目と感触のスタッキングウィンドウマネージャ
  • reka – Emacs ベースの river 用ウィンドウマネージャ(EXWM に似ている)
  • tarazed – 強力で気晴らしのないデスクトップ体験
  • rhine – 再帰的・モジュラーなウィンドウ管理とアニメーション

同じ日のほかのニュース

一覧に戻る →

2026/03/16 4:12

「Chrome DevTools MCP」 (原文と同じく略語をそのまま使用します)

## Japanese Translation: **改訂要約** Chrome の MCP(Machine‑Code Processor)サーバーは、現在実行中の Chrome セッションに直接コーディングエージェントを接続できるようになり、新しいインスタンスを毎回起動する必要がなくなりました。 この機能を利用するには、`chrome://inspect#remote-debugging` でリモートデバッグを有効化し、MCP サーバーを `--autoConnect` フラグ付きで起動します(例:`gemini-cli --autoConnect --channel=beta`)。 エージェントがセッションを要求すると、Chrome は許可ダイアログを表示し、「Chrome is being controlled by automated test software」というバナーを表示します。エージェントはそのアクティブなセッションに対して Network や Elements などの DevTools パネルへアクセスできます。 MCP サーバーは依然として元々の起動方法をサポートしています:ユーザープロファイルの指定、リモートデバッグポート経由での接続、または隔離された一時プロファイルの実行。 サンプルワークフローは次のとおりです。リモートデバッグを有効化した後、エージェントプロンプトに「Check the performance of https://developers.chrome.com」と入力すると、MCP サーバーが接続し、ページを開き、パフォーマンストレースを取得します。 Chrome M144(Beta)で利用可能なこの機能は、デベロッパーが新しいセッションを開くことなく手動の DevTools 使用と AI 支援デバッグをシームレスに切り替えられるようにし、将来的に MCP を通じてコーディングエージェントへより多くの DevTools パネルデータを段階的に公開する基盤を整備します。

2026/03/16 6:22

カナダの法案 C‑22 は、カナダ国民への大量メタデータ監視を義務付けています。

## Japanese Translation: > Bill C‑22(Lawful Access Act)は、通信事業者および電子サービスプロバイダー(ESP)への法執行アクセスを拡大すると同時に、一部のプライバシー制限を強化します。従来のBill C‑2で広範な無証拠要求が認められていた点を置き換え、通信事業者に対しては「サービス確認」権限のみを限定的に付与します。他の加入者情報については、合理的根拠基準に基づく裁判所承認命令が必要となります。 > > 本法ではまた、Supporting Authorized Access to Information Act(SAAIA)も導入されます。この条項はBill C‑2の多くの要件を反映しつつ、GoogleやMetaなどのESPにも適用します。ESPはデバイス・機能テストへの協力、要求の秘密保持、および「コアプロバイダー」として指定される可能性があります。コアプロバイダーは、データ抽出ツールの開発・テスト・維持管理、監視装置の設置、当局への機能通知、そして特定メタデータ(例:送信ログ)を最大1年間保持する義務があります。ただし、**送信内容、ウェブ閲覧履歴、またはソーシャルメディア活動の保持を強制されることはありません**—この例外はシステム的脆弱性への対処に限定されています。 > > 監督はインテリジェンス・コミッショナーが承認した省令によって行われますが、多くの詳細は機密扱いとなっています。本法は、ブダペスト条約第二追加議定書や米国のCLOUD Actなどとの国際情報共有協力を改善することを目的としていますが、重大な市民権利懸念を提起し、通信事業者およびESPに大きなコンプライアンス負担を課す可能性があります。結果として、ユーザーの監視リスクが高まる恐れがあります。

2026/03/16 4:25

49 MB のウェブページ

## Japanese Translation: 記事は、現代のニュースサイトがデータ量の多いリクエストや侵入的な広告、トラッキングスクリプトで読者を過剰に負荷させていると主張し、滑らかな閲覧体験よりも収益を優先していることを指摘しています。 - **具体的証拠:** ニューヨーク・タイムズの記事1件が422のネットワークリクエスト、49 MBのデータを生成し、安定するまでに2分かかったと報告されています。2006年には同じページは1.5 Mbpsの接続で数分間停止していた(10曲分のMP3音源に相当)。 - **広告インフラ:** クライアント側のプログレマティックオークションがRubicon ProjectやAmazon Ad Systemsなどのエクスチェンジへ何十もの同時入札リクエストを送信し、膨大なJavaScript解析を要求します。 - **トラッキングペイロード:** 約5 MBのトラッキングスクリプトがPOSTビーコンをファーストパーティー端点(例: a.et.nytimes.com/track)やクロスサイトトラッカー(doubleclick.net、casalemedia)へ送信し、バックグラウンドでユーザー識別情報を構築します。IABの「purr」同意エンドポイントはページロード直後にこれらのスクリプトを即座に起動させるため、クッキーバナーはプライバシー保護ではなく法的シールドであることが示されています。 - **UX戦術:** パブリッシャーはCPMやビューアビリティ指標を読者体験よりも重視し、モーダルポップアップ、低コントラストの閉じアイコン、強制スクロール、自動再生のスティッキービデオ(CPU熱、バッテリー消費、Fitts法違反)や「Read More」ボタンで記事を切り捨て、追加広告をロードします。これらは広告iframeが遷移後に読み込まれる際にレイアウトシフト(CLS)を引き起こし、Google Core Web Vitalsの指標による離脱率を高めます。 - **モバイル問題:** モバイルニュースサイトはコンテンツに約11 %しかビューポートを割り当てず、狭いスリット状の表示領域がインタラクションコストを増大させます。 - **緩和策:** 非必須オーバーレイはスクロール深度≥50 %または60 秒滞在後に遅延し、モーダルキューを順序付け、アクセシブルで低侵襲のモーダルを使用し、非同期コンテンツ用スペースを確保してCLSを回避します。 - **代替案:** text.npr.org、lite.cnn.com、およびRSSフィードといった軽量フォーマットは、読者が余計な要素のないプライバシーフレンドリーなニュース消費を好むことを示し、広告中心のUIパラダイムに挑戦します。 **結果:** このまとめはすべての主要ポイントを完全に反映し、説明のない推測を避け、記事の主張を明確で読者フレンドリーな概要として提示しています。

**Wayland コンポジタとウィンドウマネージャーの分離** | そっか~ニュース