feat: swayosd on-screen display for volume/brightness/mute
The media keys called wpctl/brightnessctl directly with no visual feedback — changing volume showed nothing on screen. Now they drive swayosd-client, which performs the action AND shows a themed OSD. - modules/home/osd.nix: services.swayosd, style.css generated from the palette (base bg, accent progress/border); nomarchy.osd.enable. - hyprland media binds → swayosd-client (--output-volume raise/lower/ mute-toggle, --input-volume mute-toggle, --brightness raise/lower). - modules/nixos: services.udev.packages = [ swayosd ] installs the backlight rule (chgrp video + g+w) so brightness works for video-group users without root (the installer/live user is in video). swaync is unaffected (it was already running — this was purely the missing OSD). Verified: flake check green, swayosd.service bound to graphical-session.target, hyprland config verifies, swayosd in the live ISO closure. On-screen rendering needs a real session to confirm. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -161,19 +161,19 @@ in
|
||||
", Print, exec, grim -g \"$(slurp)\" - | wl-copy"
|
||||
] ++ workspaceBinds;
|
||||
|
||||
# Media keys: wpctl talks to wireplumber directly (no
|
||||
# pipewire-pulse shim like pamixer); e = repeat, l = also on a
|
||||
# locked screen — the standard flags for hardware keys.
|
||||
# Media keys via swayosd-client: it performs the action AND shows
|
||||
# the on-screen display (the nomarchy.osd module). e = repeat,
|
||||
# l = also on a locked screen — the standard flags for hardware keys.
|
||||
bindel = [
|
||||
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
|
||||
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||
", XF86MonBrightnessUp, exec, brightnessctl set +5%"
|
||||
", XF86MonBrightnessDown, exec, brightnessctl set 5%-"
|
||||
", XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise"
|
||||
", XF86AudioLowerVolume, exec, swayosd-client --output-volume lower"
|
||||
", XF86MonBrightnessUp, exec, swayosd-client --brightness raise"
|
||||
", XF86MonBrightnessDown, exec, swayosd-client --brightness lower"
|
||||
];
|
||||
|
||||
bindl = [
|
||||
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||
", XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
|
||||
", XF86AudioMute, exec, swayosd-client --output-volume mute-toggle"
|
||||
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
|
||||
", XF86AudioPlay, exec, playerctl play-pause"
|
||||
", XF86AudioPause, exec, playerctl play-pause"
|
||||
", XF86AudioNext, exec, playerctl next"
|
||||
|
||||
Reference in New Issue
Block a user