ghostwriter is a cross-platform desktop Markdown editor (Qt/C++) focused on distraction-free writing. In production, it provides a rich editing experience with live HTML preview, syntax highlighting for GitHub-Flavored Markdown (via cmark-gfm), LaTeX math rendering (via bundled MathJax), customizable themes, spell checking via KDE Sonnet, find/replace with regex support, document statistics (word count, readability indices, session analytics), and export to HTML, PDF, ODT, EPUB, and LaTeX using external tools like Pandoc or MultiMarkdown. The architecture is a standard Qt desktop application with singleton services (ExporterFactory, AppSettings, CmarkGfmAPI), a factory pattern for exporters, and a signal/slot-driven UI. Key entry points are the MainWindow (orchestrating editor, preview, sidebar, and menus), MarkdownEditor (custom QPlainTextEdit with overridden painting and input handling), and HtmlPreview (QWebEngineView with a QWebChannel bridge for live updates). Data flows: user types Markdown → MarkdownDocument (wraps cmark-gfm AST) → syntax highlighter updates → preview regenerates HTML via exporter → MathJax renders any LaTeX in the preview. External dependencies include Qt (5 or 6), KDE Frameworks (Sonnet, KConfigWidgets, KCoreAddons), and the bundled cmark-gfm and MathJax libraries. Export optionally depends on Pandoc, MultiMarkdown, or cmark command-line tools. The codebase demonstrates solid software engineering practices: clean separation of concerns, use of design patterns (singleton, factory, decorator, proxy), and extensive use of Qt's meta-object system for decoupled communication.
This repository implements a Linux desktop GUI for managing WireGuard VPN profiles. It is built using the Tauri v2 framework, combining a Rust backend for system-level operations (connection management, encryption, file I/O) with a Next.js 16 (React 19) frontend for the user interface. The application allows users to create, import, export, connect, and disconnect WireGuard tunnels, and provides optional at-rest encryption for profile data using a user-defined PIN. The architecture follows a clean IPC-based separation of concerns. The frontend communicates with the Rust backend exclusively through typed Tauri commands defined in `lib/effects.ts`. The backend in `src-tauri/src/main.rs` manages application state, executes WireGuard commands via shell scripts (`wg.sh`), and handles encryption via a dedicated security module. The UI is built from a comprehensive library of ~40+ composable, accessible components in `components/ui/`, demonstrating a strong commitment to frontend architecture and design system principles. The most reusable assets are the Rust security module (`security.rs`), which implements PIN-based encryption using Argon2id and XChaCha20-Poly1305 in a self-contained manner, and the typed IPC service layer (`lib/effects.ts`), which cleanly decouples the UI from the backend. The UI component library, while styled for this project, follows an architectural pattern (atomic, composable primitives) that is directly transferable to other React projects. The project is actively maintained with CI/CD, E2E testing, and semantic versioning, though it carries some technical drift in its Nix build configuration (targeting Tauri v1) and deprecated plugin permissions.
Psst is a native desktop Spotify client written in Rust, designed as a fast, lightweight alternative to the official Electron-based client. It implements the proprietary Spotify session protocol (Shannon cipher, Diffie-Hellman key exchange, Mercury messaging) to stream audio directly, bypassing the Web API for playback. The application is structured as a workspace with three crates: `psst-core` (session management, audio pipeline, caching, Last.fm scrobbling), `psst-gui` (Druid-based GUI with controllers, widgets, and Web API integration), and `psst-cli` (simple command-line player). The GUI features a full browsing experience (home, search, library, artist/album/playlist/show details, lyrics, recommendations, credits) with async data loading via a Promise pattern and remote image caching. The audio pipeline includes decryption, decoding (symphonia), resampling, normalization, and output via cpal or cubeb. Authentication uses OAuth2 with PKCE and supports user-provided Spotify Client IDs. The project is actively developed with rolling releases and cross-platform builds (Windows, macOS, Linux).
SongRec is a Linux desktop application (with CLI counterpart) that recognizes songs by sending audio fingerprints to Shazam's proprietary API. It is written in Rust and uses GTK4/libadwaita for the GUI. The architecture is a multi-threaded monolith with dedicated threads for microphone capture, audio processing (fingerprinting), HTTP communication with Shazam, and the GUI event loop. External dependencies include Shazam's servers (reverse-engineered endpoint), FFmpeg for audio file decoding, and platform audio backends (CPAL, PulseAudio, ALSA). The application provides persistent song history with CSV export, favorites, MPRIS integration, system tray icon, and configurable request intervals to handle rate limiting. The codebase shows good engineering practices with trait abstractions for audio backends, a typed channel message system, and versioned preferences. A separate Python reference implementation exists in the `python-version/` directory but is not the primary codebase.
Mouser is an open-source, cross-platform (Windows, macOS, Linux) Logitech mouse remapper that serves as a local, telemetry-free alternative to Logitech Options+. It is a desktop application built with PySide6 and Qt Quick (QML) for the user interface, with platform-specific low-level mouse hooks (WH_MOUSE_LL on Windows, CGEventTap on macOS, evdev+uinput on Linux) to intercept and remap button presses and gestures. The core engine orchestrates per-app profile auto-switching, gesture recognition (swipe detection), a radial actions ring, DPI/SmartShift/haptic feedback control via HID++ protocol, and cross-platform shortcut injection. The application also includes an auto-updater, system tray integration, multi-language support (English, Simplified/Traditional Chinese), and a comprehensive test suite. While primarily a desktop application, it contains some research-like elements such as detailed HID++ protocol reverse engineering and a community-driven device catalog.
This repository contains a desktop application for managing Nintendo Switch emulators, built with Tauri (Rust backend) and Vue 3 (frontend). It supports installing, updating, and configuring multiple emulators including Yuzu, Ryujinx, Eden, and Citron. The application provides features for firmware management, key installation, cheat code management, save backup/restore, and a self-update mechanism. The backend uses a layered architecture with commands, services, repositories, and models, while the frontend uses Vuetify 3 components and Pinia state management. The download subsystem is particularly notable, featuring a unified DownloadManager trait with two implementations: one using the native Rust bytehaul library and one using the aria2 external tool as fallback on Windows. The code also includes sophisticated network utilities with DNS-over-HTTPS resolver, GitHub API circuit breaker, mirror fallback chain, and adaptive parallelism. Configuration is persisted atomically with debounced saves, and progress is broadcast to the frontend via a typed event system. The codebase demonstrates good engineering practices with clear separation of concerns, error handling via typed AppError/AppResult, extensive test infrastructure (though many tests are marked ignored as they require network access), and platform-specific handling for Windows, macOS, and Linux. However, the UI is entirely in Chinese, and some external dependencies (CDN URLs, emulator project APIs) may require ongoing maintenance.
The system-monitoring-center is a Linux desktop application for real-time system resource monitoring and management. It provides a tabbed interface displaying CPU, memory, disk, network, GPU, sensors, processes, services, users, and system information. The application allows users to monitor performance metrics, manage processes and services, and view detailed hardware information through a modular architecture. Built with Python and Tkinter using the Sun Valley theme, the application follows a modular structure where each tab (CPU, Memory, etc.) implements a consistent interface (tab_gui, initial_func, loop_func). Core system data is gathered by the Libsysmon module via /proc, /sys, and system commands (dmidecode, lspci, etc.). The GUI features interactive charts, process/service management capabilities, and supports internationalization across 15+ languages. Configuration is managed through a version-aware system in Config.py. Key reusable components include Common.py for generic GUI utilities (sortable treeviews, search entries, charting canvases) and Config.py for persistent settings management. The application demonstrates good engineering practices with clear separation of concerns, active maintenance, and low technical drift despite Linux-specific dependencies.
This is a graphical editor for creating and managing bash scripts using a node-based interface. Users can visually construct bash scripts by dragging and dropping nodes representing different bash constructs (commands, flow control, variables, etc.) and connecting them to define execution flow. The application generates the corresponding bash script from the visual representation and allows users to run and view the output directly within the editor. The application follows a modular architecture with clear separation between the graph model (nodes and edges), the view (UI components), and the controller (application logic). It uses PySide6 for the GUI and implements features like project management, syntax highlighting, theme support, and undo/redo functionality. The code demonstrates good software engineering practices with proper encapsulation, reusable components, and attention to user experience details.
Heimer is a cross-platform desktop mind map editor built with Qt (C++17). It provides a graphical interface for creating, editing, and organizing mind maps with features like adjustable grid, automatic layout optimization, undo/redo, copy/paste, image embedding, and export to PNG/SVG. The architecture follows a layered design: domain layer (Graph, MindMapData, LayoutOptimizer), application layer (services, state machine, settings proxy), view layer (Qt widgets, QGraphicsScene/View, dialogs), and infrastructure layer (file I/O, XML serialization). Key entry points include main.cpp, Application class, MainWindow, EditorView, and EditorService. Data flows from user interactions through EditorView to EditorService, which manipulates the MindMapData (graph) and triggers serialization via AlzFileIO. External dependencies are limited to Qt (5 or 6) and two bundled small libraries (SimpleLogger for logging, Argengine for CLI argument parsing). The layout optimizer uses simulated annealing to arrange nodes, and undo/redo is implemented via snapshot-based state capture. The codebase demonstrates solid engineering practices with unit tests, CI/CD pipelines, and multi-language support.
Mindolph is a desktop knowledge management application built with JavaFX. It provides integrated support for mind maps, markdown, PlantUML diagrams, and CSV files, along with AI-powered features such as text reframing, summarization, and chat via various LLM providers. The application features a modular architecture with core, base, FX, and domain-specific modules, an event-driven communication system, a plugin/extension system for mind map operations, and a preference management system. Users can manage workspaces, search within files, and use reusable snippets.
This repository is a curated, community-maintained catalog (awesome list) of high-quality macOS applications and tools, organized by categories such as developer tools, design, AI tools, utilities, and more. It is primarily a multilingual markdown document (English, Chinese, Korean, Japanese) with extensive metadata per entry (name, description, link, badges for open source, freeware, etc.). The repo also includes automated build scripts that parse the markdown into structured JSON (via `build/ast.mjs`) and generate RSS feeds tracking recent additions (via `build/feed.mjs`). The output is published as an npm package (`awesome-mac`), a Docker static site, and GitHub Pages. While not a traditional data research or software application, it functions as a living data catalog with programmatic consumption interfaces. The build pipeline and multilingual synchronization patterns are notable for reuse in other curation projects.
Legacy Notepad is a Windows desktop text editor application built with C++17 and Win32 API as a lightweight alternative to Notepad.exe. It features multi-language support (English/Japanese), multi-encoding text handling (UTF-8, UTF-8 BOM, UTF-16 LE/BE, ANSI), rich editing capabilities (word wrap, font selection, zoom, time/date stamp, find/replace/goto), background image support with multiple positioning modes and opacity control, always-on-top window pinning, printing functionality, and customizable application icons. The architecture follows a modular monolithic structure with separate modules for theme, background, file I/O, editor, UI, dialogs, commands, menu, and settings, coordinated through a Win32 message loop in main.cpp.
MooTool is a cross-platform developer toolbox with over 30 utilities including JSON formatting, HTTP client, regex testing, encryption/decryption, color picker, diff viewer, QR code, cron expressions, translation, image processing, PDF manipulation, code runtime, and more. The repository contains three concurrent implementations: a legacy Java Swing desktop application (with FlatLaf theming and MyBatis/SQLite persistence), an Electron+React+TypeScript rewrite (using CodeMirror, pdf-lib, and native IPC bridges), and a Tauri 2 (Rust+React) version with additional native features like screen capture, system tray, and updater integration. A macOS native SwiftUI app is also provided as a preview. The architecture is modular per tool, with shared contracts across platforms, session tracking, operation history, and vault-based note storage with Git versioning. Key entry points include the Java MainFrame, the Electron main process (electron/main/index.ts), and the Tauri Rust backend commands. Data flows are entirely local (SQLite, file vault, settings JSON) with no cloud dependency except automated translation APIs and optional update checks. External dependencies include Java runtime, Git, protoc, Tesseract OCR, system keyring, and translation web services (Google, Bing).
GameExtractor is a desktop application designed to extract, view, and convert resources from various game archive formats. It features a plugin-based architecture that allows users to add support for new game formats without modifying the core application. The software provides a graphical interface for browsing archive contents, previewing extracted resources (images, audio, models), and performing operations like extraction, conversion, and file replacement. The application follows a modular design with clear separation between the core framework, plugin system, user interface, and utility functions. At its core, it uses a plugin architecture where format-specific handlers (archive, viewer, exporter) implement standardized interfaces. The main entry point is the GameExecutor class, launched via platform-specific scripts. Data flows from archive selection through plugin-based parsing to resource representation, then to UI display or export operations. External dependencies include numerous Java libraries for compression (zip4j, junrar, xz, lzf, lz4, zstd), image processing, audio playback, and UI components. The application supports both legacy formats and modern game engines through its extensible plugin system, with specific implementations for formats from games like Doom, Quake, Unreal Engine, Unity, and many others.
WPFDevelopers is a comprehensive WPF custom control library (NuGet package `WPFDevelopers`) that provides ~50+ themed UI controls, styles, effects, window chrome customization, system tray integration, screen capture, charts, loading indicators, and utility helpers. It also includes a demo application showcasing each control. The library targets a wide range of .NET versions (4.0 through 10.0) and integrates Win32 interop for advanced shell features. While containing some vendored code (Microsoft Expression Blend SDK) and occasional duplication, the library demonstrates solid engineering practices with reusable controls, attached behaviors, and a consistent theming infrastructure. It is actively maintained with CI builds for multiple frameworks.
The Doomsday Engine is a modular game engine and source port for classic FPS games (Doom, Heretic, Hexen, Doom64) with client-server architecture. It provides enhanced rendering (OpenGL), audio systems, GUI frameworks, networking, and scripting capabilities. The engine supports extensibility via plugins and includes tools like Amethyst for documentation processing. The codebase shows strong separation of concerns with distinct libraries for core functionality, game logic, rendering, and UI. While actively maintained, it exhibits technical drift due to platform-specific conditionals, legacy code sections, and complex dependency management.
cool-retro-term is a desktop terminal emulator that simulates the visual appearance of vintage cathode-ray tube (CRT) monitors. It renders a real terminal session (via QMLTermWidget) with a chain of GPU shader effects including scanline patterns, bloom, screen curvature, burn-in, chromatic aberration, and frame reflections. The application is built with Qt 6 (QML and C++) and runs on Linux and macOS. It provides a rich settings interface for customizing all visual parameters, and ships with 14 built-in retro profiles (e.g., Amber, Green, Commodore 64, Apple II) and a curated collection of bitmap fonts to match authentic terminal looks. Architecturally, the C++ layer handles font management (FontManager), font list models, file I/O, and the main entry point. The QML layer composes the terminal window, tabs, settings panels, and the shader pipeline. Shaders are pre-compiled into .qsb files for 48+ combinations of effect flags, enabling smooth runtime switching without compilation latency. Persistent settings are stored in SQLite via a thin QML wrapper (Storage.qml). The application uses two Git submodules: qmltermwidget for the actual terminal emulation and KDSingleApplication for single-instance enforcement. Key entry points include app/main.cpp (C++ startup), app/qml/main.qml (QML root), and the shader fragment files in app/shaders/. External dependencies are Qt 6, QMLTermWidget, and KDSingleApplication. The build system is qmake (with a planned but not yet executed migration to CMake). Packaging is provided for AppImage, DMG, Debian, RPM, and Snap.
MiKTeX is a comprehensive, cross-platform TeX distribution that provides a complete typesetting system for Windows, macOS, and Linux. The repository contains the source code for TeX engines (pdfTeX, XeTeX, LuaTeX, e-upTeX, etc.), companion tools (dvipdfmx, dvisvgm, asymptote, metapost, tex4ht, etc.), the TeXworks editor, and the MiKTeX package manager (Console) and DVI viewer (Yap). It also bundles a large number of third-party libraries (FreeType, HarfBuzz, Poppler, LibreSSL, cURL, GMP, MPFR, etc.) as vendored dependencies. The architecture is monolithic: each executable compiles independently but shares a common core library (MiKTeX Core) that provides session management, file I/O, package management, and platform abstraction. The primary data flow is user-driven: packages are downloaded from remote repositories, TeX documents are compiled via one of the engines producing DVI or PDF output, and fonts are handled via system or bundled resources. The codebase is actively maintained with frequent releases, but the reliance on many vendored libraries and extensive platform-specific `#ifdef` blocks introduces moderate technical drift risk.
gImageReader is a mature, feature-rich desktop application that serves as a graphical frontend to the Tesseract OCR engine. It allows users to import images, PDFs, and DjVu documents, perform optical character recognition (OCR) with automatic or manual layout detection, and export the recognized text as plain text, hOCR (HTML-based OCR), PDF, or ODT. The application also integrates with scanner hardware via SANE (Linux) and TWAIN (Windows) backends, supports batch processing, and includes a spell checker, find/replace, and a substitution manager for post-processing. It is written in C++ and provides two parallel user interfaces: one using GTK+3 (gtkmm) and another using Qt5/Qt6, sharing a common core library in the `common/` directory. The architecture is a classic desktop monolith with a clear separation between the UI layer (GTK or Qt) and the backend logic (OCR, file handling, export). The codebase is well-organized with dedicated modules for scanning, image display, recognition, output editing, and export. Notable design patterns include a CRTP-based settings system (`ConfigSettings`), a custom tree model for file lists, and a worker-thread pattern for background scanning and rendering. The project has been actively maintained for over a decade, with recent commits and a large user base, though the dual-frontend approach introduces code duplication and maintenance overhead. While the application is not a research project, it demonstrates solid software engineering practices for a desktop GUI application. The most reusable components are the isolated utility classes in the `common/` directory, such as the CCITT Fax4 encoder, paper size definitions, and language mapping tables. These can be extracted and reused in other document-processing or PDF-generation projects with minimal modification. The overall code quality is good, with some areas showing age (e.g., version compatibility macros, WIP proofreading widget) but still functional and well-tested by the community.
VisiCut is a desktop Java Swing application for laser cutter control and job preparation. It provides a comprehensive interface for importing designs (SVG, DXF, EPS, images), configuring laser parameters, mapping design elements to laser operations, and executing jobs on connected laser cutters. The application features a modular architecture with separate managers for laser devices, materials, profiles, and mappings, along with a plugin system for different laser cutter drivers. Built with Maven and supporting cross-platform deployment (Linux, macOS, Windows), it includes camera calibration capabilities, job preview functionality, and extensibility through Inkscape/Illustrator plugins. The codebase demonstrates good separation of concerns with several reusable UI components and utility classes.