Skip to content

Add omarchy-studio - #359

Open
the2dl wants to merge 1 commit into
omacom:masterfrom
the2dl:add-omarchy-studio
Open

Add omarchy-studio#359
the2dl wants to merge 1 commit into
omacom:masterfrom
the2dl:add-omarchy-studio

Conversation

@the2dl

@the2dl the2dl commented Sep 8, 2026

Copy link
Copy Markdown

What it is

A Screen Studio-style screen recorder and editor for Omarchy — the polished-product
kind of screen recording that Linux has largely not had.

You record, and then you decide everything else afterwards. Recording captures pixels,
editing captures intent, and export is the only place the two meet:

  • Automatic zoom, derived from your clicks. The clicks are recorded as data, not
    baked in, so the zoom they imply can be retuned, or an individual move deleted, long
    after the take is over.
  • The camera is a separate stream, never composited into the frame — move it,
    resize it, reshape it, mirror it, shadow it, or cut it out of part of the take, after
    the fact.
  • Backdrops with padding, rounded corners and a drop shadow, so a raw capture reads
    as a finished video.
  • Cuts, text, captions, and redaction (blur/pixelate, applied at export at a
    strength calibrated so the preview shows exactly what ships).
  • Nothing is rendered until you export. The editor plays a proxy; a recording is a
    bundle directory whose edit.json is the only thing an edit writes. Delete it and you
    have the raw capture back.

It is built for Hyprland specifically: three capture backends (KMS for 60fps and
sub-rectangle capture, xdg-desktop-portal where a window needs hiding so the camera
self-view stays out of the recording, and hyprland_toplevel_export_v1 for true
single-window capture), a click/cursor daemon sampling the pointer over Hyprland's own
socket, and a HUD the compositor keeps out of the frame.

Docs: https://the2dl.github.io/omarchy-studio/ · Repo: https://github.com/the2dl/omarchy-studio

The package

{"source": "local"} with an upstream.git_tags declaration, so bin/sync-upstream
follows new releases without another PR here.

  • Both architectures. arch=('x86_64' 'aarch64'). Upstream CI builds and runs the
    full suite natively on both on every push, including a check that the compiled
    single-window recorder is actually inside the package.
  • Sources the release tarball with a pinned sha256, not git+…#tag=.
  • Installs the tree whole under /usr/lib/omarchy-studio rather than split across
    FHS: the entry points locate lib/, editor/, daemon/ and contrib/ relative to
    their own resolved path.
  • Does not take /usr/bin/omarchy-capture-screenrecording — omarchy already owns
    that path. The recorder goes on PATH as omarchy-studio-record, which is the better
    name anyway: this is the studio's recorder, not a replacement for omarchy's. Nothing
    internal is affected; callers reach it by absolute path.
  • check() runs the suite (921 tests) minus tests/test_parity.py, which renders
    frames through QML and compares them pixel-wise against the ffmpeg export. That one
    wants a live compositor — a VideoOutput grabs empty under every headless Qt
    platform — so it belongs in a graphical session rather than on a build host.

Runtime deps are all in Arch repos plus omarchy itself (for omarchy-shell, which
refreshes the bar indicator, and omarchy-notification-send). faster-whisper is
optional and only used for caption transcription.

Testing

Built and installed on Omarchy (x86_64) from this exact PKGBUILD; the aarch64 package is
built and published by upstream CI on native arm64 runners.

A Screen Studio-style screen recorder and editor for Omarchy: record, then zoom,
cut, and polish afterwards without ever touching the capture.

Local package following upstream git tags, so bin/sync-upstream picks up new
releases without further changes here. Builds for x86_64 and aarch64; upstream
CI builds and tests both natively on every push.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DPkig1DCeUWyyY5PQXsQUH
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants