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




「Google版Rust」で学ぶ、信頼性と安全性を高めるコーディング

このコースは、単なる文法解説にとどまらず、実用的な視点でRustを学ぶことができます。信頼性の高さ GoogleのAndroidチームという、世界トップクラスのエンジニアたちが実際に使っている教材です。内容の質と正確性は非常に高いと言えます。


Web技術を活かす!Tauri (Rust & WebView) で叶える高性能・軽量クロスプラットフォーム開発入門

Tauriは、Rust(ラスト)というプログラミング言語とウェブ技術(HTML、CSS、JavaScript/TypeScriptなど)を組み合わせて、小さくて速く、そして安全なアプリケーションを作るためのフレームワークなの。Tauriは、ウェブエンジニアリングのスキルを持っているあなたにとって、まさに「魔法の杖」のようなツールよ。


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

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


ケンシロウ級の速さ!ソフトウェア開発の生産性を爆上げするripgrep活用法

「北斗の拳」の世界で、ケンシロウが強敵を打ち破り、道を切り開くように、ソフトウェア開発の世界で、我々エンジニアが日々直面する「どこだ!あのコードはどこにいる!?」という混沌を、このripgrep(通称rg)が一瞬で制圧してくれるんだ。このツールは、昔ながらの「grep」の進化系であり、Rustという超高速な言語で書かれているから、そのスピードはまさに「お前はもう検索している!」ってレベルだよ。


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

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


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

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


「彼女の下着は何色?」という問いにAIが即答できる理由 — CocoIndexによる動的データ処理

「彼女の下着は何色?」という、一見すると AI が答えに窮しそうな(あるいはプライバシーや文脈に依存する)「特定の、移り変わる、あるいは非常に個人的なデータ」を扱う場面で、なぜこのツールが最強の味方になるのか、という切り口でお話しします。一言でいうと、「情報の更新(増分更新)に特化した、爆速の AI データ整理棚」です。


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

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


歌舞伎町のように賑やかでタフなCLIツール、uutils/coreutilsの世界へようこそ

uutils/coreutilsは、プログラマーにとって非常に身近なGNU coreutils(ls、cp、mv、grepなど、日々コマンドラインで使っている基本的なツール群)を、Rustというプログラミング言語で一から作り直したプロジェクトです。


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

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