Software

A small pile of things I built because the existing options annoyed me enough to fix them. Some are lab tools, some aren’t — poke around below, or use the search on the homepage if you’re hunting for a specific feature.

DockAnchor app icon

DockAnchor

Keeps the macOS Dock pinned to one display across multiple monitors.

A lightweight macOS menu-bar utility for multi-monitor setups. Instead of the Dock jumping to whichever screen your cursor approaches, DockAnchor keeps it anchored to a single display you choose — and remembers that choice per monitor combination.

Key features

  • Pins the Dock to a chosen display; prevents it from activating on secondary screens
  • Remembers your anchor display per combination of connected monitors, restoring it automatically on reconnect
  • Lightweight pointer-monitoring — uses a CGEventTap to clamp cursor position at the Dock’s trigger zone (doesn’t capture keystrokes or other data)
  • Menu-bar app, no background daemon complexity

Requirements: macOS, Accessibility permission (for pointer interception).
Built with: Swift, Swift Package Manager.
License: MIT.


IGV-X app icon

IGV-X

A modern fork of IGV (Integrative Genomics Viewer) built for large epigenomics sessions.

IGV-X is customized for Arabidopsis epigenetics and whole-genome bisulfite sequencing (WGBS) methylation analysis — built around sessions with hundreds of tracks — while staying fully compatible with standard IGV.

Key features

  • Chromosome-name resolution that never crashes — fixes the stock IGV 2.19.5 bigWig NullPointerException on TAIR10 WGBS sessions (Chr1..ChrM vs RefSeq aliases), with case-insensitive, alias-aware resolution across bigWig/bigBed/BAM/BED/VCF
  • Large-session performance for ~900-bigWig sessions: bounded loading threads, async loads, honest progress reporting, viewport culling, caching
  • Relative session paths by default, optional .igvx.json companion file, bookmarks & highlights persisted in the session, cancelable session loading
  • High-quality PNG/SVG/PDF export, multi-track selection, configurable default quantitative ranges, trackpad navigation
  • Organize tracks by genotype → CG/CHG/CHH with editable, remembered rules
  • Diagnostics & error recovery: Diagnose Track/Session, exception dedup/rate-limiting, batch command listener (port 60151)
  • In-app updates from the GitHub releases feed
  • Native macOS app (menu bar, fullscreen, Retina, accessibility), bundled JDK, separate bundle ID and prefs (~/igvx), safe to run alongside stock IGV

Built with: Java 21, Gradle (forked from IGV 2.19.x).
License: MIT.


Firefly app icon

Firefly

Keeps your Mac awake — on demand, on a schedule, or automatically — even with the lid closed.

A macOS menu-bar utility for anyone whose Mac needs to stay awake for a background job: renders, transfers, remote sessions, or anything else that shouldn’t get interrupted by sleep. Beyond the basics, Firefly can trigger itself automatically — while specific apps or processes are running, whenever it’s plugged into power, or on a recurring schedule — and includes safety guards so it won’t drain the battery or run unattended somewhere it shouldn’t.

Key features

  • Prevent idle sleep, keep the display awake, or survive a closed lid (needs AC power) — independently combinable
  • Timers with scroll-to-extend on the menu bar icon, and “until this app quits” sessions
  • Automatic triggers: specific processes running, plugged into power (optionally with lid-closed survival), or an external display connected
  • Recurring schedules for overnight jobs
  • Battery and unplug safety guards
  • Global keyboard shortcut, Shortcuts/Siri support, and a firefly:// URL scheme for scripting
  • Optional automatic update checks

Requirements: macOS 13+.
Built with: Swift, Swift Package Manager.
License: MIT.


Pocket app icon

Pocket

Your menu bar, in your pocket.

A single click that lists every app on your Mac with a menu bar icon — including the ones that don’t currently fit and are quietly out of view — and opens any of them directly. No more hunting through a crowded bar for the one icon you need.

Key features

  • One-click access to every menu bar icon, whether or not there’s currently room to display it
  • Click again (or click elsewhere) to close the list
  • Global keyboard shortcut, optional auto-close on idle/outside-click/fullscreen
  • Launch at login
  • Optional, opt-in update checks — never installs anything without you clicking through to the release page

Requirements: macOS 13+, Accessibility permission (to see which apps own a menu bar icon).
Built with: Swift, Swift Package Manager.
License: MIT.


Middle-Click AutoScroll app icon

Middle-Click AutoScroll

Middle-click anywhere on a page to pan and scroll it in any direction — classic autoscroll, for Safari on macOS.

Safari has never supported the click-drag autoscroll that’s standard in Windows browsers. This adds it: middle-click empty page content to arm autoscroll, then move the pointer to pan the page — up, down, left, right, or diagonally — with speed ramping by distance.

Key features

  • A quick click arms it hands-free (no button held); a press-and-drag stops the instant you let go
  • Speed ramps with distance from the click point, with axis snapping so near-straight drags don’t drift diagonally
  • Scroll bubbling — if the box you started in hits its own scroll limit, autoscroll keeps going on the page behind it
  • A compass cursor shows only the directions actually in effect
  • Per-site enable/disable, adjustable speed, invert-direction option
  • Optional, opt-in automatic update checks — never installs anything without you clicking through to the release page

Requirements: macOS 13+, Safari 16.4+.
Built with: WebExtension (Manifest V3), Swift host app.
License: MIT.