An open API service indexing awesome lists of open source software.

https://github.com/nukeop/keyed-launcher

Like Raycast except better
https://github.com/nukeop/keyed-launcher

Last synced: 6 months ago
JSON representation

Like Raycast except better

Awesome Lists containing this project

README

          

# Keyed Launcher

Application launcher built with Tauri (Rust + TypeScript). Runs on Windows, macOS, and Linux.

**Note**: This is a monorepo structure with the main launcher application in `packages/launcher/`.

## Features

- Global shortcut: `Cmd+Shift+Space` (macOS) / `Ctrl+Shift+Space` (Windows/Linux)
- System tray integration
- Frameless, transparent window
- Performance tracking (development builds)

## Installation

### Prerequisites

- Node.js 18+ and pnpm (package manager)
- Rust 1.77.2+ with Cargo
- Platform requirements:
- Windows: WebView2 runtime
- macOS: Xcode Command Line Tools
- Linux: webkit2gtk-dev, build-essential

### Build and Run

```bash
git clone https://github.com/nukeop/keyed-launcher.git
cd keyed-launcher
pnpm install

# Development
pnpm tauri:dev

# Production build
pnpm tauri:build
```

## Usage

The launcher runs in the background with a system tray icon.

- **Show/Hide**: `Cmd+Shift+Space` (macOS) / `Ctrl+Shift+Space` (Windows/Linux)
- **Hide**: `Escape` key or click outside the window
- **System Tray**: Right-click for show/hide or quit

## Development

### Monorepo Structure

```
keyed-launcher/
├── packages/
│ └── launcher/ # Main Tauri application
│ ├── src/ # React frontend
│ ├── src-tauri/ # Rust backend
│ └── package.json # Launcher dependencies
├── package.json # Root workspace configuration
└── pnpm-workspace.yaml # pnpm workspace settings
```

All commands run from the root directory and are automatically routed to the appropriate package.

### Tech Stack

- Frontend: TypeScript + React + Vite + Tailwind CSS
- Backend: Rust with Tauri framework
- State Management: Zustand
- Testing: Vitest + Testing Library

### Commands

```bash
# Development
pnpm tauri:dev # Start development server
pnpm dev # Frontend only

# Building
pnpm tauri:build # Build production app
pnpm build # Build frontend only

# Testing
pnpm test # Run tests
pnpm test:coverage # Run tests with coverage
pnpm test:watch # Run tests in watch mode

# Linting
pnpm lint # Check code style
pnpm lint:fix # Fix linting issues
```

### Build Output

```bash
pnpm tauri:build
```

Platform-specific outputs in `packages/launcher/src-tauri/target/release/bundle/`:
- Windows: `.msi` installer and `.exe` executable
- macOS: `.dmg` installer and `.app` bundle
- Linux: `.deb`, `.rpm` packages and `.AppImage`

## Configuration

### Global Shortcut
Modify in `packages/launcher/src-tauri/src/shortcuts.rs`. Default: `CmdOrCtrl+Shift+Space`

### Window Settings
Configure in `packages/launcher/src-tauri/tauri.conf.json`:
- Size: 600x400 pixels
- Frameless and transparent
- Always on top, skip taskbar
- Starts hidden

## Contributing

1. Fork the repository
2. Clone: `git clone https://github.com/your-username/keyed-launcher.git`
3. Install dependencies: `pnpm install`
4. Create feature branch: `git checkout -b feature/name`
5. Make changes and test
6. Commit and push
7. Open Pull Request

Code style: ESLint + Prettier (TypeScript), cargo fmt + clippy (Rust)

## License

AGPL-3.0 License - see LICENSE file for details.