Desktop Mode renders /wp-admin as a desktop operating system. Admin screens open as draggable, resizable, minimizable windows on a desktop, with a left-edge dock built from the admin menu. The classic admin stays untouched for everyone else, and deactivating the plugin restores vanilla Core exactly.
Zero Core patches. Every feature is wired through public WordPress hooks.
Highlights
- Per-user opt-in. An admin-bar toggle flips a user-meta flag; nobody else sees any change.
- Window system. Iframe windows load admin pages chromelessly. Native windows render directly in the parent DOM via a public registration API. Both share drag, resize, minimize, maximize, fullscreen, and detach-to-new-tab.
- Dock + taskbar. Left-edge dock for core menus; bottom macOS-style pill taskbar for plugin menus. Letter-badge icon fallback for plugins without icon art.
- Virtual desktops («Spaces»). Multiple desktops per user, each with its own window set. Overview grid surfaces the Spaces switcher and thumbnails.
- Arrange & snap. Cascade, Tile, Overview, Snap-to-grid. Plugins contribute custom entries.
- Wallpaper & widget registries. Server- and client-side registration. CSS presets plus canvas (WebGL/2D) wallpapers with collision-aware surface data for snow/rain/physics effects.
- Desktop icons. Wallpaper-layer shortcuts that open native windows or admin URLs.
- AI Copilot (optional). Cmd+K palette backed by an agentic loop with built-in search tools. Disabled until you supply an API key. See «External services» below.
- Slash commands & palettes. Public registration APIs for plugin authors.
- Cross-frame drag bridge. Media-library attachments drag across iframe boundaries.
- Session persistence. Window stack (including desktops, focus, state) restored across reloads.
- i18n. Full gettext coverage across PHP and TypeScript; Spanish translation shipped.
For plugin authors
Desktop Mode is built to be extended. Every significant behavior is hookable — add a desktop icon, register a dock item, gate desktop mode by role, react to window events, or register a native window, all from your own plugin with zero patches here.
Comprehensive PHP and JavaScript hook surface, plus stable desktop_mode_register_* functions for windows, widgets, wallpapers, icons, window tabs, commands, settings tabs, and AI tools. See the developer docs on GitHub.
External services
This plugin’s optional AI Copilot sends data to OpenAI (https://api.openai.com/v1/responses) when, and only when, an administrator configures an OpenAI API key in Settings → AI. With no key configured, no external requests are made.
When the AI Copilot is enabled and a user invokes it (via Cmd+K or the slash-command palette):
- What is sent: the user’s prompt, the conversation history for the active session, the chosen model identifier (e.g.
gpt-4o-mini), and tool-call metadata. The plugin’s built-in tools (search_posts,search_pages,search_comments) may include excerpts of the matching posts/pages/comments in tool results, which are then sent back to OpenAI as part of the agentic loop. - When it is sent: on user-initiated AI requests, and (if enabled) on
save_post, term-save, and comment-save hooks for auto-analysis. Auto-analysis runs server-side as part of the post-save flow. - Why it is sent: to obtain model completions and tool-call decisions that drive the AI Copilot.
- Who provides the service: OpenAI, L.L.C. — see the OpenAI Terms of Use and the OpenAI Privacy Policy.
The AI Copilot’s provider layer is also extensible: third-party plugins may register additional providers via desktop_mode_register_ai_provider(). Those providers may send data to other endpoints; review each plugin’s own privacy disclosure separately.
No other external services are contacted by this plugin.
