Repository navigation
Releases: gfhdhytghd/HyprCapture
Release list
v0.5.0-v0.57.0
Hyprland 0.57, on-demand saving and smooth selection on large outputs.
Hyprland 0.57
- Targets the latest official Hyprland release, v0.57.0. For Hyprland's development
main, use thehyprland-masterbranch. - The plugin refuses to load when the Hyprland headers it was built with do not match the running compositor; rebuild it for that compositor (
hyprpm update). - The Nix flake pins the official v0.57.0 release.
New
- Save individual captures on demand (#40): Save in the thumbnail menu, a quick Copy/Save row on unsaved thumbnails, and an editor Save button when automatic saving is off.
open,open_editorandquickaccept{ save = ..., clipboard = ... }to override the defaults for one capture.
Performance
- Dragging a region selection repaints only the area around the selection, so selecting stays smooth on 6K and other large outputs.
- The editor layers SDR annotations over an immutable FP16 HDR backdrop and no longer converts the full frame on every interaction.
Fixed
- Fullscreen window captures no longer include borders and shadows.
- The real background stays under fully transparent windows, and background-sampling decorations stay out of offscreen window captures (#34).
- Scrolling captures keep sticky panels, release stale ones, and no longer repeat or stall on fixed bottom overlays.
- The HDR overlay's first frame appears in HDR instead of flashing SDR.
- A config reload no longer drops the rule that keeps compositor animations off the capture overlay.
hyprctl reload full-resetkeeps HyprCapture's Lua functions and options.- Captures no longer advance or dirty the live blur state of the monitor being captured.
- With
render:use_shader_blur_blend, a real-background window capture reports the blurred background as unavailable instead of saving an unblurred one. - Recording intermediates are kept when APNG conversion fails, and pointer focus survives touchpad scroll gestures.
v0.4.2-0.56.2
Window highlights follow Hymission thumbnails.
Fixed
- In window and fusion modes, hovering a window inside Hymission Overview or Stage now brightens its thumbnail instead of the window's original position, using the same clipped rounded shape as the outline.
v0.4.1-0.56.2
Session-lock safety, sturdier scrolling captures, and faster HDR overlays.
Security
- Locking the session now stops HyprCapture from observing or redirecting input: every input hook, dispatcher and Lua entry yields to the lock screen, scrolling sessions are aborted without moving pointer focus, open selection and editor helpers close, and active recordings are stopped and saved. Nothing resumes after unlocking.
Fixed
- Scrolling screenshots handle animated and fixed page elements: motion is estimated from several regions, seams avoid changing areas, and uncertain frames keep the existing result instead of corrupting it.
- Window highlights in the editor are clipped to the window's rounded frame.
Faster
- HDR backdrop conversion no longer delays the overlay's first paint.
v0.4.0-0.56.2
HDR screenshots with gain-map HEIC, native HDR editing, and Omarchy installation.
HDR screenshots and editing
- Capture fullscreen, regions, windows and scrolling screenshots on HDR outputs without discarding their linear floating-point pixels; mixed HDR/SDR captures keep the HDR foreground.
- Native color-managed HDR previews in the overlay, in-place editor and thumbnails, with an SDR fallback when the required Wayland protocols or 10-bit buffers are unavailable.
- Save HDR HEIC with an SDR base and an ISO 21496-1 gain map: HDR viewers show extended highlights, other viewers show the SDR base. Transparent backgrounds and annotations stay in the export.
- Switch between SDR and HDR, optionally save an SDR PNG alongside the HEIC, and choose HDR or SDR for clipboard and drag output. The control appears only while a display has HDR output enabled.
- Adjust annotation HDR gain with native HDR color previews; gain is preserved across SDR switches.
Editor and capture
- Fusion mode is now the default: drag anywhere to capture a region, click a window to capture it, or click the background to capture the monitor. Set
fusion_mode = falsefor the separate modes. - Notifications now use the desktop notification service by default (
notification_backend = "system"); errors still use the Hyprland overlay. - Improved text editing, matching hue and HDR-gain slider indicators, and more responsive strokes while HDR previews update.
- Scrolling screenshots keep pointer focus through touchpad motion, and capturing real backgrounds no longer conflicts with Hymission hooks.
Recording
- Convert HDR, wide-gamut and ICC-managed captures to SDR before video readback or export, with explicit BT.709 color conversion and range metadata. Recordings remain SDR.
Installation
- Install as an Omarchy shell plugin: dependencies and the build are handled in a prompt, bindings and the Screenshot/Screenrecord menu entries are applied at runtime, and the plugin rebuilds after Hyprland or source updates. The echo canceller is set up in the background without delaying capture.
- HDRView packaging with gain-map HEIC decoding and Wayland HDR fixes; gain-map codec dependencies and licenses for CMake, hyprpm and Nix.
- Tests stay available for development but are disabled by default and during hyprpm, Nix and Omarchy installs; enable them with
-DBUILD_TESTING=ON.
Security
- Recordings, screenshots, clipboard copies, thumbnails and helper audio files are created owner-only from the start instead of being restricted after writing.
- Every build-time download is pinned to a checksum: libultrahdr uses the system libjpeg-turbo, libheif and all echo-canceller dependencies come from SHA256-verified archives, and nested dependency downloads are disabled.
Upgrade notes
- Update both the compositor plugin and the Qt helper together for the new HDR transport.
- Native HDR preview needs Wayland color-management-v1 parametric PQ support, viewporter and 10-bit shared-memory buffers. Building now requires the system
libjpeg-turbo,x265andlibde265.
v0.3.0-0.56.2
HyprCapture 0.3.0 for Hyprland 0.56.2
Native scrolling screenshots, an in-place editor, desktop pins, and Hymission Stage capture.
New
- Native scrolling screenshots: scroll inside a selected region or window in the editor to grow a long image, revisit captured content, and keep annotations aligned with the page.
- In-place screenshot editor through
open_editor(): rectangles, ellipses, arrows, lines, pen, highlighter, numbered markers, mosaic, spotlight, undo/redo, and zoom/pan. - Movable, resizable multiline text boxes with a floating toolbar for font, pixel size, and color.
- Desktop pins that stay above normal windows and then follow the normal save, clipboard, and thumbnail flow.
- UI translations for Simplified and Traditional Chinese, Japanese, German, French, Spanish, and Korean, selected through the new
languageoption. - Capture windows from Hymission Stage, center them in the editor, and match selection outlines to their displayed rounded corners.
Faster
- The capture overlay starts sooner: the Qt helper launches in parallel with compositor capture, and panels and icons are created on demand and cached.
- Frozen screenshot artifacts are memory-mapped instead of copied pixel by pixel.
Fixed
- Recordings no longer hang when the compositor was started from a terminal; the recorder's stdin now comes from /dev/null (#25, contributed by Vedaru).
- Nix build fixes for #29: read-only store paths whose owner is unmapped inside the build sandbox are now trusted (writable paths are still rejected), and supervised processes handle stop signals under BusyBox ash. A sandboxed build of the repository flake passed its tests locally; the reporter's own setup has not been verified yet.
- Microphone-only recordings ignore changes to application audio, and only capture dropdown settings are persisted.
- Toolbar icons now use Google Material Symbols and render sharply at any scale.
- Fix region scrolling captures that stayed at their original size or misaligned during small movements and repeated text; foreground detail aligns scrolling text over a stationary smooth background, with safer history matching and fixed-header detection.
- Flush pointer motion before forwarding touchpad scrolling so applications such as Zen receive input at the intended capture position.
- Keep the captured window foreground separate from the real or blurred background, and preserve editable backgrounds after a scrolling capture.
- Preserve top-origin monitor crops in region recordings (#32) and editor geometry when creating scaled desktop pins (#33).
- Reset offscreen render state between monitor captures and stabilize asynchronous UI/audio regression checks.
Upgrade notes
- Remove the old
in_place_edit_toolbarsetting and bindhl.plugin.hyprcapture.open_editor()for editing.open()retains its confirmation behavior andquick()captures directly. - Build against Hyprland 0.56.2 and update both the plugin and Qt helper. Scrolling image matching adds an OpenCV dependency.
- Update Hymission alongside HyprCapture to use the Stage renderer's exact selection radius; older Hymission versions use a scaled-radius fallback.
Validation and remaining checks
- Release build and automated regression coverage, including isolated GTK scrolling, scale-2 region stitching, independent backgrounds, and Stage selection geometry. A stationary-backdrop fixture preserves opaque foreground pixels exactly; it does not claim whole-image equality for a background that does not scroll.
- Production-desktop kitty and physical touchpad/touchscreen acceptance remain pending after updating the plugin and helper. Dynamic or ambiguous page content may require recovering overlap.
Source release with GitHub-generated archives; no prebuilt binary attachments.
v0.2.8-0.56.2
HyprCapture 0.2.8 for Hyprland 0.56.2
Changes since v0.2.7-0.56.1:
- Preserve actual capture timestamps in video recordings instead of accumulating repeated frames; keep audio aligned and prefer hardware HEVC for oversized automatic recordings.
- Reduce window capture work with compact render targets and cached GPU exports. Add fenced window streaming, frame-bound input geometry, and target lifecycle checks.
- Add recording audio modes, device selection, application audio capture, mixing presets, manual gain controls, live meters, and PipeWire WebRTC echo cancellation.
- Add a native DTLN-AEC candidate with validated CPU selection policy and optional OpenVINO NPU support. Speech quality, real recording, and long-duration acceptance remain pending.
- Add first-frame recording previews, finalization animation, optional restoration of capture settings, centered recording controls, and narrow-toolbar layout fixes.
- Improve rotated/scaled capture handling, encoder/backend fallback, countdown cancellation, screenshot notifications, and window selection controls.
Build dependencies now include FFmpeg development libraries (libavformat, libavcodec, libavutil). DTLN runtime/model installation is handled by the included AEC installation scripts; see README.md for prerequisites and candidate limitations.
Validation: Release build and full CTest suite. Runtime plugin update/reload and physical recording acceptance remain user-side checks.
Source release, with GitHub-generated source archives and no prebuilt binary attachments.
v0.2.7-0.56.1
HyprCapture 0.2.7 for Hyprland 0.56.1
Changes since v0.2.6-0.56.0:
- Preserve the selected background mode for window screenshots instead of collapsing real and transparent output into follow-system.
- Clip painted window backgrounds to the visible rounded frame while retaining transparent edge and shadow pixels.
- Render window artifacts directly into the RGBA framebuffer using Hyprland's snapshot path, preserving client alpha without heuristic matte recovery.
v0.2.6-0.56.0
HyprCapture 0.2.6 for Hyprland 0.56.0
Changes since v0.2.5-0.56.0:
- Move plugin actions and helper callbacks fully to the Hyprland Lua API; remove legacy dispatcher registration and fallback paths.
- Convert README configuration and key-binding examples to Lua.
- Accept immutable Nix store paths while continuing to reject writable child directories and executables.
v0.2.5-0.56.0
HyprCapture 0.2.5 for Hyprland 0.56.0
Changes since v0.2.4-0.55.4:
- Add Hyprland 0.56 compatibility and Nix flake packaging.
- Complete fusion capture interactions and improve multi-monitor overlays, synchronized thumbnails, and monitor targeting.
- Fix transformed-monitor captures and recordings, fullscreen recording behavior, scrolling-window selection, cursor capture, and fullscreen preview geometry.
- Add configurable notification backends and a recording-state socket for external integrations.
- Add the hyprcam watermark preset and harden recording-state integration.
v0.2.4-0.55.4
HyprCapture 0.2.4 for Hyprland 0.55.4
Changes since v0.2.3-0.55.4:
- Fix fullscreen screenshots on transformed multi-monitor layouts, including rotated secondary outputs being cropped or inverted.
- Avoid unsafe compositor readback state that could crash Hyprland or capture overlay blur.
- Show result thumbnails sooner by launching a small preview before full-size PNG save and clipboard work finish.