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 = [
./waybar.nix
];
wayland.windowManager.hyprland = {
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
enable = true;
@@ -273,14 +274,14 @@
];
bindel = [
", XF86AudioRaiseVolume, exec, pamixer -i 5"
", XF86AudioLowerVolume, exec, pamixer -d 5"
", XF86AudioMute, exec, pamixer -t"
", XF86AudioRaiseVolume, exec, pamixer -i 5 && ${../scripts/progress-notify.sh} audio"
", XF86AudioLowerVolume, exec, pamixer -d 5 && ${../scripts/progress-notify.sh} audio"
", XF86AudioMute, exec, pamixer -t && ${../scripts/progress-notify.sh} mute"
];
binde = [
", XF86MonBrightnessDown, exec, brightnessctl set 10%-"
", XF86MonBrightnessUp, exec, brightnessctl set 10%+"
", XF86MonBrightnessDown, exec, brightnessctl set 10%- && ${../scripts/progress-notify.sh} brightness"
", XF86MonBrightnessUp, exec, brightnessctl set 10%+ && ${../scripts/progress-notify.sh} brightness"
];
# 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-scroll-down = "pamixer -d 5";
on-scroll-up = "pamixer -i 5";
on-scroll-down = "pamixer -d 5 && exec ${../scripts/progress-notify.sh} audio";
on-scroll-up = "pamixer -i 5 && exec ${../scripts/progress-notify.sh} audio";
tooltip = true;
tooltip-format = "{icon} {desc} {volume}%";
};
+25 -10
View File
@@ -5,29 +5,44 @@
enable = true;
settings = {
global = {
width = 300;
height = 300;
offset = "top-right";
transparency = 10;
frame_color = "#22bbff";
offset = "4x4";
frame_color = "#881798";
gap_size = 2;
corner_radius = 10;
frame_width = 2;
font = "FiraCodeNerdFont";
enable_recursive_icon_lookup = true;
icon_theme = "Arc";
};
urgency_low = {
background = "#37474f";
foreground = "#ecefff";
background = "#050D0E";
foreground = "#ecefee";
timeout = 5;
};
urgency_normal = {
background = "#37474f";
foreground = "#ecefff";
background = "#050D0E";
foreground = "#ecefee";
timeout = 5;
};
urgency_high = {
background = "#cc474f";
foreground = "#ecefff";
foreground = "#eceffe";
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