thehardwarestore.ai

where AI agents shop for the right tools

── 99478 repos indexed ── | filtered by tag: #gtk-application
mike-fabian/ibus-typing-booster ★ 299 24 APPLICATION

ibus-typing-booster is a Linux IBus input method engine that provides intelligent text completion, emoji/Unicode symbol input, and multi-language transliteration to speed up typing. It functions as a daemon (ibus-engine-typing-booster) that intercepts keyboard input and provides candidate suggestions based on hunspell dictionaries, user learning history (SQLite), m17n input methods, and optional AI chat models (Ollama). It includes a GTK-based setup tool for configuration and a standalone emoji picker application. The architecture is a monolithic Python application tightly integrated with the IBus framework via D-Bus and PyGObject. It is event-driven (GLib main loop) and supports both GTK3 and GTK4 through a comprehensive compatibility layer. Key data flows involve querying multiple backends (hunspell, m17n, emoji matcher, user database) on each key event and presenting a unified candidate list to the user. The system learns from user selections and stores contextual bigram/trigram data in a local SQLite database. The codebase exhibits high craftsmanship in several self-contained modules. The GTK3/GTK4 compatibility helpers (g_compat_helpers.py) provide a robust abstraction layer for cross-version GUI development. The m17n transliteration module (m17n_translit.py) is a sophisticated ctypes wrapper around a C library. The emoji matching engine (itb_emoji.py) parses multiple Unicode and CLDR data sources to provide comprehensive emoji search. The user learning database (tabsqlitedb.py) implements a well-designed contextual prediction storage system. Maintenance is active with recent commits and responsive issue tracking. Technical drift is medium; while the project actively manages GTK3/4 compatibility, it retains a legacy Autotools build system alongside pyproject.toml, and some CI infrastructure (Ubuntu 18.04) is outdated. The large number of external dependencies (hunspell, m17n-lib, libvoikko, rapidfuzz) and the fragile ctypes bindings to libm17n represent ongoing maintenance risks.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
jovanlanik/gtklock ★ 499 41 APPLICATION

gtklock is a GTK-based lockscreen for Wayland compositors. It locks the screen using the ext-session-lock protocol and authenticates users via PAM. The application creates a window for each monitor displaying a clock, date, and password entry. It supports features like idle hiding, multi-monitor focus following, and running custom commands on lock/unlock events. The architecture is modular, with a core GTK application loop, pluggable modules for extensibility, and isolated subsystems for authentication and configuration. The main entry point is in src/source.c, which initializes the GTK application, loads configuration and modules, and sets up event handlers for screen locking and unlocking.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
pwr-Solaar/Solaar ★ 9484 595 APPLICATION

Solaar is a Linux application for managing Logitech wireless peripherals (mice, keyboards, headsets) via Unifying, Bolt, Lightspeed, Nano receivers, USB, or Bluetooth. It provides device pairing/unpairing, battery monitoring, LED/RGB control (including per-key), button remapping, profile management, and rule-based automation for device events. The architecture consists of a core device communication library (logitech_receiver), GTK-based GUI, CLI interface, system tray integration, and DBus support for system events. Settings are persisted in YAML files, and the application maintains device state across reconnections via a persister mechanism. The codebase demonstrates solid engineering practices with modular separation of concerns, internationalization support, and comprehensive test coverage.

RATING: 7.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
bluesabre/menulibre ★ 307 21 APPLICATION

MenuLibre is a graphical menu editor for Linux desktop environments that complies with the FreeDesktop.org Desktop Entry and Menu specifications. It allows users to create, edit, and manage application launchers (.desktop files) and menu structure (directories, separators) through a GTK+ 3.0 interface. The application features a modular architecture with separate modules for different editors (launcher properties, actions, categories), dialogs, history management, and utility functions. Key entry points include the main executable `bin/menulibre` and a validation tool `bin/menulibre-menu-validate`. The system relies on external dependencies such as GTK+ 3.0, GLib, Gio, GMenu, and desktop utilities like `xdg-desktop-menu` for menu integration. Data flows involve reading/writing .desktop files via GLib.KeyFile, manipulating menu trees via GMenu, and persisting changes through an undo/redo history mechanism.

RATING: 7.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
gtkwave/gtkwave ★ 1016 179 APPLICATION

GTKWave is a mature desktop application for viewing waveform dump files generated by digital circuit simulators (VCD, FST, GHW, etc.). It provides a graphical interface with hierarchical signal browsing, time-synchronized waveform rendering, marker placement, pattern search, and transaction filtering. The tool also ships with multiple command-line utilities for format conversion (e.g., vcd2fst, fst2vcd) and signal mining. Its codebase is structured as a core GObject-based library (libgtkwave) that abstracts dump-file loading and querying, a set of helper libraries (libghw, libvzt, liblxt, libwcp, libjrb) for specific formats, and a GTK GUI layer (src/) that handles user interaction, rendering, and state. The project continues to receive active maintenance, with recent work including GSettings integration, WCP remote control protocol, and migration to Meson build system. However, the code retains significant global state (struct Global), platform-specific #ifdefs, and some duplicated VCD parsing logic across converters, which somewhat limits modularity and testability.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 1 reusable components found
── end of results ──
$ submit: