Hyprworm — Hyprland向け軽量ウィンドウスイッチャー
概要
Hyprwormは、Hyprland用の「ウィンドウスイッチャー」を目的にCで書かれた小さなユーティリティです。プロジェクトはシンプルさと速度を重視しており、HyprlandのIPC(Unixドメインソケット経由)から開いているウィンドウの一覧を取得し、選択結果を受けてフォーカス切替や操作を行います。出力をrofiやfuzzelなどのdmenu互換ランチャーへ渡す設計のため、ユーザー好みのランチャーUIと容易に統合できます。依存が少なくMakefileでビルドできるので、Hyprland環境に手早く導入して使えます。
リポジトリの統計情報
- スター数: 3
- フォーク数: 0
- ウォッチャー数: 3
- コミット数: 16
- ファイル数: 6
- メインの言語: C
主な特徴
- HyprlandのIPC(Unixドメインソケット)を直接利用してウィンドウ情報を取得
- fork/exec/pipeモデルでrofiやfuzzel等のdmenu互換ランチャーと連携可能
- 単一ソースのC実装で依存が小さく、Makefileで簡単にビルド
- 軽量かつ高速に動作することを重視した設計
技術的なポイント
Hyprwormの核となる設計は「最小限の依存でHyprlandとやり取りし、既存のランチャーUIと連携する」ことです。実装言語にCを選ぶことで実行バイナリのサイズと起動コストを抑え、低レイテンシでのウィンドウ一覧取得・切替を実現しています。Hyprlandとの通信はUnixドメインソケットを通じたIPCが用いられ、これによりコンポジタの状態(オープンウィンドウ、タイトル、ワークスペース等)を問い合わせ可能です。取得した情報は標準出力へ整形して吐き出し、fork/exec/pipeモデルでrofiやfuzzelへ渡す流れが作られています。具体的にはプロセス分岐でランチャーを起動し、子プロセスの標準入力にウィンドウ一覧を流し込むことで、ランチャー上で選択された行を親プロセスが受け取って対応するHyprlandコマンドを発行するといった一般的な連携方法を採っています。
ソースが単一ファイル(hyprworm.c)にまとまっているため、挙動理解やカスタマイズが容易です。Makefileによりビルド手順が明確で、外部ライブラリへの依存を増やさない方針はWayland環境で軽快に動かす上で有利です。また、dmenu互換インターフェースを前提にしているため、UIは好みのランチャーで柔軟に差し替え可能。これによりテーマや選択動作、フィルタリングなどの見た目と操作性は既存ツールに委ねられ、hyprworm自体は低レベルの列挙・制御に専念できます。設計上はHyprlandのIPCプロトコルや将来の変更に合わせてソケット経路やコマンド生成部を修正することで長期的な保守も行いやすい構成です。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- Makefile: file
- README.md: file
- hyprworm.c: file
…他 1 ファイル
ファイル構成は非常にシンプルで、ビルドと実行に必要な要素だけが揃っています。hyprworm.cが本体で、Makefileでコンパイル→インストールが可能です。READMEには動作デモやランチャー(fuzzel)を用いた設定例が掲載されており、導入のハードルは低いです。
追加情報(導入・使い方のヒント)
- ビルド: リポジトリ直下で make を実行してバイナリを生成
- ランチャー連携例: hyprworm の出力を rofi/fuzzel にパイプして使用(例: ./hyprworm | rofi -dmenu など)。選択結果を受けてフォーカス切替コマンドを発行するため、キーバインドや起動方法はHyprlandの設定に応じて調整してください。
- カスタマイズ: ソースが単一なので、ウィンドウ情報の表示形式や選択時の動作を直接編集して拡張可能です。
まとめ
軽量でHyprlandに密に統合できる実用的なウィンドウスイッチャーです(50字程度)。
リポジトリ情報:
- 名前: hyprworm
- 説明: Hyprworm is a custom window switcher for the Hyprland Wayland compositor. Built in C, it provides a fast and efficient way to switch between open windows by leveraging Unix domain sockets for Hyprland’s IPC and the standard
fork/exec/pipemodel for seamless integration with launchers like rofi or fuzzel. - スター数: 3
- 言語: C
- URL: https://github.com/liammmcauliffe/hyprworm
- オーナー: liammmcauliffe
- アバター: https://avatars.githubusercontent.com/u/217489404?v=4