diff --git a/contents/config/main.xml b/contents/config/main.xml
index a45d5a0..5fa6d4d 100644
--- a/contents/config/main.xml
+++ b/contents/config/main.xml
@@ -69,6 +69,10 @@
false
+
+
+ false
+
diff --git a/contents/ui/config.qml b/contents/ui/config.qml
index a565a51..04ecc20 100644
--- a/contents/ui/config.qml
+++ b/contents/ui/config.qml
@@ -50,6 +50,8 @@ ColumnLayout {
property string cfg_SearchColor
+ property bool cfg_RandomSeed
+
Image {
id: currentWallpaper
source: wallpaper.configuration.currentWallpaperThumbnail
@@ -288,6 +290,17 @@ ColumnLayout {
}
}
}
+
+ RowLayout {
+ Kirigami.FormData.label: i18n("Random seed")
+ CheckBox {
+ text: i18n("Enable")
+ checked: cfg_RandomSeed
+ onToggled: {
+ cfg_RandomSeed = checked;
+ }
+ }
+ }
}
Label {
diff --git a/contents/ui/main.qml b/contents/ui/main.qml
index f1e9de2..b9c8f07 100644
--- a/contents/ui/main.qml
+++ b/contents/ui/main.qml
@@ -144,6 +144,10 @@ QQC2.StackView {
url += `ratios=${encodeURIComponent(root.aspectRatio)}&`
+ if (wallpaper.configuration.RandomSeed) {
+ url += `seed=${generateSeed()}&`
+ }
+
url += `q=${encodeURIComponent(wallpaper.configuration.Query)}`
console.error('using url: ' + url);
@@ -239,6 +243,18 @@ QQC2.StackView {
pendingImage = null;
}
+ function generateSeed() {
+ const characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
+ const generatedCharacters = [];
+
+ for (let i = 0; i < 6; i++) {
+ const randomIndex = Math.floor(Math.random() * characters.length);
+ generatedCharacters.push(characters.charAt(randomIndex));
+ }
+
+ return generatedCharacters.join('');
+ }
+
replaceEnter: Transition {
OpacityAnimator {
id: replaceEnterOpacityAnimator