aboutsummaryrefslogtreecommitdiffstats
path: root/appearance
diff options
context:
space:
mode:
Diffstat (limited to 'appearance')
-rw-r--r--appearance/AppearancePanel.qml38
-rw-r--r--appearance/README.md9
2 files changed, 47 insertions, 0 deletions
diff --git a/appearance/AppearancePanel.qml b/appearance/AppearancePanel.qml
index 0547c6b..9b895f8 100644
--- a/appearance/AppearancePanel.qml
+++ b/appearance/AppearancePanel.qml
@@ -625,6 +625,44 @@ Scope {
color: Wallpapers.qualityColor(subject, Wallpapers.target)
}
+ // A reverse image search for a larger copy of the staged
+ // image. Staged, not hovered: the pointer leaves the
+ // thumbnail to reach the button. A search engine cannot be
+ // handed a local file in a URL and its upload endpoints
+ // sit behind bot and consent walls, so the image goes on
+ // the clipboard and the browser opens TinEye, which takes
+ // a pasted image and sorts its matches by size. The upload
+ // is the paste, made by the user in the browser. Always
+ // PNG: Firefox hands a page only image/png from the
+ // clipboard, so a JPEG copied as itself pasted nothing.
+ Column {
+ id: finder
+ readonly property string staged:
+ Wallpapers.target === "V" ? Wallpapers.pendingV : Wallpapers.pendingH
+ property string copied: ""
+ anchors.horizontalCenter: parent.horizontalCenter
+ visible: staged !== "" && Wallpapers.qualityNote(staged, Wallpapers.target) !== ""
+ spacing: 4
+
+ Tab {
+ anchors.horizontalCenter: parent.horizontalCenter
+ text: "Find a larger version"
+ onClicked: {
+ Quickshell.execDetached(["sh", "-c",
+ 'magick "$1" png:- | wl-copy -t image/png && xdg-open https://tineye.com/',
+ "sh", finder.staged]);
+ finder.copied = finder.staged;
+ }
+ }
+ Text {
+ anchors.horizontalCenter: parent.horizontalCenter
+ visible: finder.copied === finder.staged
+ text: "image copied: paste it on TinEye with Ctrl+V"
+ font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 }
+ color: Theme.subtext
+ }
+ }
+
Row {
anchors.horizontalCenter: parent.horizontalCenter
spacing: 8
diff --git a/appearance/README.md b/appearance/README.md
index 2c127a2..ef25428 100644
--- a/appearance/README.md
+++ b/appearance/README.md
@@ -97,6 +97,15 @@ how far it enlarges: not at all is green, up to 1.33x yellow, past that red.
Under the mock screens a note in the same colour says why, for the hovered
image or else the staged one. The staged image keeps the accent border.
+When the staged image is yellow or red, "Find a larger version" copies it to
+the clipboard and opens TinEye, where Ctrl+V searches for it and the matches
+can be sorted by size. A search engine takes no local file in a URL, and
+scripted uploads hit bot and consent walls (TinEye answered 403, Google Lens
+redirected to its consent page and dropped the image), so the paste in the
+browser is the upload. The copy is converted to PNG first: Firefox gives a
+page only `image/png` from the clipboard, and a JPEG copied as itself
+pasted nothing. Replacing the file with a larger find is done by hand.
+
`wallp` does the actual work, including running `udt-accent`, so the accent
follows the new wallpaper exactly as it does from a terminal. This panel
replaces its qarma file dialog, not the script.