Add notification silencing indicator to waybar

This commit is contained in:
David Heinemeier Hansson
2026-02-20 16:52:09 +01:00
parent bf962f0042
commit fcf883e827
6 changed files with 52 additions and 4 deletions
+11
View File
@@ -0,0 +1,11 @@
#!/bin/bash
makoctl mode -t do-not-disturb
if makoctl mode | grep -q 'do-not-disturb'; then
notify-send "Silenced notifications"
else
notify-send "Enabled notifications"
fi
pkill -RTMIN+10 waybar
+7 -1
View File
@@ -5,7 +5,7 @@
"spacing": 0,
"height": 26,
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
"modules-center": ["clock", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator"],
"modules-center": ["clock", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
"modules-right": [
"group/tray-expander",
"bluetooth",
@@ -148,6 +148,12 @@
"signal": 9,
"return-type": "json"
},
"custom/notification-silencing-indicator": {
"on-click": "omarchy-toggle-notification-silencing",
"exec": "$OMARCHY_PATH/default/waybar/indicators/notification-silencing.sh",
"signal": 10,
"return-type": "json"
},
"custom/voxtype": {
"exec": "omarchy-voxtype-status",
"return-type": "json",
+4 -2
View File
@@ -72,7 +72,8 @@ tooltip {
}
#custom-screenrecording-indicator,
#custom-idle-indicator {
#custom-idle-indicator,
#custom-notification-silencing-indicator {
min-width: 12px;
margin-left: 5px;
margin-right: 0;
@@ -84,7 +85,8 @@ tooltip {
color: #a55555;
}
#custom-idle-indicator.active {
#custom-idle-indicator.active,
#custom-notification-silencing-indicator.active {
color: #a55555;
}
+1 -1
View File
@@ -18,7 +18,7 @@ bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-wo
# Notifications
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all
bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, omarchy-toggle-notification-silencing
bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke
bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
if makoctl mode | grep -q 'do-not-disturb'; then
echo '{"text": "󰂛", "tooltip": "Notifications silenced", "class": "active"}'
else
echo '{"text": ""}'
fi
+22
View File
@@ -0,0 +1,22 @@
echo "Add notification silencing indicator to Waybar"
STYLE_FILE=~/.config/waybar/style.css
CONFIG_FILE=~/.config/waybar/config.jsonc
# Add notification-silencing-indicator to modules-center if not present
if ! grep -q "custom/notification-silencing-indicator" "$CONFIG_FILE"; then
sed -i 's/"custom\/idle-indicator"]/"custom\/idle-indicator", "custom\/notification-silencing-indicator"]/' "$CONFIG_FILE"
sed -i '/"tray": {/i\ "custom/notification-silencing-indicator": {\n "on-click": "omarchy-toggle-notification-silencing",\n "exec": "$OMARCHY_PATH/default/waybar/indicators/notification-silencing.sh",\n "signal": 10,\n "return-type": "json"\n },' "$CONFIG_FILE"
fi
# Add notification-silencing-indicator CSS if not present
if ! grep -q "#custom-notification-silencing-indicator" "$STYLE_FILE"; then
# Add to the shared indicator rule
sed -i 's/#custom-idle-indicator {/#custom-idle-indicator,\n#custom-notification-silencing-indicator {/' "$STYLE_FILE"
# Add to the shared active color rule
sed -i 's/#custom-idle-indicator.active {/#custom-idle-indicator.active,\n#custom-notification-silencing-indicator.active {/' "$STYLE_FILE"
fi
omarchy-restart-waybar