Desktop Services
Window commands, displays, clipboard, dialogs, shortcuts, and input events.
Windows, Linux, and macOS share the Winit/WGPU host behind desktop.
Android/iOS crates are semantic adapters, not runners.
| Service | Types |
|---|---|
| Windows | WindowId, WindowOptions, WindowCommand, WindowEvent |
| Displays | DisplayId, DisplaySnapshot, placement areas |
| Clipboard/Drag | ClipboardCapabilities, DataTransfer, ExternalDragEvent |
| Text input | TextInputConfiguration, TextInputState, TextInputAction |
| Files | FileDialogCapabilities, FileDialogOptions |
| Shortcuts/Notify | GlobalShortcutChord, NotificationAction, TrayItemPresentation |
| Input events | InputEvent, KeyboardEvent, PointerPhase, TrackpadGesture, ImeEvent |
Queries
id(), capabilities(), file_dialogs(), observed_state(),
displays(), display(id), primary_display(), current_display() —
see the runnable opener on WindowHandle.
Commands
All return Result<(), WindowCommandEnqueueError> unless noted — placement,
state, chrome, attention, input, drag, and lifecycle verbs with the arities in
the command table on WindowHandle.
Services and events
Clipboard, external drag, text input, file dialogs, shortcuts, notifications,
and the full input-event vocabulary each have a dedicated page: file dialogs
(File Dialogs), transfers
(Clipboard), IME
(Text Input), shortcuts and tray
(Shortcuts & Tray), and keyboard/pointer
details below.
Pointer fidelity: PointerMetadata { pointer, device, kind, buttons, button, sample, phase }, PointerSampleMetadata { pressure, stylus },
NormalizedPressure (new / from_range, None when unavailable),
StylusMetadata { orientation, barrel_button },
StylusOrientation::from_tilt_degrees. Button bits
(PRIMARY_POINTER_BUTTON / SECONDARY_POINTER_BUTTON / TERTIARY_POINTER_BUTTON / BACK_POINTER_BUTTON /
FORWARD_POINTER_BUTTON) follow the
Flutter mask convention (1<<0 … 1<<4); additional_pointer_button_mask(i) covers extras.
Modifiers and Location reuse the shared keyboard vocabulary.
External drags arrive as ExternalDragEvent { phase, … } with an
ExternalDragResponse decision.
Linux uses the XDG FileChooser portal; Windows/macOS use native dialogs.
incular-wgpu owns surfaces and command execution — app code stays on
incular::rendering.
Related: Application,
Semantics.