Compare commits

...

3 commits

Author SHA1 Message Date
Benjamin Palko
7de7ae19bb add typography 2025-09-05 22:41:21 -04:00
Benjamin Palko
205ad37e3e only watch theme files 2025-09-05 17:33:48 -04:00
Benjamin Palko
4375f6e13d move theme to styling 2025-09-05 17:30:09 -04:00
45 changed files with 146 additions and 257 deletions

View file

@ -5,7 +5,7 @@ Text {
font.family: Styling.lucide.font.family font.family: Styling.lucide.font.family
font.pixelSize: 16 font.pixelSize: 16
color: Theme.palette.basecontent color: Styling.theme.basecontent
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.fast duration: Styling.animations.speed.fast

View file

@ -21,7 +21,7 @@ Loader {
id: text id: text
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: `${root.player.trackTitle} - ${root.player.trackArtist}` text: `${root.player.trackTitle} - ${root.player.trackArtist}`
font.pixelSize: Dimensions.mpris.fontSize font.pixelSize: Styling.typography.textSize.base
} }
RowLayout { RowLayout {
@ -57,7 +57,7 @@ Loader {
} }
return `${formatTime(root.player.position / 60)}:${formatTime(root.player.position % 60)} - ${formatTime(root.player.length / 60)}:${formatTime(root.player.length % 60)}`; return `${formatTime(root.player.position / 60)}:${formatTime(root.player.position % 60)} - ${formatTime(root.player.length / 60)}:${formatTime(root.player.length % 60)}`;
} }
font.pixelSize: Dimensions.mpris.fontSize font.pixelSize: Styling.typography.textSize.sm
} }
StyledSlider { StyledSlider {

View file

@ -11,13 +11,13 @@ Button {
verticalPadding: 6 verticalPadding: 6
horizontalPadding: 8 horizontalPadding: 8
palette.button: hovered ? Theme.palette.primary : Theme.palette.base200 palette.button: hovered ? Styling.theme.primary : Styling.theme.base200
Behavior on palette.button { Behavior on palette.button {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.normal duration: Styling.animations.speed.normal
} }
} }
palette.buttonText: hoverEnabled && hovered ? Theme.palette.primarycontent : Theme.palette.basecontent palette.buttonText: hoverEnabled && hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
Behavior on palette.buttonText { Behavior on palette.buttonText {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.normal duration: Styling.animations.speed.normal

View file

@ -20,6 +20,6 @@ Drawer {
topRightRadius = 8; topRightRadius = 8;
} }
} }
color: Theme.palette.base100 color: Styling.theme.base100
} }
} }

View file

