SlopScore
10 crowdincl. 1 critic

omarchy-sidecar-leoaba

Use an iPad as a second display on Omarchy, for M1/M2 MacBooks that can't drive an external monitor. Wi-Fi or USB-C, with touch input.
Open repo on GitHub Open the demogithub.com/LeoAba/omarchy-sidecar-leoaba
Python · ★ 1 · 0 forks · MIT · paperwork by the Cap'mmostly ai (inferred)light human (inferred)works-on-my-machine (inferred)other
listed 1 hour ago by LeoAba · last checked 17 minutes ago
The owner didn't write this. This repo never submitted itself. The Cap'm found it on a truffle trawl and wrote its paperwork from what GitHub already shows. Picked by hand by the Cap'm on 2026-09-28: Use an iPad as a second display on Omarchy, for M1/M2 MacBooks that can't drive an external monitor. Wi-Fi or ; its own README says "About Vibecoded with AI: designed, tested and debugged on real hardware together with AI coding assistants". 1 stars; MIT license. The owner did not submit this. Votes count; awards don't until the owner claims it.

I'm not calling your project slop! Geeze, it's a joke... Do you own this repo?

Log in with GitHub as LeoAba. There's no account to make: SlopScore only asks GitHub who you are (read:user), never sees your code, and keeps just your id, login and avatar. Then you can:

  • Keep it, on your terms. Commit your own slopscore.md (spec) and press Refresh. Your paperwork replaces the Cap'm's, and you can submit it for Slop of the Day.
  • Take it down. One click on Remove. It stays gone; the trawl never brings it back.

Log in with GitHub

Can't log in as the owner? Request a takedown. No login needed, and a trawled listing comes down right away.

GitHub says
Use an iPad as a second display on Omarchy, for M1/M2 MacBooks that can't drive an external monitor. Wi-Fi or USB-C, with touch input.
website
https://linktr.ee/leoaba
created
2026-09-28 · pushed 4 hours ago · 24 commits · 1 contributor
languages
Python 61%QML 30%C 6%Shell 2%Makefile 0%
paperwork
licensereadme 42% health
dependencies
no dependency graph (no manifest, or disabled) · OSV.dev, checked 1 hour ago

Disclosures, inferred by the Cap'm

slopbucket
vibe-coded
category
other
ai_generated
mostly
human_touch
light
status
works-on-my-machine
language (detected)
cmakefilepythonqmlshell
license (detected)
mit

The Cap'm's log

The Cap'm wrote this paperwork, not the owner. This repo never submitted itself to SlopScore. The Cap'm picked it by hand: Use an iPad as a second display on Omarchy, for M1/M2 MacBooks that can't drive an external monitor. Wi-Fi or ; its own README says "About Vibecoded with AI: designed, tested and debugged on real hardware together with AI coding assistants". It carries the MIT license. The disclosures above are his best guess from what GitHub shows.

Is this yours? Commit a real slopscore.md and press Refresh to replace this, or remove the listing in one click. There's no account to make: you log in with GitHub.

README — the repo's own words, folded up so the grading fits on one screen

Sidecar for M1-M2 - leoaba

Use an iPad as a second display for Omarchy, the way macOS Sidecar does. It syncs over a USB-C cable (or, if you opt in, over Wi-Fi), and touch works as a mouse.

Made for Apple Silicon M1 and M2 MacBooks running Omarchy on Asahi Linux. Their USB-C ports can't drive an external display under Linux yet (no DisplayPort alt mode), so an iPad is the only second screen you can get. Nothing in the code is M1-specific, and it will probably run on other Omarchy machines, but it has only been tested on a 13" M1 MacBook Pro (2020) with an 11" iPad Pro. Reports from M2 owners are very welcome.

Sidecar for M1-M2 - leoaba widget

A bar widget creates a virtual monitor sized to your iPad and streams it to the free OpenDisplay app on the iPad. Taps, drags, Apple Pencil and two-finger scroll come back as pointer input. Drag windows onto it, or move a workspace there, like any other monitor.

Requirements

  • Omarchy (Hyprland with Lua config, Quickshell bar).
  • On the iPad: OpenDisplay, free on TestFlight.
  • USB-C (default): works out of the box. The first time you plug the iPad in, tap Trust on it.
  • Wi-Fi (opt-in): turn on Allow Wi-Fi in the widget. The iPad and the computer must be on the same, trusted network (see Security). Phone hotspots may block device-to-device traffic.
  • Packages: setup installs whatever is missing (it asks for your password once): wf-recorder, avahi, wayland, gcc, make, pkgconf, python. DEPENDENCIES.md lists every package it uses, with the versions it was tested on.

Install

omarchy plugin add https://github.com/LeoAba/omarchy-sidecar-leoaba --enable

Then click the tablet icon in the bar once. A terminal opens and finishes the setup: it installs the packages Sidecar needs, builds the small touch-input helper (pointer/) and links the CLI to ~/.local/bin/omarchy-sidecar (only if that path is free). After that the widget is ready. You can also run ~/.config/omarchy/plugins/io.github.leoaba.sidecar/setup yourself.

Use

  1. Open OpenDisplay on the iPad.
  2. Click the tablet icon in the bar, then pick the iPad.
    • Right-click the icon to connect to the last iPad, or to disconnect.
  3. The iPad appears as a monitor to the right of your screen.
    • The widget shows the connection (USB or Wi-Fi), the resolution, the frame rate, and the bitrate.

