Tags give the ability to mark specific points in history as being important
-
-
-
v0.4.8
81249f40 · ·Release v0.4.8: Complete MEDIUM level refactoring Major refactoring improvements: - Centralized utility modules (json_utils, trim_whitespace, build_path) - URL encoding and JSON parsing consolidation - Improved bounds checking and error handling - Simplified complex goto logic - Standardized file path construction - Enhanced logging system with 3-character tags - Global config encapsulation Technical improvements: - Removed ~500+ lines of duplicate code - Added safety checks for buffer operations - Improved code organization and maintainability - Better error handling throughout All CRITICAL, HIGH, and MEDIUM priority refactoring issues completed.
-
-
-
v0.4.5
859beb6f · ·Release v0.4.5 - Code Quality and Safety Improvements This release focuses on critical bug fixes, code safety improvements, and major refactoring for better maintainability. - Reorganized parsers: src/parser/{lrc,srt,lrcx,utils}/ - Reorganized utilities: src/utils/{curl,file,pango,render,shm,mpris,wayland}/ - Reorganized providers: src/provider/{lrclib,lyrics}/ - Reorganized user experience: src/user_experience/{config,system_tray}/ - Simplified lyrics_types.h to src root level - Fixed memory leaks in lyrics_provider.c (strdup NULL checks) - Fixed memory leak in main.c font string allocation - Fixed NULL pointer dereference in argv0 handling - Fixed buffer overflow risk in srt_parser.c (unsafe strncat) - Extracted duplicated timestamp validation code (47→22 lines) - Improved error handling (removed backward goto patterns) - Replaced magic numbers with named constants - Added proper cleanup paths for all allocations - 9 commits total - 5 commits: Directory structure improvements - 4 commits: Bug fixes and code quality - ~100 lines of code deduplication - Multiple CRITICAL/HIGH priority issues resolved All changes maintain backward compatibility and pass build tests. -
-
v0.4.2
e0020f04 · ·Release v0.4.2: Wayland reconnection and stability improvements - Full Wayland reconnection after screen lock/TTY switch - Automatic overlay restoration when compositor becomes available - Fixed segfaults during reconnection - Improved error handling and logging - Moved Wayland surface management to dedicated module
-
v0.4.1
3c58094d · ·Release v0.4.1 - Code Refactoring This release focuses on major code refactoring and maintainability improvements. - **main.c**: Reduced from 1,258 to 904 lines (-354 lines, 28% reduction) - **render_to_cairo()**: Simplified from 428 to 74 lines (82% reduction) - Created dedicated `render_helpers` module (428 lines) for all rendering logic - `render_karaoke_segments()`: LRCX karaoke rendering with progressive fill - `render_ruby_segments()`: LRC/SRT ruby text (furigana) rendering - `render_word_segments_static()`: LRCX static display without karaoke effect - `render_plain_text()`: Simple text rendering - Helper functions for ruby height calculation and color utilities - `parse_init()`: Common parser initialization (removed 39 lines of duplication) - `free_ruby_segments()` / `free_word_segments()`: Unified memory management - `is_text_only_whitespace()`: Whitespace validation utility - `apply_timestamp_offset()`: Inline timestamp offset calculation - Improved code maintainability and readability - Separated concerns - each rendering mode has dedicated function - Easier to test and debug individual components - Reduced code duplication across parsers - Better module organization - No functionality changes - pure refactoring - All rendering modes tested and verified - Compilation successful on all targets 🤖 Generated with [Claude Code](https://claude.com/claude-code)
-
v0.4.0
6d8c61c9 · ·Release v0.4.0: Simplify format detection using file extensions - Refactored format detection to use file extensions (.lrcx, .srt, .vtt, .lrc) instead of complex runtime checks - Added is_lyrics_format() helper function for consistent format checking - Fixed SRT/WEBVTT lyrics not clearing during instrumental breaks - Simplified karaoke mode detection from 24 lines to 1 line - Reduced code complexity by 20 lines (43 deletions, 23 insertions)
-
v0.3.2
7787e70e · ·Release v0.3.2: Automatic lyrics file reload New Features: - Automatic lyrics file reload when content changes - MD5 checksum-based file change detection (checks every 2 seconds) - No need to restart application or switch tracks when editing lyrics Technical Changes: - Add OpenSSL dependency for MD5 checksum calculation - New file_utils module for file operations - Store source file path and checksum in lyrics_data struct - File change detection integrated into main event loop 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
-
v0.3.1
960d72a1 · ·v0.3.1: Ruby text alignment fixes - Fixed ruby text alignment to appear directly above base characters - Improved CJK kanji detection for word boundaries - Fixed multiple ruby annotations in LRCX word-level timestamps - Removed unnecessary spacing between segments
-
-
v0.2.5
37c526df · ·Release v0.2.5 - Extension priority system: Respect user-defined extension search order (lrc,srt vs srt,lrc) - Empty line handling: Treat empty/whitespace-only lines in LRC/LRCX as instrumental breaks - Code refactoring: Centralized constants, eliminated code duplication - Parser utilities: Shared timestamp and metadata parsing across formats - CURL utilities: Reusable HTTP request helpers - Better error handling: Consolidated cleanup patterns - Fixed double-free crash in extension priority system - Fixed log spam from instrumental break detection - Fixed color macro usage across codebase - Created constants.h for all magic numbers - Created parser_utils.c/h for shared parser code - Created curl_utils.c/h for HTTP request handling - Made config_trim_whitespace() public to avoid duplication - Improved display line pattern to prevent state oscillation
-
v0.2.3
590080e8 · ·Release v0.2.3 - Configuration file support - Add INI-based configuration system with user and system-wide configs - Support RRGGBBAA hex color format for all colors - Add configurable lyrics file extension filter - Add font, color, margin, and display settings - Auto-copy system config to user directory on first run - Prevent /usr/bin directory search when installed system-wide - Move help processing before config loading to avoid spurious messages - Match default config values to original hardcoded values Configuration file locations (in priority order): 1. ~/.config/wshowlyrics/settings.ini (user config) 2. /etc/wshowlyrics/settings.ini (system-wide config) 3. Built-in defaults Default values: - Font: Sans normal 20 - Margin: 32px - Background: #00000080 (50% transparent black)
-
-
-
v0.2.0
c4210e94 · ·Release v0.2.0 - LRCX Karaoke Mode New Features: - LRCX format support for karaoke-style lyrics with word-level timing - Progressive fill effect that smoothly fills words from left to right - Automatic file extension-based parser selection (.lrcx, .lrc, .srt) Changes: - Removed -l/--lyrics-file option (MPRIS-only mode) - Simplified error messages to suggest --help - Improved lyrics search in same directory as music file Technical: - New lrcx_parser.c/h for LRCX format parsing - Cairo clipping-based progressive fill rendering - Extended lyrics_line structure with word_segment support
-
v0.1.0
39d8627c · ·Release v0.1.0 - First Stable Release This is the first stable release of wshowlyrics, a Wayland-native lyrics display for MPD with online fallback support. Features: - Wayland-native lyrics overlay display - MPD integration for real-time lyrics synchronization - Online lyrics fallback via lrclib.net API (synced lyrics only) - Smooth scrolling with configurable animation - Customizable fonts, colors, and positioning - Support for both embedded and external .lrc files - Long options support (--help, --version, etc.) Recent improvements: - Clarified synced lyrics only policy in documentation - Improved log messages for lrclib API responses - Enhanced help messages with proper program name - Code cleanup with stricter compiler warnings Installation: Available on AUR as 'wshowlyrics'