Is there a way to toggle Do Not Disturb from the commandline?
Thanks to @UnKNOWn, I found this command and with a little tweaking, I was able to create a script to toggle Do Not Disturb mode. Here is the GitHub repo to the script. I set a keyboard shortcut in the settings to make it usable.
Edit: For anyone not wanting to deal with a script, you can simply use Super + V to open up the notifications menu and press space to toggle DND. Realized this the day after, but I hope the script helps haha.
You can also do this through Python as well. Using something like systemd/supervisord/etc, this can be done automatically:
import subprocess
import time
# Time to set when dnd should start/stop
dnd_time = {'start': {'hour': 17, 'minute': 00}, 'end': {'hour': 8, 'minute': 00}}
sleep_time = 30
def get_dnd_status():
enabled = None
# get to check
status = subprocess.check_output(['gsettings', 'get', 'org.gnome.desktop.notifications', 'show-banners']).strip().decode()
# 'false' means DND is enabled
if status == 'false':
enabled = True
else:
enabled = False
return enabled
def set_dnd_status(to):
# set to apply
set_it = subprocess.check_output(['gsettings', 'set', 'org.gnome.desktop.notifications', 'show-banners', f'{to}'])
if __name__ == '__main__':
current_time = time.localtime()
if dnd_time['start']['hour'] >= current_time.tm_hour >= dnd_time['end']['hour']:
set_dnd_status('true')
else:
enabled = get_dnd_status()
if enabled:
set_dnd_status('false')
time.sleep(sleep_time)