Adding css reloader

This commit is contained in:
dpayne
2024-01-21 18:23:46 -08:00
parent 6e12f81223
commit d7ed4f1fa8
7 changed files with 463 additions and 3 deletions

View File

@@ -262,15 +262,18 @@ int waybar::Client::main(int argc, char *argv[]) {
if (!portal) {
portal = std::make_unique<waybar::Portal>();
}
auto css_file = getStyle(style_opt);
setupCss(css_file);
m_cssFile = getStyle(style_opt);
setupCss(m_cssFile);
m_cssReloadHelper = std::make_unique<CssReloadHelper>(m_cssFile, [&]() { setupCss(m_cssFile); });
portal->signal_appearance_changed().connect([&](waybar::Appearance appearance) {
auto css_file = getStyle(style_opt, appearance);
setupCss(css_file);
});
m_cssReloadHelper->monitorChanges();
bindInterfaces();
gtk_app->hold();
gtk_app->run();
m_cssReloadHelper.reset(); // stop watching css file
bars.clear();
return 0;
}