feat: add plasma theme, SDDM theme, wallpaper, Qt color configs, start menu icon; remove memes
This commit represents a major branding push for Antergos NeXT, adding
complete Plasma theming, fixing the SDDM login screen, expanding the
wallpaper collection, and removing inappropriate content.
NEW PACKAGES:
- antergos-plasma-theme: Complete KDE Plasma desktop theme suite
(pkgrel=1). Contains:
* antergos-dark/colors — full color scheme with Antergos brand blue
(#2EA3F2) accent on dark (#232629) background, ported from Artix
dark theme and fully rebranded
* antergos-dark/metadata.json — theme metadata
* antergos-dark/plasmarc — configures default wallpaper
(antergos-wallpaper), contrast effect, and adaptive transparency
* antergos-dark/icons/start.svgz — custom start menu button icon
using the Antergos logo (blue circle + geometric mark). KDE Plasma
loads the start menu icon from the theme's own icons/ directory
(the 'default' theme provides fallbacks like start.svgz for all
themes; any theme can override by placing its own start.svgz in its
icons/ dir). This is the canonical way to set a distro-specific
start button icon — NOT via the Freedesktop icon theme
(start-here-*) or plasmarc [Icons] settings, which only affect
system tray icons and KCM previews respectively. Source SVG from
EliverLara/candy-icons (GPL-3.0).
* antergosdark.desktop/ — look-and-feel package with:
- contents/defaults — presets for color scheme, widget style, icons
- contents/layouts/org.kde.plasma.desktop-layout.js — default panel
layout with kickoff, pager, task manager, system tray, clock
- contents/splash/Splash.qml — text-based splash screen showing
'Antergos' + 'NeXT' with progress bar (no external image deps)
- antergos-sddm-theme: Rebuilt SDDM login manager theme from scratch
(pkgrel=1). Fixes critical layout bugs in the Artix-origin theme:
* Session and layout combo boxes moved to a separate bottom bar
(anchored to parent.bottom) so they don't overlap the login card
* Dropdown lists open UPWARD (anchors.bottom: container.top) to
prevent overlapping other controls and the login form
* Arrow icons (angle-up.png) flipped to point correct direction for
upward-opening dropdowns
* Built-in background.png (1920x1080 dark gradient) eliminates
dependency on external wallpaper packages at SDDM time
* Fixed deprecated QML Connections syntax
(onCurrentLayoutChanged -> function onCurrentLayoutChanged())
* theme.conf references local background.png
* metadata.desktop with Antergos NeXT branding
* Components: custom ComboBox.qml (upward dropdown with transparent
arrow default), LayoutBox.qml (keyboard layout selector), qmldir
(module definition)
UPDATED PACKAGES:
- antergos-next-desktop-settings (pkgrel 1->2):
* Added Antergos-dark-qt5.conf — Qt5ct color scheme config so Qt5
applications inherit the dark theme colors
* Added Antergos-dark-qt6.conf — Qt6ct color scheme config for Qt6
application compatibility
* Enhanced kdeglobals with complete color sections:
- [General]: ColorScheme=AntergosDark, font=Roboto,11,-1,5,50,0,0
- [Icons]: Theme=breeze-dark
- [KDE]: widgetStyle=Breeze, LookAndFeelPackage=antergosdark.desktop
- [Colors:Button], [Colors:Selection], [Colors:View],
[Colors:Window] with full fg/bg/alt/decoration values
* Updated plasma-override to reference antergos-dark theme
- antergos-wallpapers (pkgrel 5->6):
* Added antergos-darkest-hour.jpg — 'Darkest Hour' wallpaper from KDE
Plasma 5.14 collection (GPL-2+, artist Risto Saukonpaa). Dark blue
moody landscape at 2560x1600 with ~30% average brightness, ideal
for dark-themed desktops. Installed as a separate KDE wallpaper
entry (antergos-darkest-hour) with its own metadata.desktop so
users can select it alongside the original brand wallpaper.
* Also installed to /usr/share/backgrounds/antergos/ and
/usr/share/antergos/backgrounds/ for non-KDE wallpaper pickers.
- packages.yaml: Added entries for antergos-plasma-theme and
antergos-sddm-theme. Sorted alphabetically.
REMOVED PACKAGES:
- antergos-next-memes: Removed entirely. Contained
'its-raining-tacos.opus' — an audio meme file (It's Raining Tacos)
inappropriate for a serious distribution. Antergos NeXT aims to be a
professional-quality EndeavourOS/Artix derivative, not a joke distro.
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
import QtQuick 2.14
|
||||
import SddmComponents 2.0
|
||||
import 'components'
|
||||
|
||||
|
||||
Rectangle {
|
||||
id: container
|
||||
width: 640
|
||||
height: 480
|
||||
|
||||
LayoutMirroring.enabled: Qt.locale().textDirection == Qt.RightToLeft
|
||||
LayoutMirroring.childrenInherit: true
|
||||
|
||||
TextConstants { id: textConstants }
|
||||
|
||||
Connections {
|
||||
target: sddm
|
||||
|
||||
function onLoginSucceeded() {
|
||||
errorMessage.color = "#2EA3F2"
|
||||
errorMessage.text = textConstants.loginSucceeded
|
||||
}
|
||||
|
||||
function onLoginFailed() {
|
||||
password.text = ""
|
||||
errorMessage.color = "#ed1515"
|
||||
errorMessage.text = textConstants.loginFailed
|
||||
}
|
||||
}
|
||||
|
||||
Background {
|
||||
anchors.fill: parent
|
||||
source: config.background
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
onStatusChanged: {
|
||||
if (status == Image.Error && source != config.defaultBackground) {
|
||||
source = config.defaultBackground
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
gradient: Gradient {
|
||||
GradientStop { position: 0.0; color: "#661a1c21" }
|
||||
GradientStop { position: 0.5; color: "#aa1a1c21" }
|
||||
GradientStop { position: 1.0; color: "#ee0d0e12" }
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: loginCard
|
||||
anchors.centerIn: parent
|
||||
anchors.verticalCenterOffset: -24
|
||||
width: 360
|
||||
height: cardColumn.implicitHeight + 40
|
||||
radius: 16
|
||||
color: "#232629"
|
||||
border.color: "#3f4347"
|
||||
border.width: 1
|
||||
|
||||
Column {
|
||||
id: cardColumn
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
anchors.topMargin: 28
|
||||
spacing: 16
|
||||
width: parent.width - 40
|
||||
|
||||
Text {
|
||||
text: "Antergos"
|
||||
color: "#2EA3F2"
|
||||
font.family: "Roboto"
|
||||
font.weight: Font.Light
|
||||
font.pointSize: 34
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
spacing: 10
|
||||
|
||||
TextBox {
|
||||
id: name
|
||||
width: parent.width
|
||||
height: 40
|
||||
text: userModel.lastUser
|
||||
font.pixelSize: 14
|
||||
color: "#1d1f21"
|
||||
textColor: "#eff0f1"
|
||||
focusColor: "#2EA3F2"
|
||||
KeyNavigation.backtab: rebootButton
|
||||
KeyNavigation.tab: password
|
||||
Keys.onPressed: {
|
||||
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||
sddm.login(name.text, password.text, sessionCombo.index)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PasswordBox {
|
||||
id: password
|
||||
width: parent.width
|
||||
height: 40
|
||||
font.pixelSize: 14
|
||||
color: "#1d1f21"
|
||||
textColor: "#eff0f1"
|
||||
focusColor: "#2EA3F2"
|
||||
KeyNavigation.backtab: name
|
||||
KeyNavigation.tab: loginButton
|
||||
Keys.onPressed: {
|
||||
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||
sddm.login(name.text, password.text, sessionCombo.index)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
id: errorMessage
|
||||
width: parent.width
|
||||
height: errorMessage.text ? 16 : 0
|
||||
font.pixelSize: 12
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
visible: errorMessage.text !== ""
|
||||
}
|
||||
|
||||
Button {
|
||||
id: loginButton
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
text: textConstants.login
|
||||
color: "#2EA3F2"
|
||||
textColor: "#ffffff"
|
||||
activeColor: "#268acc"
|
||||
pressedColor: "#1a6da0"
|
||||
KeyNavigation.backtab: password
|
||||
KeyNavigation.tab: shutdownButton
|
||||
Keys.onPressed: {
|
||||
if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) {
|
||||
sddm.login(name.text, password.text, sessionCombo.index)
|
||||
event.accepted = true
|
||||
}
|
||||
}
|
||||
onClicked: sddm.login(name.text, password.text, sessionCombo.index)
|
||||
}
|
||||
|
||||
Row {
|
||||
spacing: 8
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
Button {
|
||||
id: shutdownButton
|
||||
text: textConstants.shutdown
|
||||
color: "#3f4347"
|
||||
textColor: "#eff0f1"
|
||||
activeColor: "#ed1515"
|
||||
KeyNavigation.backtab: loginButton
|
||||
KeyNavigation.tab: rebootButton
|
||||
onClicked: sddm.powerOff()
|
||||
}
|
||||
|
||||
Button {
|
||||
id: rebootButton
|
||||
text: textConstants.reboot
|
||||
color: "#3f4347"
|
||||
textColor: "#eff0f1"
|
||||
activeColor: "#2EA3F2"
|
||||
KeyNavigation.backtab: shutdownButton
|
||||
KeyNavigation.tab: sessionCombo
|
||||
onClicked: sddm.reboot()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors {
|
||||
bottom: parent.bottom
|
||||
bottomMargin: 32
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
width: 360
|
||||
height: 44
|
||||
radius: 12
|
||||
color: "#1a1c21"
|
||||
border.color: "#3f4347"
|
||||
border.width: 1
|
||||
|
||||
Row {
|
||||
anchors.centerIn: parent
|
||||
spacing: 16
|
||||
|
||||
ComboBox {
|
||||
id: sessionCombo
|
||||
width: 140
|
||||
height: 32
|
||||
model: sessionModel
|
||||
index: sessionModel.lastIndex
|
||||
color: "#31363b"
|
||||
textColor: "#eff0f1"
|
||||
menuColor: "#232629"
|
||||
focusColor: "#2EA3F2"
|
||||
hoverColor: "#3f4347"
|
||||
borderColor: "#3f4347"
|
||||
arrowIcon: "angle-up.png"
|
||||
arrowColor: "#8a8f9c"
|
||||
font.pixelSize: 12
|
||||
KeyNavigation.backtab: rebootButton
|
||||
KeyNavigation.tab: layoutCombo
|
||||
}
|
||||
|
||||
LayoutBox {
|
||||
id: layoutCombo
|
||||
width: 110
|
||||
height: 32
|
||||
color: "#31363b"
|
||||
textColor: "#eff0f1"
|
||||
hoverColor: "#3f4347"
|
||||
menuColor: "#232629"
|
||||
borderColor: "#3f4347"
|
||||
focusColor: "#2EA3F2"
|
||||
arrowIcon: "angle-up.png"
|
||||
arrowColor: "#8a8f9c"
|
||||
font.pixelSize: 12
|
||||
KeyNavigation.backtab: sessionCombo
|
||||
KeyNavigation.tab: name
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
if (name.text == "")
|
||||
name.focus = true
|
||||
else
|
||||
password.focus = true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
# Maintainer: Celestia Ludenberg <ash8820@proton.me>
|
||||
|
||||
pkgname=antergos-sddm-theme
|
||||
pkgver=1
|
||||
pkgrel=1
|
||||
pkgdesc='Antergos NeXT SDDM theme'
|
||||
arch=('any')
|
||||
url="https://github.com/Antergos-NeXT/antergos-packages"
|
||||
license=('GPL')
|
||||
depends=('sddm' 'qt5-declarative' 'antergos-wallpapers')
|
||||
source=(
|
||||
"Main.qml"
|
||||
"metadata.desktop"
|
||||
"theme.conf"
|
||||
"angle-up.png"
|
||||
"background.png"
|
||||
"components/ComboBox.qml"
|
||||
"components/LayoutBox.qml"
|
||||
"components/qmldir"
|
||||
)
|
||||
sha256sums=('SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP' 'SKIP')
|
||||
|
||||
package() {
|
||||
install -dm755 "${pkgdir}/usr/share/sddm/themes/antergos"
|
||||
install -dm755 "${pkgdir}/usr/share/sddm/themes/antergos/components"
|
||||
install -m644 "${srcdir}/Main.qml" "${pkgdir}/usr/share/sddm/themes/antergos/"
|
||||
install -m644 "${srcdir}/metadata.desktop" "${pkgdir}/usr/share/sddm/themes/antergos/"
|
||||
install -m644 "${srcdir}/theme.conf" "${pkgdir}/usr/share/sddm/themes/antergos/"
|
||||
install -m644 "${srcdir}/angle-up.png" "${pkgdir}/usr/share/sddm/themes/antergos/"
|
||||
install -m644 "${srcdir}/background.png" "${pkgdir}/usr/share/sddm/themes/antergos/"
|
||||
install -m644 "${srcdir}/components/ComboBox.qml" "${pkgdir}/usr/share/sddm/themes/antergos/components/"
|
||||
install -m644 "${srcdir}/components/LayoutBox.qml" "${pkgdir}/usr/share/sddm/themes/antergos/components/"
|
||||
install -m644 "${srcdir}/components/qmldir" "${pkgdir}/usr/share/sddm/themes/antergos/components/"
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 4.6 KiB |
@@ -0,0 +1,259 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Abdurrahman AVCI <abdurrahmanavci@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
FocusScope {
|
||||
id: container
|
||||
width: 80; height: 30
|
||||
|
||||
property color color: "white"
|
||||
property color borderColor: "#ababab"
|
||||
property color focusColor: "#266294"
|
||||
property color hoverColor: "#5692c4"
|
||||
property color menuColor: "white"
|
||||
property color textColor: "black"
|
||||
|
||||
property int borderWidth: 1
|
||||
property font font
|
||||
property alias model: listView.model
|
||||
property int index: 0
|
||||
property alias arrowColor: arrow.color
|
||||
property alias arrowIcon: arrowIcon.source
|
||||
|
||||
property Component rowDelegate: defaultRowDelegate
|
||||
|
||||
signal valueChanged(int id)
|
||||
|
||||
Component {
|
||||
id: defaultRowDelegate
|
||||
Text {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 3 + container.borderWidth + (LayoutMirroring.enabled ? arrow.width : 0)
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
color: container.textColor
|
||||
font: container.font
|
||||
|
||||
text: parent.modelItem.name
|
||||
}
|
||||
}
|
||||
|
||||
onFocusChanged: if (!container.activeFocus) close(false)
|
||||
|
||||
Rectangle {
|
||||
id: main
|
||||
|
||||
anchors.fill: parent
|
||||
|
||||
color: container.color
|
||||
border.color: container.borderColor
|
||||
border.width: container.borderWidth
|
||||
|
||||
Behavior on border.color { ColorAnimation { duration: 100 } }
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "hover"; when: mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.hoverColor }
|
||||
},
|
||||
State {
|
||||
name: "focus"; when: container.activeFocus && !mouseArea.containsMouse
|
||||
PropertyChanges { target: main; border.width: container.borderWidth; border.color: container.focusColor }
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: topRow
|
||||
anchors.fill: parent
|
||||
focus: true
|
||||
clip: true
|
||||
|
||||
sourceComponent: rowDelegate
|
||||
property variant modelItem
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: arrow
|
||||
anchors.right: parent.right
|
||||
width: 20 + 2*border.width; height: parent.height
|
||||
color: "transparent"
|
||||
|
||||
border.color: main.border.color
|
||||
border.width: main.border.width
|
||||
|
||||
Image {
|
||||
id: arrowIcon
|
||||
anchors.fill: parent
|
||||
anchors.leftMargin: parent.border.width
|
||||
anchors.rightMargin: parent.border.width
|
||||
clip: true
|
||||
smooth: true
|
||||
fillMode: Image.PreserveAspectFit
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
anchors.fill: container
|
||||
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
hoverEnabled: true
|
||||
|
||||
onEntered: if (main.state == "") main.state = "hover";
|
||||
onExited: if (main.state == "hover") main.state = "";
|
||||
onClicked: { container.focus = true; toggle() }
|
||||
onWheel: {
|
||||
if (wheel.angleDelta.y > 0)
|
||||
listView.decrementCurrentIndex()
|
||||
else
|
||||
listView.incrementCurrentIndex()
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onPressed: {
|
||||
if (event.key === Qt.Key_Up) {
|
||||
listView.decrementCurrentIndex()
|
||||
} else if (event.key === Qt.Key_Down) {
|
||||
if (event.modifiers !== Qt.AltModifier)
|
||||
listView.incrementCurrentIndex()
|
||||
else
|
||||
toggle()
|
||||
} else if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return) {
|
||||
close(true)
|
||||
} else if (event.key === Qt.Key_Escape) {
|
||||
close(false)
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: dropDown
|
||||
width: container.width; height: 0
|
||||
anchors.bottom: container.top
|
||||
anchors.bottomMargin: 0
|
||||
|
||||
color: container.menuColor
|
||||
|
||||
clip: true
|
||||
|
||||
Behavior on height { NumberAnimation { duration: 100 } }
|
||||
|
||||
Component {
|
||||
id: myDelegate
|
||||
|
||||
Rectangle {
|
||||
width: dropDown.width; height: container.height - 2*container.borderWidth
|
||||
color: "transparent"
|
||||
|
||||
Loader {
|
||||
id: loader
|
||||
anchors.fill: parent
|
||||
sourceComponent: rowDelegate
|
||||
|
||||
property variant modelItem: model
|
||||
}
|
||||
|
||||
property variant modelItem: model
|
||||
|
||||
MouseArea {
|
||||
id: delegateMouseArea
|
||||
anchors.fill: parent
|
||||
|
||||
cursorShape: Qt.PointingHandCursor
|
||||
|
||||
hoverEnabled: true
|
||||
onEntered: listView.currentIndex = index
|
||||
onClicked: close(true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
width: container.width; height: (container.height - 2*container.borderWidth) * count + container.borderWidth
|
||||
delegate: myDelegate
|
||||
highlight: Rectangle {
|
||||
anchors.horizontalCenter: parent ? parent.horizontalCenter : undefined;
|
||||
color: container.hoverColor
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: listView
|
||||
anchors.bottomMargin: -container.borderWidth
|
||||
color: "transparent"
|
||||
clip: false
|
||||
border.color: main.border.color
|
||||
border.width: main.border.width
|
||||
}
|
||||
|
||||
states: [
|
||||
State {
|
||||
name: "visible";
|
||||
PropertyChanges { target: dropDown; height: (container.height - 2*container.borderWidth) * listView.count + container.borderWidth}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
function toggle() {
|
||||
if (dropDown.state === "visible")
|
||||
close(false)
|
||||
else
|
||||
open()
|
||||
}
|
||||
|
||||
function open() {
|
||||
dropDown.state = "visible"
|
||||
listView.currentIndex = container.index
|
||||
}
|
||||
|
||||
function close(update) {
|
||||
dropDown.state = ""
|
||||
|
||||
if (update) {
|
||||
container.index = listView.currentIndex
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
valueChanged(listView.currentIndex)
|
||||
}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
|
||||
onIndexChanged: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
|
||||
onModelChanged: {
|
||||
listView.currentIndex = container.index
|
||||
if (listView.currentItem)
|
||||
topRow.modelItem = listView.currentItem.modelItem
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Nikita Mikhaylov <nslqqq@gmail.com>
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without restriction,
|
||||
* including without limitation the rights to use, copy, modify, merge,
|
||||
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
* and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
|
||||
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
||||
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
|
||||
* OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*
|
||||
***************************************************************************/
|
||||
|
||||
import QtQuick 2.0
|
||||
|
||||
ComboBox {
|
||||
id: combo
|
||||
|
||||
model: keyboard.layouts
|
||||
index: keyboard.currentLayout
|
||||
|
||||
onValueChanged: keyboard.currentLayout = id
|
||||
|
||||
Connections {
|
||||
target: keyboard
|
||||
|
||||
function onCurrentLayoutChanged() { combo.index = keyboard.currentLayout }
|
||||
}
|
||||
|
||||
rowDelegate: Rectangle {
|
||||
color: "transparent"
|
||||
|
||||
Image {
|
||||
id: img
|
||||
source: "/usr/share/sddm/flags/%1.png".arg(modelItem ? modelItem.modelData.shortName : "zz")
|
||||
|
||||
anchors.margins: 4
|
||||
fillMode: Image.PreserveAspectFit
|
||||
|
||||
anchors.left: parent.left
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
}
|
||||
|
||||
Text {
|
||||
anchors.margins: 4
|
||||
anchors.left: img.right
|
||||
anchors.top: parent.top
|
||||
anchors.bottom: parent.bottom
|
||||
color: '#eff0f1'
|
||||
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
text: modelItem ? modelItem.modelData.shortName : "zz"
|
||||
font.pixelSize: 14
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
module SddmComponents
|
||||
|
||||
LayoutBox 2.0 LayoutBox.qml
|
||||
ComboBox 2.0 ComboBox.qml
|
||||
@@ -0,0 +1,12 @@
|
||||
[SddmGreeterTheme]
|
||||
Name=Antergos
|
||||
Description=Antergos NeXT SDDM Theme
|
||||
Author=Celestia Ludenberg
|
||||
Type=sddm-theme
|
||||
Version=1.0
|
||||
Website=https://github.com/Antergos-NeXT
|
||||
Email=ash8820@proton.me
|
||||
MainScript=Main.qml
|
||||
ConfigFile=theme.conf
|
||||
Theme-Id=antergos
|
||||
Theme-API=2.0
|
||||
@@ -0,0 +1,2 @@
|
||||
[General]
|
||||
background=background.png
|
||||
Reference in New Issue
Block a user