Waylandの新時代へ!niriの「スクロール可能タイル」がもたらす巨大ワークスペース活用術


Waylandの新時代へ!niriの「スクロール可能タイル」がもたらす巨大ワークスペース活用術

YaLTeR/niri

2025-10-09

「体操のお兄さん」風に、元気よく、そしてソフトウェアエンジニアの視点から「YaLTeR/niri」がどう役立つのか、導入方法やサンプルコードの例まで、分かりやすく、フレンドリーに解説しますね!

みんな、こんにちはー!今日のデスクトップ体操のお時間だよ!担当は、みんなのデスクワークをサポートする、元気いっぱいの(仮称)AIアシスタントだよ!

さあ、今日紹介するのは、Waylandという新しいディスプレイ技術の上で動く、とってもイケてる窓管理ソフト、「niri」だよ!

「niri」はね、キーワードで言うと「scrollable-tiling Wayland compositor」なんだ!

みんなが今使っている画面、実は「コンポジタ」っていう親方ソフトが、全ての窓(ウィンドウ)を綺麗に並べて、絵を描いてくれているんだ。

エンジニアへのご利益
→ 古いX11じゃなくて、セキュアでモダンなWayland環境でバリバリ開発したい時に、自分でこの「親方ソフト」を選べるのが嬉しいね!Waylandネイティブなアプリ開発や環境構築に挑戦できるよ。

普通の窓管理は、窓を重ねて置いていくよね?でもタイリング(Tiling)は、窓と窓をタイルみたいに隙間なく、自動で敷き詰めてくれるんだ!

エンジニアへのご利益
→ ターミナル、エディタ、ブラウザ、デバッガ… 画面に同時にたくさんの情報を出したいエンジニアにとって、窓を手動でリサイズする手間がゼロになる!キーボード操作だけでサクサク移動・配置できるから、集中力を途切れさせずにコーディングできる、最高の環境なんだ!

ここがniriの一番面白いポイントだよ!

一般的なタイリングWMは、画面が窓でいっぱいになると、もう新しい窓は開けないか、小さい窓になっちゃう。

でもniriは、一つのワークスペース(デスクトップ)を、画面からはみ出る大きなキャンバスみたいに扱えるんだ!窓を開きすぎると、そのワークスペース全体がスクロールできるようになるんだよ!

エンジニアへのご利益
→ プロジェクトでたくさんのファイルやターミナルを開く時、それらを論理的にグルーピングしたまま、一つの巨大な「タスク・ボード」のように使える!例えば、「フロントエンド開発エリア」「バックエンド開発エリア」「データベース参照エリア」を一つのワークスペース内で横に並べておいて、Super + h/l(または設定したキー)でサッと切り替えられるから、脳内のコンテキストスイッチを最小限にできるんだ!複数ディスプレイでの運用も、このスクロール機能でスッキリ整理できるよ。

niriはRustで書かれているから、ビルド(構築)も簡単だよ!

Rust環境の準備
rustupなどを使って、Rustのコンパイラとツールチェインをインストールしておこう。

依存ライブラリのインストール
Waylandコンポジタとして動くために、OSに応じて必要なライブラリ(例
wayland-protocols, libinputなど)をインストールする必要があるよ。ディストリビューションによって違うから、公式リポジトリのREADMEを確認してね。

ソースコードの取得
git cloneでリポジトリを取ってくるよ。

git clone https://github.com/YaLTeR/niri.git
cd niri

ビルド
Rustのビルドツールcargoを使ってビルド!

cargo build --release

インストール (任意)
実行ファイルをシステムパスの通ったところにコピー。

# 必要に応じて
sudo cp target/release/niri /usr/local/bin/

起動

既存のディスプレイマネージャから
niri.desktopファイルを作成し、ログイン時に選択できるように設定する。

TTYから直接
ターミナルで

niri

と実行する。

niriは、シンプルな設定ファイル(通常は~/.config/niri/config.kdl)を使ってカスタマイズするよ。

デフォルトでは、Superキー(WindowsキーやCommandキー)と組み合わせて操作することが多いよ。

niriの設定ファイル (config.kdl のイメージ)

# niriの設定ファイルはKDLフォーマットで書かれるよ

# キーバインドの設定
bind super {
    # ターミナルを起動!みんな大好きSuper + Enter!
    Enter { spawn "alacritty" }

    # 窓を閉じるよ!Super + Q!
    q { close }

    # スクロール可能なワークスペース内の移動!
    # H/Lで左右へスクロール(巨大なキャンバスを横に移動するイメージ)
    h { scroll_workspaces left }
    l { scroll_workspaces right }
    
    # ワークスペースの切り替え(デスクトップの切り替え)
    # 1番のワークスペースへ!
    1 { switch_workspace 0 }

    # 新しいワークスペースを作るよ!
    # Nで新しいワークスペースへ移動&作成
    n { new_workspace }
    
    # 窓のフォーカス移動!
    # タイルされた窓の間を移動するよ
    j { focus_window next }
    k { focus_window previous }
}

# 起動するアプリの設定
autostart {
    # 起動時に必要なものを自動で実行!
    spawn "waybar"  # パネル/タスクバー
    spawn "swayidle -w before-sleep 'swaylock'" # ロック画面設定
}

