Compare commits
2 commits
96d8ab6534
...
112ed0d6de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
112ed0d6de | ||
|
|
fdcaa77581 |
12 changed files with 141 additions and 181 deletions
|
|
@ -1,12 +0,0 @@
|
||||||
import qs.config
|
|
||||||
import QtQuick
|
|
||||||
import QtQuick.Layouts
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
color: Styling.theme.basecontent
|
|
||||||
opacity: 0.33
|
|
||||||
Layout.fillHeight: true
|
|
||||||
Layout.margins: 2
|
|
||||||
implicitWidth: 0.5
|
|
||||||
radius: 9999
|
|
||||||
}
|
|
||||||
|
|
@ -1,79 +1,70 @@
|
||||||
import qs.services
|
import qs.config
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import Quickshell
|
import Quickshell
|
||||||
import Quickshell.Widgets
|
import Quickshell.Hyprland
|
||||||
|
|
||||||
PopupWindow {
|
PopupWindow {
|
||||||
id: root
|
id: root
|
||||||
property bool opened: false
|
|
||||||
property int animationDuration: 200
|
|
||||||
property alias margins: background.margin
|
|
||||||
property alias backgroundColor: background.color
|
|
||||||
property alias radius: background.radius
|
|
||||||
property alias state: background.state
|
|
||||||
required property Component content
|
required property Component content
|
||||||
|
|
||||||
|
implicitWidth: background.width
|
||||||
|
implicitHeight: background.height
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
|
|
||||||
|
HyprlandFocusGrab {
|
||||||
|
id: grab
|
||||||
|
active: root.visible
|
||||||
|
windows: [root]
|
||||||
|
onCleared: {
|
||||||
|
background.state = "closed";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function toggle() {
|
function toggle() {
|
||||||
Visibility.togglePopup(this);
|
background.state = background.state == "opened" ? "closed" : "opened";
|
||||||
}
|
}
|
||||||
|
|
||||||
implicitWidth: background.width
|
StyledWrapperRectangle {
|
||||||
Behavior on implicitWidth {
|
|
||||||
NumberAnimation {
|
|
||||||
duration: 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
implicitHeight: background.height
|
|
||||||
Behavior on implicitHeight {
|
|
||||||
NumberAnimation {
|
|
||||||
duration: 100
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Timer {
|
|
||||||
id: timer
|
|
||||||
interval: 750
|
|
||||||
onTriggered: {
|
|
||||||
if (!root.visible) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
root.toggle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
WrapperMouseArea {
|
|
||||||
hoverEnabled: true
|
|
||||||
onExited: {
|
|
||||||
timer.start();
|
|
||||||
}
|
|
||||||
onEntered: {
|
|
||||||
timer.stop();
|
|
||||||
}
|
|
||||||
WrapperRectangle {
|
|
||||||
id: background
|
id: background
|
||||||
|
|
||||||
opacity: 0
|
margin: 16
|
||||||
Behavior on opacity {
|
focus: true
|
||||||
NumberAnimation {
|
onFocusChanged: {
|
||||||
duration: root.animationDuration
|
if (!focus) {
|
||||||
|
grab.active = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
states: State {
|
Behavior on opacity {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: Styling.animations.speed.normal
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
state: "closed"
|
||||||
|
states: [
|
||||||
|
State {
|
||||||
|
name: "closed"
|
||||||
|
PropertyChanges {
|
||||||
|
background {
|
||||||
|
opacity: 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
State {
|
||||||
name: "opened"
|
name: "opened"
|
||||||
when: root.opened
|
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
background {
|
background {
|
||||||
opacity: 1
|
opacity: 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
|
||||||
transitions: [
|
transitions: [
|
||||||
Transition {
|
Transition {
|
||||||
from: ""
|
from: "closed"
|
||||||
to: "opened"
|
to: "opened"
|
||||||
ScriptAction {
|
ScriptAction {
|
||||||
script: root.visible = true
|
script: root.visible = true
|
||||||
|
|
@ -81,7 +72,7 @@ PopupWindow {
|
||||||
},
|
},
|
||||||
Transition {
|
Transition {
|
||||||
from: "opened"
|
from: "opened"
|
||||||
to: ""
|
to: "closed"
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
PauseAnimation {
|
PauseAnimation {
|
||||||
duration: root.animationDuration
|
duration: root.animationDuration
|
||||||
|
|
@ -98,5 +89,4 @@ PopupWindow {
|
||||||
sourceComponent: root.content
|
sourceComponent: root.content
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ StyledWrapperRectangle {
|
||||||
RowLayout {
|
RowLayout {
|
||||||
id: leftbar
|
id: leftbar
|
||||||
|
|
||||||
spacing: Styling.layout.spacing.lg
|
spacing: Styling.layout.spacing.base
|
||||||
|
|
||||||
SystemLogo {
|
SystemLogo {
|
||||||
implicitSize: 22
|
implicitSize: 22
|
||||||
|
|
@ -44,7 +44,7 @@ StyledWrapperRectangle {
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignHCenter
|
Layout.alignment: Qt.AlignHCenter
|
||||||
|
|
||||||
spacing: Styling.layout.spacing.lg
|
spacing: Styling.layout.spacing.base
|
||||||
|
|
||||||
Mpris {}
|
Mpris {}
|
||||||
}
|
}
|
||||||
|
|
@ -54,14 +54,18 @@ StyledWrapperRectangle {
|
||||||
|
|
||||||
Layout.alignment: Qt.AlignRight
|
Layout.alignment: Qt.AlignRight
|
||||||
|
|
||||||
spacing: Styling.layout.spacing.lg
|
spacing: Styling.layout.spacing.base
|
||||||
|
|
||||||
|
Pywal {}
|
||||||
|
|
||||||
Pipewire {}
|
Pipewire {}
|
||||||
|
|
||||||
StyledLayoutSeparator {}
|
Caffeine {}
|
||||||
|
|
||||||
Network {}
|
Network {}
|
||||||
|
|
||||||
|
Bluetooth {}
|
||||||
|
|
||||||
Storage {}
|
Storage {}
|
||||||
|
|
||||||
Memory {}
|
Memory {}
|
||||||
|
|
@ -70,20 +74,10 @@ StyledWrapperRectangle {
|
||||||
|
|
||||||
Gpu {}
|
Gpu {}
|
||||||
|
|
||||||
StyledLayoutSeparator {}
|
Power {}
|
||||||
|
|
||||||
Pywal {}
|
|
||||||
|
|
||||||
Caffeine {}
|
|
||||||
|
|
||||||
Bluetooth {}
|
|
||||||
|
|
||||||
StyledLayoutSeparator {}
|
|
||||||
|
|
||||||
Clock {}
|
Clock {}
|
||||||
|
|
||||||
Power {}
|
|
||||||
|
|
||||||
Notifications {}
|
Notifications {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ StyledIconButton {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
border.width: 2
|
border.width: 2
|
||||||
border.color: Caffeine.enabled ? Styling.theme.secondary : root.hovered ? Styling.theme.primary : Styling.theme.base200
|
border.color: Caffeine.enabled ? Styling.theme.secondary : root.hovered ? Styling.theme.primary : Styling.theme.base300
|
||||||
text: Styling.lucide.icons.coffee
|
text: Styling.lucide.icons.coffee
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
import qs.components
|
import qs.components
|
||||||
import Quickshell
|
import Quickshell
|
||||||
|
|
||||||
StyledText {
|
StyledRectangle {
|
||||||
|
StyledText {
|
||||||
text: ` ${Qt.formatDateTime(clock.date, "hh:mm:ss AP")}`
|
text: ` ${Qt.formatDateTime(clock.date, "hh:mm:ss AP")}`
|
||||||
SystemClock {
|
SystemClock {
|
||||||
id: clock
|
id: clock
|
||||||
precision: SystemClock.Seconds
|
precision: SystemClock.Seconds
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import qs.utils
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
|
||||||
RowLayout {
|
StyledRectangle {
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
|
||||||
Ref {
|
Ref {
|
||||||
service: SystemInfo
|
service: SystemInfo
|
||||||
|
|
@ -18,4 +20,5 @@ RowLayout {
|
||||||
StyledText {
|
StyledText {
|
||||||
text: ` ${(SystemInfo.memPerc * 100).toFixed()}%`
|
text: ` ${(SystemInfo.memPerc * 100).toFixed()}%`
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import qs.utils
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
|
||||||
RowLayout {
|
StyledRectangle {
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
|
||||||
Ref {
|
Ref {
|
||||||
service: NetworkService
|
service: NetworkService
|
||||||
|
|
@ -49,4 +51,5 @@ RowLayout {
|
||||||
id: text
|
id: text
|
||||||
text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%`
|
text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%`
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ import qs.utils
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
|
|
||||||
RowLayout {
|
StyledRectangle {
|
||||||
|
|
||||||
|
RowLayout {
|
||||||
|
|
||||||
Ref {
|
Ref {
|
||||||
service: SystemInfo
|
service: SystemInfo
|
||||||
|
|
@ -20,4 +22,5 @@ RowLayout {
|
||||||
|
|
||||||
text: ` ${(SystemInfo.storagePerc * 100).toFixed()}%`
|
text: ` ${(SystemInfo.storagePerc * 100).toFixed()}%`
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
pragma ComponentBehavior: Bound
|
pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import qs.components
|
import qs.components
|
||||||
import qs.config
|
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import Quickshell
|
import Quickshell
|
||||||
|
|
@ -10,10 +9,6 @@ import Quickshell.Bluetooth
|
||||||
StyledPopupWindow {
|
StyledPopupWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
backgroundColor: Styling.theme.base300
|
|
||||||
margins: 16
|
|
||||||
radius: 8
|
|
||||||
|
|
||||||
content: ColumnLayout {
|
content: ColumnLayout {
|
||||||
spacing: 8
|
spacing: 8
|
||||||
StyledWrapperRectangle {
|
StyledWrapperRectangle {
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,6 @@ import QtQuick.Layouts
|
||||||
StyledPopupWindow {
|
StyledPopupWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
backgroundColor: Styling.theme.base300
|
|
||||||
margins: 16
|
|
||||||
radius: 8
|
|
||||||
|
|
||||||
content: GridLayout {
|
content: GridLayout {
|
||||||
|
|
||||||
columns: 2
|
columns: 2
|
||||||
|
|
|
||||||
|
|
@ -9,10 +9,6 @@ import Quickshell
|
||||||
StyledPopupWindow {
|
StyledPopupWindow {
|
||||||
id: window
|
id: window
|
||||||
|
|
||||||
backgroundColor: Styling.theme.base300
|
|
||||||
margins: 14
|
|
||||||
radius: 8
|
|
||||||
|
|
||||||
property QsMenuOpener menuOpener
|
property QsMenuOpener menuOpener
|
||||||
|
|
||||||
content: ColumnLayout {
|
content: ColumnLayout {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
pragma Singleton
|
pragma Singleton
|
||||||
|
|
||||||
import qs.components
|
|
||||||
import Quickshell
|
import Quickshell
|
||||||
|
|
||||||
Singleton {
|
Singleton {
|
||||||
|
|
@ -9,15 +8,6 @@ Singleton {
|
||||||
property alias pomodoro: properties.pomodoro
|
property alias pomodoro: properties.pomodoro
|
||||||
property alias powermenu: properties.powermenu
|
property alias powermenu: properties.powermenu
|
||||||
property alias storybook: properties.storybook
|
property alias storybook: properties.storybook
|
||||||
property StyledPopupWindow activePopup
|
|
||||||
|
|
||||||
function togglePopup(popup: StyledPopupWindow) {
|
|
||||||
if (activePopup && popup != activePopup) {
|
|
||||||
activePopup.state = "";
|
|
||||||
}
|
|
||||||
popup.state = popup.state == "opened" ? "" : "opened";
|
|
||||||
activePopup = popup;
|
|
||||||
}
|
|
||||||
|
|
||||||
PersistentProperties {
|
PersistentProperties {
|
||||||
id: properties
|
id: properties
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue