diff --git a/Background.qml b/Background.qml deleted file mode 100644 index 6721e57..0000000 --- a/Background.qml +++ /dev/null @@ -1,56 +0,0 @@ -/* - SPDX-FileCopyrightText: 2016 Boudhayan Gupta - - SPDX-License-Identifier: LGPL-2.0-or-later -*/ - -import QtQuick 2.15 - -FocusScope { - id: sceneBackground - - property var sceneBackgroundType - property alias sceneBackgroundColor: sceneColorBackground.color - property alias sceneBackgroundImage: sceneImageBackground.source - - Rectangle { - id: sceneColorBackground - anchors.fill: parent - } - - Image { - id: sceneImageBackground - anchors.fill: parent - sourceSize.width: parent.width - sourceSize.height: parent.height - fillMode: Image.PreserveAspectCrop - smooth: true; - } - - states: [ - State { - name: "imageBackground" - when: sceneBackgroundType === "image" - PropertyChanges { - target: sceneColorBackground - visible: false - } - PropertyChanges { - target: sceneImageBackground - visible: true - } - }, - State { - name: "colorBackground" - when: sceneBackgroundType !== "image" - PropertyChanges { - target: sceneColorBackground - visible: true - } - PropertyChanges { - target: sceneImageBackground - visible: false - } - } - ] -} diff --git a/KeyboardButton.qml b/KeyboardButton.qml deleted file mode 100644 index a2cda05..0000000 --- a/KeyboardButton.qml +++ /dev/null @@ -1,61 +0,0 @@ -/* - SPDX-FileCopyrightText: 2016 David Edmundson - SPDX-FileCopyrightText: 2022 Aleix Pol Gonzalez - - SPDX-License-Identifier: LGPL-2.0-or-later -*/ - -import QtQuick 2.15 - -import org.kde.plasma.components 3.0 as PlasmaComponents -import org.kde.kirigami 2.20 as Kirigami - -PlasmaComponents.ToolButton { - id: root - - property int currentIndex: keyboard.currentLayout - onCurrentIndexChanged: keyboard.currentLayout = currentIndex - - text: i18nd("plasma-desktop-sddm-theme", "Keyboard Layout: %1", keyboard.layouts[currentIndex]?.longName ?? "") - visible: keyboard.layouts.length > 1 - - checkable: true - checked: menu.opened - onToggled: { - if (checked) { - menu.popup(root, 0, 0) - } else { - menu.dismiss() - } - } - - signal keyboardLayoutChanged() - - PlasmaComponents.Menu { - id: menu - Kirigami.Theme.colorSet: Kirigami.Theme.Window - Kirigami.Theme.inherit: false - - onAboutToShow: { - if (instantiator.model === null) { - let layouts = keyboard.layouts; - layouts.sort((a, b) => a.longName.localeCompare(b.longName)); - instantiator.model = layouts; - } - } - - Instantiator { - id: instantiator - model: null - onObjectAdded: (index, object) => menu.insertItem(index, object) - onObjectRemoved: (index, object) => menu.removeItem(object) - delegate: PlasmaComponents.MenuItem { - text: modelData.longName - onTriggered: { - keyboard.currentLayout = keyboard.layouts.indexOf(modelData) - root.keyboardLayoutChanged() - } - } - } - } -} diff --git a/Login.qml b/Login.qml deleted file mode 100644 index 9003cc7..0000000 --- a/Login.qml +++ /dev/null @@ -1,175 +0,0 @@ -import org.kde.breeze.components - -import QtQuick 2.15 -import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 as QQC2 - -import org.kde.plasma.components 3.0 as PlasmaComponents3 -import org.kde.plasma.extras 2.0 as PlasmaExtras -import org.kde.kirigami 2.20 as Kirigami - -SessionManagementScreen { - id: root - property Item mainPasswordBox: passwordBox - - property bool showUsernamePrompt: !showUserList - - property string lastUserName - property bool loginScreenUiVisible: false - - //the y position that should be ensured visible when the on screen keyboard is visible - property int visibleBoundary: mapFromItem(loginButton, 0, 0).y - onHeightChanged: visibleBoundary = mapFromItem(loginButton, 0, 0).y + loginButton.height + Kirigami.Units.smallSpacing - - property real fontSize: Kirigami.Theme.defaultFont.pointSize - - signal loginRequest(string username, string password) - - onShowUsernamePromptChanged: { - if (!showUsernamePrompt) { - lastUserName = "" - } - } - - onUserSelected: { - // Don't startLogin() here, because the signal is connected to the - // Escape key as well, for which it wouldn't make sense to trigger - // login. - passwordBox.clear() - focusFirstVisibleFormControl(); - } - - QQC2.StackView.onActivating: { - // Controls are not visible yet. - Qt.callLater(focusFirstVisibleFormControl); - } - - function focusFirstVisibleFormControl() { - const nextControl = (userNameInput.visible - ? userNameInput - : (passwordBox.visible - ? passwordBox - : loginButton)); - // Using TabFocusReason, so that the loginButton gets the visual highlight. - nextControl.forceActiveFocus(Qt.TabFocusReason); - } - - /* - * Login has been requested with the following username and password - * If username field is visible, it will be taken from that, otherwise from the "name" property of the currentIndex - */ - function startLogin() { - const username = showUsernamePrompt ? userNameInput.text : userList.selectedUser - const password = passwordBox.text - - footer.enabled = false - mainStack.enabled = false - userListComponent.userList.opacity = 0 - - // This is partly because it looks nicer, but more importantly it - // works round a Qt bug that can trigger if the app is closed with a - // TextField focused. - // - // See https://bugreports.qt.io/browse/QTBUG-55460 - loginButton.forceActiveFocus(); - loginRequest(username, password); - } - - PlasmaComponents3.TextField { - id: userNameInput - font.pointSize: fontSize + 1 - Layout.fillWidth: true - - text: lastUserName - visible: showUsernamePrompt - focus: showUsernamePrompt && !lastUserName //if there's a username prompt it gets focus first, otherwise password does - placeholderText: i18nd("plasma-desktop-sddm-theme", "Username") - - onAccepted: { - if (root.loginScreenUiVisible) { - passwordBox.forceActiveFocus() - } - } - } - - RowLayout { - Layout.fillWidth: true - - Rectangle { - PlasmaExtras.PasswordField { - id: passwordBox - x: -470 - y: 248 - width: 825 - font.pointSize: fontSize + 20 - Layout.fillWidth: false - - placeholderText: i18nd("plasma-desktop-sddm-theme", "Password") - focus: !showUsernamePrompt || lastUserName - - // Disable reveal password action because SDDM does not have the breeze icon set loaded - rightActions: [] - - // Theming - background: Rectangle { - color: "transparent" - } - - onAccepted: { - if (root.loginScreenUiVisible) { - startLogin(); - } - } - - visible: root.showUsernamePrompt || userList.currentItem.needsPassword - - Keys.onEscapePressed: { - mainStack.currentItem.forceActiveFocus(); - } - - //if empty and left or right is pressed change selection in user switch - //this cannot be in keys.onLeftPressed as then it doesn't reach the password box - Keys.onPressed: event => { - if (event.key === Qt.Key_Left && !text) { - userList.decrementCurrentIndex(); - event.accepted = true - } - if (event.key === Qt.Key_Right && !text) { - userList.incrementCurrentIndex(); - event.accepted = true - } - } - - Connections { - target: sddm - function onLoginFailed() { - passwordBox.selectAll() - passwordBox.forceActiveFocus() - } - } - } - } - - Rectangle { - PlasmaComponents3.Button { - id: loginButton - x: 370 - y: 238 - width: 105 - height: 73 - Accessible.name: i18nd("plasma-desktop-sddm-theme", "Log In") - Layout.preferredHeight: passwordBox.implicitHeight - Layout.preferredWidth: text.length === 0 ? loginButton.Layout.preferredHeight : -1 - - background: Rectangle { - color: "transparent" - } - - text: root.showUsernamePrompt || userList.currentItem.needsPassword ? "" : i18n("Log In") - onClicked: startLogin() - Keys.onEnterPressed: clicked() - Keys.onReturnPressed: clicked() - } - } - } -} diff --git a/Main.qml b/Main.qml index ee15b59..6edee74 100644 --- a/Main.qml +++ b/Main.qml @@ -6,450 +6,187 @@ import QtQuick 2.15 import QtQuick.Layouts 1.15 -import QtQuick.Controls 2.15 as QQC2 -import Qt5Compat.GraphicalEffects - -import org.kde.plasma.components 3.0 as PlasmaComponents3 -import org.kde.plasma.private.keyboardindicator as KeyboardIndicator -import org.kde.kirigami 2.20 as Kirigami - -import org.kde.breeze.components +import QtQuick.Controls 2.15 Item { - id: root + id: mainStack + property bool usingCustomUser: false + property bool attemptingToLogin: false - // If we're using software rendering, draw outlines instead of shadows - // See https://bugs.kde.org/show_bug.cgi?id=398317 - readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software - - Kirigami.Theme.colorSet: Kirigami.Theme.Complementary - Kirigami.Theme.inherit: false - - width: 1600 - height: 900 - - property string notificationMessage - - LayoutMirroring.enabled: Qt.application.layoutDirection === Qt.RightToLeft - LayoutMirroring.childrenInherit: true - - KeyboardIndicator.KeyState { - id: capsLockState - key: Qt.Key_CapsLock - } - - Item { - id: wallpaper + // Background Image + Image { + id: sceneImageBackground + source: "background.png" anchors.fill: parent - Repeater { - model: screenModel + sourceSize.width: parent.width + sourceSize.height: parent.height + fillMode: Image.PreserveAspectCrop + smooth: true; + } - Background { - x: geometry.x; y: geometry.y; width: geometry.width; height: geometry.height - sceneBackgroundType: config.type - sceneBackgroundColor: config.color - sceneBackgroundImage: config.background + // Session + ComboBox { + id: session + model: sessionModel + currentIndex: sessionModel.lastIndex + textRole: "name" + anchors { + top: parent.top + left: parent.left + topMargin: 75 + leftMargin: 10 + } + height: 50 + background: Rectangle { + color: "transparent" + } + font.family: "Rajdhani" + font.capitalization: Font.AllUppercase + font.bold: true + font.pointSize: 30 + indicator: Image { + id: sessionArrow + source: "icons/down-arrow.png" + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + width: 36 + height: 36 + fillMode: Image.PreserveAspectFit + rotation: session.popup.visible ? 180 : 0 + Behavior on rotation { NumberAnimation { duration: 150; easing.type: Easing.InOutQuad } } + } + } + + // User Switcher + Rectangle { + anchors { + top: parent.top + right: parent.right + topMargin: 68 + rightMargin: 3 + } + width: 50 + height: 50 + color: "#FFFFFF" + opacity: 0 + radius: 5 + + MouseArea { + hoverEnabled: true + anchors.fill: parent + onClicked: { + usingCustomUser = !usingCustomUser + } + onEntered: { + parent.opacity = 0.2 + } + onExited: { + parent.opacity = 0 + } + onPressed: { + parent.opacity = 0.3 + } + onReleased: { + parent.opacity = 0.2 } } } - RejectPasswordAnimation { - id: rejectPasswordAnimation - target: mainStack + Image { + anchors { + top: parent.top + right: parent.right + topMargin: 75 + rightMargin: 10 + } + source: "icons/user.png" + width: 36 + height: 36 + fillMode: Image.PreserveAspectFit } - MouseArea { - id: loginScreenRoot - anchors.fill: parent + // Text Fields + ColumnLayout { + anchors.horizontalCenter: parent.horizontalCenter + y: 975 - property bool uiVisible: true - property bool blockUI: mainStack.depth > 1 || userListComponent.mainPasswordBox.text.length > 0 || inputPanel.keyboardActive || config.type !== "image" + // Username + Item { + Layout.preferredHeight: 100 + visible: usingCustomUser - hoverEnabled: true - drag.filterChildren: true - onPressed: uiVisible = true; - onPositionChanged: uiVisible = true; - onUiVisibleChanged: { - if (blockUI) { - fadeoutTimer.running = false; - } else if (uiVisible) { - fadeoutTimer.restart(); + Image { + id: usernameBg + source: "text-field" + x: -(sourceSize.width / 2) } - } - onBlockUIChanged: { - if (blockUI) { - fadeoutTimer.running = false; - uiVisible = true; - } else { - fadeoutTimer.restart(); - } - } - - Keys.onPressed: event => { - uiVisible = true; - event.accepted = false; - } - - //takes one full minute for the ui to disappear - Timer { - id: fadeoutTimer - running: true - interval: 60000 - onTriggered: { - if (!loginScreenRoot.blockUI) { - userListComponent.mainPasswordBox.showPassword = false; - loginScreenRoot.uiVisible = false; + TextField { + id: usernameField + enabled: !attemptingToLogin + focus: usingCustomUser + placeholderText: "Username" + x: -(usernameBg.sourceSize.width / 2) + 6 + y: 5 + width: 955 + height: 75 + background: Rectangle { + color: "transparent" + } + font.family: "Rajdhani" + font.pointSize: 30 + font.bold: true + Keys.onEscapePressed: { + mainStack.forceActiveFocus(); + } + onAccepted: { + passwordField.forceActiveFocus(); } } } - QQC2.StackView { - id: mainStack - anchors { - left: parent.left - right: parent.right + // Password + Item { + Layout.preferredHeight: 100 + + Image { + id: passwordBg + source: "text-field" + x: -(sourceSize.width / 2) } - height: root.height + Kirigami.Units.gridUnit * 3 - - // If true (depends on the style and environment variables), hover events are always accepted - // and propagation stopped. This means the parent MouseArea won't get them and the UI won't be shown. - // Disable capturing those events while the UI is hidden to avoid that, while still passing events otherwise. - // One issue is that while the UI is visible, mouse activity won't keep resetting the timer, but when it - // finally expires, the next event should immediately set uiVisible = true again. - hoverEnabled: loginScreenRoot.uiVisible ? undefined : false - - focus: true //StackView is an implicit focus scope, so we need to give this focus so the item inside will have it - - Timer { - //SDDM has a bug in 0.13 where even though we set the focus on the right item within the window, the window doesn't have focus - //it is fixed in 6d5b36b28907b16280ff78995fef764bb0c573db which will be 0.14 - //we need to call "window->activate()" *After* it's been shown. We can't control that in QML so we use a shoddy timer - //it's been this way for all Plasma 5.x without a huge problem - running: true - repeat: false - interval: 200 - onTriggered: mainStack.forceActiveFocus() - } - - initialItem: Login { - id: userListComponent - userList.opacity: 0 - userListModel: userModel - loginScreenUiVisible: loginScreenRoot.uiVisible - userListCurrentIndex: userModel.lastIndex >= 0 ? userModel.lastIndex : 0 - lastUserName: userModel.lastUser - showUserList: { - if (!userListModel.hasOwnProperty("count") - || !userListModel.hasOwnProperty("disableAvatarsThreshold")) { - return false - } - - if (userListModel.count === 0 ) { - return false - } - - if (userListModel.hasOwnProperty("containsAllUsers") && !userListModel.containsAllUsers) { - return false - } - - return userListModel.count <= userListModel.disableAvatarsThreshold + TextField { + id: passwordField + enabled: !attemptingToLogin + focus: !usingCustomUser + echoMode: TextInput.Password + placeholderText: "Password" + x: -(passwordBg.sourceSize.width / 2) + 6 + y: 5 + width: 955 + height: 75 + background: Rectangle { + color: "transparent" } - - notificationMessage: { - const parts = []; - if (capsLockState.locked) { - parts.push(i18nd("plasma-desktop-sddm-theme", "Caps Lock is on")); - } - if (root.notificationMessage) { - parts.push(root.notificationMessage); - } - return parts.join(" • "); + font.family: "Rajdhani" + font.pointSize: 30 + font.bold: true + Keys.onEscapePressed: { + mainStack.forceActiveFocus(); } - - actionItemsVisible: !inputPanel.keyboardActive - actionItems: [ - /*ActionButton { - icon.name: "system-suspend" - text: i18ndc("plasma-desktop-sddm-theme", "Suspend to RAM", "Sleep") - onClicked: sddm.suspend() - enabled: sddm.canSuspend - }, - ActionButton { - icon.name: "system-reboot" - text: i18nd("plasma-desktop-sddm-theme", "Restart") - onClicked: sddm.reboot() - enabled: sddm.canReboot - }, - ActionButton { - icon.name: "system-shutdown" - text: i18nd("plasma-desktop-sddm-theme", "Shut Down") - onClicked: sddm.powerOff() - enabled: sddm.canPowerOff - }, - ActionButton { - icon.name: "system-user-prompt" - text: i18ndc("plasma-desktop-sddm-theme", "For switching to a username and password prompt", "Other…") - onClicked: mainStack.push(userPromptComponent) - visible: !userListComponent.showUsernamePrompt - }*/] - - onLoginRequest: { - root.notificationMessage = "" - sddm.login(username, password, sessionButton.currentIndex) + onAccepted: { + attemptingToLogin = true + sddm.login(usernameField.text, passwordField.text, session.index) + event.accepted = true } } - Behavior on opacity { - OpacityAnimator { - duration: Kirigami.Units.longDuration + Connections { + target: sddm + function onLoginFailed() { + passwordField.selectAll() + passwordField.forceActiveFocus() + attemptingToLogin = false } } - - readonly property real zoomFactor: 1.5 - - popEnter: Transition { - ScaleAnimator { - from: mainStack.zoomFactor - to: 1 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - OpacityAnimator { - from: 0 - to: 1 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - } - - popExit: Transition { - ScaleAnimator { - from: 1 - to: 1 / mainStack.zoomFactor - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - OpacityAnimator { - from: 1 - to: 0 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - } - - pushEnter: Transition { - ScaleAnimator { - from: 1 / mainStack.zoomFactor - to: 1 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - OpacityAnimator { - from: 0 - to: 1 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - } - - pushExit: Transition { - ScaleAnimator { - from: 1 - to: mainStack.zoomFactor - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - OpacityAnimator { - from: 1 - to: 0 - duration: Kirigami.Units.veryLongDuration - easing.type: Easing.OutCubic - } - } - } - - VirtualKeyboardLoader { - id: inputPanel - - z: 1 - - screenRoot: root - mainStack: mainStack - mainBlock: userListComponent - passwordField: userListComponent.mainPasswordBox - } - - Component { - id: userPromptComponent - Login { - showUsernamePrompt: true - notificationMessage: root.notificationMessage - loginScreenUiVisible: loginScreenRoot.uiVisible - fontSize: Kirigami.Theme.defaultFont.pointSize + 2 - - // using a model rather than a QObject list to avoid QTBUG-75900 - userListModel: ListModel { - ListElement { - name: "" - icon: "" - } - Component.onCompleted: { - // as we can't bind inside ListElement - setProperty(0, "name", i18nd("plasma-desktop-sddm-theme", "Type in Username and Password")); - setProperty(0, "icon", Qt.resolvedUrl("faces/.face.icon")) - } - } - - onLoginRequest: { - root.notificationMessage = "" - sddm.login(username, password, sessionButton.currentIndex) - } - - actionItemsVisible: !inputPanel.keyboardActive - actionItems: [ - ActionButton { - icon.name: "system-suspend" - text: i18ndc("plasma-desktop-sddm-theme", "Suspend to RAM", "Sleep") - onClicked: sddm.suspend() - enabled: sddm.canSuspend - }, - ActionButton { - icon.name: "system-reboot" - text: i18nd("plasma-desktop-sddm-theme", "Restart") - onClicked: sddm.reboot() - enabled: sddm.canReboot - }, - ActionButton { - icon.name: "system-shutdown" - text: i18nd("plasma-desktop-sddm-theme", "Shut Down") - onClicked: sddm.powerOff() - enabled: sddm.canPowerOff - }, - ActionButton { - icon.name: "system-user-list" - text: i18nd("plasma-desktop-sddm-theme", "List Users") - onClicked: mainStack.pop() - } - ] - } - } - - // Note: Containment masks stretch clickable area of their buttons to - // the screen edges, essentially making them adhere to Fitts's law. - // Due to virtual keyboard button having an icon, buttons may have - // different heights, so fillHeight is required. - // - // Note for contributors: Keep this in sync with LockScreenUi.qml footer. - RowLayout { - id: footer - anchors { - bottom: parent.bottom - left: parent.left - right: parent.right - margins: Kirigami.Units.smallSpacing - } - spacing: Kirigami.Units.smallSpacing - - Behavior on opacity { - OpacityAnimator { - duration: Kirigami.Units.longDuration - } - } - - /*PlasmaComponents3.ToolButton { - id: virtualKeyboardButton - - text: i18ndc("plasma-desktop-sddm-theme", "Button to show/hide virtual keyboard") - icon.name: inputPanel.keyboardActive ? "input-keyboard-virtual-on" : "input-keyboard-virtual-off" - onClicked: { - // Otherwise the password field loses focus and virtual keyboard - // keystrokes get eaten - userListComponent.mainPasswordBox.forceActiveFocus(); - inputPanel.showHide() - } - visible: inputPanel.status === Loader.Ready - - Layout.fillHeight: true - containmentMask: Item { - parent: virtualKeyboardButton - anchors.fill: parent - anchors.leftMargin: -footer.anchors.margins - anchors.bottomMargin: -footer.anchors.margins - } - }*/ - - KeyboardButton { - id: keyboardButton - - onKeyboardLayoutChanged: { - // Otherwise the password field loses focus and virtual keyboard - // keystrokes get eaten - userListComponent.mainPasswordBox.forceActiveFocus(); - } - - Layout.fillHeight: true - containmentMask: Item { - parent: keyboardButton - anchors.fill: parent - anchors.leftMargin: virtualKeyboardButton.visible ? 0 : -footer.anchors.margins - anchors.bottomMargin: -footer.anchors.margins - } - } - - SessionButton { - id: sessionButton - - onSessionChanged: { - // Otherwise the password field loses focus and virtual keyboard - // keystrokes get eaten - userListComponent.mainPasswordBox.forceActiveFocus(); - } - - Layout.fillHeight: true - containmentMask: Item { - parent: sessionButton - anchors.fill: parent - anchors.leftMargin: virtualKeyboardButton.visible || keyboardButton.visible - ? 0 : -footer.anchors.margins - anchors.bottomMargin: -footer.anchors.margins - } - } - - Item { - Layout.fillWidth: true - } - - Battery {} } } - - Connections { - target: sddm - function onLoginFailed() { - notificationMessage = i18nd("plasma-desktop-sddm-theme", "Login Failed") - footer.enabled = true - mainStack.enabled = true - userListComponent.userList.opacity = 0 - rejectPasswordAnimation.start() - } - function onLoginSucceeded() { - //note SDDM will kill the greeter at some random point after this - //there is no certainty any transition will finish, it depends on the time it - //takes to complete the init - mainStack.opacity = 0 - footer.opacity = 0 - } - } - - onNotificationMessageChanged: { - if (notificationMessage) { - notificationResetTimer.start(); - } - } - - Timer { - id: notificationResetTimer - interval: 3000 - onTriggered: notificationMessage = "" - } -} +} \ No newline at end of file diff --git a/Messages.sh b/Messages.sh deleted file mode 100644 index 1ded812..0000000 --- a/Messages.sh +++ /dev/null @@ -1,2 +0,0 @@ -#! /usr/bin/env bash -$XGETTEXT `find . -name \*.qml` -L Java -o $podir/plasma-desktop-sddm-theme.pot diff --git a/SessionButton.qml b/SessionButton.qml deleted file mode 100644 index ad387b5..0000000 --- a/SessionButton.qml +++ /dev/null @@ -1,55 +0,0 @@ -/* - SPDX-FileCopyrightText: 2016 David Edmundson - SPDX-FileCopyrightText: 2022 Aleix Pol Gonzalez - - SPDX-License-Identifier: LGPL-2.0-or-later -*/ - -import QtQuick 2.15 - -import org.kde.plasma.components 3.0 as PlasmaComponents -import org.kde.kirigami 2.20 as Kirigami - -PlasmaComponents.ToolButton { - id: root - - property int currentIndex: -1 - - text: i18nd("plasma-desktop-sddm-theme", "Desktop Session: %1", instantiator.objectAt(currentIndex).text || "") - visible: menu.count > 1 - - Component.onCompleted: { - currentIndex = sessionModel.lastIndex - } - checkable: true - checked: menu.opened - onToggled: { - if (checked) { - menu.popup(root, 0, 0) - } else { - menu.dismiss() - } - } - - signal sessionChanged() - - PlasmaComponents.Menu { - Kirigami.Theme.colorSet: Kirigami.Theme.Window - Kirigami.Theme.inherit: false - - id: menu - Instantiator { - id: instantiator - model: sessionModel - onObjectAdded: (index, object) => menu.insertItem(index, object) - onObjectRemoved: (index, object) => menu.removeItem(object) - delegate: PlasmaComponents.MenuItem { - text: model.name - onTriggered: { - root.currentIndex = model.index - sessionChanged() - } - } - } - } -} diff --git a/background.png b/background.png index b986578..dbbe1d4 100644 Binary files a/background.png and b/background.png differ diff --git a/default-logo.svg b/default-logo.svg deleted file mode 100644 index 722113d..0000000 --- a/default-logo.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/faces/.face.icon b/faces/.face.icon deleted file mode 100644 index ecee991..0000000 --- a/faces/.face.icon +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - diff --git a/icons/down-arrow.png b/icons/down-arrow.png new file mode 100644 index 0000000..80470ce Binary files /dev/null and b/icons/down-arrow.png differ diff --git a/icons/power.png b/icons/power.png deleted file mode 100644 index 18f4c0a..0000000 Binary files a/icons/power.png and /dev/null differ diff --git a/icons/user.png b/icons/user.png new file mode 100644 index 0000000..b99e1d0 Binary files /dev/null and b/icons/user.png differ diff --git a/metadata.desktop b/metadata.desktop deleted file mode 100644 index 3df02f4..0000000 --- a/metadata.desktop +++ /dev/null @@ -1,107 +0,0 @@ -[SddmGreeterTheme] -Name=Breeze -Name[ar]=نسيم -Name[az]=Breeze -Name[be]=Breeze -Name[bg]=Breeze -Name[ca]=Brisa -Name[ca@valencia]=Brisa -Name[cs]=Breeze -Name[da]=Breeze -Name[de]=Breeze -Name[el]=Breeze -Name[en_GB]=Breeze -Name[eo]=Breeze -Name[es]=Brisa -Name[eu]=Breeze -Name[fi]=Breeze -Name[fr]=Breeze -Name[gl]=Brisa -Name[he]=בריזה -Name[hu]=Breeze -Name[ia]=Breeze (Brisa) -Name[id]=Breeze -Name[is]=Breeze -Name[it]=Brezza -Name[ka]=Breeze -Name[ko]=Breeze -Name[lt]=Breeze -Name[lv]=Breeze -Name[nb]=Breeze -Name[nl]=Breeze -Name[nn]=Breeze -Name[pa]=ਬਰੀਜ਼ -Name[pl]=Bryza -Name[pt_BR]=Breeze -Name[ro]=Breeze -Name[ru]=Breeze -Name[sa]=वायुः -Name[sk]=Vánok -Name[sl]=Sapica -Name[sv]=Breeze -Name[ta]=பிரீஸ் -Name[tr]=Esinti -Name[uk]=Breeze -Name[x-test]=xxBreezexx -Name[zh_CN]=Breeze 微风 -Name[zh_TW]=Breeze -Description=Breeze -Description[ar]=نسيم -Description[az]=Breeze -Description[be]=Breeze -Description[bg]=Breeze -Description[ca]=Brisa -Description[ca@valencia]=Brisa -Description[cs]=Breeze -Description[da]=Breeze -Description[de]=Breeze -Description[el]=Breeze -Description[en_GB]=Breeze -Description[eo]=Brizo -Description[es]=Brisa -Description[eu]=Brisa -Description[fi]=Breeze -Description[fr]=Breeze -Description[gl]=Brisa. -Description[he]=בריזה -Description[hu]=Breeze -Description[ia]=Breeze (Brisa) -Description[id]=Breeze -Description[is]=Breeze -Description[it]=Brezza -Description[ka]=Breeze -Description[ko]=Breeze -Description[lt]=Breeze -Description[lv]=Breeze -Description[nb]=Breeze -Description[nl]=Breeze -Description[nn]=Breeze -Description[pa]=ਬਰੀਜ਼ -Description[pl]=Bryza -Description[pt_BR]=Breeze -Description[ro]=Briză -Description[ru]=Breeze -Description[sa]=वायुः -Description[sk]=Vánok -Description[sl]=Sapica -Description[sv]=Breeze -Description[ta]=பிரீஸ் -Description[tr]=Esinti -Description[uk]=Breeze -Description[x-test]=xxBreezexx -Description[zh_CN]=Breeze 微风 -Description[zh_TW]=Breeze -Author=KDE Visual Design Group -Copyright=(c) 2014, David Edmundson -License=CC-BY-SA -Type=sddm-theme -Version=0.1 -Website=https://github.com/sddm/sddm -Screenshot=preview.png -MainScript=Main.qml -ConfigFile=theme.conf -TranslationsDirectory=translations -Email=plasma-devel@kde.org -Theme-Id=breeze -Theme-API=2.0 -QtVersion=6 diff --git a/preview.png b/preview.png deleted file mode 100644 index 1321a95..0000000 Binary files a/preview.png and /dev/null differ diff --git a/text-field.png b/text-field.png new file mode 100644 index 0000000..414174b Binary files /dev/null and b/text-field.png differ diff --git a/theme.conf b/theme.conf index 6776d89..ac95a49 100644 --- a/theme.conf +++ b/theme.conf @@ -1,9 +1,2 @@ [General] -showlogo=hidden -showClock=true -logo=/nix/store/0gnm173zw3fic8h8hn9fwvg04k2h3szy-plasma-desktop-6.4.3/share/sddm/themes/breeze/default-logo.svg -type=image -color=#1d99f3 -fontSize=10 -background=background.png -needsFullUserModel=false +background=background.png \ No newline at end of file diff --git a/theme.conf.cmake.orig b/theme.conf.cmake.orig deleted file mode 100644 index 7436cec..0000000 --- a/theme.conf.cmake.orig +++ /dev/null @@ -1,9 +0,0 @@ -[General] -showlogo=hidden -showClock=true -logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg -type=image -color=#1d99f3 -fontSize=10 -background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.png -needsFullUserModel=false