thedivergentai/godot-platform-desktop
Expert blueprint for desktop platforms (Windows/Linux/macOS) covering keyboard/mouse controls, settings menus, window management (fullscreen, resolution), keybind remapping, and Steam integration. Use when targeting PC platforms or implementing desktop-specific features. Keywords desktop, Windows, Linux, macOS, settings, keybinds, ConfigFile, DisplayServer, Steam, fullscreen.
npx skills add https://github.com/thedivergentai/GD-Agentic-Skills --skill godot-platform-desktop
Settings flexibility, window management, and kb/mouse precision define desktop gaming.
DisplayServer.screen_get_scale() / usable rects.WINDOW_MODE_FULLSCREEN (borderless) for multi-monitor focus.keycode for movement rebinds — Use physical_keycode for AZERTY/Dvorak.res:// — Always user://.NOTIFICATION_WM_CLOSE_REQUEST — Flush ConfigFile before get_tree().quit().OS.low_processor_usage_mode for static tools.Engine.has_singleton() guards.WorkerThreadPool.> MANDATORY: Read the appropriate script before implementing the corresponding pattern. Do not paste inline settings/rebind/Steam tutorials — the scripts are the golden path.
Expert DPI-aware multi-monitor window positioning using DisplayServer.
Production settings persistence using ConfigFile for persistent INI data.
Expert positional rebind system using physical_keycode for AZERTY/Dvorak.
Safe PC SDK singleton wrapper (Steamworks/Epic) with crash guards.
Expert native OS file dialogs and system alerts logic.
True multi-window management for secondary Viewports/Windows.
Safe close-request interceptor for data flushing and exit guards.
Eco mode optimization for desktop tools and launchers.
OS-level hardware detection for dynamic graphics presets.
Expert native shell command execution and output capture.
user://.physical_keycode only.NOTIFICATION_WM_CLOSE_REQUEST → save → quit.if Engine.has_singleton("Steam") → Steam API; elif Engine.has_singleton("EOS") → Epic; else no-op stub. Gate features with export feature tags (steam / epic).| Player need | Window mode | Script hook |
| :--- | :--- | :--- |
| Fullscreen game, alt-tab friendly | WINDOW_MODE_FULLSCREEN (borderless) | desktop_window_manager.gd |
| Exclusive fullscreen (lowest latency) | WINDOW_MODE_EXCLUSIVE_FULLSCREEN | Same — persist choice in ConfigFile |
| Windowed / multi-monitor drag | WINDOW_MODE_WINDOWED + usable rect / DPI scale | Same + desktop_settings_persistent.gd |
CI smoke: headless --path . --quit-after 1 with settings round-trip write/read under user:// before merge (pairs with godot-export-builds).
On NOTIFICATION_APPLICATION_FOCUS_OUT, pause and Input.action_release held movement actions so OS-swallowed key-ups do not strand velocity.
Lightweight launcher projects may OS.create_process the main pack after writing user://settings.cfg; pair with low_processor_eco_mode.gd while idle in menus.
> Progressive disclosure: open Official Documentation links only when researching a specific API;
> load Related Skills when routing work to a peer domain — do not preload the whole lattice.
screen_get_scale / usable rects, and native file-dialog features behind multi-monitor and HiDPI desktop settings.NOTIFICATION_WM_CLOSE_REQUEST / set_auto_accept_quit(false) so Alt+F4 and window-close flush ConfigFile before exit.user://.user:// (exported res:// is read-only).physical_keycode vs keycode so WASD rebinds survive AZERTY/Dvorak layouts.action_erase_events / action_add_event for desktop rebind UIs.NOTIFICATION_APPLICATION_FOCUS_OUT) when Alt-Tabbing on PC.low_processor_usage_mode, create_process / execute, and alert for launchers and native shell hooks.has_singleton / get_singleton guards so Steam/Epic GDExtensions never crash standalone builds.windows/linux/macos), and project defaults every desktop settings menu depends on.physical_keycode rebind UIs.Take thedivergentai/godot-platform-desktop from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.