Short, complete, copy-pasteable recipes. Each file is a working plugin snippet — drop it into a plugin file that starts with:
<?php
/**
* Plugin Name: My Desktop Extension
*/
defined( 'ABSPATH' ) || exit;-
Window slots — replace icon, title, banners above/below the title bar
-
Custom window chrome — full title-bar replacement (Experimental)
-
Window links — relate windows and restyle the ties (Experimental)
-
Related entities — extend the title bar's "Related" menu (Experimental)
-
Revisions in their own window — extend or redirect "View revisions" (Experimental)
-
React to a window being set free onto the real desktop (Experimental)
-
Register a game — launcher tile, scoreboard, challenges (Experimental)
-
Retune the Drafts widget's AI writing assistant (Experimental)
-
Iframe-initiated window opens — open/talk to a sibling window from inside a chromeless iframe
-
App layouts: dashboard grids, scrolling settings, list/detail and editor/preview — Stable
-
Ship a window as an
.os.phpapp — state, actions, chrome, no JavaScript (Experimental) -
The render
ctx—signal,onResize,onHide,onShow,markLoading/markReady -
Content changes — live-refresh every window listing your type
-
Customize note → post conversion —
openstation_notes_convert_post_args -
Programmatic folder sharing — invite from PHP, listen for share events
-
Real file storage — react to uploads, gate policy, share files from PHP
-
Native Plugins window — Browse / Install / Reviews / Drag-to-dock
-
Window activity & the status ring —
wp.os.fetch,Window.trackActivity -
Render a keyed list without losing clicks —
renderKeyedList() -
Build a feed reader without the bookkeeping —
wp.os.createInfiniteList() -
Connect to an external service via OAuth —
openstation_register_oauth_relay() -
Share state across multi-bundle plugins —
wp.os.createSharedStore() -
Place something where the user can reach it —
wp.os.workArea -
Show a banner at the top of a window —
openstation_register_window_notice()
If your use case isn't here, check Hooks Reference and JavaScript Reference — everything we fire is documented there.
-
Repairable form edits with MIO — Experimental: structured validation, revisioned operations, status reconciliation, large-document history and receipt-bound Preview buttons.
-
Edit a mixed-field record — collect, populate and reset scalar, boolean and tag fields through one form API.