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




「Linera」で実現する高速Dapps開発 〜孤独のグルメ風エンジニア解説〜

孤独のグルメ風に解説しますね。ふぅ、今日も一日お疲れさん。取引先との打ち合わせも終わったし、この後は少し自分だけの時間だ。新しい技術の情報を漁るのが、最近のささやかな楽しみになっている。(PCをパチパチ. ..)ん?なんだこれは. ..Linera


宇宙飛行士のためのAIツールキット:TensorZeroでLLM開発を加速せよ

今回紹介するのは、「TensorZero」という、LLMアプリケーション開発のためのオールインワンの宇宙船だ。このツールを使いこなせば、君はより少ない燃料(労力)で、より遠い宇宙(成功)へと到達できるはずだ。ソフトウェアエンジニアリングの観点から見ると、TensorZeroはLLM(大規模言語モデル)を扱うプロジェクトにおける、「信頼性と効率」を劇的に向上させるための、まるで宇宙船のコックピットのような存在だ。


MinIO代替?「rustfs/rustfs」で高性能ストレージを構築する!

(舞台はとあるIT企業の開発室。エンジニアのAさんとBさんがストレージの課題に頭を抱えている。)Aさん 「はぁ〜、またストレージがパンパンだよ…。データが増えるのは嬉しいんだけど、管理が大変だし、レスポンスも遅い時があるんだよなぁ。もっと『うまい、早い、安い』ストレージはないもんかな…。」


そのPython、Rustで書き直さない?闇バイトの甘い誘惑を論理的に論破するRustPython入門

ただ、今回は「闇バイトに注意」というテーマで、ちょっとしたコント仕立てでお届けします。怪しい勧誘には気をつけつつ、技術の深淵を覗いてみましょう!【登場人物】先輩エンジニア(A)Rustが大好き。何でも爆速にしたがる。後輩エンジニア(B)最近「高単価・即日払い」のエンジニアバイトを探している。


開発効率爆上げ!Rust製P2Pライブラリ iroh徹底解説

レジ「いらっしゃいませ~!」あなた「(スマホ片手に)いや~、困ったなぁ。最近、プロジェクトでデータ共有するのに、DropboxとかGoogle Driveとか使ってるんですけど、なんかこう、もっとスマートな方法ないかなって。」レジ「おや、それはお困りですね!もしかして、ソフトウェアエンジニアさんですか?」


自分だけのTeamViewerを構築!RustDeskで始めるセキュアなリモートデスクトップ入門

アシスタントの私と一緒に、今回は「RustDesk」という、とっても便利なツールを使って、リモートデスクトップを自在に操る方法をご紹介していきますよ。想像してみてください。あなたは今、家でくつろいでいるとします。ふと、職場のPCに置いてきた大事なファイルが必要になった!なんてこと、ありませんか?


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

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


孤独のグルメ風エディタ探訪記 〜Lapceで味わう爆速コーディング〜

今日は、あなたのコーディングライフを劇的に変えるかもしれない、あの爆速エディタについて、五郎さんの食レポならぬ「コードレポ」風にご紹介しますね。(SE風)「ああ、まただ…。このプロジェクト、起動に時間かかるし、なんかモッサリしてるんだよな…」


コードの悩みを解決!ast-grepで始める効率的なリファクタリング

彼女 「あ〜、もう!明日のお出かけ、何着ていこう…?この服もなんだか違うし、あの服も合わせにくいし…もう嫌になっちゃう!」彼 「また悩んでるのかい?そんな時は僕に任せてよ。僕の持ってる『構造的クローゼット検索ツール』を使えば、君の持ってる服の中から、ぴったりの組み合わせをすぐに見つけられるよ。」