Wayscriber
Real-time screen annotation for Linux and Wayland, inspired by ZoomIt. Draw over any app, zoom into details, keep persistent boards.
Open source
I build open-source tools for the Linux desktop, mostly around Wayland, Hyprland, and Omarchy. By day I'm a web developer working in .NET and JavaScript.
Most of these started as fixes for things that bugged me in my own workflow, so they tend to be local-first and keyboard-friendly. My main project at the moment is Wayscriber, a ZoomIt-style screen annotation tool for Linux and Wayland.
Real-time screen annotation for Linux and Wayland, inspired by ZoomIt. Draw over any app, zoom into details, keep persistent boards.
Screen recording for Omarchy and Hyprland, built on GPU Screen Recorder. Adds session recovery, menus, and bar integration.
A keyboard-driven cockpit for Omarchy: media controls, system metrics, quick settings, clipboard history, and notes.
Roslyn analyzers that catch real reliability and performance mistakes in C#, ASP.NET Core, and EF Core code.
Native tools for annotating, capturing, and driving a Wayland session.
A small C++23/Qt 6 overlay for drawing live annotations on the Omarchy and Hyprland desktop.
A .NET 11 and SkiaSharp screen annotation tool for Linux and Wayland, with drawing tools, boards, capture, zoom, and persistent sessions.
A small Rust/GTK4 keystroke visualizer for Wayland, handy for demos and screen recordings.
Local push-to-talk transcription for Linux, with GPU acceleration and Wayland/X11 output.
The everyday glue: launchers, worktrees, capture pipelines, and secrets.
The Wayland capture and FFmpeg pipeline I use to produce Wayscriber videos, posters, and contact sheets.
Fire-and-forget launchers that run commands as detached systemd jobs or in hidden Hyprland terminals.
A Git worktree helper with a compact wt CLI, interactive pickers, and cleanup workflows.
A Mattermost bridge for the pi and codex coding-agent CLIs, with resumable sessions and progress updates.
A cross-platform TOTP manager with a terminal UI, QR support, and 2FAS backup import/export. The popup is built for hotkey use: Super+Shift+A, type a few letters, hit Enter, and the code is on the clipboard.
Plugins and add-ons I've built for the Omarchy bar and desktop.
Wayscriber controls in the Omarchy bar, with live status, capture and presentation actions, plus quick access to boards and recent sessions.
Upcoming-event countdowns and a two-week agenda from ICS or CalDAV export URLs.
GitHub notifications, review requests, assigned issues, and failed CI in one bar badge.
A bar badge that finds dirty and unpushed repositories across your project roots.
A restart-proof focus timer with work/break cycles and automatic Do Not Disturb.
Dots in the bar that show which app is using your microphone or screen.
Local per-app focus tracking with a daily breakdown and a week-at-a-glance chart.
A quiet status chip that only appears when system or user units fail.
A keyboard-first Quickshell switcher with MRU ordering, search, and live window previews.
A Mission Control-style overview with live thumbnails and drag-to-move workspace organization.
Shows how many windows you've stashed on the minimized workspace and brings them back.
Named drop-down scratchpads that spawn their app if it isn't running yet.
Mount, unmount, and check free space on removable drives through UDisks2.
A one-click bar toggle that strips compositor effects for gaming, then puts your exact Hyprland config back.
Drag-to-arrange displays with mode, scale, rotation, and VRR, remembered per monitor.
A UI for Hyprland's permission rules that keeps them enforced across restarts.
Tunnel state, routing-leak visibility, and control of NetworkManager and systemd VPNs.
A native wallpaper library with Wallhaven search, download, and Omarchy theme integration.
Automates your desktop based on live context like screen sharing, the focused app, time, and battery.
An on-screen keystroke HUD for screencasts, powered by Hyprland's event bus.
Native where it matters.
I reach for Rust, C++, QML, or .NET when a tool needs to feel fast and fit the platform.
Local first.
Private data and everyday workflows should stay on the machine whenever possible.
Keyboard friendly.
Fast paths for the things you do all day, without hiding how anything works.
Built from real needs.
Every tool here started as a fix for something that kept getting in my way.
The same hands build client platforms: .NET architecture, AI integrations, and rebuilds of systems that outgrew themselves.