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.
How do I install this agent skill?
npx skills add https://github.com/thedivergentai/gd-agentic-skills --skill godot-platform-desktopIs this agent skill safe to install?
- Gen Agent Trust Hubwarn
The skill provides comprehensive desktop integration tools for Godot, including shell command execution, process management, and screen pixel sampling. While designed for application development, these high-privilege capabilities represent a significant security surface that could be leveraged for data exfiltration or unauthorized system operations if integrated into an autonomous agent without strict oversight.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
2/2 files flagged
- ZeroLeakspass
Score: 93/100 · 2 sections analyzed
What does this agent skill do?
Platform: Desktop
Settings flexibility, window management, and kb/mouse precision define desktop gaming.
NEVER Do (Expert Desktop Rules)
Window & Display
- NEVER hardcode resolution or fullscreen modes — Always provide a settings menu with resolution + mode toggle.
- NEVER ignore DPI scale factors — Use
DisplayServer.screen_get_scale()/ usable rects. - NEVER skip a borderless window option — Offer
WINDOW_MODE_FULLSCREEN(borderless) for multi-monitor focus.
Input & Persistence
- NEVER use
keycodefor movement rebinds — Usephysical_keycodefor AZERTY/Dvorak. - NEVER save settings or user data to
res://— Alwaysuser://. - NEVER skip
NOTIFICATION_WM_CLOSE_REQUEST— Flush ConfigFile beforeget_tree().quit().
Performance & Integration
- NEVER run utility tools at max framerate — Enable
OS.low_processor_usage_modefor static tools. - NEVER call proprietary SDKs (Steam/Epic) directly — Wrap with
Engine.has_singleton()guards. - NEVER block the main thread with massive I/O — Offload to
WorkerThreadPool.
Available Scripts
MANDATORY: Read the appropriate script before implementing the corresponding pattern. Do not paste inline settings/rebind/Steam tutorials — the scripts are the golden path.
desktop_window_manager.gd
Expert DPI-aware multi-monitor window positioning using DisplayServer.
desktop_settings_persistent.gd
Production settings persistence using ConfigFile for persistent INI data.
physical_input_rebinder.gd
Expert positional rebind system using physical_keycode for AZERTY/Dvorak.
platform_sdk_wrapper.gd
Safe PC SDK singleton wrapper (Steamworks/Epic) with crash guards.
native_dialog_helper.gd
Expert native OS file dialogs and system alerts logic.
secondary_window_spawner.gd
True multi-window management for secondary Viewports/Windows.
graceful_shutdown_handler.gd
Safe close-request interceptor for data flushing and exit guards.
low_processor_eco_mode.gd
Eco mode optimization for desktop tools and launchers.
desktop_performance_monitor.gd
OS-level hardware detection for dynamic graphics presets.
native_shell_executor.gd
Expert native shell command execution and output capture.
Desktop Golden Path (MANDATORY scripts)
- Resolution / stretch — use the mini-tree below, then MANDATORY desktop_window_manager.gd.
- Window / DPI — MANDATORY desktop_window_manager.gd: multi-monitor position, scale, mode restore.
- ConfigFile settings — MANDATORY desktop_settings_persistent.gd: graphics/audio/window under
user://. - Physical rebinds — MANDATORY physical_input_rebinder.gd:
physical_keycodeonly. - Close flush — MANDATORY graceful_shutdown_handler.gd:
NOTIFICATION_WM_CLOSE_REQUEST→ save → quit. - Store SDK — MANDATORY platform_sdk_wrapper.gd before any store call:
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).
Resolution / stretch mini-tree
| 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).
Expert Callouts (keep short — not full tutorials)
1. Alt-Tab stuck-input guard
On NOTIFICATION_APPLICATION_FOCUS_OUT, pause and Input.action_release held movement actions so OS-swallowed key-ups do not strand velocity.
2. Desktop launcher note
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.
Deep dives (on demand)
- Settings menu, rebind, Steam, alt-tab guard, launcher → desktop-expert-patterns.md
Reference
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.
Official Documentation
- DisplayServer — Window modes,
screen_get_scale/ usable rects, and native file-dialog features behind multi-monitor and HiDPI desktop settings. - Multiple resolutions — Stretch modes, aspect, and content scale so resolution dropdowns stay sharp across 1080p–4K displays.
- Handling quit requests —
NOTIFICATION_WM_CLOSE_REQUEST/set_auto_accept_quit(false)so Alt+F4 and window-close flush ConfigFile before exit. - ConfigFile — INI-style persistence for graphics, audio, and window state under
user://. - File paths in Godot projects — Why settings and saves must use
user://(exportedres://is read-only). - InputEventKey —
physical_keycodevskeycodeso WASD rebinds survive AZERTY/Dvorak layouts. - InputMap — Runtime
action_erase_events/action_add_eventfor desktop rebind UIs. - Using InputEvent — Focus-loss stuck-key pitfalls (
NOTIFICATION_APPLICATION_FOCUS_OUT) when Alt-Tabbing on PC. - Window — Secondary/tool windows and mode/size/position restore for true multi-window desktop apps.
- OS —
low_processor_usage_mode,create_process/execute, andalertfor launchers and native shell hooks. - Creating applications — Desktop-style app chrome, dialogs, and quit UX beyond game-only loops.
- Engine —
has_singleton/get_singletonguards so Steam/Epic GDExtensions never crash standalone builds.
Related Skills
Prerequisites
- godot-project-foundations — Display stretch, feature tags (
windows/linux/macos), and project defaults every desktop settings menu depends on. - godot-input-handling — InputEvent buffering and action design before wiring
physical_keycoderebind UIs. - godot-ui-containers — Settings screens, dropdowns, and remapper rows that stay layout-correct across resolutions.
Complements
- godot-save-load-systems — Game-save ownership that pairs with ConfigFile settings and graceful close-request flushes.
- godot-autoload-architecture — Singleton homes for window managers, SDK wrappers, and shutdown handlers.
- godot-audio-systems — Bus volume persistence that desktop graphics/audio options menus usually expose together.
- godot-adapt-desktop-to-mobile — Touch/safe-area remaps when the same project keeps desktop kb/mouse paths after a mobile port.
- godot-adapt-mobile-to-desktop — Bringing touch-first titles up to window modes, keybinds, and multi-monitor expectations.
- godot-composition-apps — Tooling/launcher composition patterns that lean on eco mode, native dialogs, and secondary windows.
- godot-performance-optimization — Profiling and quality presets after OS-level hardware detection suggests Ultra vs Balanced.
Downstream / consumers
- godot-export-builds — Windows/Linux/macOS export presets, icons, and store packaging once desktop settings and SDK wrappers are stable.
- godot-platform-mobile — Sibling platform skill for dual-target projects that must not assume desktop quit/window APIs on phones.
- godot-platform-web — Browser constraints (no multi-window / limited shell) when shipping the same settings stack to HTML5.
Master
- godot-master — Library router and mirrored module entry for discovering this platform skill beside sibling domains.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/thedivergentai/gd-agentic-skills/godot-platform-desktop">View godot-platform-desktop on skillZs</a>