kotofetch is a Rust-based CLI tool that displays Japanese quotes in the terminal with extensive customization options. It features built-in quote collections (anime, proverbs, haiku, lyrics, and yojijukugo) and supports importing Anki decks via AnkiConnect. The tool offers various display modes including furigana (ruby text) rendering, animations (typewriter, scramble, slide), and flexible text styling. The application architecture is modular, with separate modules for command-line parsing, configuration management, quote importing, and display rendering. The display module handles complex text layout, including inline furigana annotations, Unicode-aware wrapping, and terminal boxing with optional animations. Key reusable components include the furigana parsing and formatting logic (which handles conversion between Anki's [reading] syntax and kotofetch's (reading) syntax and renders ruby text with proper alignment) and the AnkiConnect client (which provides a robust interface for fetching and converting Anki notes into kotofetch-compatible quote files).
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.
nwg-look is a GTK settings editor designed for Wayland environments, particularly wlroots-based compositors like Sway. It provides a graphical interface to configure GTK appearance settings including themes, icons, cursors, fonts, and other interface options. The application reads current gsettings values, allows users to modify them through a GTK3 interface, and applies changes via gsettings commands. It can also export settings to various configuration files (settings.ini, .gtkrc-2.0, index.theme, xsettingsd.conf, GTK4 symlinks) and includes Flatpak integration for theme management. The architecture follows a traditional monolithic GUI pattern with separation between main application logic, UI components, utility functions, and a dedicated stylepak package for Flatpak-specific functionality.