quickshell and hyprland additions

This commit is contained in:
2026-03-15 13:56:00 +02:00
parent c9c27d1554
commit 1ad06b82a6
509 changed files with 68371 additions and 19 deletions

View File

@@ -0,0 +1,114 @@
import Qt.labs.folderlistmodel
import Qt5Compat.GraphicalEffects
import QtCore
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell
import Quickshell.Io
import qs.modules.functions
import qs.services
import qs.config
import qs.modules.components
Item {
id: wallpapersPage
property string displayName: screen?.name ?? ""
FolderListModel {
id: wallpaperModel
folder: StandardPaths.writableLocation(StandardPaths.PicturesLocation) + "/Wallpapers"
nameFilters: ["*.png", "*.jpg", "*.jpeg", "*.webp", "mp4", "mkv", "webm", "avi", "mov", "flv", "wmv", "m4v"]
showDirs: false
showDotAndDotDot: false
}
// EMPTY STATE
StyledText {
visible: wallpaperModel.count === 0
text: "Put some wallpapers in\n~/Pictures/Wallpapers"
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
color: Appearance.m3colors.m3onSurfaceVariant
font.pixelSize: Appearance.font.size.large
anchors.centerIn: parent
}
// WALLPAPER LIST
ListView {
anchors.topMargin: 90
visible: wallpaperModel.count > 0
anchors.fill: parent
model: wallpaperModel
spacing: Appearance.margin.normal
clip: true
delegate: Item {
width: ListView.view.width
height: 240
StyledRect {
id: imgContainer
property bool activeWallpaper:
Config.runtime.monitors?.[wallpapersPage.displayName]?.wallpaper === fileUrl
anchors.fill: parent
anchors.leftMargin: 20
anchors.rightMargin: 20
radius: Appearance.rounding.normal
color: activeWallpaper
? Appearance.m3colors.m3secondaryContainer
: Appearance.m3colors.m3surfaceContainerLow
layer.enabled: true
Image {
id: wallImg
anchors.fill: parent
source: fileUrl
fillMode: Image.PreserveAspectCrop
asynchronous: true
cache: true
clip: true
}
StyledText {
anchors.centerIn: parent
text: "Unsupported / Corrupted Image"
visible: wallImg.status === Image.Error
}
MouseArea {
anchors.fill: parent
onClicked: {
Config.updateKey(
"monitors." + wallpapersPage.displayName + ".wallpaper",
fileUrl
);
if (Config.runtime.appearance.colors.autogenerated) {
Quickshell.execDetached([
"nucleus", "ipc", "call", "global", "regenColors"
]);
}
}
cursorShape: Qt.PointingHandCursor
}
layer.effect: OpacityMask {
maskSource: Rectangle {
width: imgContainer.width
height: imgContainer.height
radius: imgContainer.radius
}
}
}
}
}
}