From c6784902fbddef8391792efd2fdbea458e5bf06b Mon Sep 17 00:00:00 2001 From: exu Date: Sat, 12 Oct 2024 16:07:24 +0200 Subject: [PATCH] Copy /usr for SDDM theme --- .../catppuccin-macchiato/Components/Clock.qml | 14 ++ .../Components/LoginPanel.qml | 147 +++++++++++++++++ .../Components/PasswordField.qml | 48 ++++++ .../Components/PowerButton.qml | 41 +++++ .../Components/RebootButton.qml | 41 +++++ .../Components/SessionPanel.qml | 156 ++++++++++++++++++ .../Components/SleepButton.qml | 41 +++++ .../Components/UserField.qml | 50 ++++++ .../sddm/themes/catppuccin-macchiato/Main.qml | 48 ++++++ .../assets/angle-down.png | Bin 0 -> 6488 bytes .../catppuccin-macchiato/backgrounds/.gitkeep | 0 .../catppuccin-macchiato/icons/power.svg | 14 ++ .../catppuccin-macchiato/icons/reboot.svg | 13 ++ .../catppuccin-macchiato/icons/settings.svg | 1 + .../catppuccin-macchiato/icons/sleep.svg | 5 + .../catppuccin-macchiato/metadata.desktop | 14 ++ .../themes/catppuccin-macchiato/preview.png | Bin 0 -> 34689 bytes .../themes/catppuccin-macchiato/theme.conf | 39 +++++ .../catppuccin-macchiato/theme.conf.user | 2 + roles/config/tasks/main.yml | 1 + 20 files changed, 675 insertions(+) create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/Clock.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/LoginPanel.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PasswordField.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PowerButton.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/RebootButton.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SessionPanel.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SleepButton.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/UserField.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Main.qml create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/assets/angle-down.png create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/backgrounds/.gitkeep create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/power.svg create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/reboot.svg create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/settings.svg create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/sleep.svg create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/metadata.desktop create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/preview.png create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/theme.conf create mode 100644 roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/theme.conf.user diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/Clock.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/Clock.qml new file mode 100644 index 00000000..f076d28b --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/Clock.qml @@ -0,0 +1,14 @@ +import QtQuick 2.15 +import SddmComponents 2.0 + +Clock { + id: time + color: config.text + timeFont.family: config.Font + dateFont.family: config.Font + anchors { + margins: 10 + top: parent.top + right: parent.right + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/LoginPanel.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/LoginPanel.qml new file mode 100644 index 00000000..e0dec79b --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/LoginPanel.qml @@ -0,0 +1,147 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 + +Item { + property var user: userField.text + property var password: passwordField.text + property var session: sessionPanel.session + property var inputHeight: Screen.height * 0.032 + property var inputWidth: Screen.width * 0.16 + Rectangle { + id: loginBackground + anchors { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.horizontalCenter + } + height: inputHeight * 5.3 + width: inputWidth * 1.2 + radius: 5 + visible: config.LoginBackground == "true" ? true : false + color: config.mantle + } + Column { + spacing: 8 + anchors { + bottom: parent.bottom + left: parent.left + } + PowerButton { + id: powerButton + } + RebootButton { + id: rebootButton + } + SleepButton { + id: sleepButton + } + z: 5 + } + Column { + spacing: 8 + anchors { + bottom: parent.bottom + right: parent.right + } + SessionPanel { + id: sessionPanel + } + z: 5 + } + Column { + spacing: 8 + z: 5 + width: inputWidth + anchors { + verticalCenter: parent.verticalCenter + horizontalCenter: parent.horizontalCenter + } + UserField { + id: userField + height: inputHeight + width: parent.width + } + PasswordField { + id: passwordField + height: inputHeight + width: parent.width + onAccepted: loginButton.clicked() + } + Button { + id: loginButton + height: inputHeight + width: parent.width + enabled: user != "" && password != "" ? true : false + hoverEnabled: true + contentItem: Text { + id: buttonText + renderType: Text.NativeRendering + font { + family: config.Font + pointSize: config.FontSize + bold: true + } + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: config.crust + text: "Login" + } + background: Rectangle { + id: buttonBackground + color: config.sapphire + radius: 3 + } + states: [ + State { + name: "pressed" + when: loginButton.down + PropertyChanges { + target: buttonBackground + color: config.teal + } + PropertyChanges { + target: buttonText + } + }, + State { + name: "hovered" + when: loginButton.hovered + PropertyChanges { + target: buttonBackground + color: config.teal + } + PropertyChanges { + target: buttonText + } + }, + State { + name: "enabled" + when: loginButton.enabled + PropertyChanges { + target: buttonBackground + } + PropertyChanges { + target: buttonText + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: { + sddm.login(user, password, session) + } + } + } + Connections { + target: sddm + + function onLoginFailed() { + passwordField.text = "" + passwordField.focus = true + } + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PasswordField.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PasswordField.qml new file mode 100644 index 00000000..dd0f384b --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PasswordField.qml @@ -0,0 +1,48 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +TextField { + id: passwordField + focus: true + selectByMouse: true + placeholderText: "Password" + echoMode: TextInput.Password + passwordCharacter: "•" + passwordMaskDelay: config.PasswordShowLastLetter + selectionColor: config.overlay0 + renderType: Text.NativeRendering + font.family: config.Font + font.pointSize: config.FontSize + font.bold: true + color: config.text + horizontalAlignment: TextInput.AlignHCenter + background: Rectangle { + id: passFieldBackground + radius: 3 + color: config.surface0 + } + states: [ + State { + name: "focused" + when: passwordField.activeFocus + PropertyChanges { + target: passFieldBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: passwordField.hovered + PropertyChanges { + target: passFieldBackground + color: config.surface1 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PowerButton.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PowerButton.qml new file mode 100644 index 00000000..dc742692 --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/PowerButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: powerButton.height + implicitWidth: powerButton.width + Button { + id: powerButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/power.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: powerButtonBackground + radius: 3 + color: config.red + } + states: [ + State { + name: "hovered" + when: powerButton.hovered + PropertyChanges { + target: powerButtonBackground + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.powerOff() + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/RebootButton.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/RebootButton.qml new file mode 100644 index 00000000..a2c9b9ff --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/RebootButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: rebootButton.height + implicitWidth: rebootButton.width + Button { + id: rebootButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/reboot.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: rebootButtonBackground + radius: 3 + color: config.red + } + states: [ + State { + name: "hovered" + when: rebootButton.hovered + PropertyChanges { + target: rebootButtonBackground + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.reboot() + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SessionPanel.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SessionPanel.qml new file mode 100644 index 00000000..0edfcb30 --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SessionPanel.qml @@ -0,0 +1,156 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 +import QtQml.Models 2.15 + +Item { + property var session: sessionList.currentIndex + implicitHeight: sessionButton.height + implicitWidth: sessionButton.width + DelegateModel { + id: sessionWrapper + model: sessionModel + delegate: ItemDelegate { + id: sessionEntry + height: inputHeight + width: parent.width + highlighted: sessionList.currentIndex == index + contentItem: Text { + renderType: Text.NativeRendering + font.family: config.Font + font.pointSize: config.FontSize + font.bold: true + horizontalAlignment: Text.AlignHCenter + verticalAlignment: Text.AlignVCenter + color: config.text + text: name + } + background: Rectangle { + id: sessionEntryBackground + color: config.surface1 + radius: 3 + } + states: [ + State { + name: "hovered" + when: sessionEntry.hovered + PropertyChanges { + target: sessionEntryBackground + color: config.surface2 + } + } + ] + transitions: Transition { + PropertyAnimation { + property: "color" + duration: 300 + } + } + MouseArea { + anchors.fill: parent + onClicked: { + sessionList.currentIndex = index + sessionPopup.close() + } + } + } + } + Button { + id: sessionButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/settings.svg") + height: height + width: width + color: config.text + } + background: Rectangle { + id: sessionButtonBackground + color: config.surface0 + radius: 3 + } + states: [ + State { + name: "pressed" + when: sessionButton.down + PropertyChanges { + target: sessionButtonBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: sessionButton.hovered + PropertyChanges { + target: sessionButtonBackground + color: config.surface2 + } + }, + State { + name: "selection" + when: sessionPopup.visible + PropertyChanges { + target: sessionButtonBackground + color: config.surface2 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 150 + } + } + onClicked: { + sessionPopup.visible ? sessionPopup.close() : sessionPopup.open() + sessionButton.state = "pressed" + } + } + Popup { + id: sessionPopup + width: inputWidth + padding * 2 + x: (sessionButton.width + sessionList.spacing) * -7.6 + y: -(contentHeight + padding * 2) + sessionButton.height + padding: inputHeight / 10 + background: Rectangle { + radius: 5.4 + color: config.surface0 + } + contentItem: ListView { + id: sessionList + implicitHeight: contentHeight + spacing: 8 + model: sessionWrapper + currentIndex: sessionModel.lastIndex + clip: true + } + enter: Transition { + ParallelAnimation { + NumberAnimation { + property: "opacity" + from: 0 + to: 1 + duration: 400 + easing.type: Easing.OutExpo + } + NumberAnimation { + property: "x" + from: sessionPopup.x + (inputWidth * 0.1) + to: sessionPopup.x + duration: 500 + easing.type: Easing.OutExpo + } + } + } + exit: Transition { + NumberAnimation { + property: "opacity" + from: 1 + to: 0 + duration: 300 + easing.type: Easing.OutExpo + } + } + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SleepButton.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SleepButton.qml new file mode 100644 index 00000000..f4a4b7a0 --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/SleepButton.qml @@ -0,0 +1,41 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +Item { + implicitHeight: sleepButton.height + implicitWidth: sleepButton.width + Button { + id: sleepButton + height: inputHeight + width: inputHeight + hoverEnabled: true + icon { + source: Qt.resolvedUrl("../icons/sleep.svg") + height: height + width: width + color: config.crust + } + background: Rectangle { + id: sleepButtonBg + color: config.red + radius: 3 + } + states: [ + State { + name: "hovered" + when: sleepButton.hovered + PropertyChanges { + target: sleepButtonBg + color: config.rosewater + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } + onClicked: sddm.suspend() + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/UserField.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/UserField.qml new file mode 100644 index 00000000..9f8ca61a --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Components/UserField.qml @@ -0,0 +1,50 @@ +import QtQuick 2.15 +import QtQuick.Controls 2.15 + +TextField { + id: userField + height: inputHeight + width: inputWidth + selectByMouse: true + echoMode: TextInput.Normal + selectionColor: config.overlay0 + renderType: Text.NativeRendering + font { + family: config.Font + pointSize: config.FontSize + bold: true + } + color: config.text + horizontalAlignment: Text.AlignHCenter + placeholderText: "Username" + text: userModel.lastUser + background: Rectangle { + id: userFieldBackground + color: config.surface0 + radius: 3 + } + states: [ + State { + name: "focused" + when: userField.activeFocus + PropertyChanges { + target: userFieldBackground + color: config.surface1 + } + }, + State { + name: "hovered" + when: userField.hovered + PropertyChanges { + target: userFieldBackground + color: config.surface1 + } + } + ] + transitions: Transition { + PropertyAnimation { + properties: "color" + duration: 300 + } + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Main.qml b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Main.qml new file mode 100644 index 00000000..422054bf --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/Main.qml @@ -0,0 +1,48 @@ +import QtQuick 2.15 +import QtQuick.Window 2.15 +import QtQuick.Controls 2.15 +import "Components" + +Item { + id: root + height: Screen.height + width: Screen.width + Rectangle { + id: background + anchors.fill: parent + height: parent.height + width: parent.width + z: 0 + color: config.base + } + Image { + id: backgroundImage + anchors.fill: parent + height: parent.height + width: parent.width + fillMode: Image.PreserveAspectCrop + visible: config.CustomBackground == "true" ? true : false + z: 1 + source: config.Background + asynchronous: false + cache: true + mipmap: true + clip: true + } + Item { + id: mainPanel + z: 3 + anchors { + fill: parent + margins: 50 + } + Clock { + id: time + visible: config.ClockEnabled == "true" ? true : false + } + LoginPanel { + id: loginPanel + anchors.fill: parent + } + } +} diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/assets/angle-down.png b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/assets/angle-down.png new file mode 100644 index 0000000000000000000000000000000000000000..f621bfc936c189c682115e5e313604f894187b5c GIT binary patch literal 6488 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 S60ELLOnESU7-h~IQvVM*H=8>E literal 0 HcmV?d00001 diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/backgrounds/.gitkeep b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/backgrounds/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/power.svg b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/power.svg new file mode 100644 index 00000000..83cd4cdf --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/power.svg @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/reboot.svg b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/reboot.svg new file mode 100644 index 00000000..5506bbb0 --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/reboot.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/settings.svg b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/settings.svg new file mode 100644 index 00000000..9a64fbdf --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/sleep.svg b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/sleep.svg new file mode 100644 index 00000000..85d315cf --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/icons/sleep.svg @@ -0,0 +1,5 @@ + + +moon + + \ No newline at end of file diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/metadata.desktop b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/metadata.desktop new file mode 100644 index 00000000..d6693d51 --- /dev/null +++ b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/metadata.desktop @@ -0,0 +1,14 @@ +[SddmGreeterTheme] +Name=Catppuccin macchiato +Description=Soothing pastel theme for SDDM +Type=sddm-theme +Version=2.1 +Website=https://github.com/catppuccin/sddm +Screenshot=preview.png +MainScript=Main.qml +ConfigFile=theme.conf +TranslationsDirectory=translations +Theme-Id=Catppuccin +Theme-API=2.0 +License=MIT +QtVersion=6 diff --git a/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/preview.png b/roles/config/files/usr/share/sddm/themes/catppuccin-macchiato/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..bc262d2ecf8b2a0f040872f51d4e3e4ea08eeeb7 GIT binary patch literal 34689 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 dFJ=_h