diff --git a/hyprbars/README.md b/hyprbars/README.md index e84a2a6..30c7fde 100644 --- a/hyprbars/README.md +++ b/hyprbars/README.md @@ -32,6 +32,8 @@ plugin { `bar_text_font` -> (str) bar's title text font (default "Sans") +`bar_part_of_window` -> (bool) whether the bar is a part of the main window (if it is, stuff like shadows render around it) + ## Buttons Config Use the `hyprbars-button` keyword. diff --git a/hyprbars/barDeco.cpp b/hyprbars/barDeco.cpp index 20ed135..fd6120d 100644 --- a/hyprbars/barDeco.cpp +++ b/hyprbars/barDeco.cpp @@ -466,7 +466,8 @@ eDecorationLayer CHyprBar::getDecorationLayer() { } uint64_t CHyprBar::getDecorationFlags() { - return DECORATION_ALLOWS_MOUSE_INPUT | DECORATION_PART_OF_MAIN_WINDOW; + static auto* const PPART = &HyprlandAPI::getConfigValue(PHANDLE, "plugin:hyprbars:bar_part_of_window")->intValue; + return DECORATION_ALLOWS_MOUSE_INPUT | (*PPART ? DECORATION_PART_OF_MAIN_WINDOW : 0); } CBox CHyprBar::assignedBoxGlobal() { diff --git a/hyprbars/main.cpp b/hyprbars/main.cpp index da36d1d..6a68c11 100644 --- a/hyprbars/main.cpp +++ b/hyprbars/main.cpp @@ -70,6 +70,7 @@ APICALL EXPORT PLUGIN_DESCRIPTION_INFO PLUGIN_INIT(HANDLE handle) { HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:col.text", SConfigValue{.intValue = configStringToInt("rgba(ffffffff)")}); HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_text_size", SConfigValue{.intValue = 10}); HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_text_font", SConfigValue{.strValue = "Sans"}); + HyprlandAPI::addConfigValue(PHANDLE, "plugin:hyprbars:bar_part_of_window", SConfigValue{.intValue = 1}); HyprlandAPI::addConfigKeyword(PHANDLE, "hyprbars-button", [&](const std::string& k, const std::string& v) { onNewButton(k, v); }); HyprlandAPI::registerCallbackDynamic(PHANDLE, "preConfigReload", [&](void* self, SCallbackInfo& info, std::any data) { onPreConfigReload(); });