From 24b313497f22f837577371675c145ba9b51d7ee5 Mon Sep 17 00:00:00 2001 From: Bora Gülerman <49169566+eratoriele@users.noreply.github.com> Date: Wed, 26 Nov 2025 07:45:49 +0300 Subject: bar: add config option to disable on selected screens (#920) * modules/drawers: Added a bar config option to disable the bar on selected screens Extended the visualizer on screens that the bar is hidden * modules/drawers: surrounded barwrapper with a loader * fix/modules/drawers: fix a null reference missed to fix a reference to bar object to barLoader.item * modules/drawers: added regex support also reverted the barLoader, added a disabled property to BarLoader instead * fix: module/drawers: applied requested changes --- README.md | 1 + config/BarConfig.qml | 1 + modules/bar/BarWrapper.qml | 5 +++-- modules/drawers/Drawers.qml | 16 ++++++++++++++++ 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1647b81..eb876e0 100644 --- a/README.md +++ b/README.md @@ -400,6 +400,7 @@ default, you must create it manually. } ] }, + "excludedScreens": [""], "activeWindow": { "inverted": false } diff --git a/config/BarConfig.qml b/config/BarConfig.qml index daa2b34..a0ce4be 100644 --- a/config/BarConfig.qml +++ b/config/BarConfig.qml @@ -12,6 +12,7 @@ JsonObject { property Status status: Status {} property Clock clock: Clock {} property Sizes sizes: Sizes {} + property list excludedScreens: [] property list entries: [ { diff --git a/modules/bar/BarWrapper.qml b/modules/bar/BarWrapper.qml index b496cfd..29961b6 100644 --- a/modules/bar/BarWrapper.qml +++ b/modules/bar/BarWrapper.qml @@ -12,11 +12,12 @@ Item { required property ShellScreen screen required property PersistentProperties visibilities required property BarPopouts.Wrapper popouts + required property bool disabled readonly property int padding: Math.max(Appearance.padding.smaller, Config.border.thickness) readonly property int contentWidth: Config.bar.sizes.innerWidth + padding * 2 - readonly property int exclusiveZone: Config.bar.persistent || visibilities.bar ? contentWidth : Config.border.thickness - readonly property bool shouldBeVisible: Config.bar.persistent || visibilities.bar || isHovered + readonly property int exclusiveZone: !disabled && (Config.bar.persistent || visibilities.bar) ? contentWidth : Config.border.thickness + readonly property bool shouldBeVisible: !disabled && (Config.bar.persistent || visibilities.bar || isHovered) property bool isHovered function closeTray(): void { diff --git a/modules/drawers/Drawers.qml b/modules/drawers/Drawers.qml index 2ba79a4..9fc38bd 100644 --- a/modules/drawers/Drawers.qml +++ b/modules/drawers/Drawers.qml @@ -18,6 +18,20 @@ Variants { id: scope required property ShellScreen modelData + readonly property bool barDisabled: { + const regexChecker = /^\^.*\$$/; + for (const filter of Config.bar.excludedScreens) { + // If filter is a regex + if (regexChecker.test(filter)) { + if ((new RegExp(filter)).test(modelData.name)) + return true; + } else { + if (filter === modelData.name) + return true; + } + } + return false; + } Exclusions { screen: scope.modelData @@ -169,6 +183,8 @@ Variants { visibilities: visibilities popouts: panels.popouts + disabled: scope.barDisabled + Component.onCompleted: Visibilities.bars.set(scope.modelData, this) } } -- cgit v1.2.3-freya