radialsan Svelte Themes

Radialsan

Cross-platform radial pie-menu launcher (Tauri v2 + Svelte)

radialsan

クロスプラットフォームのラジアル式パイメニューランチャーです。AutoHotPie に着想を得ています。

機能

  • ラジアルメニュー - ホットキーを押している間だけカーソル位置にパイメニューを表示し、離すと選択した項目を実行
  • 13 種類以上のアクション - キー送信、URL を開く、コマンド実行、Lua スクリプト、クリップボード、メディア制御など
  • ビジュアルエディタ - ライブ Canvas プレビュー付きの WYSIWYG メニューエディタ、ドラッグアンドドロップによるスライス並べ替え
  • アプリプロファイル - アクティブウィンドウのタイトルやプロセス名に応じてメニューを自動切り替え
  • 階層サブメニュー - 最大 3 階層までメニューをネスト可能
  • アイコンシステム - Lucide Icons と絵文字ピッカー
  • Lua スクリプト - カスタム自動化向けに Lua 5.4 を組み込み
  • インポート / エクスポート - .radialsan.json パッケージと AutoHotPie 設定インポート
  • i18n - 英語と日本語
  • クロスプラットフォーム - Windows、macOS、Linux

技術スタック

レイヤー 技術
フレームワーク Tauri v2 (Rust)
フロントエンド Svelte + TypeScript + Vite
スタイリング Tailwind CSS
メニュー描画 HTML5 Canvas
入力キャプチャ rdev (global key press/release)
入力シミュレーション enigo
ウィンドウ検出 x-win
スクリプト mlua (Lua 5.4)

開発

前提条件

  • Node.js 20+
  • pnpm 10+
  • Rust (stable)
  • プラットフォーム別の依存関係:
    • Linux: sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libx11-dev libxdo-dev libxcb-shape0-dev libxcb-xfixes0-dev
    • macOS: Xcode Command Line Tools、入力キャプチャ用のアクセシビリティ権限
    • Windows: WebView2 (Windows 10/11 には同梱)

セットアップ

git clone https://github.com/uboar/radialsan.git
cd radialsan
pnpm install

実行 (開発)

pnpm tauri dev

テスト

# Rust テスト
cd src-tauri && cargo test

# フロントエンドテスト
pnpm exec vitest run

# TypeScript チェック
pnpm exec tsc --noEmit

# Svelte チェック
pnpm exec svelte-check

ビルド

# フロントエンドビルド
pnpm build

# Tauri アプリビルド
pnpm tauri build

権限

OS 権限 必要な用途
macOS アクセシビリティ グローバルホットキーのキャプチャ (rdev)
macOS 画面収録 ウィンドウタイトル検出 (任意)
Linux (Wayland) input グループ /dev/input 経由のグローバル入力

プロジェクト構成

src/                    # Svelte フロントエンド
  components/
    PieMenu/            # Canvas 描画、geometry、animation
    Editor/             # ビジュアルエディタコンポーネント
    Layout/             # サイドバー、レイアウト
  pages/                # Dashboard、MenuEditor、Profiles、GlobalSettings
  stores/               # Svelte store ベースの状態管理
  i18n/                 # 翻訳 (en, ja)
  utils/                # 共有、AutoHotPie インポート

src-tauri/              # Rust バックエンド
  src/
    actions.rs          # アクション実行 (sendKey、openUrl、Lua など)
    commands.rs         # Tauri IPC コマンド
    input_listener.rs   # グローバルホットキーキャプチャ (rdev)
    lua_engine.rs       # 組み込み Lua スクリプト
    profiles.rs         # アクティブウィンドウ監視
    settings.rs         # 設定永続化 (JSON)
    tray.rs             # システムトレイ

ライセンス

MIT

Top categories

Loading Svelte Themes