Compare commits

..

5 commits

Author SHA1 Message Date
Benjamin Palko
c5ac7fe773 pass color and rotation 2025-08-29 15:58:28 -04:00
Benjamin Palko
24f932f8d1 use root reference 2025-08-29 15:32:47 -04:00
Benjamin Palko
23fa99ed4c bluetooth use icon button 2025-08-29 15:27:21 -04:00
Benjamin Palko
4171cc8d56 pywal use icon button 2025-08-29 15:25:18 -04:00
Benjamin Palko
a3931d8aec increase icon size 2025-08-29 15:23:36 -04:00
4 changed files with 27 additions and 34 deletions

View file

@ -11,25 +11,35 @@ RoundButton {
} }
property alias border: rect.border property alias border: rect.border
property color color: hovered ? Theme.palette.primarycontent : Theme.palette.basecontent
property int rotation: 0
font.family: loader.font.family font.family: loader.font.family
font.pixelSize: 16 font.pixelSize: 18
radius: 8 radius: 8
padding: 8 padding: 6
HoverHandler { HoverHandler {
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
} }
contentItem: Text { contentItem: Text {
id: icon
font: control.font font: control.font
text: control.text text: control.text
color: control.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent color: control.color
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 100 duration: 100
} }
} }
rotation: control.rotation
Behavior on rotation {
RotationAnimation {
duration: 200
easing.type: Easing.InOutCubic
}
}
} }
background: Rectangle { background: Rectangle {

View file

@ -1,27 +1,17 @@
import qs.config import qs.components
import qs.constants import qs.constants
import qs.widgets
import QtQuick import QtQuick
import Quickshell.Io import Quickshell.Io
StyledButton { StyledIconButton {
id: clickable id: clickable
text: Icons.brickWall
onClicked: { onClicked: {
process.running = true; process.running = true;
} }
content: StyledText {
id: text
font.family: Theme.lucide.font.family
font.pixelSize: Dimensions.caffeine.fontSize
font.bold: true
text: Icons.brickWall
color: clickable.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent
}
Process { Process {
id: process id: process
command: ["sh", "-c", "~/dotfiles/.scripts/pywal-swww.sh"] command: ["sh", "-c", "~/dotfiles/.scripts/pywal-swww.sh"]

View file

@ -1,22 +1,12 @@
import qs.config import qs.components
import qs.constants import qs.constants
import qs.widgets
StyledButton { StyledIconButton {
id: root id: root
onClicked: popup.toggle()
content: StyledText {
id: text
font.family: Theme.lucide.font.family
font.pixelSize: Dimensions.bluetooth.fontSize
font.bold: true
text: Icons.bluetooth text: Icons.bluetooth
color: root.containsMouse ? Theme.palette.base300 : Theme.palette.basecontent onClicked: popup.toggle()
}
BluetoothMenu { BluetoothMenu {
id: popup id: popup

View file

@ -1,3 +1,5 @@
pragma ComponentBehavior: Bound
import qs.config import qs.config
import qs.constants import qs.constants
import qs.widgets import qs.widgets
@ -5,6 +7,7 @@ import QtQuick
import Quickshell.Hyprland import Quickshell.Hyprland
Loader { Loader {
id: root
required property HyprlandWorkspace modelData required property HyprlandWorkspace modelData
active: modelData.id > 0 active: modelData.id > 0
@ -13,7 +16,7 @@ Loader {
property Component workspace: StyledButton { property Component workspace: StyledButton {
id: clickable id: clickable
onClicked: modelData.activate() onClicked: root.modelData.activate()
content: Text { content: Text {
id: icon id: icon
@ -28,7 +31,7 @@ Loader {
states: [ states: [
State { State {
name: "focused" name: "focused"
when: modelData.focused when: root.modelData.focused
PropertyChanges { PropertyChanges {
icon { icon {
rotation: 180 rotation: 180
@ -38,7 +41,7 @@ Loader {
}, },
State { State {
name: "active" name: "active"
when: modelData.active when: root.modelData.active
PropertyChanges { PropertyChanges {
icon { icon {
text: Icons.triangleDashed text: Icons.triangleDashed