# Changelog All notable changes to the **Omarchy Vibez** plugin will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- ## [0.2.0] - 2026-09-11 ### Added - **Synced Lyrics Viewer**: - Embedded synced LRC lyrics drawer in the popup panel powered by LRCLIB API. - Python helper script (`scripts/get-lyrics.py`) with automatic caching (`~/.cache/omarchy-vibez/lyrics/`), query fallback, and LRC parsing. - Real-time line-by-line lyric highlighting synchronized to current playback timestamp. - Automatic vertical scrolling keeping the active lyric centered in view. - Interactive click-to-seek on any lyric line to jump directly to that point in the song. - Keyboard toggle shortcut (`y` or `l`) and IPC action (`lyrics`). - **Animated Equalizer Icon**: - Dynamic 3-bar audio equalizer pulsing animation in the Omarchy status bar icon and panel header during active playback. - Can be toggled on/off in widget settings via `animatedIcon`. - **Shuffle & Repeat Modes**: - One-click toggles for Shuffle (`On` / `Off`) and Repeat (`Off` / `All` / `One`). - Keyboard shortcuts (`s` for Shuffle, `r` for Repeat) inside the popup panel. - IPC actions for keybindings: `shuffle` and `repeat`. - Visual status badges and color accents matching Omarchy active theme. - **Native Omarchy OSD Toast Notifications**: - Instant on-screen display (OSD) toasts using `omarchy.osd` whenever songs change (`󰒭 - <Artist>`). - Toast confirmation feedback when toggling Shuffle mode or cycling Repeat mode. - Configurable via `notifyOnTrackChange` in widget settings. - **Supervisor & Systemd Session Isolation**: - Launched in an isolated user systemd scope (`systemd-run --user --unit=omarchy-vibez-session`), decoupling background audio playback from terminal emulator cgroups. - Closing terminal windows (Ghostty, Alacritty, Kitty, Foot) cleanly detaches without terminating the `vibez` playback daemon or tmux session. - Dedicated supervisor loop (`scripts/vibez-supervisor.sh`) for automatic crash recovery and clean teardown. ### Changed - Bumped plugin version to `0.2.0` in `manifest.json`. - Expanded IPC protocol to support `shuffle`, `repeat`, and `lyrics` commands. - Enhanced seek bar with real-time scrub feedback, elapsed/remaining time indicators, and responsive theme styling. - Refreshed high-resolution visual assets (`preview.png` 1920x1080 banner, `assets/panel.png`, and `assets/vibez-tui.png`). - Updated `README.md` with comprehensive documentation of keyboard shortcuts, IPC commands, and configuration options. ### Fixed - Fixed issue where closing the terminal emulator window closed the entire tmux session and stopped music under Hyprland / systemd transient scopes. - Fixed race condition where OSD toast notifications showed placeholder text (`▶| vibez`) before MPRIS metadata finished loading. - Fixed supervisor script accidentally terminating its own execution loop when killing child processes. --- ## [0.1.0] - 2026-08-20 ### Added - Initial release of the **Omarchy Vibez** plugin for the Omarchy status bar. - Native Quickshell bar widget displaying now-playing status, track title, and artist. - Interactive popup panel featuring: - Album artwork display with rounded corners and adaptive aspect ratio. - Track metadata (title, artist, album). - Seekable progress bar with formatted elapsed and total duration (`mm:ss`). - Media transport buttons (Previous, Play/Pause, Next). - Quick launcher button to open or attach to `vibez` TUI in a persistent terminal. - Mouse interaction on the status bar: - Left click to toggle popup panel (or play/pause). - Middle click and right click to toggle play/pause. - Mouse wheel scrolling (up/down) to skip to next/previous tracks. - Persistent playback architecture running `vibez` inside a managed background `tmux` session. - IPC interface exposing actions: `toggle`, `playpause`, `next`, `previous`, `launch`, `status`, and `track`. - Seamless Omarchy theming integration adapting to system colors, borders, and typography. - Prerequisite validation script (`scripts/check-prereqs.sh`). - Full configuration schema supporting widget customization (`showTitle`, `showArtist`, `showLabelOnBar`, `maxLabelWidth`, `hideWhenClosed`, `leftClick`, `scrollAction`).