feat(main): add main.py with initial application setup
This commit is contained in:
1 parent
134735f223
commit
3a64a1c1f1
1 file changed
+61
@@ -0,0 +1,61 @@
|
||||
import os
|
||||
|
||||
import setproctitle
|
||||
from fabric import Application
|
||||
from fabric.utils import get_relative_path, monitor_file, exec_shell_command_async
|
||||
from loguru import logger
|
||||
|
||||
from modules.bar.bar import Bar, Corners
|
||||
from modules.launcher.launcher import Launcher
|
||||
|
||||
from modules.dock import Dock
|
||||
from modules.notification_popup import NotificationPopup
|
||||
from modules.osd import OSD
|
||||
from config.data import APP_NAME, CACHE_DIR, CONFIG_FILE, DOCK_ICON_SIZE, VERTICAL, APP_NAME_CAP
|
||||
|
||||
|
||||
for log in [
|
||||
"fabric.hyprland.widgets",
|
||||
"fabric.audio.service",
|
||||
"fabric.bluetooth.service",
|
||||
]:
|
||||
logger.disable(log)
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
setproctitle.setproctitle(APP_NAME)
|
||||
|
||||
if not os.path.isfile(CONFIG_FILE):
|
||||
exec_shell_command_async(f"python {get_relative_path('../config/config.py')}")
|
||||
bar = Bar()
|
||||
dock = Dock()
|
||||
corners = Corners()
|
||||
osd = OSD()
|
||||
notif = NotificationPopup()
|
||||
launcher = Launcher()
|
||||
bar.launcher = launcher
|
||||
launcher.bar = bar
|
||||
|
||||
app = Application(f"{APP_NAME}", bar, launcher, osd, dock)
|
||||
|
||||
# Monitor CSS files for changes
|
||||
css_file = monitor_file(get_relative_path("styles"))
|
||||
_ = css_file.connect("changed", lambda *_: set_css())
|
||||
|
||||
color_css_file = monitor_file(get_relative_path("./styles/colors.css"))
|
||||
_ = color_css_file.connect("changed", lambda *_: set_css())
|
||||
|
||||
def set_css():
|
||||
logger.info("[Main] Applying CSS")
|
||||
app.set_stylesheet_from_file(get_relative_path("styles/main.css"),
|
||||
exposed_functions={
|
||||
"dock_nmargin": lambda: f"margin-bottom: -{32 + DOCK_ICON_SIZE}px;" if not VERTICAL else f"margin-right: -{32 + DOCK_ICON_SIZE}px;",
|
||||
"dock_sep": lambda: f"margin: 8px 0;" if not VERTICAL else f"margin: 0 8px;",
|
||||
},)
|
||||
|
||||
app.set_css = set_css
|
||||
|
||||
app.set_css()
|
||||
|
||||
app.run()
|
||||
Reference in new issue
Block a user