diff --git a/modules/nixvim/home.nix b/modules/nixvim/home.nix
index 03f9232..ff1fd34 100644
--- a/modules/nixvim/home.nix
+++ b/modules/nixvim/home.nix
@@ -60,6 +60,10 @@ in
};
};
};
+ lsp-format = {
+ enable = true;
+ # lspServersToEnable = [ "qmlls" ];
+ };
notify.enable = true;
mini-cursorword.enable = true;
# mini-statusline.enable = true;
diff --git a/modules/quickshell/home.nix b/modules/quickshell/home.nix
index 8180462..619086c 100644
--- a/modules/quickshell/home.nix
+++ b/modules/quickshell/home.nix
@@ -17,7 +17,7 @@ in
};
config.xdg.configFile."quickshell" = lib.mkIf cfg.enable {
recursive = true;
- source = config.lib.file.mkOutOfStoreSymlink "${nix-meow.flakeRoot}/modules/quickshell/quickshell";
+ source = config.lib.file.mkOutOfStoreSymlink /home/doloro/dotfiles/modules/quickshell/quickshell;
};
config.systemd.user.services.quickshell = lib.mkIf cfg.enable {
Unit = {
diff --git a/modules/quickshell/quickshell/assets/bar/V2/mic.svg b/modules/quickshell/quickshell/assets/bar/V2/mic.svg
new file mode 100644
index 0000000..0d26014
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/V2/mic.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/V2/micOff.svg b/modules/quickshell/quickshell/assets/bar/V2/micOff.svg
new file mode 100644
index 0000000..155b7db
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/V2/micOff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/V2/speaker.svg b/modules/quickshell/quickshell/assets/bar/V2/speaker.svg
new file mode 100644
index 0000000..ed3296d
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/V2/speaker.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/V2/speakerOff.svg b/modules/quickshell/quickshell/assets/bar/V2/speakerOff.svg
new file mode 100644
index 0000000..19b855a
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/V2/speakerOff.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/1.svg b/modules/quickshell/quickshell/assets/bar/batt/1.svg
new file mode 100644
index 0000000..dfedcde
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/1.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/2.svg b/modules/quickshell/quickshell/assets/bar/batt/2.svg
new file mode 100644
index 0000000..5cf37f7
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/3.svg b/modules/quickshell/quickshell/assets/bar/batt/3.svg
new file mode 100644
index 0000000..8ef1896
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/3.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/4.svg b/modules/quickshell/quickshell/assets/bar/batt/4.svg
new file mode 100644
index 0000000..3f715c2
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/4.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/5.svg b/modules/quickshell/quickshell/assets/bar/batt/5.svg
new file mode 100644
index 0000000..dc3eac9
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/5.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/6.svg b/modules/quickshell/quickshell/assets/bar/batt/6.svg
new file mode 100644
index 0000000..9fb13a8
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/6.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/assets/bar/batt/7.svg b/modules/quickshell/quickshell/assets/bar/batt/7.svg
new file mode 100644
index 0000000..7bb97d7
--- /dev/null
+++ b/modules/quickshell/quickshell/assets/bar/batt/7.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/modules/quickshell/quickshell/bar/Bar.qml b/modules/quickshell/quickshell/bar/Bar.qml
index 5e84935..36f574e 100755
--- a/modules/quickshell/quickshell/bar/Bar.qml
+++ b/modules/quickshell/quickshell/bar/Bar.qml
@@ -12,65 +12,50 @@ import "widgets/common" as Common
import "widgets/clock" as Clock
import "widgets/workspace" as Workspace
-// Tako kindly threatened you to sort the naming schema and to put all the svg's in an asset folder, so please do that
+PanelWindow {
+ property var modelData
+ screen: modelData.values[0]
- PanelWindow {
- property var modelData
- screen: modelData.values[0];
+ color: '#20ffffff'
+ anchors {
+ top: true
+ left: true
+ right: true
+ }
- color: '#20ffffff'
+ implicitHeight: 31
+ RowLayout {
+ height: 30
anchors {
- top: true
- left: true
- right: true
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ // bottomMargin: 2
+ leftMargin: 5
+ rightMargin: 5
}
-
- implicitHeight: 32
RowLayout {
- height: 28
- anchors {
- top: parent.top
- left: parent.left
- right: parent.right
- // bottomMargin: 2
- leftMargin: 10
- rightMargin: 10
- }
- RowLayout { // Left
- Layout.alignment: Qt.AlignLeft
- Clock.Date {}
- Clock.Clock {}
- Workspace.WorkspaceWidget {}
- }
- RowLayout { // Center
- // TODO: add icons of the active window per workspace in the workspace tab
- anchors.centerIn: parent
- }
- RowLayout { // Right
- Layout.alignment: Qt.AlignRight
- Loader {
- sourceComponent: Widgets.Audio {}
- }
- RowLayout {
- Text {
- text: HyprlandWindowTracker.HyprlandWindowTracker.aaaa
- }
- visible: Player.activePlayer.isPlaying()
- Player.PlayerWidgetV2 {
- }
- }
- Widgets.SystemTray {
- id: systemTray
- }
- }
+ // Left
+ Layout.alignment: Qt.AlignLeft
+ Widgets.Workspaces {}
}
- Rectangle {
- anchors {
- bottom: parent.bottom
- left: parent.left
- right: parent.right
- }
- height: 1
- color: "#8d8d8d"
+ RowLayout {
+ // Center
+ Layout.alignment: Qt.AlignCenter
}
- }
+ RowLayout {
+ // Right
+ Layout.alignment: Qt.AlignRight
+ Widgets.Demo {}
+ }
+ }
+ // Rectangle {
+ // anchors {
+ // bottom: parent.bottom
+ // left: parent.left
+ // right: parent.right
+ // }
+ // height: 1
+ // color: "#8d8d8d"
+ // }
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/Audio.qml b/modules/quickshell/quickshell/bar/widgets/Audio.qml
index f12e85d..6c55944 100755
--- a/modules/quickshell/quickshell/bar/widgets/Audio.qml
+++ b/modules/quickshell/quickshell/bar/widgets/Audio.qml
@@ -4,56 +4,59 @@ import QtQuick
import QtQuick.Layouts
import Quickshell.Widgets
import Quickshell.Services.Pipewire
+import QtQuick.VectorImage
+import QtQuick.Effects
import "common" as Common
-
-Item {
+Rectangle {
id: root
property PwNode speakerNode: Pipewire.defaultAudioSink
property PwNode microphoneNode: Pipewire.defaultAudioSource
- PwObjectTracker { objects: [ root.microphoneNode, root.speakerNode ] }
-
- width: row.width
- height: row.height
-
- // console.log("a");
-
+ PwObjectTracker {
+ objects: [root.microphoneNode, root.speakerNode]
+ }
+ implicitWidth: itemContent.width + 4
+ implicitHeight: 24
+ radius: 5.5
+ Layout.alignment: Qt.AlignVCenter
+ color: "#2a2a2a" // Define item color
RowLayout {
- id: row
- Item {
- implicitWidth: 28
- implicitHeight: 28
- Rectangle {
- width: parent.width
- height: parent.height
- radius: 7
- color: "black"
- }
- Text {
- anchors.centerIn: parent
- // implicitSize: 25
- font.pixelSize: 28
- color: root.speakerNode.audio.muted ? "#FF474C" : "white"
- font.family: "CaskaydiaCove Nerd Font Mono"
- text: root.speakerNode.audio.muted ? Common.Icons.audioIcons.speakerMuted : Common.Icons.audioIcons.speaker
- }
- }
- Item {
- implicitWidth: 28
- implicitHeight: 28
- Rectangle {
- width: parent.width
- height: parent.height
- radius: 7
- color: "black"
- }
- Text {
- anchors.centerIn: parent
- // implicitSize: 25
- font.pixelSize: 34
- color: root.microphoneNode.audio.muted ? "#FF474C" : "white"
- font.family: "CaskaydiaCove Nerd Font Mono"
- text: root.microphoneNode.audio.muted ? Common.Icons.audioIcons.microphoneMuted : Common.Icons.audioIcons.microphone
+ id: itemContent
+ Repeater {
+ model: [
+ {
+ on: "../../assets/bar/V2/speaker.svg",
+ off: "../../assets/bar/V2/speakerOff.svg",
+ node: root.speakerNode
+ },
+ {
+ on: "../../assets/bar/V2/mic.svg",
+ off: "../../assets/bar/V2/micOff.svg",
+ node: root.microphoneNode
+ },
+ ]
+ Item {
+ implicitWidth: 24
+ implicitHeight: 24
+ // anchors.centerIn: parent
+ VectorImage {
+ id: svgImage
+ width: parent.width
+ height: parent.height
+ source: modelData.node.audio.muted ? modelData.off : modelData.on
+ visible: false
+ fillMode: Image.PreserveAspectFit // Adjusts the SVG while keeping the aspect ratio
+ }
+ MultiEffect {
+ source: svgImage
+ width: parent.width
+ height: parent.height
+ // anchors.centerIn: parent
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ colorization: 1
+ brightness: 1
+ colorizationColor: modelData.node.audio.muted ? "#e53b3c" : "#b1b2b5"
+ }
}
}
}
diff --git a/modules/quickshell/quickshell/bar/widgets/Battery.qml b/modules/quickshell/quickshell/bar/widgets/Battery.qml
new file mode 100644
index 0000000..c6c296b
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/Battery.qml
@@ -0,0 +1,71 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+import QtQuick.Layouts
+import Quickshell.Widgets
+import Quickshell.Services.Pipewire
+import QtQuick.VectorImage
+import QtQuick.Effects
+import Quickshell.Services.UPower
+import "common" as Common
+
+Rectangle {
+ id: root
+ property int battPercent: 58
+ implicitWidth: itemContent.width + 4
+ implicitHeight: 24
+ radius: 5.5
+ Layout.alignment: Qt.AlignVCenter
+ color: "#2a2a2a" // Define item color
+ Item {
+ id: itemContent
+ implicitWidth: 24
+ implicitHeight: 24
+ // anchors.centerIn: parent
+ VectorImage {
+ id: svgImage
+ width: parent.width
+ height: parent.height
+ source: "../../assets/bar/batt/" + root.getBatteryState(UPower.displayDevice.percentage) + ".svg"
+ visible: false
+ fillMode: Image.PreserveAspectFit // Adjusts the SVG while keeping the aspect ratio
+ }
+ MultiEffect {
+ source: svgImage
+ width: parent.width
+ height: parent.height
+ // anchors.centerIn: parent
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ // colorization: 1
+ brightness: 1
+ // colorizationColor: modelData.node.audio.muted ? "#e53b3c" : "#b1b2b5"
+ }
+ }
+ function getBatteryState(level) {
+ if (level === null) {
+ return 0;
+ }
+
+ level = Math.max(0, Math.min(100, level));
+
+ if (level === 0)
+ return 0; // 0% exactly
+ if (level === 100)
+ return 7; // 100% exactly
+
+ if (level > 0 && level <= 16)
+ return 1;
+ if (level > 16 && level <= 32)
+ return 2;
+ if (level > 32 && level <= 48)
+ return 3;
+ if (level > 48 && level <= 64)
+ return 4;
+ if (level > 64 && level <= 80)
+ return 5;
+ if (level > 80 && level < 100)
+ return 6;
+
+ return 0;
+ }
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/BatteryData.qml b/modules/quickshell/quickshell/bar/widgets/BatteryData.qml
new file mode 100644
index 0000000..e69de29
diff --git a/modules/quickshell/quickshell/bar/widgets/Demo.qml b/modules/quickshell/quickshell/bar/widgets/Demo.qml
new file mode 100644
index 0000000..6401e02
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/Demo.qml
@@ -0,0 +1,40 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+import QtQuick.Layouts
+import Quickshell.Widgets
+import Quickshell.Services.Pipewire
+import "common" as Common
+import "clock" as Clock
+
+Rectangle {
+ id: backgroundRect
+ implicitWidth: rowLayout.implicitWidth + 6 // Account for padding (2px left + 2px right)
+ implicitHeight: rowLayout.implicitHeight + 4 // Account for padding (2px top + 2px bottom)
+ color: "black"
+ radius: 6.5 // Background rectangle with rounded corners
+ // border.color: "gray"
+ // border.width: 1
+
+ // Inner Rectangle for padding and layout
+ Rectangle {
+ id: content
+ anchors.fill: parent
+ anchors.margins: 2 // Create 2px padding on all sides
+ anchors.leftMargin: 3
+ anchors.rightMargin: 3
+ color: "transparent"
+
+ RowLayout {
+ id: rowLayout
+ anchors.fill: parent
+ Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter // Center content
+ spacing: 10 // Space between items
+
+ Audio {}
+ Battery {}
+ Clock.Date {}
+ Clock.Clock {}
+ }
+ }
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/V2/Audio.qml b/modules/quickshell/quickshell/bar/widgets/V2/Audio.qml
new file mode 100644
index 0000000..6dece1f
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/V2/Audio.qml
@@ -0,0 +1,59 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+import QtQuick.Layouts
+import Quickshell.Widgets
+import Quickshell.Services.Pipewire
+import "common" as Common
+
+Item {
+ id: root
+ property PwNode speakerNode: Pipewire.defaultAudioSink
+ property PwNode microphoneNode: Pipewire.defaultAudioSource
+ PwObjectTracker {
+ objects: [root.microphoneNode, root.speakerNode]
+ }
+
+ width: row.width
+ height: row.height
+
+ // console.log("a");
+
+ RowLayout {
+ id: row
+ Item {
+ implicitWidth: 28
+ implicitHeight: 28
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ radius: 7
+ color: "black"
+ }
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: 28
+ color: root.speakerNode.audio.muted ? "#B1B2B5" : "white"
+ font.family: "CaskaydiaCove Nerd Font Mono"
+ text: root.speakerNode.audio.muted ? Common.Icons.audioIcons.speakerMuted : Common.Icons.audioIcons.speaker
+ }
+ }
+ Item {
+ implicitWidth: 28
+ implicitHeight: 28
+ Rectangle {
+ width: parent.width
+ height: parent.height
+ radius: 7
+ color: "black"
+ }
+ Text {
+ anchors.centerIn: parent
+ font.pixelSize: 34
+ color: root.microphoneNode.audio.muted ? "#B1B2B5" : "white"
+ font.family: "CaskaydiaCove Nerd Font Mono"
+ text: root.microphoneNode.audio.muted ? Common.Icons.audioIcons.microphoneMuted : Common.Icons.audioIcons.microphone
+ }
+ }
+ }
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/Wireless.qml b/modules/quickshell/quickshell/bar/widgets/Wireless.qml
new file mode 100644
index 0000000..9745928
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/Wireless.qml
@@ -0,0 +1,58 @@
+import Quickshell
+import Quickshell.Io
+import QtQuick
+import QtQuick.Layouts
+import Quickshell.Widgets
+import Quickshell.Services.Pipewire
+import QtQuick.VectorImage
+import QtQuick.Effects
+import "common" as Common
+
+Rectangle {
+ id: root
+ implicitWidth: itemContent.width + 4
+ implicitHeight: 24
+ radius: 5.5
+ Layout.alignment: Qt.AlignVCenter
+ color: "#2a2a2a" // Define item color
+ RowLayout {
+ id: itemContent
+ Repeater {
+ model: [
+ {
+ on: "../../assets/bar/V2/speaker.svg",
+ off: "../../assets/bar/V2/speakerOff.svg",
+ node: root.speakerNode
+ },
+ {
+ on: "../../assets/bar/V2/mic.svg",
+ off: "../../assets/bar/V2/micOff.svg",
+ node: root.microphoneNode
+ },
+ ]
+ Item {
+ implicitWidth: 24
+ implicitHeight: 24
+ // anchors.centerIn: parent
+ VectorImage {
+ id: svgImage
+ width: parent.width
+ height: parent.height
+ source: modelData.node.audio.muted ? modelData.off : modelData.on
+ visible: false
+ fillMode: Image.PreserveAspectFit // Adjusts the SVG while keeping the aspect ratio
+ }
+ MultiEffect {
+ source: svgImage
+ width: parent.width
+ height: parent.height
+ // anchors.centerIn: parent
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignHCenter
+ colorization: 1
+ brightness: 1
+ colorizationColor: modelData.node.audio.muted ? "#e53b3c" : "#b1b2b5"
+ }
+ }
+ }
+ }
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/Workspaces.qml b/modules/quickshell/quickshell/bar/widgets/Workspaces.qml
index 61df8a6..d5a1ee4 100755
--- a/modules/quickshell/quickshell/bar/widgets/Workspaces.qml
+++ b/modules/quickshell/quickshell/bar/widgets/Workspaces.qml
@@ -36,7 +36,7 @@ RowLayout {
Hyprland.dispatch('workspace ' + index_workspace.id);
}
for (x in index_workspace.toplevels.values) {
- console.log(index_workspace.toplevels.values[x].title)
+ console.log(index_workspace.toplevels.values[x].title);
}
}
}
diff --git a/modules/quickshell/quickshell/bar/widgets/clock/Clock.qml b/modules/quickshell/quickshell/bar/widgets/clock/Clock.qml
index 2d95795..23d0017 100755
--- a/modules/quickshell/quickshell/bar/widgets/clock/Clock.qml
+++ b/modules/quickshell/quickshell/bar/widgets/clock/Clock.qml
@@ -1,19 +1,28 @@
import Quickshell
import Quickshell.Io
import QtQuick
+import QtQuick.Layouts
+import Quickshell.Widgets
+import Quickshell.Services.Pipewire
+import QtQuick.VectorImage
+import QtQuick.Effects
+import "common" as Common
-import "../common" as Common
-
-Item {
+Rectangle {
id: root
- width: text.width + 15
- height: text.height
- Common.Container {}
+ implicitWidth: clock.width + 4
+ implicitHeight: clock.height
+ radius: 5.5
+ color: "#2a2a2a" // Define item color
Text {
+ id: clock
+ // width: parent.width - 4
+ height: 24
anchors.centerIn: parent
- id: text
+ verticalAlignment: Qt.AlignVCenter
text: ClockData.time
- font.pointSize: 10.25
- color: "white"
+ font.pixelSize: 16
+ lineHeight: 1
+ color: "#cacaca"
}
}
diff --git a/modules/quickshell/quickshell/bar/widgets/clock/Date.qml b/modules/quickshell/quickshell/bar/widgets/clock/Date.qml
index c67df9b..2bd6cfe 100755
--- a/modules/quickshell/quickshell/bar/widgets/clock/Date.qml
+++ b/modules/quickshell/quickshell/bar/widgets/clock/Date.qml
@@ -4,16 +4,21 @@ import QtQuick
import "../common" as Common
-Item {
+Rectangle {
id: root
- width: text.width + 15
- height: text.height
- Common.Container {}
+ implicitWidth: clock.width + 4
+ implicitHeight: clock.height
+ radius: 5.5
+ color: "#2a2a2a" // Define item color
Text {
+ id: clock
+ // width: parent.width - 4
+ height: 24
anchors.centerIn: parent
- id: text
+ verticalAlignment: Qt.AlignVCenter
text: ClockData.date
- font.pointSize: 10.25
- color: "white"
+ font.pixelSize: 16
+ lineHeight: 1
+ color: "#cacaca"
}
}
diff --git a/modules/quickshell/quickshell/bar/widgets/common/ChildContainer.qml b/modules/quickshell/quickshell/bar/widgets/common/ChildContainer.qml
new file mode 100644
index 0000000..d6c2a49
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/common/ChildContainer.qml
@@ -0,0 +1,14 @@
+import Quickshell
+import QtQuick
+
+Rectangle {
+ z: 1
+ color: "#2a2a2a"
+ opacity: 20
+ anchors {
+ verticalCenter: parent.verticalCenter
+ }
+ height: 24
+ width: parent.width
+ radius: 5.5
+}
diff --git a/modules/quickshell/quickshell/bar/widgets/common/Icons.qml b/modules/quickshell/quickshell/bar/widgets/common/Icons.qml
index f148639..30b2845 100755
--- a/modules/quickshell/quickshell/bar/widgets/common/Icons.qml
+++ b/modules/quickshell/quickshell/bar/widgets/common/Icons.qml
@@ -6,25 +6,32 @@ import Quickshell.Io
Singleton {
id: root
+ readonly property var svgs: ({
+ micOff: "../../../assets/bar/V2/micOff.svg",
+ mic: "../../../assets/bar/V2/mic.svg",
+ speaker: "../../../assets/bar/V2/speaker.svg",
+ speakerOff: "../../../assets/bar/V2/speakerOff.svg"
+ })
+
readonly property var audioIcons: ({
- microphone: "",
- microphoneMuted: "",
- speaker: "",
- speakerMuted: "",
- })
+ microphone: "",
+ microphoneMuted: "",
+ speaker: "",
+ speakerMuted: ""
+ })
// {class}: {icon}
readonly property var appIcons: ({
- "vesktop": "",
- "steam": "",
- "org.telegram.desktop": "",
- "chromium": "",
- "dev.zed.Zed": "",
- "foot": "",
- "gamescope": "",
- "blender": "",
- "Spotify": "",
- "Unity": "",
- "fallback": ""
- })
+ "vesktop": "",
+ "steam": "",
+ "org.telegram.desktop": "",
+ "chromium": "",
+ "dev.zed.Zed": "",
+ "foot": "",
+ "gamescope": "",
+ "blender": "",
+ "Spotify": "",
+ "Unity": "",
+ "fallback": ""
+ })
}
diff --git a/modules/quickshell/quickshell/bar/widgets/common/ParentContainer.qml b/modules/quickshell/quickshell/bar/widgets/common/ParentContainer.qml
new file mode 100644
index 0000000..e13255f
--- /dev/null
+++ b/modules/quickshell/quickshell/bar/widgets/common/ParentContainer.qml
@@ -0,0 +1,17 @@
+import Quickshell
+import QtQuick
+import QtQuick.Layouts
+
+Item {
+ RowLayout {
+ Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
+ }
+ Rectangle {
+ z: -1
+ color: "black"
+ // anchors: parent.anchors
+ height: 28
+ width: parent.width
+ radius: 6.5
+ }
+}