36 lines
1.0 KiB
Python

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
from .workspace_config_watcher import Watcher
from pathlib import Path
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)
watcher = Watcher(Path(WORKSPACES_FILE), sway, tree, interface)
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.create_task(watcher.run())
loop.run_forever()
if __name__ == "__main__":
main()