Config was symlinked from ~/.dots/quickshell (separate dotfiles repo); now tracked here and applied via home-manager xdg.configFile. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
66 lines
1.7 KiB
QML
66 lines
1.7 KiB
QML
import Quickshell
|
|
import Quickshell.Services.SystemTray
|
|
import QtQuick
|
|
import QtQuick.Shapes
|
|
|
|
// A single tray icon, chamfered to match the Slant (launcher V6 / SideBar)
|
|
// visual language instead of a plain rectangular hit target.
|
|
MouseArea {
|
|
id: root
|
|
|
|
required property SystemTrayItem modelData
|
|
|
|
implicitWidth: 36
|
|
implicitHeight: 36
|
|
|
|
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
|
hoverEnabled: true
|
|
cursorShape: Qt.PointingHandCursor
|
|
|
|
onClicked: event => {
|
|
if (event.button === Qt.LeftButton) {
|
|
modelData.activate();
|
|
} else if (modelData.hasMenu) {
|
|
const window = root.QsWindow?.window;
|
|
modelData.display(window, window.width, root.mapToItem(null, 0, 0).y);
|
|
}
|
|
event.accepted = true;
|
|
}
|
|
|
|
readonly property int chamfer: 6
|
|
|
|
Shape {
|
|
anchors.fill: parent
|
|
preferredRendererType: Shape.CurveRenderer
|
|
|
|
ShapePath {
|
|
strokeWidth: 1
|
|
strokeColor: root.containsMouse ? "#FFD063" : "#7A7B7D"
|
|
fillColor: "#292C30"
|
|
|
|
startX: root.chamfer
|
|
startY: 0
|
|
PathLine { x: root.width; y: 0 }
|
|
PathLine { x: root.width; y: root.height - root.chamfer }
|
|
PathLine { x: root.width - root.chamfer; y: root.height }
|
|
PathLine { x: 0; y: root.height }
|
|
PathLine { x: 0; y: root.chamfer }
|
|
PathLine { x: root.chamfer; y: 0 }
|
|
|
|
Behavior on strokeColor {
|
|
ColorAnimation {
|
|
duration: 150
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Image {
|
|
anchors.centerIn: parent
|
|
source: modelData.icon
|
|
fillMode: Image.PreserveAspectFit
|
|
width: 20
|
|
height: 20
|
|
}
|
|
}
|