Vicinae — Linux 向け高速ネイティブランチャーを試してみた
bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。
(macOS / Linux 環境が必要) この記事で分かること
- Vicinae がどんなソフトウェアか
- リポジトリの構成と主な機能
- 実際に Docker でファイルを調べたときのログ
- 活用シーンとつまずきポイント
- ブラウザで動くシミュレーターデモの使い方
はじめに
Vicinae(読み方:ヴィー・チー・ネイ)は、Linux デスクトップ向けの高速ネイティブランチャーです。 Mac の Raycast に強くインスパイアされており、「キーボードだけで何でも起動できる」を目指しています。
主な機能
| 機能 | 説明 |
|---|---|
| アプリ起動 | インストール済みアプリを素早く検索・起動 |
| ファイル検索 | システム全体のファイルをキーワードで絞り込み |
| 絵文字ピッカー | 絵文字を名前で検索してコピー |
| 電卓(履歴付き) | 計算式を入力して即結果、複数バックエンド対応 |
| クリップボード履歴 | 過去のコピー内容を一覧・再利用 |
| ウィンドウフォーカス | 開いているウィンドウを一覧して素早く切り替え |
| dmenu 互換モード | スクリプトから dmenu の代替として使用可能 |
| テーマシステム | TOML で外観をカスタマイズ |
| TypeScript 拡張 SDK | React/TS で独自機能を追加できる |
| Raycast 拡張互換 | Raycast 公式ストアの拡張を一部そのまま使用可能 |
C++ で実装されているため起動が非常に速く、Nix / NixOS にも対応しています。
実行レポート
Docker コンテナ内でリポジトリの構造を調べた結果を以下に示します。
=== files (maxdepth 2) ===
./scripts/update-manifest.sh
./scripts/refactor.sh
./scripts/qrc-builder.js
./scripts/package.json
...
./nix/vicinae.nix
./nix/module.nix
./nix/mkVicinaeExtension.nix
./nix/mkRayCastExtension.nix
./manifest.yaml
./flake.nix
./flake.lock
./figura/wlr-clipboard.fig
./figura/tsapi.fig
./figura/snippet.fig
./figura/manager.fig
./figura/manager-extension.fig
./figura/ipc.fig
./extra/vicinae.service
./extra/vicinae.png
./extra/vicinae.desktop
./extra/vicinae-url-handler.desktop
./extra/theme-template.toml
./extra/pywal_to_json_converter.py
./extra/matugen.toml
./extra/config.jsonc
./default.nix
./cmake/version.h.in
./cmake/embed.hpp.in
./cmake/Wayland.cmake
./cmake/Utils.cmake
./cmake/QtLayerShell.cmake
./cmake/QtKeychain.cmake
./cmake/KF6.cmake
./cmake/Glaze.cmake
構成の読み解き
scripts/— ビルド補助スクリプト群(AppImage 生成、アイコン生成、バージョンバンプなど)nix/— NixOS / Nix フレークによるパッケージ定義。mkVicinaeExtension.nixで拡張機能を Nix パッケージ化できるcmake/— CMake モジュール。Wayland レイヤーシェル・Qt Keychain・KDE Framework 6 などの依存を管理figura/— IPC・拡張マネージャー・Clipboard 等の内部 API 仕様図(.fig形式)extra/— systemd サービス、デスクトップエントリ、テーマテンプレート、pywal 連携スクリプトなどmanifest.yaml— 拡張機能ストアのマニフェストflake.nix— Nix フレーク定義(再現性あるビルド環境)
pip ログは空(Python 依存なし)。本体は純粋な C++/Qt/CMake スタックです。
活用法
1. 日常のアプリ起動を高速化
デフォルトのショートカット(通常 Alt+Space)を押すだけで検索窓が開き、アプリ名を数文字入力するだけで起動できます。マウスは不要です。
2. スクリプトコマンドで自動化
script commands 機能を使うと、シェルスクリプトをランチャーから直接呼び出せます。ビルド実行・デプロイ・SSH 接続など、繰り返し作業を登録しておくと便利です。
3. TypeScript で拡張機能を自作
公式の TypeScript SDK を使えば React コンポーネントで UI を持つ拡張機能を作成できます。GitHub の extensions リポジトリ にコミュニティ製拡張が公開されています。
4. Raycast 拡張の移植
Raycast 互換 API が実装されているため、既存の Raycast 拡張を Linux で動かすことができます(一部 API は未実装)。
5. テーマカスタマイズ
extra/theme-template.toml を元に独自テーマを作成できます。pywal・matugen との連携スクリプトも同梱されており、ターミナルの配色と統一したテーマが自動生成できます。
デモについて
Vicinae は Qt/Wayland を使ったネイティブ GUI アプリなので、ブラウザや Docker のヘッドレス環境では直接動かせません。 代わりに、本ページでは Gradio を使ったランチャー機能シミュレーター を用意しました。
- アプリ検索タブ — アプリ名・ファイル・絵文字を模擬検索
- 電卓タブ — 計算式を入力して即評価(履歴付き)
- クリップボード履歴タブ — コピー履歴の一覧・再利用のシミュレーション
- 拡張機能サンプルタブ — TypeScript 拡張の JSON スキーマ表示
これにより、実機なしでも Vicinae の主要なワークフローを体感できます。
つまずきポイント
| ポイント | 詳細 |
|---|---|
| Wayland 必須 | X11 のみ環境では動作しない(wlr-layer-shell プロトコルが必要)。GNOME は mutter が対応していないため注意 |
| Qt 6 + KF6 依存 | ビルドには Qt 6 と KDE Framework 6 が必要。Ubuntu 22.04 以前ではバージョンが古く手動インストールが必要な場合がある |
| Nix が一番楽 | NixOS ユーザーは flake.nix でそのままビルド可能。非 Nix 環境では依存解決に手間がかかる |
| v1 未満は破壊的変更あり | バージョンアップのたびに設定の再構築が必要になる場合がある。更新前に CHANGELOG を確認 |
| Raycast 互換は部分的 | 全ての Raycast 拡張が動くわけではない。Linux 非対応 API を使っている拡張はエラーになる |