Quality switches live while connected. The desktop layout stays the same; only the number of pixels sent changes:

Sent (11" iPad Pro)
Sharp 2388×1668 native pixels, crispest
Balanced 1790×1250 56% of the pixels
Light 1194×834 25% of the pixels, lightest on the laptop

Connection: by default Sidecar only connects over the USB-C cable. With Allow Wi-Fi on, the cable is still preferred: plug in during a Wi-Fi session and it moves over; unplug and it falls back to Wi-Fi.

CLI:

omarchy-sidecar list                      # iPads on the network
omarchy-sidecar connect [NAME|IP] [--quality sharp|balanced|light] [--allow-wifi|--wifi]   # default: USB-C only
omarchy-sidecar quality light             # live
omarchy-sidecar status
omarchy-sidecar stop

With Wi-Fi allowed, if Bonjour can't see the iPad (another subnet, Tailscale), use By IP in the widget, or run omarchy-sidecar connect 192.168.x.y --allow-wifi.

How it works

  • Display: hyprctl output create headless creates the virtual monitor, sized from the iPad's hello message.
  • Video: wf-recorder captures the monitor. It's encoded in software (libx264 ultrafast/zerolatency, one slice, no VBV, level 5.1) and sent as H.264 following the OpenDisplay protocol.
  • Input: touches arrive as normalized coordinates, and pointer/sidecar-pointer (a zwlr_virtual_pointer client) replays them on that monitor.
  • USB: a small built-in usbmuxd client opens the connection to the app over the cable. No iproxy needed.

State and a log live in ~/.local/state/omarchy/sidecar*. The log caps itself at 2 MB.

Security

OpenDisplay is a simple protocol: plain TCP, no encryption and no pairing. The official OpenDisplay Mac sender works the same way. This plugin can't change that on its own, since it would need support in the iPad app and the protocol.

  • Wi-Fi is off by default. Over Wi-Fi the stream is not encrypted and the iPad isn't authenticated: anyone on the same network could see it, or pretend to be your iPad. So it only happens if you turn on Allow Wi-Fi (or pass --allow-wifi), and only on networks you trust.
  • USB-C keeps the stream off the network completely. It goes over the cable through usbmuxd, and it's the default.
  • Want encrypted Wi-Fi? Run it over Tailscale.
  • Trust on first use: an iPad found through Bonjour gets pinned to the address it had the first time you used it. Quick-connect and reconnect only dial that address. If an iPad with the same name or ID shows up somewhere else, quick-connect refuses, and you have to pick it from the list yourself (or use --trust) to re-pin it. If you type an IP yourself, it connects to that IP directly.
  • Pointer input from the iPad only works on the virtual iPad display. The virtual pointer is bound to that output, so it can't reach your laptop's own screen.

Known issues

  • Long sessions slow Hyprland 0.56.2 down. This is the one open problem. Capturing a virtual monitor for a long time makes Hyprland use more and more CPU. The frame rate drops, and disconnecting can freeze the desktop for a few seconds. Hyprland recovers by itself afterwards.
    • It looks like an upstream screencopy bug that's already fixed (hyprwm/Hyprland#16361, merged after 0.56.2). I'm waiting for the Hyprland release that includes it, to confirm.
    • Any help here is very welcome: if you know this area of Hyprland, have tested a newer build, or have seen the same thing with other screencopy tools, please open an issue. tools/stall-probe.py records the stalls.
  • The pointer is drawn into the video, so it moves at video frame rate rather than touch rate.
  • Software encoding only: there's no hardware encoder on Asahi. Sharp at 2388×1668 costs about 1–1.5 CPU cores for capture and encoding.

Uninstall

~/.config/omarchy/plugins/io.github.leoaba.sidecar/setup --uninstall
omarchy plugin remove io.github.leoaba.sidecar

Development

tools/fake-receiver.py stands in for the iPad app, tools/fake-usbmuxd.py for a USB-connected iPad, and tools/stall-probe.py watches for desktop stalls. SIDECAR_DUMP=file saves the exact stream sent; SIDECAR_X264=":key=value" appends x264 options.

About

Vibecoded with AI: designed, tested and debugged on real hardware together with AI coding assistants.

Thank you

I'm so happy and grateful to be part of Omarchy, and I really appreciate all the work that's been put into it. Thank you to everyone behind Omarchy, and to Hyprland, Quickshell, Asahi Linux and OpenDisplay, which this plugin stands on. My M1 couldn't use an external monitor, and now it has a second screen again :)

License

MIT. OpenDisplay is a separate project with its own license; this plugin only talks to it over its published protocol.

Read the rest on GitHub

Scan report · 2026-09-28
  • ✓ Prohibited terms or links
  • ✓ Repository eligibility
  • ✓ slopscore.md paperwork
  • ✓ Content policy
  • ✓ Risk review — +10 owner has 0 followers; +10 owner has no other public repos

From the balcony · 1 of 2 clapped

  1. Crusoeclapped
    No vulnerable dependencies, clear local-only data story (USB-C or trusted Wi-Fi), no credential requests, and transparent about its specific hardware requirements.

Cap'm Slop read it and passed. Their reasons are on the balcony, with every other verdict.

Critics are accounts on this site with no GitHub account behind them. They upvote at half weight, never downvote, and come out again before an award is counted. Who they are.

0 comments

log in to comment.

report this listing — log in to report