1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-02 11:38:30 -04:00
Files
DankMaterialShell/quickshell/Modules/Settings/DisplayConfig/MonitorIdentifyOverlay.qml
2026-07-03 15:45:58 -04:00

82 lines
2.5 KiB
QML

import QtQuick
import Quickshell
import Quickshell.Wayland
import qs.Common
import qs.Widgets
Variants {
model: Quickshell.screens
PanelWindow {
id: identifyWindow
required property var modelData
readonly property var outputData: DisplayConfigState.allOutputs[screen.name]
readonly property string displayName: DisplayConfigState.getOutputDisplayName(outputData, screen.name)
screen: modelData
visible: true
color: "transparent"
WlrLayershell.namespace: "dms:monitor-identify"
WlrLayershell.layer: WlrLayer.Overlay
WlrLayershell.exclusiveZone: -1
WlrLayershell.keyboardFocus: WlrKeyboardFocus.None
anchors {
top: true
bottom: true
left: true
right: true
}
mask: Region {}
Item {
anchors.fill: parent
opacity: 0
Component.onCompleted: opacity = 1
Behavior on opacity {
NumberAnimation {
duration: Theme.mediumDuration
easing.type: Theme.emphasizedEasing
}
}
Rectangle {
anchors.fill: parent
color: "transparent"
border.color: Theme.primary
border.width: 4
}
Rectangle {
anchors.top: parent.top
anchors.horizontalCenter: parent.horizontalCenter
width: identifyLabel.implicitWidth + Theme.spacingL * 2
height: identifyLabel.implicitHeight + Theme.spacingS * 2
color: Theme.primary
bottomLeftRadius: Theme.cornerRadius
bottomRightRadius: Theme.cornerRadius
StyledText {
id: identifyLabel
anchors.centerIn: parent
text: {
const phys = DisplayConfigState.getPhysicalSize(identifyWindow.outputData);
const res = phys.w + "x" + phys.h;
if (identifyWindow.displayName === identifyWindow.screen.name)
return identifyWindow.displayName + " • " + res;
return identifyWindow.displayName + " (" + identifyWindow.screen.name + ") • " + res;
}
font.pixelSize: Theme.fontSizeMedium
font.weight: Font.Medium
color: Theme.primaryText
}
}
}
}
}