@ -6,11 +6,11 @@ RoundButton {
id: control id: control
property alias border: rect.border property alias border: rect.border
property color color: hovered ? Theme.palette.primarycontent : Theme.palette.basecontent property color color: hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
property int rotation: 0 property int rotation: 0
font.family: Styling.lucide.font.family font.family: Styling.lucide.font.family
font.pixelSize: 19 font.pixelSize: 16
radius: 8 radius: 8
padding: 8 padding: 8
@ -39,14 +39,14 @@ RoundButton {
background: Rectangle { background: Rectangle {
id: rect id: rect
border.color: control.hovered ? Theme.palette.base300 : Theme.palette.base200 border.color: control.hovered ? Styling.theme.base300 : Styling.theme.base200
Behavior on border.color { Behavior on border.color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.normal duration: Styling.animations.speed.normal
} }
} }
border.width: 0 border.width: 0
color: control.hovered ? Theme.palette.primary : Theme.palette.base200 color: control.hovered ? Styling.theme.primary : Styling.theme.base200
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.normal duration: Styling.animations.speed.normal

View file

@ -6,7 +6,7 @@ WrapperRectangle {
id: root id: root
margin: 8 margin: 8
radius: 8 radius: 8
color: Theme.palette.base200 color: Styling.theme.base200
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.normal duration: Styling.animations.speed.normal

View file

@ -5,8 +5,8 @@ import QtQuick.Controls
Menu { Menu {
id: root id: root
palette.window: Theme.palette.base100 palette.window: Styling.theme.base100
palette.base: Theme.palette.base100 palette.base: Styling.theme.base100
focus: true focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent

View file

@ -3,7 +3,7 @@ import QtQuick
import QtQuick.Controls import QtQuick.Controls
MenuItem { MenuItem {
palette.text: Theme.palette.basecontent palette.text: Styling.theme.basecontent
palette.highlight: Theme.palette.primary palette.highlight: Styling.theme.primary
palette.highlightedText: Theme.palette.primarycontent palette.highlightedText: Styling.theme.primarycontent
} }

View file

@ -3,7 +3,7 @@ import QtQuick
import QtQuick.Controls import QtQuick.Controls
MenuSeparator { MenuSeparator {
palette.text: Theme.palette.basecontent palette.text: Styling.theme.basecontent
palette.highlight: Theme.palette.primary palette.highlight: Styling.theme.primary
palette.highlightedText: Theme.palette.primarycontent palette.highlightedText: Styling.theme.primarycontent
} }

View file

@ -31,7 +31,7 @@ PopupWindow {
anchors.centerIn: root anchors.centerIn: root
implicitWidth: root.contentItem.children.reduce((prev, child) => Math.max(prev, child.width), 0) implicitWidth: root.contentItem.children.reduce((prev, child) => Math.max(prev, child.width), 0)
implicitHeight: root.contentItem.children.reduce((prev, child) => prev + child.height, 0) implicitHeight: root.contentItem.children.reduce((prev, child) => prev + child.height, 0)
color: Theme.palette.base200 color: Styling.theme.base200
radius: 8 radius: 8
} }
} }

View file

@ -15,7 +15,7 @@ ProgressBar {
background: Rectangle { background: Rectangle {
implicitWidth: 200 implicitWidth: 200
implicitHeight: 6 implicitHeight: 6
color: Theme.palette.base100 color: Styling.theme.base100
radius: 8 radius: 8
} }
@ -28,7 +28,7 @@ ProgressBar {
width: control.visualPosition * parent.width width: control.visualPosition * parent.width
height: parent.height height: parent.height
radius: 8 radius: 8
color: Theme.palette.primary color: Styling.theme.primary
visible: !control.indeterminate visible: !control.indeterminate
} }
@ -41,7 +41,7 @@ ProgressBar {
Row { Row {
Rectangle { Rectangle {
id: rect id: rect
color: Theme.palette.primary color: Styling.theme.primary
width: 40 width: 40
height: control.height height: control.height
} }

View file

@ -19,7 +19,7 @@ Slider {
width: control.availableWidth width: control.availableWidth
height: implicitHeight height: implicitHeight
radius: 8 radius: 8
color: Theme.palette.base200 color: Styling.theme.base200
Rectangle { Rectangle {
width: control.visualPosition * parent.width width: control.visualPosition * parent.width
@ -29,7 +29,7 @@ Slider {
} }
} }
height: parent.height height: parent.height
color: Theme.palette.primary color: Styling.theme.primary
radius: 8 radius: 8
} }
} }

View file

@ -11,7 +11,7 @@ Switch {
text: control.text text: control.text
font: control.font font: control.font
opacity: enabled ? 1.0 : 0.3 opacity: enabled ? 1.0 : 0.3
color: Theme.palette.basecontent color: Styling.theme.basecontent
elide: Text.ElideRight elide: Text.ElideRight
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
} }
@ -31,7 +31,7 @@ Switch {
y: parent.height / 2 - height / 2 y: parent.height / 2 - height / 2
radius: 16 radius: 16
color: "transparent" color: "transparent"
border.color: control.checked ? Theme.palette.primary : Theme.palette.basecontent border.color: control.checked ? Styling.theme.primary : Styling.theme.basecontent
border.width: 2 border.width: 2
Rectangle { Rectangle {
@ -46,7 +46,7 @@ Switch {
width: parent.width / 2 - indicator.padding width: parent.width / 2 - indicator.padding
height: parent.height - indicator.padding height: parent.height - indicator.padding
radius: 16 radius: 16
color: control.checked ? Theme.palette.primary : Theme.palette.basecontent color: control.checked ? Styling.theme.primary : Styling.theme.basecontent
} }
} }

