Halley 0.9
The Field comes first
A fresh session starts with an empty Field. Open applications there, move them freely, and keep work visible. A cluster is an optional named context, not a prerequisite for using the desktop.
Five operations to start with
- Mod+D: open Lift to launch apps or retrieve nodes, clusters, actions, and configuration.
- Mod+left-drag: move a window across the Field.
- Mod+A: arrange visible windows into a monitor-local mosaic; press it again to restore the saved geometry while the arrangement is untouched.
- Mod+N: collapse or restore a window as a node.
- Mod+O: open Apogee for an overview.
The generated configuration uses these bindings. Existing configurations retain their bindings. The non-modal basics card appears on the first native launch of each Halley version, including with an existing configuration, and stays dismissed for that version. Reopen it using Lift's action provider or halleyctl basics.
Attention, nodes, and retrieval
Moving, resizing, transferring, or closing a participating window ends that output's saved arrangement. Its current positions become ordinary Field geometry, and the next Mod+A arranges the current windows afresh. A stationary click or focus change preserves undo, including the immediate and mid-animation toggle.
Nodes preserve windows as readable landmarks. Directional Field focus reaches expanded windows, nodes, and collapsed cluster cores. Pinned windows are exempt from automatic decay; manual collapse remains available. Automatic decay pauses for arranged windows and begins a fresh timer when the arrangement is undone.
Fresh configurations wait 600 seconds outside the focus ring and 5,400 seconds inside it before decay. Existing explicit values stay unchanged; omitting the decay section retains the built-in 180 and 1,800 second values. A one-time notice explains the first automatic collapse.
Clusters when context helps
Create clusters deliberately through the Cluster Composer or Lift's cluster drafts. In a cluster search, Space stages apps or running nodes, then Ctrl+Enter hands the draft to Halley's naming and confirmation prompt. Empty named cores remain available after the last member closes.
Inside an empty cluster, a centered non-modal hint shows the configured close shortcut. Press that shortcut once to arm deletion, release it, then press it again to delete the cluster and return to the Field. Escape cancels. Holding the shortcut cannot confirm. Opening a launcher or interactive overlay hides the hint and clears confirmation; it returns unarmed if the cluster is still empty afterward. A new member or leaving the cluster also clears confirmation, and windows outside the cluster are never closed by this action.
Startup clusters are optional. This declaration creates a named empty context without launching applications:
autostart:
cluster:
name "Work"
members []
end
endDeclarations can also specify layout, output, and application members. Launch attribution groups matching new windows into the declared context. Fresh configurations contain no active cluster declarations.
Moving across and through outputs
Mod+Alt+Shift+Arrow transfers the focused Field window to a neighboring monitor. Mod+Shift+left-drag instead pans a grabbed window through its current output's Field when it dwells at an edge. Directional Field panning also has an optional keyboard action and halleyctl pan commands.
In 0.9, per-output view.output.scale supports fractional scaling. Use halleyctl node move to X Y for exact placement, --distance for a chosen directional distance, or bind pan-field-always for camera drags starting over applications.
Screenshots and overlays
A native screenshot presents Copy and Open controls. Hover keeps its preview visible, and copied PNG contents survive the preview. Notification offsets are signed values relative to the chosen anchor. Custom opening/closing shaders preserve the configured geometry path and fall back when unavailable.
Use separate block-screenshot and block-screencast window rules for built-in screenshots and portal screen shares. They do not restrict third-party direct capture protocols.
Updating an existing configuration
Halley does not rewrite or back up your configuration. The former config migrate command is removed. Edit the bindings or defaults you want, verify them, then reload:
halleyctl config verify
halleyctl reloadUse the 0.9 configuration reference for exact options and generated examples. The version picker retains older references.
Desktop integration notes
Taskbars and docks can list windows through foreign-toplevel protocols and enumerate clusters through ext-workspace-v1. Native input methods use upstream text-input-v3 and input-method-v2; input methods stay connected across locking, with composition and keyboard grabs suspended until unlock. Unfinished composition is discarded.
Hardware cursor planes are enabled where supported. Set cursor.disable-hardware-cursor to true and reload if your driver shows cursor artifacts. Blur and local animations retain conservative full-output repaints.
Independent ecosystem versions
Lift and Halley UI live in separate repositories and follow their own release versions. The compositor workspace builds Halley, halleyctl, and its portal backend. Install Lift separately or use the halley-full ecosystem package.