Add Volume/Brightness Increase/Decrease Notifications

This commit is contained in:
2024-12-12 23:09:12 +01:00
parent 4be382f44f
commit 47bea9b784
4 changed files with 117 additions and 18 deletions
+6 -5
View File
@@ -22,6 +22,7 @@
imports = [ imports = [
./waybar.nix ./waybar.nix
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
package = inputs.hyprland.packages.${pkgs.system}.hyprland; package = inputs.hyprland.packages.${pkgs.system}.hyprland;
enable = true; enable = true;
@@ -273,14 +274,14 @@
]; ];
bindel = [ bindel = [
", XF86AudioRaiseVolume, exec, pamixer -i 5" ", XF86AudioRaiseVolume, exec, pamixer -i 5 && ${../scripts/progress-notify.sh} audio"
", XF86AudioLowerVolume, exec, pamixer -d 5" ", XF86AudioLowerVolume, exec, pamixer -d 5 && ${../scripts/progress-notify.sh} audio"
", XF86AudioMute, exec, pamixer -t" ", XF86AudioMute, exec, pamixer -t && ${../scripts/progress-notify.sh} mute"
]; ];
binde = [ binde = [
", XF86MonBrightnessDown, exec, brightnessctl set 10%-" ", XF86MonBrightnessDown, exec, brightnessctl set 10%- && ${../scripts/progress-notify.sh} brightness"
", XF86MonBrightnessUp, exec, brightnessctl set 10%+" ", XF86MonBrightnessUp, exec, brightnessctl set 10%+ && ${../scripts/progress-notify.sh} brightness"
]; ];
# Move/resize windows with mainMod + LMB/RMB and dragging # Move/resize windows with mainMod + LMB/RMB and dragging
+3 -3
View File
@@ -139,10 +139,10 @@
"󰕾" "󰕾"
]; ];
}; };
on-click = "pamixer -t"; on-click = "pamixer -t && exec ${../scripts/progress-notify.sh} mute";
on-click-right = "pavucontrol"; on-click-right = "pavucontrol";
on-scroll-down = "pamixer -d 5"; on-scroll-down = "pamixer -d 5 && exec ${../scripts/progress-notify.sh} audio";
on-scroll-up = "pamixer -i 5"; on-scroll-up = "pamixer -i 5 && exec ${../scripts/progress-notify.sh} audio";
tooltip = true; tooltip = true;
tooltip-format = "{icon} {desc} {volume}%"; tooltip-format = "{icon} {desc} {volume}%";
}; };
+25 -10
View File
@@ -5,29 +5,44 @@
enable = true; enable = true;
settings = { settings = {
global = { global = {
width = 300; offset = "4x4";
height = 300; frame_color = "#881798";
offset = "top-right"; gap_size = 2;
transparency = 10; corner_radius = 10;
frame_color = "#22bbff"; frame_width = 2;
font = "FiraCodeNerdFont"; font = "FiraCodeNerdFont";
enable_recursive_icon_lookup = true;
icon_theme = "Arc";
}; };
urgency_low = { urgency_low = {
background = "#37474f"; background = "#050D0E";
foreground = "#ecefff"; foreground = "#ecefee";
timeout = 5; timeout = 5;
}; };
urgency_normal = { urgency_normal = {
background = "#37474f"; background = "#050D0E";
foreground = "#ecefff"; foreground = "#ecefee";
timeout = 5; timeout = 5;
}; };
urgency_high = { urgency_high = {
background = "#cc474f"; background = "#cc474f";
foreground = "#ecefff"; foreground = "#eceffe";
timeout = 5; timeout = 5;
}; };
volume_rule = {
appname = "volume_indicator";
background = "#050D0E88";
foreground = "#ecefee";
timeout = 1;
};
brightness_rule = {
appname = "brightness_indicator";
background = "#050D0E88";
foreground = "#ecefee";
timeout = 1;
};
}; };
}; };
} }
+83
View File
@@ -0,0 +1,83 @@
#!/usr/bin/env bash
notify='dunstify'
muteToggleNotify() {
volume=$(pamixer --get-volume)
muted=$(pamixer --get-mute)
icon=""
if [ $muted == "true" ]; then
str="Muted"
icon="audio-volume-muted"
else
if [ $volume -eq 0 ]; then
icon="audio-volume-low"
elif [ $volume -le 30 ]; then
icon="audio-volume-medium"
elif [ $volume -le 70 ]; then
icon="audio-volume-high"
else
icon="audio-volume-muted"
fi
str="Unmuted"
fi
$notify -a volume_indicator -h string:x-canonical-private-synchronous:audio "$str" -h int:value:"$volume" -t 1500 --icon $icon
}
notifyMuted() {
volume=$(pamixer --get-volume)
muted=$(pamixer --get-mute)
$notify -a volume_indicator -h string:x-canonical-private-synchronous:audio "Muted" -h int:value:"$volume" -t 1500 --icon audio-volume-muted
}
notifyAudio() {
volume=$(pamixer --get-volume)
muted=$(pamixer --get-mute)
$muted && notifyMuted "$volume" && return
if [ $volume -eq 0 ]; then
notifyMuted "$volume"
elif [ $volume -le 30 ]; then
$notify --appname=volume_indicator -h string:x-canonical-private-synchronous:audio "Volume: " -h int:value:"$volume" -t 1500 --icon audio-volume-low
elif [ $volume -le 70 ]; then
$notify --appname=volume_indicator -h string:x-canonical-private-synchronous:audio "Volume: " -h int:value:"$volume" -t 1500 --icon audio-volume-medium
else
$notify --appname=volume_indicator -h string:x-canonical-private-synchronous:audio "Volume: " -h int:value:"$volume" -t 1500 --icon audio-volume-high
fi
}
notifyBrightness() {
base_brightness=$(brightnessctl g)
brightness=$(( $(( $base_brightness * 5 )) + 5 ))
if [ $brightness -eq 0 ]; then
$notify --appname=brightness_indicator -h string:x-canonical-private-synchronous:brightness "Brightness: " -h int:value:"$brightness" -t 1500 --icon display-brightness-symbolic
elif [ $brightness -le 30 ]; then
$notify --appname=brightness_indicator -h string:x-canonical-private-synchronous:brightness "Brightness: " -h int:value:"$brightness" -t 1500 --icon display-brightness-symbolic
elif [ $brightness -le 70 ]; then
$notify --appname=brightness_indicator -h string:x-canonical-private-synchronous:brightness "Brightness: " -h int:value:"$brightness" -t 1500 --icon display-brightness-symbolic
else
$notify --appname=brightness_indicator -h string:x-canonical-private-synchronous:brightness "Brightness: " -h int:value:"$brightness" -t 1500 --icon display-brightness-symbolic
fi
}
case "$1" in
mute)
muteToggleNotify
;;
audio)
notifyAudio
;;
brightness)
notifyBrightness
;;
*)
echo "Invalid Arguments:"
echo "$1"
exit 2
esac