View file

@ -2,8 +2,9 @@ import qs.config
import QtQuick import QtQuick
Text { Text {
font.family: Theme.fontFamily font.family: Styling.typography.fontFamily
color: Theme.palette.basecontent font.pixelSize: Styling.typography.textSize.base
color: Styling.theme.basecontent
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.fast duration: Styling.animations.speed.fast

View file

@ -4,6 +4,6 @@ import QtQuick.Controls
TextField { TextField {
color: Theme.palette.basecontent color: Styling.theme.basecontent
background: Item {} background: Item {}
} }

View file

@ -9,13 +9,13 @@ ToolTip {
contentItem: Text { contentItem: Text {
text: control.text text: control.text
font: control.font font: control.font
color: Theme.palette.basecontent color: Styling.theme.basecontent
} }
background: Rectangle { background: Rectangle {
radius: 8 radius: 8
color: Theme.palette.base100 color: Styling.theme.base100
border.color: Theme.palette.base200 border.color: Styling.theme.base200
border.width: 2 border.width: 2
} }
} }

View file

@ -4,7 +4,7 @@ import Quickshell.Widgets
WrapperRectangle { WrapperRectangle {
radius: 8 radius: 8
color: Theme.palette.base100 color: Styling.theme.base100
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: Styling.animations.speed.fast duration: Styling.animations.speed.fast

View file

@ -9,20 +9,6 @@ Singleton {
property int radius: 8 property int radius: 8
property Bar bar: Bar {} property Bar bar: Bar {}
property Mpris mpris: Mpris {}
property Clock clock: Clock {}
property Pipewire pipewire: Pipewire {}
property Network network: Network {}
property Bluetooth bluetooth: Bluetooth {}
property Storage storage: Storage {}
property Memory memory: Memory {}
property Cpu cpu: Cpu {}
property Gpu gpu: Gpu {}
property Caffeine caffeine: Caffeine {}
property Notifications notifications: Notifications {}
property Workspace workspace: Workspace {}
property Tray tray: Tray {}
property TrayMenu trayMenu: TrayMenu {}
component Bar: QtObject { component Bar: QtObject {
property int spacing: 8 property int spacing: 8
@ -33,112 +19,4 @@ Singleton {
property int verticalPadding: 2 property int verticalPadding: 2
property int horizontalPadding: 8 property int horizontalPadding: 8
} }
component Mpris: QtObject {
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Clock: QtObject {
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Pipewire: QtObject {
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Network: QtObject {
property int iconSize: 14
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Bluetooth: QtObject {
property int fontSize: 16
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Storage: QtObject {
property int iconSize: 14
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Memory: QtObject {
property int iconSize: 14
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Cpu: QtObject {
property int iconSize: 14
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Gpu: QtObject {
property int iconSize: 14
property int fontSize: 14
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Caffeine: QtObject {
property int fontSize: 16
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Notifications: QtObject {
property int fontSize: 16
property int height: 30
property int horizontalPadding: 8
property int verticalPadding: 6
}
component Workspace: QtObject {
property int spacing: 5
property int iconSize: 16
property int width: 30
property int height: 30
property int verticalPadding: 6
property int horizontalPadding: 7
}
component Tray: QtObject {
property int spacing: 5
property int iconSize: 18
property int width: 30
property int height: 30
property int verticalPadding: 6
property int horizontalPadding: 7
}
component TrayMenu: QtObject {
property int fontSize: 10
property int width: 30
property int height: 30
property int verticalPadding: 6
property int horizontalPadding: 7
}
} }

View file

@ -6,18 +6,31 @@ import Quickshell
Singleton { Singleton {
id: root id: root
readonly property Lucide lucide: Lucide {}
readonly property Animations animations: Animations {} readonly property Animations animations: Animations {}
readonly property Typography typography: Typography {}
readonly property var theme: Theme.palette
readonly property Lucide lucide: Lucide {}
component Animations: QtObject { component Animations: QtObject {
property AnimationSpeed speed: AnimationSpeed {} readonly property AnimationSpeed speed: AnimationSpeed {}
} }
component AnimationSpeed: QtObject { component AnimationSpeed: QtObject {
property int veryFast: 50 readonly property int veryFast: 50
property int fast: 100 readonly property int fast: 100
property int normal: 200 readonly property int normal: 200
property int slow: 400 readonly property int slow: 400
property int verySlow: 1000 readonly property int verySlow: 1000
}
component Typography: QtObject {
readonly property string fontFamily: "JetBrainsMono Nerd Font"
readonly property FontSize textSize: FontSize {}
}
component FontSize: QtObject {
readonly property int sm: 12
readonly property int base: 14
readonly property int lg: 18
readonly property int xl: 24
} }
component Lucide: Item { component Lucide: Item {
@ -31,35 +44,35 @@ Singleton {
} }
} }
component LucideIcons: QtObject { component LucideIcons: QtObject {
property string batteryCharging: "\u{E058}" readonly property string batteryCharging: "\u{E058}"
property string batteryFull: "\u{E059}" readonly property string batteryFull: "\u{E059}"
property string batteryMedium: "\u{E05b}" readonly property string batteryMedium: "\u{E05b}"
property string batteryLow: "\u{E05a}" readonly property string batteryLow: "\u{E05a}"
property string batteryWarning: "\u{E3b0}" readonly property string batteryWarning: "\u{E3b0}"
property string bell: "\u{E05d}" readonly property string bell: "\u{E05d}"
property string bellRing: "\u{E224}" readonly property string bellRing: "\u{E224}"
property string bluetooth: "\u{E060}" readonly property string bluetooth: "\u{E060}"
property string bluetoothConnected: "\u{E1b8}" readonly property string bluetoothConnected: "\u{E1b8}"
property string brickWall: "\u{E586}" readonly property string brickWall: "\u{E586}"
property string coffee: "\u{E09a}" readonly property string coffee: "\u{E09a}"
property string chevronLeft: "\u{E072}" readonly property string chevronLeft: "\u{E072}"
property string chevronRight: "\u{E073}" readonly property string chevronRight: "\u{E073}"
property string cpu: "\u{E0ad}" readonly property string cpu: "\u{E0ad}"
property string gpu: "\u{E66f}" readonly property string gpu: "\u{E66f}"
property string hardDrive: "\u{E0f1}" readonly property string hardDrive: "\u{E0f1}"
property string memoryStick: "\u{E44a}" readonly property string memoryStick: "\u{E44a}"
property string pause: "\u{E132}" readonly property string pause: "\u{E132}"
property string play: "\u{E140}" readonly property string play: "\u{E140}"
property string search: "\u{E155}" readonly property string search: "\u{E155}"
property string skipBack: "\u{E163}" readonly property string skipBack: "\u{E163}"
property string skipForward: "\u{E164}" readonly property string skipForward: "\u{E164}"
property string stop: "\u{E132}" readonly property string stop: "\u{E132}"
property string square: "\u{E16B}" readonly property string square: "\u{E16B}"
property string wifiOff: "\u{E1af}" readonly property string wifiOff: "\u{E1af}"
property string wifiLow: "\u{E5fd}" readonly property string wifiLow: "\u{E5fd}"
property string wifiHigh: "\u{E5fc}" readonly property string wifiHigh: "\u{E5fc}"
property string wifi: "\u{E1ae}" readonly property string wifi: "\u{E1ae}"
property string triangle: "\u{E192}" readonly property string triangle: "\u{E192}"
property string triangleDashed: "\u{E642}" readonly property string triangleDashed: "\u{E642}"
} }
} }

View file

@ -16,7 +16,7 @@ Singleton {
Process { Process {
running: true running: true
command: ["bash", "-c", `inotifywait -m -r ~/.config/lux -e modify,move,create,delete | while read dir action; do ls -m "$dir"; done`] command: ["bash", "-c", `inotifywait -m -r ~/.config/lux/themes/ -e modify,move,create,delete | while read dir action; do ls -m "$dir"; done`]
stderr: StdioCollector { stderr: StdioCollector {
onStreamFinished: console.log(`line read: ${this.text}`) onStreamFinished: console.log(`line read: ${this.text}`)
} }

View file

@ -32,11 +32,11 @@ PanelWindow {
Rectangle { Rectangle {
id: background id: background
anchors.fill: parent anchors.fill: parent
color: Theme.palette.base100 color: Styling.theme.base100
radius: Dimensions.radius radius: Dimensions.radius
border { border {
color: Theme.palette.base200 color: Styling.theme.base200
width: Dimensions.bar.border width: Dimensions.bar.border
pixelAligned: true pixelAligned: true
} }

View file

@ -6,7 +6,7 @@ StyledIconButton {
id: root id: root
border.width: 2 border.width: 2
border.color: Caffeine.enabled ? Theme.palette.secondary : root.hovered ? Theme.palette.primary : Theme.palette.base300 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: {

View file

@ -1,16 +1,9 @@
import qs.components import qs.components
import qs.config
import qs.widgets
import Quickshell import Quickshell
StyledLabel { StyledLabel {
StyledText { StyledText {
id: text
font.pixelSize: Dimensions.clock.fontSize
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

View file

@ -15,25 +15,23 @@ StyledButton {
} }
contentItem: RowLayout { contentItem: RowLayout {
id: row
spacing: 0 spacing: 0
Ref { Ref {
service: SystemInfo service: SystemInfo
} }
LucideIcon { LucideIcon {
text: Styling.lucide.icons.cpu text: Styling.lucide.icons.cpu
color: root.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
} }
StyledText { StyledText {
id: text id: text
font.pixelSize: Dimensions.cpu.fontSize
text: ` ${(SystemInfo.cpuPerc * 100).toFixed().toString().padStart(2, "_")}%` text: ` ${(SystemInfo.cpuPerc * 100).toFixed().toString().padStart(2, "_")}%`
color: root.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
states: [ states: [
State { State {
name: "showTemp" name: "showTemp"

View file

@ -11,29 +11,27 @@ StyledButton {
property bool showTemp: false property bool showTemp: false
onClicked: { onClicked: {
root.showTemp = !root.showTemp; showTemp = !showTemp;
} }
contentItem: RowLayout { contentItem: RowLayout {
id: row
spacing: 0 spacing: 0
Ref { Ref {
service: SystemInfo service: SystemInfo
} }
LucideIcon { LucideIcon {
text: Styling.lucide.icons.gpu text: Styling.lucide.icons.gpu
color: root.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
} }
StyledText { StyledText {
id: text id: text
font.pixelSize: Dimensions.gpu.fontSize
text: ` ${(SystemInfo.gpuPerc * 100).toFixed().toString().padStart(2, "_")}%` text: ` ${(SystemInfo.gpuPerc * 100).toFixed().toString().padStart(2, "_")}%`
color: root.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.hovered ? Styling.theme.primarycontent : Styling.theme.basecontent
states: [ states: [
State { State {
name: "temp" name: "temp"

View file

@ -6,17 +6,18 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
StyledLabel { StyledLabel {
RowLayout { RowLayout {
Ref { Ref {
service: SystemInfo service: SystemInfo
} }
LucideIcon { LucideIcon {
text: Styling.lucide.icons.memoryStick text: Styling.lucide.icons.memoryStick
} }
StyledText { StyledText {
id: text
font.pixelSize: Dimensions.memory.fontSize
text: ` ${(SystemInfo.memPerc * 100).toFixed()}%` text: ` ${(SystemInfo.memPerc * 100).toFixed()}%`
} }
} }

View file

@ -6,15 +6,16 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
StyledLabel { StyledLabel {
RowLayout { RowLayout {
Ref { Ref {
service: NetworkService service: NetworkService
} }
LucideIcon { LucideIcon {
id: icon id: icon
text: Styling.lucide.icons.wifiOff text: Styling.lucide.icons.wifiOff
states: [ states: [
State { State {
name: "high" name: "high"
@ -48,7 +49,6 @@ StyledLabel {
StyledText { StyledText {
id: text id: text
font.pixelSize: Dimensions.network.fontSize
text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%` text: ` ${(NetworkService.active?.strength ?? 0).toFixed()}%`
} }
} }

View file

@ -28,7 +28,7 @@ StyledButton {
when: Pipewire.muted when: Pipewire.muted
PropertyChanges { PropertyChanges {
root { root {
palette.button: Theme.palette.error palette.button: Styling.theme.error
} }
} }
} }

View file

@ -9,20 +9,25 @@ StyledButton {
property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery) ?? null property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery) ?? null
property bool isCritical: laptopBattery?.percentage < 0.10 property bool isCritical: laptopBattery?.percentage < 0.10
visible: laptopBattery
contentItem: RowLayout { contentItem: RowLayout {
spacing: 4 spacing: 4
LucideIcon { LucideIcon {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
color: { color: {
if (root.isCritical) { if (root.isCritical) {
return Theme.palette.error; return Styling.theme.error;
} }
if (root.hovered) { if (root.hovered) {
return Theme.palette.primarycontent; return Styling.theme.primarycontent;
} }
return Theme.palette.basecontent; return Styling.theme.basecontent;
} }
font.pixelSize: 16
text: { text: {
if (root.laptopBattery?.state == UPowerDeviceState.Charging) { if (root.laptopBattery?.state == UPowerDeviceState.Charging) {
return Styling.lucide.icons.batteryCharging; return Styling.lucide.icons.batteryCharging;
@ -41,18 +46,19 @@ StyledButton {
} }
StyledText { StyledText {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
color: { color: {
if (root.isCritical) { if (root.isCritical) {
return Theme.palette.error; return Styling.theme.error;
} }
if (root.hovered) { if (root.hovered) {
return Theme.palette.primarycontent; return Styling.theme.primarycontent;
} }
return Theme.palette.basecontent; return Styling.theme.basecontent;
} }
text: `${(root.laptopBattery?.percentage.toFixed(2) * 100)}%` text: `${(root.laptopBattery?.percentage.toFixed(2) * 100)}%`
} }
} }
visible: laptopBattery
} }

View file

@ -6,17 +6,20 @@ import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
StyledLabel { StyledLabel {
RowLayout { RowLayout {
Ref { Ref {
service: SystemInfo service: SystemInfo
} }
LucideIcon { LucideIcon {
text: Styling.lucide.icons.hardDrive text: Styling.lucide.icons.hardDrive
} }
StyledText { StyledText {
id: text id: text
font.pixelSize: Dimensions.storage.fontSize
text: ` ${(SystemInfo.storagePerc * 100).toFixed()}%` text: ` ${(SystemInfo.storagePerc * 100).toFixed()}%`
} }
} }

View file

@ -11,7 +11,7 @@ import Quickshell.Bluetooth
StyledPopupWindow { StyledPopupWindow {
id: root id: root
backgroundColor: Theme.palette.base300 backgroundColor: Styling.theme.base300
margins: 16 margins: 16
radius: 8 radius: 8

View file

@ -64,7 +64,7 @@ StyledLabel {
PropertyChanges { PropertyChanges {
icon { icon {
text: Styling.lucide.icons.batteryWarning text: Styling.lucide.icons.batteryWarning
color: Theme.palette.error color: Styling.theme.error
} }
} }
} }
@ -76,7 +76,7 @@ StyledLabel {
StyledButton { StyledButton {
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
text: 'Disconnect' text: 'Disconnect'
palette.button: hovered ? Theme.palette.error : Theme.palette.base200 palette.button: hovered ? Styling.theme.error : Styling.theme.base200
onClicked: { onClicked: {
if (root.modelData.state != BluetoothDeviceState.Connected) { if (root.modelData.state != BluetoothDeviceState.Connected) {

View file

@ -48,7 +48,7 @@ StyledLabel {
hoverEnabled: root.modelData.state == BluetoothDeviceState.Disconnected hoverEnabled: root.modelData.state == BluetoothDeviceState.Disconnected
text: 'Unpair' text: 'Unpair'
palette.button: hovered ? Theme.palette.error : Theme.palette.base100 palette.button: hovered ? Styling.theme.error : Styling.theme.base100
onClicked: { onClicked: {
if (!hoverEnabled) { if (!hoverEnabled) {

View file

@ -22,7 +22,7 @@ StyledIconButton {
PropertyChanges { PropertyChanges {
root { root {
rotation: 180 rotation: 180
color: root.hovered ? Theme.palette.basecontent : Theme.palette.primary color: root.hovered ? Styling.theme.basecontent : Styling.theme.primary
} }
} }
}, },
@ -33,7 +33,7 @@ StyledIconButton {
root { root {
text: Styling.lucide.icons.triangleDashed text: Styling.lucide.icons.triangleDashed
rotation: 180 rotation: 180
color: root.hovered ? Theme.palette.basecontent : Theme.palette.primary color: root.hovered ? Styling.theme.basecontent : Styling.theme.primary
} }
} }
} }

View file

@ -1,6 +1,5 @@
pragma ComponentBehavior: Bound pragma ComponentBehavior: Bound
import qs.config
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import Quickshell.Hyprland import Quickshell.Hyprland
@ -8,7 +7,7 @@ import Quickshell.Hyprland
RowLayout { RowLayout {
id: root id: root
spacing: Dimensions.workspace.spacing spacing: 4
Repeater { Repeater {

View file

@ -10,7 +10,7 @@ import QtQuick.Layouts
StyledPopupWindow { StyledPopupWindow {
id: root id: root
backgroundColor: Theme.palette.base300 backgroundColor: Styling.theme.base300
margins: 16 margins: 16
radius: 8 radius: 8
@ -32,7 +32,7 @@ StyledPopupWindow {
StyledLabel { StyledLabel {
Layout.columnSpan: 2 Layout.columnSpan: 2
color: Theme.palette.base200 color: Styling.theme.base200
StyledListView { StyledListView {
id: notifications id: notifications

View file

@ -1,6 +1,5 @@
pragma ComponentBehavior: Bound pragma ComponentBehavior: Bound
import qs.config
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts
import Quickshell.Services.SystemTray import Quickshell.Services.SystemTray
@ -8,7 +7,7 @@ import Quickshell.Services.SystemTray
RowLayout { RowLayout {
id: root id: root
spacing: Dimensions.tray.spacing spacing: 4
Repeater { Repeater {
model: SystemTray.items model: SystemTray.items

View file

@ -9,7 +9,7 @@ import Quickshell
StyledPopupWindow { StyledPopupWindow {
id: window id: window
backgroundColor: Theme.palette.base300 backgroundColor: Styling.theme.base300
margins: 14 margins: 14
radius: 8 radius: 8
@ -32,7 +32,7 @@ StyledPopupWindow {
property Component menuSeperator: Rectangle { property Component menuSeperator: Rectangle {
implicitHeight: 2 implicitHeight: 2
color: Theme.palette.base100 color: Styling.theme.base100
} }
property Component menuItem: MenuItem { property Component menuItem: MenuItem {
menuEntry: loader.modelData menuEntry: loader.modelData

View file

@ -31,7 +31,7 @@ StyledListView {
highlightResizeDuration: 0 highlightResizeDuration: 0
highlight: Rectangle { highlight: Rectangle {
radius: 8 radius: 8
color: Theme.palette.primary color: Styling.theme.primary
} }
header: StyledText { header: StyledText {

View file

@ -47,7 +47,7 @@ StyledWindow {
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop
margin: 4 margin: 4
color: Theme.palette.base200 color: Styling.theme.base200
RowLayout { RowLayout {
LucideIcon { LucideIcon {

View file

@ -42,7 +42,7 @@ Item {
Layout.alignment: Qt.AlignBottom Layout.alignment: Qt.AlignBottom
Layout.fillWidth: true Layout.fillWidth: true
color: root.active ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.active ? Styling.theme.primarycontent : Styling.theme.basecontent
font.pixelSize: 14 font.pixelSize: 14
font.bold: true font.bold: true
} }
@ -52,7 +52,7 @@ Item {
Layout.alignment: Qt.AlignTop Layout.alignment: Qt.AlignTop
Layout.fillWidth: true Layout.fillWidth: true
color: root.active ? Theme.palette.primarycontent : Theme.palette.basecontent color: root.active ? Styling.theme.primarycontent : Styling.theme.basecontent
font.pixelSize: 10 font.pixelSize: 10
elide: Text.ElideRight elide: Text.ElideRight
} }

View file

@ -53,10 +53,10 @@ StyledWindow {
Circle { Circle {
id: circle id: circle
radius: 150 radius: 150
borderColor: Theme.palette.base100 borderColor: Styling.theme.base100
strokeColor: Pomodoro.state == "timer" ? Theme.palette.primary : Theme.palette.warning strokeColor: Pomodoro.state == "timer" ? Styling.theme.primary : Styling.theme.warning
strokeWidth: 12 strokeWidth: 12
fillColor: button.hovered ? Theme.palette.primary : "transparent" fillColor: button.hovered ? Styling.theme.primary : "transparent"
percentage: (Pomodoro.state == "timer" ? (Pomodoro.initialTime - Pomodoro.remainingTime) : Pomodoro.remainingTime) / Pomodoro.initialTime % 1 percentage: (Pomodoro.state == "timer" ? (Pomodoro.initialTime - Pomodoro.remainingTime) : Pomodoro.remainingTime) / Pomodoro.initialTime % 1
} }

View file

@ -76,7 +76,7 @@ StyledWindow {
highlightResizeDuration: 0 highlightResizeDuration: 0
highlight: Rectangle { highlight: Rectangle {
radius: 8 radius: 8
color: Theme.palette.primary color: Styling.theme.primary
} }
onCurrentItemChanged: { onCurrentItemChanged: {
@ -103,7 +103,7 @@ StyledWindow {
} }
padding: 16 padding: 16
color: list.currentIndex == index ? Theme.palette.primarycontent : Theme.palette.basecontent color: list.currentIndex == index ? Styling.theme.primarycontent : Styling.theme.basecontent
text: modelData.text text: modelData.text
font.pixelSize: 18 font.pixelSize: 18
font.bold: true font.bold: true

View file

@ -137,7 +137,7 @@ StyledWindow {
font.pixelSize: 18 font.pixelSize: 18
} }
StyledWrapperRectangle { StyledWrapperRectangle {
border.color: Theme.palette.base100 border.color: Styling.theme.base100
border.width: 2 border.width: 2
StyledListView { StyledListView {
implicitWidth: 200 implicitWidth: 200

View file

@ -22,8 +22,8 @@ Item {
ShapePath { ShapePath {
id: fill id: fill
fillColor: Theme.palette.base100 fillColor: Styling.theme.base100
strokeColor: Theme.palette.base200 strokeColor: Styling.theme.base200
strokeWidth: 8 strokeWidth: 8
PathAngleArc { PathAngleArc {