import asyncio from .workspace_tree import WorkspaceTree from .interface import ContextMngrInterface from .swayipc import SwayConnection import os from sdbus import request_default_bus_name_async, sd_bus_open_user, set_default_bus WORKSPACES_FILE = os.environ.get( "WORKSPACES_FILE", os.path.expanduser("~/.config/sway/workspaces.json") ) def main(): set_default_bus(sd_bus_open_user()) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) tree = WorkspaceTree(WORKSPACES_FILE) sway = SwayConnection(tree) interface = ContextMngrInterface(tree, sway.connection) sway.on_change(interface.on_tree_changed) loop.run_until_complete(request_default_bus_name_async("dev.ezri.sway")) interface.export_to_dbus("/ContextManager") loop.create_task(sway.run()) loop.run_forever() if __name__ == "__main__": main()