// 18 questions answered

Questions we get asked a lot.

From "what is GPUI?" to SQLite internals. If your question is not here, try the docs, check the blog, or open an issue.

Getting Started 4 questions

Features 11 questions

How do I customize themes and switch between dark and light mode?

gpui-starter ships 40 theme variants from 24 families as JSON files. Themes hot-reload from disk, switch instantly at runtime via the menu or Cmd+K, and persist across restarts.

How do I add or create a custom theme in gpui-starter?

Add a new theme by creating a JSON file in the themes/ directory with your color palette. The app hot-reloads it instantly with no recompile.

How do I add multi-language support and i18n to a Rust desktop app?

gpui-starter uses Mozilla's Fluent system via the es-fluent crate for type-safe, plural-aware translations with runtime language switching.

How do I add form validation in a GPUI Rust app?

gpui-starter uses gpui-form derive macros with koruma validation rules for type-safe, localized form handling. Covers built-in validators, custom rules, inline errors, and the touched pattern.

How do I use the Cmd+K command launcher in a GPUI app?

The Cmd+K command palette provides fuzzy search across all registered app actions: page navigation, theme switching, language changes, undo/redo, and custom commands. Covers built-in actions, keyboard shortcuts, and how to register your own commands.

How do I add a system tray icon to a Rust desktop app on macOS?

gpui-starter ships a macOS menu bar tray icon built with the tray-icon crate. Left-click opens the command launcher; no native code or plugins needed.

What keyboard shortcuts are available and how do I customize them?

Complete list of keyboard shortcuts in gpui-starter, how key bindings work under the hood, and how to add your own.

How do I implement undo and redo in my GPUI app?

gpui-starter ships a command-pattern undo/redo stack with Cmd+Z / Cmd+Y support, menu integration, and an easy pattern for adding your own reversible operations.

How do I store passwords and API keys securely in a Rust desktop app?

gpui-starter stores secrets in the OS keyring (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux) using the keyring crate, never in SQLite or config files.

How do notifications work in a Rust desktop app?

gpui-starter sends desktop notifications through native OS APIs with automatic fallback: macOS UNUserNotificationCenter, then notify-rust for Linux and Windows, then in-app toast. Covers permission handling, the persistent inbox, interactive actions, and how to send your own notifications.

How does the first-run setup and onboarding work?

gpui-starter detects fresh installs and shows a one-time setup panel for locale, notifications, and other defaults. Runs once after install or when the user resets app state.

Advanced 3 questions

Still have questions?

Check the docs, browse the blog, or ask on GitHub.