Add Volume/Brightness Increase/Decrease Notifications
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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}%";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Executable
+83
@@ -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
|
||||||
Reference in New Issue
Block a user