All notable changes to this project will be documented in this file.
1.0.0 - 2026-05-23
- trim Pulse wrapper to required functionality by @buzz (86bec25)
- replace custom Shared type with Rc<RefCell> by @buzz (d12c110)
- replace std::sync::mpsc with async_channel by @buzz (7565d4f)
- modularize app and mixer window into submodules by @buzz (1c0ef07)
- clean up tray callback logic by @buzz (97de59e)
- modernize pulseaudio wrapper and improve safety by @buzz (694715d)
- close/recreate mixer window on toggle by @buzz (6b8da56)
- remove x11rb by reusing GDK's X11 connection by @buzz (4aa2e79)
- replace x11rb with raw xlib via shared X11Context by @buzz (44e351d)
- consolidate shared X11 utilities and fix mixer window placement by @buzz (7001702)
- add consistent padding to mixer window by @buzz (ce6d9c7)
- remove prefer-gtksi XEmbed preference option by @buzz (c37dec4)
- implement structured error handling with tracing by @buzz (e5bce3d)
- wire peak updates and auto-toggle VU monitoring by @buzz (7942661)
- move #[link(name = "Xfixes")] to crate root by @buzz (0c45596)
- make X11Context a zero-sized type by @buzz (ed8be01)
- convert show_about and show_prefs to associated functions by @buzz (429efae)
- address low-priority code review findings by @buzz (ccbadbf)
- split module into types, monitor, and controller by @buzz (2692768)
- pass AtomCollection to set_window_type instead of recreating it by @buzz (26ec509)
- add minimum decay floor to peak values for smoother VU transitions by @buzz (6f1e4dd)
- scaffold initial project structure by @buzz (6b97ae6)
- add UI modules (tray, mixer window, X11, Wayland) by @buzz (cfdad27)
- implement GtkApplication subclass by @buzz (10dc6e6)
- implement GtkWindow subclass by @buzz (784e0ad)
- add application lifecycle and state management by @buzz (806b718)
- add PulseAudio integration by @buzz (028b51e)
- implement dynamic status icon updates by @buzz (2086c81)
- add scroll wheel and tooltip support by @buzz (632807d)
- add menu items and active sink mute toggle by @buzz (5d20e87)
- dynamically add/remove/update volume scales by @buzz (d7cfd07)
- add error handling by @buzz (0838047)
- add preferences window by @buzz (27fe434)
- add OSD (X11) by @buzz (5b0faac)
- add OSD (Wayland) by @buzz (f9bbabe)
- add about dialog by @buzz (ace652d)
- position mixer window relative to tray anchor using screen quadrant by @buzz (90ff0f7)
- add auto-close timeout with mouse hover pause by @buzz (9e725e9)
- enable optional extra volume (up to 150%) by @buzz (492f307)
- implement external mixer launch and wire secondary tray action by @buzz (368192d)
- add setting to toggle percentage display on volume scale by @buzz (1590c75)
- add separator between audio interfaces and applications in mixer by @buzz (d0be1eb)
- add peak level monitoring with smooth decay and VU meter by @buzz (afdd10e)
- improve tooltips with rich formatting and media info by @buzz (d04a0f8)
- color VU meter fill red on clipping (peak >= 1.0) by @buzz (03d3b3f)
- add Wayland mixer window placement settings by @buzz (64f26cd)
- add configurable margin settings for OSD and mixer window by @buzz (69a067f)
- add toggle to enable/disable fade animations by @buzz (5f83f56)
- set proper window hints and properties by @buzz (f4dc473)
- break tray message loop on application quit by @buzz (1caa34e)
- persist/restore settings correctly, update OSD settings controls disable state by @buzz (2ca8bd1)
- wire VolumeScale signals to correct PulseAudio stream by @buzz (b52b607)
- fix icon resolution for sink and sink input streams by @buzz (7cae177)
- prevent (0,0) flicker and duplicate window race on X11 by @buzz (fbc3f33)
- disable text selection on labels in about dialog by @buzz (149a7a3)
- prevent premature operation drop and remove unnecessary mainloop locking by @buzz (cca5b2b)
- remove std::mem::forget on Operation to fix memory leak by @buzz (d28c7f2)
- install monitor stream callbacks before connect_record by @buzz (6977ded)
- align
allow_extra_volumedefault with GSettings schema by @buzz (e7374e6) - store and cancel the periodic update timer on shutdown by @buzz (4118e60)
- associate window with Application parent by @buzz (8fc950e)
- associate OSD window with Application parent by @buzz (4b701e6)
- set opposite anchors for center positioning on Wayland by @buzz (823e547)
- move tooltip text to title field and remove markup by @buzz (383fd3f)
- fix layer-shell center positioning on Wayland by @buzz (1aa2c84)
- set explicit layer-shell namespaces for OSD and mixer window by @buzz (e5e18f4)
- enable Clippy linter in VS Code settings by @buzz (d326af0)
- fix Clippy warnings by @buzz (a2305c0)
- make libpulse-binding optional via feature flag by @buzz (0cc205b)
- define settings key constants by @buzz (93a1e1a)
- upgrade dependencies by @buzz (4bdeed8)
- add GSettings schema and desktop entry files by @buzz (9545134)
- upgrade rust edition to 2024 and fix clippy warnings by @buzz (d41dfec)
- add package metadata to Cargo.toml by @buzz (0d96484)
- integrate git-cliff for changelog generation (bdf3882)
Note: Previous changes can be found in the
legacy-pythonbranch.