複数アプリの同時起動
autostartセクションで、開発に使うターミナルやエディタをまとめて起動させておくと、すぐに作業に取り掛かれるよ。

レイアウト
niriは自動で配置してくれるけど、特定の窓(例
小さなフローティングのデバッグツール)をフローティング(重ねて表示)にする設定もできるよ!

さあ、みんなも「niri」を使って、キーボードだけで操作できる、素早く快適な開発環境を手に入れよう!タイリングとスクロール機能で、あなたのデスクトップはまるで広々とした開発専用のジムになるよ!


YaLTeR/niri




AIアプリケーション開発の新常識:chroma-core/chroma入門

「煽り運転に注意」という例えは面白いですね。それになぞらえると、chroma-core/chromaは「AIの安全運転を助ける、賢いカーナビ」のような存在です。AI、特に文章や画像のような非構造化データを扱うAIアプリケーションを開発していると、大量のデータの中から、AIにとって意味のある情報(例えば、特定のキーワードを含む文章や、似たような画像)を素早く見つけ出す必要が出てきます。


RustとIDEで始める、安全・快適な開発キャンプ

まず、提供された情報の中に「winfunc/opcode」というキーワードがあります。これは通常、Windowsのシステム関数やオペコード(CPUが実行する命令)を指すことが多いです。しかし、Rust、IDE、カーソルという文脈で考えると、これはおそらく、特定のソフトウェアやツールキットの名前ではなく、技術的な概念を組み合わせた抽象的な表現だと考えられます。


歌舞伎町発!PakePlusで実現する、超軽量マルチプラットフォームアプリ開発

おいおい、PakePlusってのはよ、一言で言えば「ウェブサイトを瞬時にアプリに変えちまう魔法のツール」ってところだ。ウェブの技術を使って作ったもんが、デスクトップアプリにもスマホアプリにもなっちまうんだから、まるでコントの世界だろ? しかも5MB以下っていう超軽量級で、サクッと作れちまう。RustとTauriをベースにしてるから、軽くて速いってのがミソだぜ。


Rust製ゲームエンジン「Bevy」入門:シンプルなレシピで始めるゲーム開発

Bevyは、Rustという銘柄の最高級スピリッツを使って作られた、とびきりシンプルで爽やかなゲームエンジンです。普通のゲームエンジンは、いろいろな素材が混ざり合って、ちょっと複雑で重たいカクテルになりがちですが、Bevyはまるでジンとトニックのように、シンプルだけど奥深い味わいが特徴です。


Rust製オープンソース決済スイッチ juspay/hyperswitchで効率的な決済処理を実現!

ワシは織田信長……いや、俺はソフトウェアエンジニアの「俺」だ! 今日はな、お主らにとって、まさに「天下布武」ならぬ「決済布武」を成し遂げるかもしれない秘宝、「juspay/hyperswitch」について語ろうではないか!(ガラガラと襖が開き、厳かな音楽が流れる…)


Daft:PythonとRustの二刀流でどんなデータも高速処理!

おっと、旦那、なんだいその渋い顔は。データ処理で困ってるとでもいうのかい? そんな旦那に、とっておきの江戸の秘伝、いや、世界の最先端技術を教えてやろうってんだ。今回のお題は、「Eventual-Inc/Daft」だ!なんだい、その顔は。「だふと?」だぁ? 違う違う!「Da-ft」って読むんだ。覚えておきな!


Rustfmtで秩序を!ソフトウェアエンジニアが知るべきコード整形とcargo fmt

ダース・ベイダールーク、聞くがいい。お前が書いたあのRustコードだ。インデントはバラバラ、スペースの入れ方も一貫性がない。見るに堪えん!ルーク・スカイウォーカー父上…。でも、動くことは動くんですよ。それに、急いでいたんです!ダース・ベイダー動くだけではダメだ、ルーク。プロジェクトでは一貫性こそが重要。多くの開発者が関わる時、コードの見た目が揃っていないと、バグを見つけるのも、機能を追加するのも困難になる。これではダークサイド…いや、メンテナンス地獄に落ちるぞ。


のび太くんも納得!Hyprlandで実現する、夢のエンジニア作業環境

のび太くん、いつも机の上が散らかってて、どこに何があるか分からなくなってるよね?プログラムを書いたり、たくさんのウィンドウを開いたりするソフトウェアエンジニアのお仕事も、それと同じくらいゴチャゴチャしちゃうことがあるんだ。でもね、心配ご無用!未来からやってきたひみつ道具「Hyprland(ハイパーランド)」を使えば、キミのデスクトップもピカピカに整理整頓されて、お仕事もはかどるようになるんだよ!


Vim、Rust、Kakouneの融合!Helixで推し活の悩みを一刀両断

推し活、最高ですよね!でも、推しへの溢れる愛を表現する中で、「もっと効率的に情報を集めたい!」「推しの魅力を語るブログをサクサク書きたい!」「推し活のタスク管理をスマートにしたい!」…なんて悩み、ありませんか?そんなあなたの悩みを解決し、推しへの熱い応援をまるでコントのように劇的に、そして最高に楽しくサポートしてくれるのが、Helixエディタなんです!