This repository is a desktop application for extracting subtitles from video files using OCR and subtitle detection. It integrates PaddleOCR inference models for text recognition, uses a separate binary tool (VideoSubFinder) for detecting subtitle regions, and employs the Sushi library for subtitle synchronization. The application is written in Python with a PyQt-based GUI (gui.py) and provides a modular backend with separate modules for OCR, subtitle detection, concurrent task management, and hardware acceleration. The project includes pre-compiled binaries for Windows, Linux, and macOS, as well as CI/CD workflows for building Windows executables. While the overall architecture is functional and suitable for its purpose, the code's internal quality and reusability cannot be fully assessed without inspecting source contents. The repository is actively maintained and has a large user base, but it is primarily a monolithic application rather than a reusable library.
This is a JavaFX desktop application for playing, analyzing, and linking Chinese chess (Xiangqi). It supports UCI and UCCI chess engines, allowing human vs. engine or engine vs. engine play, as well as pure analysis. The application includes opening book management (local SQLite-based books and a cloud book via chessdb.cn), game record handling (PGN, TXQ, XQF, CBR formats), and a unique "linking" feature that automates play on external chess platforms using screen capture (YOLO models) and mouse simulation. The architecture follows a standard JavaFX MVC pattern with FXML views and controller classes, but the main Controller is monolithic (~900 lines). Cross-platform support is achieved through platform-specific linker implementations (Windows JNA, Linux X11, macOS osascript). The codebase demonstrates solid engineering with reusable utility classes and callback interfaces, though some dependencies are hardcoded and platform linkers are fragile.
Notepad-- is a cross-platform Qt/C++ desktop text editor with a Notepad++-style feature set. The production application is a monolithic Qt Widgets GUI that provides multi-tab editing, syntax highlighting for dozens of languages via vendored Scintilla/QScintilla, hex editing, file and directory comparison, encoding detection and batch conversion, find/replace across files, batch rename, macro recording, user-defined languages, theming, and an optional plugin system. The main entry point is src/main.cpp, which handles argument parsing, single-instance IPC, and session restore, then launches the central CCNotePad main window in src/cceditor/ccnotepad.cpp. Core editing behavior is implemented through ScintillaEditView and QsciDisplayWindow, while settings are persisted through QSettings and the NddSetting helper.
GCViewer is a mature, monolithic Java desktop application (Swing GUI) and CLI tool for parsing, analyzing, and visualizing garbage collection (GC) logs from a wide range of JVM implementations (Sun/Oracle, IBM, HP, BEA/JRockit, Go, and modern OpenJDK unified logging). Its architecture follows a layered pattern: a family of DataReader implementations parse vendor-specific log formats into a unified GCModel of GC events. This model is then consumed by statistical analysis utilities (DoubleData, RegressionLine) and rendered via Swing charts or exported to CSV/PNG/plain text. The codebase demonstrates strong engineering in its utility classes (NumberParser, HttpUrlConnectionHelper, MonitoredBufferedInputStream) and test infrastructure (extensive real-world log fixtures). However, it suffers from significant technical drift, primarily a Java 8 baseline, alongside accumulated technical debt such as e.printStackTrace() usage, ignored tests, known export bugs, and fragile parser logic. It is actively maintained but carries the weight of supporting two decades of JVM GC log formats.
This repository is a comprehensive collection of over 1000 Python GUI example applications and tutorials, spanning multiple frameworks: PyQt5, PyQt6, PySide2, PySide6, Tkinter, Kivy, DearPyGui, Flet, NiceGUI, and Streamlit. It serves as an educational resource for developers learning desktop GUI programming, with step-by-step tutorials and full demo applications like calculators, media players, web browsers, games (Minesweeper, Solitaire), paint programs, and data-driven apps (weather, currency, crypto). The codebase is organized by framework, with each framework containing tutorials, demos, and reusable custom widgets. While the examples are functional and well-documented, the repository suffers from massive duplication across Qt bindings (identical logic replicated four times with minor API adaptations), some deprecated API usage (e.g., QWebEnginePage.NavigationType in Qt6, fixer.io API endpoints), and occasional cross-binding import errors. The most valuable parts are the self-contained custom widgets in the widgets/ directories, which demonstrate clean signal-based design and can be extracted into other Qt projects with minimal modification.
Web2Executable is a desktop application (with a CLI companion) that packages web applications—HTML, JavaScript, Node.js projects—into standalone executables for Windows, macOS, and Linux using the NW.js runtime. The GUI is built with PySide6 (Qt) and auto-generated from a declarative settings file (`files/settings.cfg`), providing tabs for app configuration, window properties, export targets, compression, and download management. The CLI (`command_line.py`) mirrors the GUI functionality and is the primary entry point for automation. Under the hood, it downloads NW.js binaries from the official site, copies user project files (with whitelist/blacklist filtering), optionally replaces the executable icon using custom PE and ICNS parsers (`pe.py`, `image_utils/`), and compresses the output with UPX. The architecture is a single-process monolith with a background thread pattern for non-blocking operations. While the tool is functional and has seen real use (974 stars), it is in maintenance mode with best-effort fixes, and parts of the codebase show age (e.g., custom implementations of ICNS/PNG format readers, reliance on specific NW.js version URLs, and fragile build scripts). Key reusable components include the dynamic configuration class (`Setting`), the file tree filter (`FileTree`), and the background worker (`BackgroundThread`), which could be extracted for other Qt-based projects.
LeechCraft is a modular, cross-platform desktop internet client built with C++ and Qt. It provides a plugin-based architecture where each plugin implements standard interfaces (IInfo, IPlugin2, IHaveSettings, IHaveTabs) and can be dynamically loaded. The core handles plugin loading, entity-based inter-plugin communication, settings management via XML dialogs, and a hook system for customization. Plugins cover a wide range of functionality: instant messaging (Azoth with XMPP/IRC/Tox), web browsing (Poshuku), RSS/Atom feed aggregation (Aggregator), music player (LMP with GStreamer), document viewer (Monocle with PDF/ePub/DjVu), email client (Snails), BitTorrent client, system monitoring, power management, and more. The codebase uses modern C++20 coroutines for async operations, a custom compile-time ORM (oral) for SQLite persistence, and functional utilities (Either, Visitor, ScopeGuard). Despite its ambitious scope and well-structured plugin system, the project shows signs of age: many plugins have incomplete translations, deprecated Qt patterns (old-style SIGNAL/SLOT macros), and external dependencies that may be difficult to build with current toolchains. The last meaningful development appears to have stalled, making the repository more valuable as a reference for plugin architecture and Qt patterns than as an actively maintained application.
FBM Sniper Community is a desktop application for scraping Facebook Marketplace and other platforms (Wallapop, Vinted, Mercari) to find items for resale/flipping. It consists of an Electron wrapper with an embedded Express web server serving a React-like UI, background worker processes for scraping, and data persistence using JSON/NDJSON/CSV files. The application allows users to configure search targets, view results in real-time, and receive notifications via Discord webhooks. While the core infrastructure (session handling, utilities, UI framework) is well-maintained, several platform-specific scrapers are currently broken due to API changes on the target sites, as noted in the STATUS.md file.
MatterControl is a comprehensive, open-source desktop application for controlling and enhancing 3D printing workflows. It integrates slicing, printer management, 3D model design and editing, library management, and G-code streaming into a single GUI built on the MatterHackers Agg framework. The codebase is large (2000+ files) and spans multiple subprojects: printer communication (serial, TCP/IP, X3G), slicing engines (MatterSlice, gsSlicer, SLA), 3D design tools (primitives, boolean operations, path editing), and a plugin system. The architecture follows a monolithic desktop application pattern with heavy use of custom UI widgets and a decorator-based G-code processing pipeline. While feature-rich and historically active, the project shows signs of technical drift: reliance on an older .NET Framework (4.7.2), a bundled port of SQLite (Community.CsharpSqlite), and numerous obsolete or versioned classes (e.g., `MirrorObject3D` → `MirrorObject3D_2`). The codebase contains many reusable patterns (e.g., GCodeStream decorators, UIField hierarchy, plugin system) but extraction would require significant effort due to tight coupling with the MatterControl domain model.
PulseAudio Graph Control is an Electron-based desktop application for managing PulseAudio sound servers. It provides a graphical interface to visualize and control audio routing, displaying sources, sinks, and their connections as an interactive graph. Users can adjust volumes, mute/unmute streams, set default devices, load/unload modules, and move audio between devices. The application uses React and Redux for state management, with a custom PACLient for PulseAudio communication. Despite showing good architectural patterns in its graph visualization and UI components, the project is explicitly marked as unmaintained in its README, with alternatives suggested for PipeWire (PulseAudio's successor).