Vicinae — Linux 向け高速ネイティブランチャーを試してみた

タグ ai-latestlinuxLinuxGitHubオープンソースvicinaehqvicinae
🚀 今すぐ試せます! デモスクリプトをダウンロードして、解凍後にターミナルで bash ファイル名.sh を実行してください(中身を一度確認してから実行すると安心です)。 (macOS / Linux 環境が必要)

この記事で分かること

  • Vicinae がどんなソフトウェアか
  • リポジトリの構成と主な機能
  • 実際に Docker でファイルを調べたときのログ
  • 活用シーンとつまずきポイント
  • ブラウザで動くシミュレーターデモの使い方

はじめに

Vicinae(読み方:ヴィー・チー・ネイ)は、Linux デスクトップ向けの高速ネイティブランチャーです。 Mac の Raycast に強くインスパイアされており、「キーボードだけで何でも起動できる」を目指しています。

主な機能

機能説明
アプリ起動インストール済みアプリを素早く検索・起動
ファイル検索システム全体のファイルをキーワードで絞り込み
絵文字ピッカー絵文字を名前で検索してコピー
電卓(履歴付き)計算式を入力して即結果、複数バックエンド対応
クリップボード履歴過去のコピー内容を一覧・再利用
ウィンドウフォーカス開いているウィンドウを一覧して素早く切り替え
dmenu 互換モードスクリプトから dmenu の代替として使用可能
テーマシステムTOML で外観をカスタマイズ
TypeScript 拡張 SDKReact/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 を使っている拡張はエラーになる