Skip to content

Repository files navigation

Nex

A keyboard-first launcher for Windows. Press a global hotkey to summon a floating search bar and quickly find and launch applications, files, folders, and custom actions.

Platform License GitHub Built with Rust

Stars

UI

Features

  • Keyboard-first — Press the Win key to summon Nex from anywhere — replaces the Start menu
  • Fuzzy search — Tantivy-powered full-text search across apps, files, and folders
  • Everything SDK — Optional Voidtools Everything integration for real-time file search
  • Calculator — Inline arithmetic evaluation in the search bar
  • Clipboard history — Recently copied items at your fingertips
  • Actions & plugins — Custom commands, web searches, and extensible plugin SDK
  • Game mode — Automatic suppression while gaming
  • Auto-updater — Stay current with built-in update mechanism

Getting Started

Install

Download the latest installer from the Releases page. Run it — Nex starts in the background, ready on the Win key.

Build from Source

git clone https://github.com/haxllo/nex.git
cd nex
cargo build --release --bin Nex --bin NexHelper
./target/release/Nex.exe

Requirements: Windows 10/11 (64-bit), Rust 1.85+

Configuration

On first launch, Nex creates a config at %APPDATA%\Nex\config.toml.

Setting Default Description
hotkey Win (Left) Global summon shortcut — replaces Start menu
max_results 20 Results shown
show_files false Include files
show_folders false Include folders
launch_at_startup true Auto-start with Windows

Usage

Search Syntax

Prefix Scope
(none) Fuzzy search all indexed items
> Command mode (actions, web search)
@apps Filter to applications
@files Filter to files
@folders Filter to folders
kind:file / ext:md DSL key:value filters

Using Nex (GUI app)

Nex runs in the background as a system-tray app — no commands needed for day-to-day use.

  • Summon — press the Win key; type to search; Enter to launch
  • Right-click a result — run as admin, copy path, open folder, uninstall, pin/unpin
  • Tray icon — right-click for quit, restart, and quick-launch controls

Power-user CLI flags (rarely needed):

Command Description
nex --status Check if running
nex --quit Stop the running instance
nex --restart Restart the instance
nex --diagnostics-bundle Dump diagnostics to zip

Project Structure

nex/
├── apps/core/           # Main Rust application
│   ├── src/
│   │   ├── main.rs      # Entry point
│   │   ├── lib.rs       # Library root (nex_core)
│   │   ├── runtime.rs   # Core orchestration
│   │   ├── overlay/     # WebView2 UI (tao + wry)
│   │   ├── search.rs    # Query DSL
│   │   ├── tantivy_search.rs # Full-text engine
│   │   ├── everything_bridge.rs # Everything SDK
│   │   ├── calculator.rs
│   │   ├── clipboard_history.rs
│   │   ├── plugin_sdk.rs
│   │   ├── updater.rs
│   │   └── config.rs
│   └── Cargo.toml
├── apps/assets/         # Branding assets
├── scripts/             # Build & packaging
├── tests/               # Performance & smoke tests
└── docs/                # Architecture & plans

Architecture

Nex renders its overlay as a native Windows popup using tao (window management) and wry (WebView2 embedding). All UI is HTML/CSS/JS — no GDI or Direct2D.

Component File Purpose
Host overlay/host.rs Event loop, WebView, Win32 chrome, positioning
Model overlay/model.rs Event/state/theme types
Icons overlay/icons.rs LRU cache, base64 PNG encoding
Shim overlay/shim.rs Runtime-to-overlay API
Hotkey overlay/hotkey.rs RegisterHotKey + message loop
Tray overlay/tray.rs System tray + context menu
Platform overlay/platform.rs Theme detection, IPC signaling
Indexing overlay/indexing_progress.rs First-time indexing UI

Key design decisions:

  • Fire-and-forget state — Rust pushes JSON snapshots to WebView via PostWebMessageAsJson. No synchronous script evaluation on the critical path.
  • Warm-release — WebView stays resident for instant open. Icon cache clears ~5 seconds after hide.
  • Acrylic backdrop — Rounded corners + acrylic blur via DWM APIs, with CSS fallback on older Windows.
  • Cursor-anchored positioning — Window centers on the monitor under the cursor, upper-third placement (Raycast/Spotlight style).
  • Force-foreground — AttachThreadInput ensures reliable focus on show; winit/tao alone isn't sufficient on Windows.
  • Instance signaling — Registered window messages let a second process show/quit the running instance.
  • Embedded UI — HTML, CSS, and JS compiled into the binary via include_str!, served through nexasset:// custom protocol.

Building & Testing

cargo build --bin Nex --bin NexHelper              # Debug
cargo build --release --bin Nex --bin NexHelper    # Release
cargo test -p Nex                  # Tests (broken on Windows — hangs)

Documentation

License

MIT — see LICENSE.

About

A keyboard-first launcher for Windows. Press a global hotkey to summon a floating search bar and quickly find and launch applications, files, folders, and custom actions.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages