diff --git a/README.md b/README.md index 16ae7c7..eb76b0f 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,9 @@ exactly when you should be most suspicious. - Context menus for tray icons with submenu support, network chooser (known available WiFi/ethernet), bluetooth device manager (connect/disconnect, battery levels) - Privacy indicators — screenshare and microphone icons pulse red/green when PipeWire detects active video/audio capture streams. Finally, you'll know when your webcam is on, which is more than can be said for most laptop manufacturers - Per-module accent colors that change based on state, with animated transitions. Battery blinks when critical and sends desktop notifications, because the robot cares about your hardware more than you do -- Screen corner rounding — tiny overlay windows with quarter-circle masks, click-transparent, configurable via `screenRadius` (set to 0 if you prefer your corners sharp and your desktop ugly) +- Audio visualizer on album art via cava — because the robot watched too many r/unixporn posts and couldn't help itself +- Screen corner rounding — tiny overlay windows with quarter-circle masks, click-transparent, configurable via `screenRadius`. The gradient top border curves to match, because the robot has opinions about pixel alignment +- Overview widgets — clock and date rendered on the background layer, visible in the gaps between workspace rows when niri's overview is active. Always there, never in the way - Weather via wttrbar with configurable arguments and rich HTML tooltips - Power menu with lock, suspend, logout, reboot, shutdown - Event-driven updates for network, bluetooth, and power profiles via dbus-monitor/nmcli monitor — no more 5-second polling lag @@ -128,7 +130,7 @@ Full list of theme keys and their defaults: | `barSpacing` | `12` | Gap between modules (px) | | `moduleSpacing` | `4` | Icon-to-label gap within a module (px) | | `radius` | `4` | Corner radius for flyouts and menus (px) | -| `screenRadius` | `15` | Screen corner rounding, 0 to disable (px) | +| `screenRadius` | `20` | Screen corner rounding, 0 to disable (px) | ### Systemd service diff --git a/modules/Mpris.qml b/modules/Mpris.qml index efb9f9f..452f07b 100644 --- a/modules/Mpris.qml +++ b/modules/Mpris.qml @@ -40,7 +40,12 @@ M.BarSection { id: cavaProc running: root.playing command: ["sh", "-c", - "printf '[general]\\nbars=16\\nframerate=30\\n[output]\\nmethod=raw\\nraw_target=/dev/stdout\\ndata_format=ascii\\nascii_max_range=100\\n' | cava -p /dev/stdin 2>/dev/null" + "cfg=$(mktemp /tmp/nova-cava-XXXXXX.conf);" + + "cat > \"$cfg\" << 'CAVAEOF'\n" + + "[general]\nbars=16\nframerate=30\n[output]\nmethod=raw\nraw_target=/dev/stdout\ndata_format=ascii\nascii_max_range=100\n" + + "CAVAEOF\n" + + "trap 'rm -f \"$cfg\"' EXIT;" + + "exec cava -p \"$cfg\"" ] stdout: SplitParser { splitMarker: "\n" diff --git a/nix/hm-module.nix b/nix/hm-module.nix index c9b297a..35a0447 100644 --- a/nix/hm-module.nix +++ b/nix/hm-module.nix @@ -178,7 +178,8 @@ in self.packages.${pkgs.stdenv.hostPlatform.system}.nova-shell-cli pkgs.nerd-fonts.symbols-only ] - ++ lib.optional cfg.modules.weather.enable pkgs.wttrbar; + ++ lib.optional cfg.modules.weather.enable pkgs.wttrbar + ++ lib.optional cfg.modules.mpris.enable pkgs.cava; xdg.configFile."nova-shell/modules.json".source = (pkgs.formats.json { }).generate "nova-shell-modules.json"