A notificação de volume da sua captura de tela é gerada pelo plug-in media-keys para o gnome-settings-daemon. Infelizmente, depois de navegar pelo código um pouco, não parece que há uma maneira de desativar o OSD sem quebrar a funcionalidade das teclas (sem, claro, editar o código e recompilar, o que é uma opção viável) .
No entanto, notei que ele é suprimido quando as notificações do Ubuntu estão habilitadas. Isso não nos ajuda, é claro, porque você queria e removeu o notify-osd. Mas eu encontrei uma espécie de solução idiota. Em vez disso, criamos nosso próprio daemon de notificação simples, que diz que ele suporta as mensagens de volume e, em seguida, come todas as notificações silenciosamente. O código:
from __future__ import print_function
import dbus
import dbus.service
import dbus.mainloop.glib
from gi.repository import GObject
SERVICE_NAME = "org.freedesktop.Notifications"
SERVICE_PATH = "/org/freedesktop/Notifications"
class Notifications(dbus.service.Object):
@dbus.service.method(SERVICE_NAME,
in_signature="susssasa{sv}i", out_signature="u")
def Notify(self, app_name, id, icon, summary, body, actions, hints, timeout):
print(app_name, summary, body)
return 1
@dbus.service.method(SERVICE_NAME,
in_signature="u", out_signature="")
def CloseNotification(self, id):
pass
@dbus.service.method(SERVICE_NAME,
in_signature="", out_signature="as")
def GetCapabilities(self):
return ["x-canonical-private-synchronous"]
@dbus.service.method(SERVICE_NAME,
in_signature="", out_signature="ssss")
def GetServerInformation(self):
return ("empty", "empty", "empty", "empty")
if __name__ == "__main__":
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
session_bus = dbus.SessionBus()
name = dbus.service.BusName(SERVICE_NAME)
path = Notifications(session_bus, SERVICE_PATH)
mainloop = GObject.MainLoop()
mainloop.run()
Você pode, é claro, comentar a função de impressão no método Notify, mas achei que seria interessante incluir alguma saída para que você possa ver que está funcionando. GetCapabilities
é onde a mágica acontece, o gnome-settings-daemon acha que o apoiamos para que não use seu próprio OSD.