add files beacuse i forgor
This commit is contained in:
parent
f15f6e3c82
commit
c5198abcf9
@ -14,8 +14,8 @@ Item {
|
||||
Repeater {
|
||||
id: workspaceRepeater
|
||||
Rectangle {
|
||||
width: 18
|
||||
height: 18
|
||||
width: 14
|
||||
height: 14
|
||||
radius: 10
|
||||
//color: modelData.active ? myPallete.accent : myPallete.window
|
||||
color: modelData.active ? Colors.foreground : "transparent"
|
||||
|
||||
101
modules/wallpaper/WallSwitcher.qml
Normal file
101
modules/wallpaper/WallSwitcher.qml
Normal file
@ -0,0 +1,101 @@
|
||||
import QtQuick
|
||||
import Qt.labs.folderlistmodel 2.15 // <--- The magic file scanner!
|
||||
import Quickshell
|
||||
import Quickshell.Hyprland
|
||||
import Quickshell.Io
|
||||
import "."
|
||||
import qs.modules.bar
|
||||
|
||||
FloatingWindow {
|
||||
id: root
|
||||
title: "quickshell-WallSwitcher"
|
||||
visible: false
|
||||
implicitWidth: 840
|
||||
implicitHeight: 640
|
||||
|
||||
GlobalShortcut {
|
||||
// This is the "Secret Password" Hyprland will use
|
||||
name: "toggle-walls"
|
||||
|
||||
onPressed: {
|
||||
// Toggle visibility!
|
||||
root.visible = !root.visible;
|
||||
|
||||
console.log("Shortcut pressed! Switcher is now: " + (root.visible ? "Visible" : "Hidden"));
|
||||
}
|
||||
}
|
||||
|
||||
// Make it float above everything else
|
||||
Text {
|
||||
id: titleText
|
||||
text: "Wallpapers in " + WallpaperStore.wallDir
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.top: parent.top
|
||||
font.pixelSize: 20
|
||||
topPadding: 20
|
||||
bottomPadding: 10
|
||||
font.family: Appearance.font
|
||||
color: Colors.foreground
|
||||
}
|
||||
|
||||
color: Colors.background // Dark background
|
||||
|
||||
// 1. The File Scanner
|
||||
FolderListModel {
|
||||
id: folderModel
|
||||
folder: "file:///home/lucy/.walls/" // <--- Your stash!
|
||||
nameFilters: ["*.png", "*.jpg", "*.jpeg"]
|
||||
showDirs: false
|
||||
}
|
||||
|
||||
// 2. The Grid Display
|
||||
GridView {
|
||||
anchors.top: titleText.bottom // Sit below the title!
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
anchors.bottom: parent.bottom
|
||||
anchors.margins: 20
|
||||
cellWidth: 200
|
||||
cellHeight: 100
|
||||
clip: true
|
||||
|
||||
model: folderModel
|
||||
|
||||
delegate: Item {
|
||||
width: 200
|
||||
height: 100
|
||||
|
||||
Image {
|
||||
width: 180
|
||||
height: 90
|
||||
anchors.centerIn: parent
|
||||
// "fileUrl" is provided by FolderListModel
|
||||
source: fileUrl
|
||||
|
||||
// IMPORTANT: Downscale the image for the thumbnail!
|
||||
// If you don't do this, loading 50 4K images will eat your RAM
|
||||
// faster than Chrome eats memory! 🙀
|
||||
sourceSize.width: 140
|
||||
sourceSize.height: 90
|
||||
|
||||
fillMode: Image.PreserveAspectCrop
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
Process {
|
||||
id: generateScheme
|
||||
property string cleanPath: fileUrl.toString().replace("file://", "")
|
||||
command: ["wallust", "run", cleanPath]
|
||||
}
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
let cleanPath = fileUrl.toString().replace("file://", "");
|
||||
// Update the Singleton!
|
||||
WallpaperStore.currentWall = fileUrl.toString();
|
||||
generateScheme.startDetached();
|
||||
console.log(generateScheme.stdout);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
31
modules/wallpaper/WallpaperStore.qml
Normal file
31
modules/wallpaper/WallpaperStore.qml
Normal file
@ -0,0 +1,31 @@
|
||||
pragma Singleton
|
||||
import QtQuick
|
||||
import Quickshell.Io // <--- Import for FileView and JsonAdapter
|
||||
|
||||
QtObject {
|
||||
id: store
|
||||
|
||||
// 1. The File Manager
|
||||
property string wallDir: "~/.walls/"
|
||||
property var settings: FileView {
|
||||
path: "/home/lucy/.cache/quickshell_settings.json"
|
||||
|
||||
// Auto-save when properties change
|
||||
onAdapterUpdated: writeAdapter()
|
||||
|
||||
// Auto-load when the file changes on disk
|
||||
watchChanges: true
|
||||
onFileChanged: reload()
|
||||
|
||||
// 2. The Magic Adapter
|
||||
JsonAdapter {
|
||||
id: adapter
|
||||
// This property corresponds to a key in your JSON file!
|
||||
property string lastWallpaper: "/home/lucy/.walls/frieren_river.jpg"
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Create a helper property for the rest of your app to use
|
||||
// This keeps the "WallpaperStore.currentWall" name working!
|
||||
property alias currentWall: adapter.lastWallpaper
|
||||
}
|
||||
3
modules/wallpaper/qmldir
Normal file
3
modules/wallpaper/qmldir
Normal file
@ -0,0 +1,3 @@
|
||||
singleton WallpaperStore 1.0 WallpaperStore.qml
|
||||
Wallpaper 1.0 Wallpaper.qml
|
||||
WallSwitcher 1.0 WallSwitcher.qml
|
||||
Loading…
x
Reference in New Issue
Block a user