diff --git a/dropship.py b/dropship.py index 1e7fb17..3fa70c2 100644 --- a/dropship.py +++ b/dropship.py @@ -2,11 +2,12 @@ import logging import os -from signal import SIGINT, SIGTERM +from signal import SIGINT from subprocess import PIPE import gi import trio +import trio_gtk gi.require_version("Gtk", "3.0") gi.require_version("Gdk", "3.0") @@ -19,8 +20,6 @@ logging.basicConfig(level=os.environ.get("LOGLEVEL", "INFO")) log = logging.getLogger("dropship") -AUTO_CLIP_COPY_SIZE = -1 - class DropShip: """Drag it, drop it, ship it.""" @@ -146,31 +145,9 @@ class DropShip: await trio.run_process(command, stderr=PIPE) -def trio_run_with_gtk(): - """Run Trio and Gtk together.""" - - async def trio_main(): - """Trio main loop.""" - async with trio.open_nursery() as nursery: - DropShip(nursery=nursery) - while True: - await trio.sleep(1) # Note(decentral1se): replace this hack - - def done_callback(outcome): - glib.idle_add(gtk.main_quit) - - def glib_schedule(function): - glib.idle_add(function) - - trio.lowlevel.start_guest_run( - trio_main, - run_sync_soon_threadsafe=glib_schedule, - done_callback=done_callback, - host_uses_signal_set_wakeup_fd=True, - ) - - gtk.main() +async def main(nursery): + """Trio main entrypoint.""" + DropShip(nursery=nursery) -if __name__ == "__main__": - trio_run_with_gtk() +trio_gtk.run(main)