Releases: saltnpepper97/halley
Release list
Halley v0.5.0 — Lift, Blur, Portals, Gestures, Apogee, and Deep Compositor Polish
Halley v0.5.0 is a massive desktop-completeness, visual-effects, portal, input, Apogee, cluster-workspace, and rendering release focused on making Halley feel smoother, more configurable, more compatible with real desktop apps, and much closer to a daily-driver Wayland environment.
The biggest changes are native ScreenCast/Screenshot portal support, a much more polished Halley Lift launcher, renderer-level blur/effects configuration, real libinput device customization, gesture support, a redesigned multi-monitor Apogee overview, stronger fullscreen and cluster-workspace behavior, and a huge rendering rewrite that moves normal windows onto a direct live-surface path instead of relying on per-window offscreen textures during steady state.
This release also includes a very large bug-fix pass around games, fullscreen, XWayland, popups, tiled cluster reflows, stuck keys, Apogee previews, monitor switching, cursor behavior, blur rendering, nested compositor startup, and high-idle redraw cases.
Highlights
- MAJOR: Native
xdg-desktop-portal-halleyScreenCast backend with monitor/window source metadata, PipeWire streams, compositor-owned source selection, and Halley IPC capture support. - MAJOR: Native Screenshot portal support for screen, window, and area captures through Halley’s capture overlay.
- MAJOR: Halley now includes a native ScreenCast source chooser overlay for monitor picking, window picking, and hovered-window highlighting.
- MAJOR: Portal capture now supports shared-memory frame files and an opportunistic DMA-BUF render path for PipeWire buffers.
- MAJOR: Renderer-level visual effects now live under a new top-level
effects:config section, including blur and relocated shadows. - MAJOR: Backdrop blur support has landed for compositor overlays, layer-shell clients, translucent windows, popups, bearing chips, aperture-peek, and Apogee chrome.
- MAJOR: Smithay
ext-background-effectblur capability is now advertised with conservative rendering integration for XDG and layer-shell surfaces. - MAJOR: Halley Lift is now much more complete, with first-launch config generation, config-editing actions, terminal command mode, search/config glyphs, row fallback glyphs, caret controls, border styling, icon tinting, and cached background icon indexing.
- MAJOR: Physical input devices can now be configured through
input.touchpad,input.mouse, andinput.devices.<name>, with live reload and hotplug re-application. - MAJOR: Gesture and touch configuration has landed under
input.gestures, including touchpad/touchscreen passthrough, compositor pinch-to-zoom, swipe bindings, hold gestures, Apogee gestures, gesture scopes, and modifier rules. - MAJOR: Apogee now opens across all active monitors at once, supports keyboard navigation, previews clusters directly in the core rail, and has much stronger preview capture behavior.
- MAJOR: Cluster workspaces now have open/close animations, fullscreen support, better reflow transitions, and cleaner game/fullscreen behavior inside tiled layouts.
- MAJOR: Normal field and cluster windows now render directly from live Wayland surface elements during steady state, reducing per-window offscreen texture allocation.
- MAJOR: EGL hardware acceleration for Wayland clients is now enabled by binding the compositor EGL display to the Wayland display, fixing Qt/EGL, Quickshell, Electron, GL apps, and other GPU-accelerated clients.
- MAJOR: Fullscreen, maximize, cluster fullscreen, soft-suspend, game windows, and XWayland rendering received a large reliability pass.
- MAJOR: High-idle redraw sources were reduced, including settled hover redraws, tile grow-wait tracks, DPMS wake buffer resets, and animated background redraw cadence.
Added
- NEW: First-launch Halley Lift config generation at
~/.config/halley/lift.rune, using a documented default template without overwriting existing files. - NEW: Halley Lift
colors.iconandcolors.alt-hintoptions. - NEW: Halley Lift config actions for editing both Lift and Halley compositor configs through
$EDITORin the configured terminal. - NEW: Halley Lift
termmode for running typed shell commands in the configured terminal through the user’s interactive$SHELL. - NEW: Halley Lift caret configuration for visibility, width, blink timing, and stop-blink timing.
- NEW: Halley Lift
border:block withoutlineandinsetstyles. - NEW: Halley Lift search-bar icon support, bundled search/settings/apps/terminal glyphs, and fallback row glyphs.
- NEW: Background-worker icon decoding and persistent Lift icon-path cache under
$XDG_CACHE_HOME/halley/lift-icons. - NEW:
nodes.opacityfor dimming node/core marker fills while keeping borders and app icons fully opaque. - NEW: Frosted blur behind aperture-peek, bearing chips, and Apogee tile labels.
- NEW: Top-level
effects:config section containingeffects.blur:and relocatedeffects.shadows:. - NEW:
effects.blur.layer-shellfor layer-shell blur policy:off,auto, oralways. - NEW: RGBA overlay background parsing for
#rgbaand#rrggbbaa. - NEW: Native ScreenCast portal backend with D-Bus activation, portal sessions, PipeWire stream creation, monitor/window source metadata, and compositor IPC capture.
- NEW:
halleyctl portal statusandhalleyctl portal versiondiagnostics. - NEW: Native Screenshot portal backend for Screen, Window, and Area targets.
- NEW: Halley-native portal source chooser overlay.
- NEW: fd-passing support on the Halley IPC socket for portal DMA-BUF buffer registration, rendering, and removal.
- NEW: Per-class and per-device libinput configuration for touchpads, mice, keyboards, and named devices.
- NEW:
input.keyboard.modelxkb configuration. - NEW: Gesture configuration for swipe, hold, pinch, passthrough, Apogee interaction, compositor scope, and modifiers.
- NEW:
halley --nestedas an explicit nested compositor launcher. - NEW:
apogee.open-cluster-on-select, defaulting totrue. - NEW: Arrow-key navigation in Apogee with Enter activation and Escape close.
- NEW: Cluster core labels and live cluster previews in Apogee.
- NEW:
center-last-focusedaction, bound by default tomod+h. - NEW:
cursor.hide-on-keyboard-nav, defaulting totrue. - NEW: Cluster open/close animations through
animations.cluster. - NEW: Fullscreen support inside active cluster workspaces.
- NEW: Auto-fullscreen handling for game-like windows such as
steam_app_*and gamescope. - NEW: Tinted cluster glyphs on cluster-core bearing chips.
- NEW: Animated background renderer with
none,classic, andfield-shadermodes. - NEW: Direct field rendering for normal windows through
RescaledSurfaceElement.
Changed
- MAJOR:
decorations.shadowsmoved toeffects.shadows;decorations:now only owns compositor chrome such as borders and resize behavior. - MAJOR: Backdrop blur now captures the framebuffer immediately before each blurred surface, instead of relying on stale global below-window snapshots.
- MAJOR: Layer-shell blur now uses an alpha-mask pass so transparent pixels and rounded shapes cut out the blur correctly.
- MAJOR: Halley now tracks compositor-keybind fullscreen separately from client-requested fullscreen.
- MAJOR: Halley Lift has been renamed consistently as
halley-liftacross the workspace, layer namespace, bindings, README, and lockfile. - MAJOR: Aperture has been renamed from
aperturetohalley-aperture. - MAJOR: The winit backend is treated as nested by default and no longer creates or replaces the fixed session IPC socket.
- MAJOR:
halley --sessionnow runs the TTY/session path directly instead of internally settingHALLEY_WL_BACKEND=tty. - MAJOR:
halley-sessionnow starts and waits on the systemd userhalley.servicewhen available. - MAJOR: Native ScreenCast portal configuration now prefers Halley’s backend over
xdg-desktop-portal-wlr, while GTK remains the fallback for other portal interfaces. - MAJOR: Normal field and cluster windows now render through live surface elements instead of steady-state per-window offscreen textures.
- MAJOR: Direct rendering now handles opacity, live blur patches, and active resize without forcing the old offscreen path.
- MAJOR: Per-window offscreen rendering is now reserved for semantic transitions, previews, close ghosts, hover cards, and capture paths.
- MAJOR: Client maximize requests now map to fullscreen, while user-initiated fullscreen and client-requested fullscreen remain distinct.
- MAJOR: Maximize and fullscreen are now mutually exclusive per monitor.
- MAJOR: Fullscreen windows now grow and shrink in place, centered on the window’s own position, with camera zoom and pan easing together.
- MAJOR: Cluster fullscreen behavior now works inside workspaces, including game windows that request fullscreen before app identity fully resolves.
- MAJOR: Tiled cluster reflows now use a material-bridge handoff instead of stretching stale client textures.
- MAJOR: Apogee now always shows the field overview, even when a cluster workspace is open.
- MAJOR: Apogee cluster cores now show persistent labels and expand in place into live cluster previews on hover/focus.
- MAJOR: Apogee preview capture now fills missing snapshots in small batches, prioritizes hovered previews, and rate-limits live refreshes.
- MAJOR: Camera zoom is now inertial, with velocity in log-view-size space for a smoother powered-lens feel.
- MAJOR: Touchpad finger scrolling is treated as high-resolution input, with thresholded wheel bindings and smooth two-axis field panning.
- MAJOR: Keyboard launches now prefer the compositor’s primary in...
Halley v0.4.0 — Gamescope, and Smoother Fullscreen
Halley 0.4.0 is a big gaming, fullscreen, and compositor-polish release.
The headline changes are first-class Gamescope integration, smoother fullscreen behavior, new window-rule options, improved config/debug tooling, and a large round of rendering/layout cleanup that makes the compositor easier to evolve.
Highlights
Gamescope integration
Halley now has first-class Gamescope support through a top-level gamescope: config section and:
halleyctl gamescope run -- <command>- global Gamescope defaults
- per-game profiles
- per-game opt-outs
- automatic resolution selection from the chosen Halley viewport
- Steam launch option support
- graceful fallback when the
gamescopebinary is unavailable
Gamescope-managed and Steam game windows are treated as contained sessions. While pointer lock or confinement is active, Halley can suppress desktop overlays and bypass spatial-camera pointer remapping so games receive stable 1:1 pointer behavior.
Smoother fullscreen
Halley now has a compositor-side fullscreen toggle, bound by default to mod+f.
Fullscreen entry can also be animated through animations.fullscreen, so browser videos and fullscreen transitions tween smoothly instead of snapping instantly.
Window rules and config
Window rules now support:
- numeric
opacityfrom0.0to1.0 - optional fixed initial
width - optional fixed initial
height
Opacity applies consistently across window content, borders, shadows, popups, badges, close snapshots, and captures. Translucent windows also block direct scanout automatically.
This release also adds:
halley -h/halley --helphalley -c/halley --config- proper config path precedence
- empty
HALLEY_WL_CONFIGhandling - a new
debug:config section - optional FPS overlay
- focus-ring resize preview controls
Notable fixes
This release includes a large number of fixes across fullscreen, maximize, Gamescope, popups, spawning, tiled clusters, close animations, and monitor-transfer behavior.
Some of the biggest user-visible fixes:
- Fixed Gamescope pointer behavior by avoiding spatial-camera remapping for managed game surfaces.
- Fixed system config shadowing on first startup when
/etc/halley/halley.runeexists. - Fixed maximized-window close animations so maximized windows remain visually maximized while closing.
- Fixed navigation out of maximized/fullscreen sessions so the selected target keeps the expected state.
- Fixed app icons on normal node markers loading asynchronously again.
- Fixed Bearings clicks on collapsed cluster cores.
- Fixed blank tiled-cluster transition frames when fresh captures are deferred.
- Fixed tiled-cluster relayout/configure churn during animations.
- Fixed monitor-transfer behavior for active cluster members and standalone windows.
- Fixed stacking-cluster drag/drop behavior.
- Fixed Steam dropdown placement by applying popup reposition geometry before acknowledging reposition requests.
Internal cleanup
0.4.0 also includes a major compositor organization pass.
Rendering, layout, frame-loop, spawn reveal, surface lifecycle, context access, animation prewarming, and RenderState ownership were split into more focused modules and capability boundaries.
These changes should not alter behavior directly, but they make the compositor easier to maintain and prepare the codebase for deeper subsystem work in future releases.
Compatibility notes
halley-session remains the recommended public full-session launcher.
halley --session is still supported and documented as the lower-level session-wrapper, packager, and service-file entry point.
The experimental rail app has been archived and its public IPC surface removed.
Halley v0.3.2 — Small Fixes
Fixes
- Clear pending initial reveal state for tiled cluster members once committed geometry arrives, preventing focused terminals in tiled clusters from keeping stale rendered textures while input continues to reach the client.
Halley v0.3.1 — Small Fixes
Fixes
- Restored landmark/window overlap transfer so dragged windows push landmarks into passive windows instead of allowing landmarks to slide underneath after release.
- Fixed fullscreen/game first-frame reveal so games no longer launch with audio but no visible image.
Halley v0.3.0 — Landmark Placement, Presentation Fullscreen, and Native TTY Polish
Halley v0.4.0 is a major gaming, fullscreen, config, and compositor-maintenance release focused on making fullscreen sessions smoother, game launches more reliable, and the compositor internals easier to evolve.
The biggest change is first-class Gamescope integration: Halley can now wrap games through halleyctl gamescope run -- <command>, choose sensible game/output resolutions from the target viewport, support global and per-game profiles, and fall back cleanly when Gamescope is unavailable. Fullscreen also gets a dedicated compositor toggle, configurable entry animation, and a batch of fixes around maximize/fullscreen navigation, closing, focus, and presentation behavior. This release also adds opacity and fixed-size window rules, better config selection/debug tooling, and a large internal rendering/layout cleanup pass.
Highlights
- MAJOR: Gamescope integration has landed, with a top-level
gamescope:config section, global defaults, per-game profiles, Steam launch option support, andhalleyctl gamescope run -- <command>. - MAJOR: Game resolution can now be selected automatically from the target Halley viewport, using
focused,cursor,primary, or a connector-specific monitor selector. - MAJOR: Gamescope-managed games behave more like contained sessions, with overlay suppression and spatial-camera bypass support while pointer lock/confine is active.
- MAJOR: Fullscreen now has a compositor-side toggle, bound by default to
mod+fand configurable through thetoggle-fullscreenaction keyword. - MAJOR: Fullscreen entry can now animate, so browser videos and other fullscreen transitions can tween smoothly instead of snapping instantly.
- MAJOR: Window rules now support opacity and fixed initial sizes, including consistent opacity rendering across content, borders, shadows, popups, badges, snapshots, and captures.
- MAJOR: Config selection and startup behavior are more predictable, with
halley --config, config precedence cleanup, better help output, and safer handling of system configs. - MAJOR: Rendering, layout, frame-loop, spawn, lifecycle, and render-state ownership received a large cleanup pass, reducing direct shared-state access and preparing the compositor for deeper subsystem splits.
Added
- NEW:
mod+ffullscreen toggle for compositor-initiated fullscreen on the focused window. - NEW:
toggle-fullscreenaction keyword so the fullscreen toggle can be remapped through config. - NEW:
halley -h/halley --helpoutput documenting config selection and session startup options. - NEW:
halley -c/halley --configsupport for selecting an explicit config file. - NEW: Numeric
opacitywindow-rule support using a0.0through1.0scale. - NEW: Fixed initial window-rule sizing with optional
widthandheightkeys. - NEW: Configurable fullscreen entry animation through
animations.fullscreen. - NEW: Performance diagnostics gate through
HALLEY_WL_PERFfor slow-frame and cluster-workspace timing logs. - NEW:
debug:config section withoverlay-fpsandshow-ring-when-resizingtoggles. - NEW: Top-left FPS HUD for quick compositor performance visibility.
- NEW: First-class Gamescope config through a top-level
gamescope:section. - NEW: Global and per-game Gamescope profiles, including repeated per-game profile entries and per-game opt-outs.
- NEW:
halleyctl gamescope run -- <command>for launching games through Halley-managed Gamescope sessions. - NEW: Automatic Gamescope resolution selection from the selected Halley viewport.
- NEW: Clear Gamescope diagnostics when Gamescope is enabled but the
gamescopebinary is unavailable.
Changed
- MAJOR:
halley-sessionremains the recommended public full-session launcher, whilehalley --sessionis now documented as the lower-level session-wrapper, packager, and service-file flag. - MAJOR: Halley now resolves the effective config path once at startup and reuses it for reload/watch behavior.
- MAJOR: Explicit config selection now takes precedence over
HALLEY_WL_CONFIG, followed by user config, system config, generated user config, and internal defaults. - MAJOR: Gamescope-managed games and
steam_app_*windows are treated as contained sessions, allowing Halley to suppress overlays while pointer lock/confine is active. - MAJOR: Active-window render routing now uses an explicit
WindowRenderRoute, reducing repeated stack/top/fullscreen routing checks during surface collection. - MAJOR:
RenderStatehas been split into focused buckets for view, overlay, window animation, telemetry, cache, and GPU ownership. - MAJOR: Frame-loop output activity and full-repaint decisions now live in a dedicated
frame_loop::activitymodule, separating redraw policy from frame ticking, callbacks, and presentation feedback. - MAJOR: Active-window stack and per-window render layout resolution now live behind a
window::layoutboundary, so scene assembly consumes named layout data instead of deriving policy inline. - MAJOR: Context wrappers now use named capability methods for spawn, surface lifecycle, layer shell, pointer, and fullscreen paths instead of direct shared-state access.
- MAJOR: Animation texture prewarm requests are centralized, so close, tile, stack, maximize, fullscreen, raise, active-transition, and slide animations can request cache support through one path.
- Replaced the active-window render collector’s positional tuple with a named render plan.
- Moved spawn reveal pan state and immediate activation paths behind
SpawnRevealControllercapability methods. - Split toplevel-destroy handling into focused helpers for fact collection, input/focus cleanup, close-restore planning, and restore application.
- Moved the frame-loop module root from
frame_loop.rstoframe_loop/mod.rs. - Resolved active-window layout and render routing through clearer subsystem boundaries.
- Softened window shadows with a Gaussian/error-function falloff for a more natural shadow tail.
- Archived the experimental rail app and removed its public IPC surface.
Fixed
- MAJOR FIX: Gamescope pointer behavior is now more reliable by avoiding spatial-camera input remapping for Gamescope-managed pointer surfaces.
- MAJOR FIX: Games receive stable 1:1 pointer mapping while normal output and buffer scale handling are preserved.
- MAJOR FIX: Gamescope launches no longer hard-fail when the binary is missing; Halley reports diagnostics and launches the game unwrapped instead.
- MAJOR FIX: System configs are no longer shadowed on first startup when
/etc/halley/halley.runeexists. - MAJOR FIX: Empty or whitespace-only
HALLEY_WL_CONFIGis treated as unset instead of as a broken explicit config path. - MAJOR FIX: Window-rule opacity now updates live for already-open windows on config reload and title/app-id refreshes.
- MAJOR FIX: Maximized windows stay visually maximized while closing, with close snapshots captured from maximized geometry and maximize state cleaned up after the surface is dropped.
- MAJOR FIX: Close-focus restore no longer causes unnecessary viewport movement during maximized flows.
- MAJOR FIX: Focus-cycle and trail navigation out of maximized/fullscreen sessions now preserve the selected target’s state, raising visible active windows in place and centering offscreen or collapsed targets correctly.
- MAJOR FIX: App icons on normal node markers load asynchronously again, without depending on other overlays warming the icon cache first.
- MAJOR FIX: Close animations wait briefly for capture before automatic active-to-node collapse, fixing the first overlapped auto-collapse snapping directly to a node.
- MAJOR FIX: Animation texture prewarming now works for detached, pending, or off-current-monitor windows, reducing blank or cold-cache frames.
- MAJOR FIX: Tiled transition rendering can stay on stale offscreen caches when fresh captures are deferred, avoiding blank frames during tile movement.
- MAJOR FIX: Repeated tiled
xdg_toplevelconfigures are deduplicated during maintenance relayouts, reducing client lag and avoiding serial churn crashes. - MAJOR FIX: Active cluster members detach correctly when monitor-transfer drags move them away, allowing the source layout to recalculate without the missing window.
- MAJOR FIX: Transferred standalone windows absorb into the target monitor’s active cluster layout by default, while floating and overlap-policy windows remain freely floating and resizable above the tiled plane.
- MAJOR FIX: Stacking-cluster drag/drop behavior has been restored, including top-card hit-testing, reliable extraction, snap-back for in-stack drops, and correct rejoin behavior.
- Fixed Bearings clicks on collapsed cluster core chips so they focus and center the core without opening the cluster workspace.
- Fixed translucent windows blocking direct scanout correctly.
- Fixed opacity application across borders, shadows, popups, badges, close snapshots, and captures.
- Fixed focus-ring config-change previews being controlled by debug config.
- Fixed overlong search text ellipsizing from the left so the newest input remains visible.
- Fixed cluster draft staging so it stays explicit to
clusterand/clustersearches. - Fixed empty Apps search behavior so all apps can be shown.
- Fixed Steam dropdown menus appearing at the parent window’s top-left by applying
xdg_popupreposition geometry before acknowledging reposition requests.
Compatibility notes
halley-sessionremains the recommended public full-session launcher.halley --sessionremains supported, but is now documented as the lower-level session-wrapper, packager, and service-file entry point.- Explicit
halley --config <path>now has the highest config precedence....
Halley v0.2.0 — Focus, Maximize, Shadows, Slots, and TTY Fixes
Added
- NEW: Focus cycling with default
Alt+Tab/Alt+Shift+Tabbindings and a modal overlay switcher showing window previews, app icons, monitor labels, and keyboard hints. - NEW: Field-scoped maximize with default
mod+m, dedicated maximize animation config, monitor-local restore behavior, and pinned-state preservation. - NEW: Cluster slot actions for monitor-local slots 1–10, bound by default to
mod+1..9andmod+0. - NEW: Configurable compositor shadows for windows, nodes, and overlays, with generated defaults plus parser support for per-layer blur, spread, offset, and color.
- NEW: Bootstrap config merging so existing user configs pick up new template sections, options, and default keybinds without overwriting custom
rules,env, orautostart. - NEW: Display-manager session support with shipped Wayland session assets and a native
halley --sessionlaunch path for SDDM and other display managers.
Changed
- MAJOR: Focus cycling is now modal until binding modifiers are released, then commits the selected window, restores fullscreen state as needed, and recenters the pointer.
- MAJOR: Overlap-policy windows now render above fullscreen without immediately forcing fullscreen apps out of fullscreen.
- MAJOR: Maximize sessions are smoother and stricter, with camera zoom transitions, blocked pan/zoom/move/resize while active, reliable restore, and safer rapid re-toggle behavior.
- MAJOR: Cluster slot switching is smarter, panning to target cores, collapsing the current cluster before switching, and toggling the current slot back to a core.
- MAJOR: Drag edge-panning is smoother, using camera smoothing plus zoom-aware, pressure-scaled movement.
- MAJOR: Shipped configs now include current shadow defaults, plus split-config
gatherguidance for cleaner config organization. - Collapsed surface nodes now use the same two-step click flow as core nodes.
- Display-manager startup now runs
halley --sessiondirectly.
Fixed
- MAJOR FIX: Native TTY/DRM stability improved with cleaner scanout recovery after page-flip failures, stalled frame timeouts, and recoverable pending-output release.
- MAJOR FIX: Hotplug handling no longer stalls rendering, replacing periodic DRM topology polling with udev-driven rescans.
- MAJOR FIX: Fullscreen + overlap-policy behavior is much safer, so overlap-rule windows can open above fullscreen without breaking fullscreen locks, zoom locks, pointer panning locks, or direct scanout unnecessarily.
- MAJOR FIX: Display-manager launches now survive SDDM startup correctly, and autostart commands can resolve user-bin apps like
gessod,stasis, andhalley-aperture. - MAJOR FIX: Deferred overlap rules no longer break maximize mode while late rules are still resolving.
- Fixed drag edge-pan timing so render timing variance no longer causes inconsistent pan jumps.
- Fixed hover focus spawning so empty monitor space under the pointer becomes the default spawn target.
- Improved DRM vblank pacing, explicit-sync handling, texture reuse, and EGL/GL renderer logging.
- Preserved
gatherresolution when config files need Halley’s inline keybind fallback, including recursively gathered files.
Halley v0.1.0 — First Orbit
Halley’s first public release is here.
This is the foundation of a spatial Wayland compositor built around Fields, nodes, clusters, and intentional multi-monitor navigation. Each monitor gets its own independent infinite canvas. Windows live as nodes on that canvas, can be grouped into clusters you create deliberately, and can decay gracefully when they drift out of focus.
Halley is still early, and there is a lot more ahead. This project is a long marathon, not a sprint — but this release marks the beginning.
Included in this release
-
Per-monitor Fields
Each display has its own independent infinite 2D canvas with pan and zoom. -
Nodes and decay
Windows exist as nodes on the Field and can dim or collapse over time when they move significantly outside the configurable focus ring. -
Focus Ring
The active eye-shaped region that defines where windows stay active and where decay begins. -
Clusters and cores
Halley’s answer to workspaces: intentionally built groups of windows that collapse into a core on the Field and can be re-entered later. -
Cluster layouts
Support for both weighted tiling and stacking layouts inside clusters. -
Trail navigation
Move backward and forward through recent focus history. -
Bearings
Directional overlays and navigation cues to help orient movement around the current view. -
Jump / Field Jump
Move grabbed windows across monitors between independent Fields. -
IPC
Unix socket control via:
$XDG_RUNTIME_DIR/halley/halley.sock -
Xwayland support
On-demand X11 compatibility throughxwayland-satellite. -
Bootstrapped configuration
On first launch, Halley generates a documentedhalley.runeconfig and inserts detected tty monitors into the viewport section.
Installation
AUR
yay -S halley
or
paru -S halley
For the latest development version:
yay -S halley-git
or
paru -S halley-git
From source
git clone https://github.com/saltnpepper97/halley
cd halley
cargo build --release
Notes
- This is an initial release, not the final shape of the project.
- More systems, refinement, polish, and iteration are still ahead.
- Halley is already usable and real, but it is also still growing into itself.
Thanks
Thanks to everyone following the project this early.
There is a long way to go, and that is part of the point.
First orbit starts here.