diff --git a/components/DashboardState.qml b/components/DashboardState.qml new file mode 100644 index 00000000..b4355cd7 --- /dev/null +++ b/components/DashboardState.qml @@ -0,0 +1,6 @@ +import Quickshell + +PersistentProperties { + property int currentTab + property date currentDate: new Date() +} diff --git a/components/DrawerVisibilities.qml b/components/DrawerVisibilities.qml new file mode 100644 index 00000000..3286e319 --- /dev/null +++ b/components/DrawerVisibilities.qml @@ -0,0 +1,11 @@ +import Quickshell + +PersistentProperties { + property bool bar + property bool osd + property bool session + property bool launcher + property bool dashboard + property bool utilities + property bool sidebar +} diff --git a/modules/Shortcuts.qml b/modules/Shortcuts.qml index adf660ff..41b25ee8 100644 --- a/modules/Shortcuts.qml +++ b/modules/Shortcuts.qml @@ -1,3 +1,4 @@ +import qs.components import qs.components.misc import qs.modules.controlcenter import qs.services diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index 5a7c3ce6..83815d1f 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -1,5 +1,6 @@ pragma ComponentBehavior: Bound +import qs.components import qs.services import qs.config import "popouts" as BarPopouts @@ -13,7 +14,7 @@ ColumnLayout { id: root required property ShellScreen screen - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property BarPopouts.Wrapper popouts readonly property int vPadding: Appearance.padding.large diff --git a/modules/bar/BarWrapper.qml b/modules/bar/BarWrapper.qml index 5fddf5cd..450e6a52 100644 --- a/modules/bar/BarWrapper.qml +++ b/modules/bar/BarWrapper.qml @@ -10,7 +10,7 @@ Item { id: root required property ShellScreen screen - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property BarPopouts.Wrapper popouts required property bool disabled diff --git a/modules/bar/components/Power.qml b/modules/bar/components/Power.qml index dc9ef693..c1537990 100644 --- a/modules/bar/components/Power.qml +++ b/modules/bar/components/Power.qml @@ -7,7 +7,7 @@ import QtQuick Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities implicitWidth: icon.implicitHeight + Appearance.padding.small * 2 implicitHeight: icon.implicitHeight diff --git a/modules/dashboard/Content.qml b/modules/dashboard/Content.qml index 978fbc6f..9012639c 100644 --- a/modules/dashboard/Content.qml +++ b/modules/dashboard/Content.qml @@ -11,7 +11,7 @@ import QtQuick.Layouts Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities readonly property bool needsKeyboard: { const count = repeater.count; for (let i = 0; i < count; i++) { @@ -21,7 +21,7 @@ Item { } return false; } - required property PersistentProperties state + required property DashboardState state required property FileDialog facePicker readonly property var dashboardTabs: { diff --git a/modules/dashboard/Dash.qml b/modules/dashboard/Dash.qml index 71e224fb..89067b5c 100644 --- a/modules/dashboard/Dash.qml +++ b/modules/dashboard/Dash.qml @@ -9,8 +9,8 @@ import QtQuick.Layouts GridLayout { id: root - required property PersistentProperties visibilities - required property PersistentProperties state + required property DrawerVisibilities visibilities + required property DashboardState state required property FileDialog facePicker rowSpacing: Appearance.spacing.normal diff --git a/modules/dashboard/Media.qml b/modules/dashboard/Media.qml index 25511e8c..8a8b6bdc 100644 --- a/modules/dashboard/Media.qml +++ b/modules/dashboard/Media.qml @@ -15,7 +15,7 @@ import QtQuick.Shapes Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities readonly property bool needsKeyboard: lyricMenuOpen readonly property real nonAnimHeight: Math.max(cover.implicitHeight + Config.dashboard.sizes.mediaVisualiserSize * 2, lyricMenuOpen ? lyricMenu.implicitHeight : details.implicitHeight, bongocat.implicitHeight) + Appearance.padding.large * 2 diff --git a/modules/dashboard/Tabs.qml b/modules/dashboard/Tabs.qml index d1c78cbd..5ac45455 100644 --- a/modules/dashboard/Tabs.qml +++ b/modules/dashboard/Tabs.qml @@ -13,7 +13,7 @@ Item { id: root required property real nonAnimWidth - required property PersistentProperties state + required property DashboardState state required property var tabs readonly property alias count: bar.count diff --git a/modules/dashboard/Wrapper.qml b/modules/dashboard/Wrapper.qml index 01eddcc3..522fdc88 100644 --- a/modules/dashboard/Wrapper.qml +++ b/modules/dashboard/Wrapper.qml @@ -3,6 +3,7 @@ pragma ComponentBehavior: Bound import qs.components import qs.components.filedialog import qs.config +import qs.services import qs.utils import Caelestia import Quickshell @@ -11,12 +12,9 @@ import QtQuick Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities readonly property bool needsKeyboard: content.item?.needsKeyboard ?? false - readonly property PersistentProperties dashState: PersistentProperties { - property int currentTab - property date currentDate: new Date() - + readonly property DashboardState dashState: DashboardState { reloadableId: "dashboardState" } readonly property FileDialog facePicker: FileDialog { diff --git a/modules/dashboard/dash/User.qml b/modules/dashboard/dash/User.qml index 518ec8aa..09fec9eb 100644 --- a/modules/dashboard/dash/User.qml +++ b/modules/dashboard/dash/User.qml @@ -11,8 +11,8 @@ import QtQuick Row { id: root - required property PersistentProperties visibilities - required property PersistentProperties state + required property DrawerVisibilities visibilities + required property DashboardState state required property FileDialog facePicker padding: Appearance.padding.large diff --git a/modules/drawers/Drawers.qml b/modules/drawers/Drawers.qml index 1423cd21..ffa4f8d2 100644 --- a/modules/drawers/Drawers.qml +++ b/modules/drawers/Drawers.qml @@ -132,17 +132,9 @@ Variants { } } - PersistentProperties { + DrawerVisibilities { id: visibilities - property bool bar - property bool osd - property bool session - property bool launcher - property bool dashboard - property bool utilities - property bool sidebar - Component.onCompleted: Visibilities.load(scope.modelData, this) } diff --git a/modules/drawers/Interactions.qml b/modules/drawers/Interactions.qml index d017decb..29461e80 100644 --- a/modules/drawers/Interactions.qml +++ b/modules/drawers/Interactions.qml @@ -1,3 +1,4 @@ +import qs.components import qs.components.controls import qs.config import qs.modules.bar.popouts as BarPopouts @@ -9,7 +10,7 @@ CustomMouseArea { required property ShellScreen screen required property BarPopouts.Wrapper popouts - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property Panels panels required property Item bar diff --git a/modules/drawers/Panels.qml b/modules/drawers/Panels.qml index 7705732a..deb7af16 100644 --- a/modules/drawers/Panels.qml +++ b/modules/drawers/Panels.qml @@ -1,3 +1,4 @@ +import qs.components import qs.config import qs.modules.osd as Osd import qs.modules.notifications as Notifications @@ -15,7 +16,7 @@ Item { id: root required property ShellScreen screen - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property Item bar readonly property alias osd: osd diff --git a/modules/launcher/AppList.qml b/modules/launcher/AppList.qml index 7f7b843a..6a2901bc 100644 --- a/modules/launcher/AppList.qml +++ b/modules/launcher/AppList.qml @@ -14,7 +14,7 @@ StyledListView { id: root required property StyledTextField search - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities model: ScriptModel { id: model diff --git a/modules/launcher/Content.qml b/modules/launcher/Content.qml index 55982d31..f5bffcd9 100644 --- a/modules/launcher/Content.qml +++ b/modules/launcher/Content.qml @@ -11,7 +11,7 @@ import QtQuick Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property var panels required property real maxHeight diff --git a/modules/launcher/ContentList.qml b/modules/launcher/ContentList.qml index 730fcdb5..aeba6ccc 100644 --- a/modules/launcher/ContentList.qml +++ b/modules/launcher/ContentList.qml @@ -12,7 +12,7 @@ Item { id: root required property var content - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property var panels required property real maxHeight required property StyledTextField search diff --git a/modules/launcher/Wrapper.qml b/modules/launcher/Wrapper.qml index 749b41c2..a69cc99e 100644 --- a/modules/launcher/Wrapper.qml +++ b/modules/launcher/Wrapper.qml @@ -9,7 +9,7 @@ Item { id: root required property ShellScreen screen - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property var panels readonly property bool shouldBeActive: visibilities.launcher && Config.launcher.enabled diff --git a/modules/launcher/items/AppItem.qml b/modules/launcher/items/AppItem.qml index 84ee06a6..62ca0dd5 100644 --- a/modules/launcher/items/AppItem.qml +++ b/modules/launcher/items/AppItem.qml @@ -11,7 +11,7 @@ Item { id: root required property DesktopEntry modelData - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities implicitHeight: Config.launcher.sizes.itemHeight diff --git a/modules/launcher/items/WallpaperItem.qml b/modules/launcher/items/WallpaperItem.qml index 1a2eda5f..ddd37eab 100644 --- a/modules/launcher/items/WallpaperItem.qml +++ b/modules/launcher/items/WallpaperItem.qml @@ -11,7 +11,7 @@ Item { id: root required property FileSystemEntry modelData - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities scale: 0.5 opacity: 0 diff --git a/modules/notifications/Content.qml b/modules/notifications/Content.qml index 2d4590e0..42fb1fce 100644 --- a/modules/notifications/Content.qml +++ b/modules/notifications/Content.qml @@ -1,3 +1,4 @@ +import qs.components import qs.components.containers import qs.components.widgets import qs.services @@ -9,7 +10,7 @@ import QtQuick Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property Item panels readonly property int padding: Appearance.padding.large diff --git a/modules/session/Content.qml b/modules/session/Content.qml index 726d24b3..722f0804 100644 --- a/modules/session/Content.qml +++ b/modules/session/Content.qml @@ -10,7 +10,7 @@ import QtQuick Column { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities padding: Appearance.padding.large spacing: Appearance.spacing.large diff --git a/modules/session/Wrapper.qml b/modules/session/Wrapper.qml index 14b03a80..23530fba 100644 --- a/modules/session/Wrapper.qml +++ b/modules/session/Wrapper.qml @@ -8,7 +8,7 @@ import QtQuick Item { id: root - required property PersistentProperties visibilities + required property DrawerVisibilities visibilities required property var panels readonly property real nonAnimWidth: content.implicitWidth diff --git a/services/Notifs.qml b/services/Notifs.qml index 2ada0f39..c36a4f3f 100644 --- a/services/Notifs.qml +++ b/services/Notifs.qml @@ -3,6 +3,7 @@ pragma ComponentBehavior: Bound import qs.components.misc import qs.config +import qs.services import qs.utils import Caelestia import Quickshell diff --git a/services/Visibilities.qml b/services/Visibilities.qml index 5ddde0c9..9c1484d7 100644 --- a/services/Visibilities.qml +++ b/services/Visibilities.qml @@ -1,16 +1,18 @@ pragma Singleton +import qs.components import Quickshell +import Quickshell.Hyprland Singleton { property var screens: new Map() property var bars: new Map() - function load(screen: ShellScreen, visibilities: var): void { + function load(screen: ShellScreen, visibilities: DrawerVisibilities): void { screens.set(Hypr.monitorFor(screen), visibilities); } - function getForActive(): PersistentProperties { + function getForActive(): DrawerVisibilities { return screens.get(Hypr.focusedMonitor); } }