$ show SnapXL/SnapX
SnapX is a cross-platform screenshot and screen recording tool, forked from ShareX, with extensive upload capabilities to dozens of services (image hosts, file storage, pastebins, URL shorteners). It features image effects (adjustments, filters, manipulations), OCR via PaddleOCR, QR code generation/scanning, hotkey automation, and clipboard monitoring. The application is built with Avalonia UI and .NET 10, targeting Linux, Windows, macOS, and FreeBSD. It includes a CLI, a native messaging host for browser integration, and a comprehensive settings system. The codebase is in early access with many features ported from ShareX but several stubs and incomplete implementations remain, particularly in screen recording, image annotation, and some uploaders. The architecture follows a core library (SnapX.Core) with separate UI (SnapX.Avalonia) and CLI projects, using MVVM pattern and dependency injection. While functional, the project exhibits significant technical debt and incomplete feature parity with its predecessor.
The LLM identified 7 files worth highlighting for reuse:
A self-contained static class providing image manipulation utilities (resize, crop, blur, skew, round corners, shadow, reflection, slice) using SixLabors.ImageSharp. Could be extracted as a standalone library for any .NET image processing project.
Cross-platform system information collector that retrieves OS version, CPU, memory, GPU, and monitor details using platform-specific strategies (WMI, sysctl, /proc). Reusable for any application needing hardware/software diagnostics.
A generic pattern parser that substitutes variables like %t, %pn, %i, %ra, %guid, date/time, and random strings. Extensible and self-contained, suitable for file naming, URL generation, or any templating need.
A simple generic fixed-size queue that automatically discards oldest items when capacity is exceeded. Useful for sliding window statistics or caching recent items.
A fast, thread-safe random number generator using xorshift128+ algorithm. Suitable for high-throughput scenarios where System.Random's locking is a bottleneck.
OAuth 1.0a helper that handles signature generation, token exchange, and authorization flows. Reusable for any .NET application needing OAuth 1.0a integration.
OAuth 2.0 implementation for Google APIs with token refresh and proof key for code exchange (PKCE). Reusable for any Google API integration.