Repository navigation
TrayWave v0.1.5
change log
v0.1.5 – UI & Core Refactor Release
Release date: 2026-01
✨ New
Completely refactored tray menu system using a modular MenuBuilder
Added advanced menu positioning logic (MenuPositioner) for better multi-screen and panel support
Introduced a modern style system with live style switching
New Appearance / Style Settings dialog with visual previews
Added Sleep Timer submenu with quick presets and cancel option
Improved Volume popup behavior with auto-hide and mouse wheel support
Added keyboard shortcut (Ctrl+M) to open tray menu
🎨 UI Improvements
Cleaner, more consistent tray menu layout
Clear visual indication of selected menu style
Improved hover, selection and spacing behavior across menus
Better alignment and sizing of popup widgets
Unified icon handling with proper fallbacks
⚙️ Core Improvements
Refactored audio engine internals for better state handling
Improved station management with persistent configuration
Better metadata handling for streams that support ICY metadata
More reliable tray icon state updates (playing / stopped / muted)
Improved cleanup and rebuild logic when changing styles or stations
🧹 Internal / Maintenance
Project structure cleanup and better separation of concerns
Introduced run.py and python -m traywave entry points
Prepared codebase for packaging (pip / AppImage / Flatpak)
Reduced UI coupling and improved maintainability
🐛 Fixes
Fixed tray menu not updating after station changes
Fixed popup positioning issues near screen edges
Fixed style switching not applying immediately in some cases
Minor stability and visual glitches resolved