switch from dbus-python to gio
This commit is contained in:
parent
8fb1eb911d
commit
8553693ddf
|
@ -9,7 +9,7 @@ Homepage: https://github.com/slgobinath/SafeEyes/
|
|||
|
||||
Package: safeeyes
|
||||
Architecture: all
|
||||
Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-ayatanaappindicator3-0.1, python3 (>= 3.10.0), python3-xlib, python3-dbus, gir1.2-notify-0.7, python3-babel, x11-utils, xprintidle, alsa-utils, python3-psutil, python3-croniter, python3-packaging
|
||||
Depends: ${misc:Depends}, ${python3:Depends}, gir1.2-ayatanaappindicator3-0.1, python3 (>= 3.10.0), python3-xlib, gir1.2-notify-0.7, python3-babel, x11-utils, xprintidle, alsa-utils, python3-psutil, python3-croniter, python3-packaging
|
||||
Description: Safe Eyes
|
||||
Safe Eyes is a simple tool to remind you to take periodic breaks for your eyes. This is essential for anyone spending more time on the computer to avoid eye strain and other physical problems.
|
||||
.
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"version": "0.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"python_modules": ["dbus"],
|
||||
"python_modules": [],
|
||||
"shell_commands": [],
|
||||
"operating_systems": [],
|
||||
"desktop_environments": [],
|
||||
|
|
|
@ -22,12 +22,11 @@ Media Control plugin lets users to pause currently playing media player from the
|
|||
|
||||
import logging
|
||||
import os
|
||||
import dbus
|
||||
import re
|
||||
import gi
|
||||
from safeeyes.model import TrayAction
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gtk, Gio
|
||||
|
||||
tray_icon_path = None
|
||||
|
||||
|
@ -37,13 +36,31 @@ def __active_players():
|
|||
List of all media players which are playing now.
|
||||
"""
|
||||
players = []
|
||||
bus = dbus.SessionBus()
|
||||
|
||||
for service in bus.list_names():
|
||||
dbus_proxy = Gio.DBusProxy.new_for_bus_sync(
|
||||
bus_type=Gio.BusType.SESSION,
|
||||
flags=Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES,
|
||||
info=None,
|
||||
name='org.freedesktop.DBus',
|
||||
object_path='/org/freedesktop/DBus',
|
||||
interface_name='org.freedesktop.DBus',
|
||||
cancellable=None,
|
||||
)
|
||||
|
||||
for service in dbus_proxy.ListNames():
|
||||
if re.match('org.mpris.MediaPlayer2.', service):
|
||||
player = bus.get_object(service, "/org/mpris/MediaPlayer2")
|
||||
interface = dbus.Interface(player, 'org.freedesktop.DBus.Properties')
|
||||
status = str(interface.Get('org.mpris.MediaPlayer2.Player', 'PlaybackStatus')).lower()
|
||||
player = Gio.DBusProxy.new_for_bus_sync(
|
||||
bus_type=Gio.BusType.SESSION,
|
||||
flags=Gio.DBusProxyFlags.NONE,
|
||||
info=None,
|
||||
name=service,
|
||||
object_path='/org/mpris/MediaPlayer2',
|
||||
interface_name='org.mpris.MediaPlayer2.Player',
|
||||
cancellable=None,
|
||||
)
|
||||
|
||||
status = player.get_cached_property('PlaybackStatus').unpack().lower()
|
||||
|
||||
if status == "playing":
|
||||
players.append(player)
|
||||
return players
|
||||
|
@ -54,8 +71,7 @@ def __pause_players(players):
|
|||
Pause all playing media players using dbus.
|
||||
"""
|
||||
for player in players:
|
||||
interface = dbus.Interface(player, dbus_interface='org.mpris.MediaPlayer2.Player')
|
||||
interface.Pause()
|
||||
player.Pause()
|
||||
|
||||
|
||||
def init(ctx, safeeyes_config, plugin_config):
|
||||
|
|
|
@ -25,9 +25,7 @@ import logging
|
|||
import os
|
||||
from threading import Timer
|
||||
|
||||
import dbus
|
||||
import gi
|
||||
from dbus.mainloop.glib import DBusGMainLoop
|
||||
from safeeyes import utility
|
||||
from safeeyes.ui.about_dialog import AboutDialog
|
||||
from safeeyes.ui.break_screen import BreakScreen
|
||||
|
@ -189,14 +187,28 @@ class SafeEyes(Gtk.Application):
|
|||
self.plugins_manager.start()
|
||||
self.safe_eyes_core.start()
|
||||
|
||||
def handle_suspend_signal(self, proxy, sender, signal, parameters):
|
||||
if signal != "PrepareForSleep":
|
||||
return
|
||||
|
||||
(sleeping, ) = parameters
|
||||
|
||||
self.handle_suspend_callback(sleeping)
|
||||
|
||||
def handle_system_suspend(self):
|
||||
"""
|
||||
Setup system suspend listener.
|
||||
"""
|
||||
DBusGMainLoop(set_as_default=True)
|
||||
bus = dbus.SystemBus()
|
||||
bus.add_signal_receiver(self.handle_suspend_callback, 'PrepareForSleep',
|
||||
'org.freedesktop.login1.Manager', 'org.freedesktop.login1')
|
||||
self.suspend_proxy = Gio.DBusProxy.new_for_bus_sync(
|
||||
bus_type=Gio.BusType.SYSTEM,
|
||||
flags=Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES,
|
||||
info=None,
|
||||
name='org.freedesktop.login1',
|
||||
object_path='/org/freedesktop/login1',
|
||||
interface_name='org.freedesktop.login1.Manager',
|
||||
cancellable=None,
|
||||
)
|
||||
self.suspend_proxy.connect('g-signal', self.handle_suspend_signal)
|
||||
|
||||
def on_skipped(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue