Framework Deck
Framework Deck is an open-source, all-in-one desktop companion application for Framework laptops, developed by community member ToySnail (GitHub: enkode). It evolved from the earlier Input Architect project — a keyboard and macropad configurator — into a unified tool that combines keyboard customization with real-time hardware telemetry, fan control, power management, battery health monitoring, and LED matrix editing1.
Built with Tauri 2, the application uses a lightweight native window rather than Electron, resulting in an approximately 2 MB installer1.
Features
Live Oscilloscope Dashboard
Real-time multi-channel waveform display showing sensor data for APU, CPU-EC, DDR, EC, dGPU, GPU-AMB, GPU-VR, VRAM temperatures, and both fan RPM channels. The time window is configurable (1 m / 5 m / 10 m / 30 m) with hover-to-inspect exact values1.
Keyboard & Macropad Configurator
Full VIA key remapping with support for 6 layers and over 100 QMK keycodes, including layer switching (MO/TG/TO). Per-key RGB lighting control is available when using the nucleardog firmware. Additional features include shift+click range select, Ctrl+click multi-select, key group presets (WASD, FPS, MOBA, etc.), config snapshots with export/import as JSON, multi-device switching, and auto-reconnect after sleep/wake1.
Fan Control
Three modes are available: AUTO, MANUAL (with a duty % slider and live RPM readout), and CURVE. Separate profiles for AC and battery power1.
Power Management
TDP slider from 5 W to 145 W in 5 W steps with live readout. Thermal limit control and AC/battery profile switching1.
Battery Health
Displays state of charge with a segmented bar, battery health percentage (current max vs. design capacity), live voltage, current, remaining mAh, and cycle count. A charge limit control allows capping the battery at 80% or 95% to extend lifespan1.
LED Matrix Editor (Framework 16)
Click or drag to paint individual LEDs on the 306-LED display panel. A live indicator shows the active LED count (X/306), and a module slot inventory shows what is physically installed in each slot (expansion cards, LED matrix, spacers)1.
Built-in pattern presets include CLEAR, FILL, CHECKER, BORDER, CROSS, and WAVE, plus six additional patterns added in v2.1.0 (DIAGONAL, STRIPES, VERTICAL STRIPES, DIAMOND, RAIN, and FW logo). Transform operations (flip horizontal/vertical, invert, shift left/right), full undo/redo with Ctrl+Z/Ctrl+Y (30-step history), and named custom-pattern save/load to localStorage with clipboard export/import (compact hex encoding) round out the editor2.
Graphics Module (Windows only)
Added in v2.2.0, the Graphics module exposes cross-vendor (NVIDIA + AMD) GPU diagnostics and recovery tools. As of v2.3.0, the Graphics module is hidden from the nav on Linux, where it has no applicable functionality2:
- GPU Adapters panel — every display-class PnP device with status, problem code, driver INF/version, PCIe link state, and last-arrival timestamp
- RECOVER (UAC) — one-click
pnputil /remove-device+/scan-devicescycle via elevated PowerShell to recover adapters stuck in a Code 43 or similar error state - Diagnostics · DXGKRNL-ADMIN — surfaces
Microsoft-Windows-DxgKrnl-Adminevent-log entries (errors, warnings) so failures likeStartAdapter_AddAdapterFailedare visible - Per-app GPU preferences — read/write
HKCU\SOFTWARE\Microsoft\DirectX\UserGpuPreferences(AUTO / POWER SAVING / HIGH PERFORMANCE), with an auto-discover scan of common install roots for known games - Quick actions — deep-links to AMD Adrenalin (SmartAccess Graphics), NVIDIA Control Panel / NVIDIA App, and Windows graphics settings (the GUI-only paths that actually flip the Framework 16 MUX)
- NVIDIA-SMI — raw output capture when the driver is healthy
All Graphics commands are config-gated to Windows; the non-Tauri runtime renders a graceful fallback on other platforms2.
Updates Module (v2.3.0)
Added in v2.3.0, the Updates module detects the connected Framework device and checks the Framework Knowledge Base for the latest BIOS and Driver Bundle, with a daily auto-check and notification badge when an update is available. On Windows it inventories installed drivers; on Linux it uses fwupd/LVFS inventory2.
System Information
Displays CPU, GPU, mainboard, memory, OS, BIOS version, EC firmware build, power state capabilities, and current TDP1.
Settings & Accessibility
Four color themes (REEL, PHOS, AMBR, FW), independent text size and UI zoom sliders, high contrast mode, reduced motion option, temperature unit switching (°C/°F), and configurable warning thresholds1.
Supported Hardware
Telemetry
| Device | Supported |
|---|---|
| Framework Laptop 12 | Yes (telemetry, power, battery, and Graphics via framework-control; input-module features N/A — no detachable input modules)2 |
| Framework Laptop 13 (AMD) | Yes |
| Framework Laptop 13 (Intel) | Yes |
| Framework Laptop 16 (AMD Ryzen 7040) | Yes |
| Framework Laptop 16 (Ryzen AI 300) | Yes |
Keyboard Configurator
| Module | Per-Key RGB |
|---|---|
| Framework 16 ANSI Keyboard (0x0012) | With nucleardog firmware |
| Framework 16 RGB Macropad (0x0013) | With nucleardog firmware |
Download & Installation
| Platform | Package |
|---|---|
| Windows 11/10 | .exe installer (NSIS) or .msi |
| Linux (any distro) | .AppImage — make executable and run |
| Debian / Ubuntu | .deb |
| Fedora / RHEL | .rpm |
Downloads are available from the GitHub releases page1.
For telemetry features (oscilloscope, fan control, power management, battery health, system info), the framework-control service by ozturkkl is required. The keyboard configurator works standalone via WebHID with no backend needed. On Linux, v2.3.0 also provides a one-click framework-control service installer from the "SERVICE OFFLINE" screen (polkit/pkexec); on Windows it offers an MSI download. The keyboard configurator on Linux falls back to the VIA web configurator with udev rule instructions when the in-app configurator is unavailable2.
Roadmap
| Feature | Status |
|---|---|
| LED Matrix animations / pattern editor | Done (v2.1.0 overhaul) |
| Fan curve visual editor | Planned |
| Floating desktop widget | Planned |
| System tray mode | Planned |
| Alert thresholds | Planned |
| CSV/JSON telemetry export | Planned |
| Light mode theme | Planned |
Technical Details
| Detail | Value |
|---|---|
| Latest release | v2.3.0 (July 15, 2026)2 |
| Total releases | 5 (v2.0.0 → v2.3.0) |
| Stack | Tauri 2, React, TypeScript |
| Installer size | ~2 MB |
| License | MIT |
Framework Deck auto-sets WEBKIT_DISABLE_DMABUF_RENDERER=1 at process start on Linux to work around a webkit2gtk-4.1 / Mesa EGL_BAD_PARAMETER failure reported on KDE Wayland (e.g., CachyOS). This is a no-op on X11 and can be overridden. v2.3.0 also fixed a Linux launch crash where navigator.hid was accessed unguarded — webkit2gtk has no WebHID support, so the call now short-circuits on Linux2.
Source Code
Framework Deck is MIT licensed and open to issues, pull requests, and hardware testing reports1.
Related Projects
- Input Architect — Predecessor app for keyboard & macropad configuration, merged into Framework Deck
- fw-fanctrl — Fan control daemon for Framework laptops
- YAFI — Cross-platform GTK4/Adwaita GUI for Framework EC
- Framework Tool TUI — Terminal-based dashboard for Framework hardware
- Framework Hub — C# control center for Framework laptops
It builds on several open-source projects:
- ozturkkl/framework-control — Rust telemetry backend
- nucleardog QMK firmware — per-key RGB firmware for Framework 16
- FrameworkComputer — QMK firmware, VIA definitions, EC documentation, inputmodule-rs