add do-not-disturb button to ashell

This commit is contained in:
2026-02-24 21:34:43 +01:00
parent 98c6e20d5a
commit a614b87763

View File

@@ -2,10 +2,45 @@
lib,
isNixOS,
userConfig,
pkgs,
...
}:
let
mako-dnd-script = pkgs.writeShellScriptBin "ashell-mako-dnd" ''
case $1 in
listen)
print_state() {
if makoctl mode | grep -q do-not-disturb; then
echo '{"alt":"dnd"}'
else
echo '{"alt":"none"}'
fi
}
trap print_state USR1
print_state
while true; do
sleep infinity & wait $!
done
;;
toggle)
if makoctl mode | grep -q do-not-disturb; then
makoctl mode -r do-not-disturb > /dev/null
else
makoctl mode -a do-not-disturb > /dev/null
fi
pkill -USR1 -f "ashell-mako-dnd listen"
;;
esac
'';
in
{
programs.ashell = {
enable = true;
package = lib.mkIf (!isNixOS) null;
@@ -26,12 +61,23 @@
"MediaPlayer"
"SystemInfo"
[
"CustomNotifications"
"Tray"
"Settings"
]
];
};
CustomModule = [
{
name = "CustomNotifications";
icon = "";
command = "${mako-dnd-script}/bin/ashell-mako-dnd toggle";
listen_cmd = "${mako-dnd-script}/bin/ashell-mako-dnd listen";
icons.dnd = "";
}
];
clock = {
format = "%H:%M | %e.%m ";
};