Text that looks native
Follows the desktopβs hinting and antialiasing, bundles Inter with tabular figures, and finds installed fonts for every script Inter lacks.
fastframe-text
The small crates behind ZapFast, Spotifast, Solco, TonePush and Chat with Work. Everything a native egui app needs besides its own interface, extracted from apps that already ship it.
Take only the crates your app uses. Each one does one job and does it with no configuration.
| Crate | What it does |
|---|---|
fastframe-text | Follows the desktop's font rendering settings (hinting, antialiasing, sub-pixel positioning, text weight) in egui, and snaps hand-placed text to whole pixels. |
fastframe-fonts | Bundled Inter (tabular figures) or the platform's own interface face at the app's weights, and installed fonts for every script it lacks, aligned to its baseline. |
fastframe-emoji | Colour emoji in the platform's own style (Apple, Segoe UI, the desktop's) with a bundled fallback, in every egui text through an egui plugin or inline as selectable placeholders, drawn off the interface thread. |
fastframe-icons | Embedded SVG icon sets for egui: the icons! macro, a bytes loader that survives reduce_texture_memory, and the Lucide icons the apps share. |
fastframe-theme | JSON colour palettes, a catalogue loaded off the interface thread, the eight shared palettes, a light and a dark palette that follow the system's appearance, following the Omarchy desktop's theme with filesystem notifications, and revealing a change of colours from the middle of the window outwards. |
fastframe-i18n | Bundled gettext catalogs: a build-time PO compiler for build.rs, gettext/pgettext/ngettext lookups, system language detection, and the template update script. |
fastframe-log | Logs to stderr and a per-run file for bug reports, rewrites private targets, and records panics without their payload. |
fastframe-tray | A tray item with the app's own menu: StatusNotifier on Linux, the notification area on Windows, the menu bar on macOS, with native menus, white and black renditions of the icon, and Dock reopening across window lifecycles. |
fastframe-dock | An embedded Dock icon for unbundled macOS runs, hiding the macOS Dock icon at runtime (a menu-bar-only app), and unread badges on the macOS Dock, compatible Linux launchers and the Windows taskbar. |
fastframe-titlebar | The title bar an app draws itself: a header that moves the window and answers a double-click as each platform does, room kept for the buttons (the traffic lights on macOS), and on Windows and Linux caption buttons in the desktop's layout and resizable edges. |
fastframe-shell | Keeps an app running without a window around eframe::run_native, starts hidden, reopens windows at their remembered size, place and zoom, brings back windows restored off-screen, asks niri to raise the window, and logs updates that freeze it. |
fastframe-audio | Audio output with the app's own renderer: a stream that gets no callbacks while paused, follows the default device, reopens after failures, keeps a clock of what has played, and gives the thread that feeds it precedence under load. |
fastframe-scroll | Scrolling that feels like the platform's: a 120-point wheel step, and Linux touchpad gestures that keep their speed, glide after the lift, and hold one axis. |
fastframe-autostart | Starts the app when the person logs in, with its window or hidden in the tray: an XDG autostart entry or the background portal in a Flatpak, a macOS login item or bundled agent, the Windows Run key, each read back from the platform. |
fastframe-instance | One running copy per user: a crash-safe lock, and a private channel a second launch hands its request over (show the window, open a link, any line the app understands). |
fastframe-now-playing | The desktop's media controls: what is playing, with artwork, in MPRIS, the Windows media overlay and the macOS Now Playing panel, and the media keys and buttons back. |
fastframe-power | The device's power, session and network state: energy saver, battery, display, lock, the network's reach and cost, sleep and wake with time to save first, EcoQoS in the background on Windows, keeping audio out of App Nap on macOS, and keeping the computer awake while it plays. |
fastframe-dirs | The app's config, state and cache folders: the platform's per-user folders, or a folder next to a portable copy on Windows, filled the first time with a copy of the per-user settings and state. |
fastframe-file | Replaces a file without ever leaving it half written: a temporary file beside it, flushed, then moved over it, privately if asked, on a thread of its own so the window never waits for the disk. |
fastframe-desktop | Who the app is to the desktop and what it says: the desktop entry a Flatpak exports, whether the session is GNOME, a desktop setting read through the portal (no gsettings process), and macOS notification permission guarded by the real application bundle. |
fastframe-notifications | Native notifications for GUI apps, TUIs and daemons: bounded delivery, click actions, replacement, withdrawal, permissions and platform identity. |
fastframe-update | Self-update from GitHub releases: detects package-managed installs, verifies signed checksums, installs through a helper with rollback, keeps the handoff format older app versions use, moves renamed installations onto the new name with their launchers, offers an opt-in pre-release channel, and replaces a user's AppImage in place when the app opts in. |