#!/usr/bin/env python3

# Turns on DND 
# Can be used for toggling along with a parent script DNDToggle.sh

def set_procname(Newname):
	newname = bytes(Newname, 'utf-8')
	from ctypes import cdll, byref, create_string_buffer
	libc = cdll.LoadLibrary('libc.so.6')    #Loading a 3rd party library C
	buff = create_string_buffer(len(newname)+1) #Note: One larger than the name (man prctl says that)
	buff.value = newname                 #Null terminated string as it should be
	libc.prctl(15, byref(buff), 0, 0, 0) #Refer to "#define" of "/usr/include/linux/prctl.h" for the misterious value 16 & arg[3..5] are zero as the man page says.

set_procname("DND.py")

from pydbus import SessionBus
import signal

bus = SessionBus()
remote_object = bus.get("org.freedesktop.Notifications", "/org/freedesktop/Notifications")

remote_object.Inhibit("DND.py", "Manual suspend", {})

signal.pause()