#!/bin/bash # # Copyright (C) 2026 Danilo M. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License version 2 as # published by the Free Software Foundation. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # Suppress every notification balloon for a number of minutes. The balloon # renderer reads the file and withholds them; the daemon is untouched. This is # deliberate: the notification still arrives, still enters the drawer's list # and still reaches history, only its balloon is held back. # # notify-snooze.sh 30 # notify-snooze.sh off set -u dir="${XDG_RUNTIME_DIR:-/tmp}/notifyd" last="${HOME}/.local/state/notify-snooze.minutes" case "${1:-}" in off) rm -f "$dir/snooze" exit 0 ;; ''|*[!0-9]*) printf 'usage: %s \n' "${0##*/}" >&2 exit 1 ;; esac mkdir -p "$dir" "$(dirname "$last")" printf '%s\n' "$(( $(date +%s) + $1 * 60 ))" > "$dir/snooze.tmp" mv "$dir/snooze.tmp" "$dir/snooze" printf '%s\n' "$1" > "$last.tmp" mv "$last.tmp" "$last"