aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/.local/bin/scripts/lisp/wallpaper.scm39
1 files changed, 39 insertions, 0 deletions
diff --git a/bin/.local/bin/scripts/lisp/wallpaper.scm b/bin/.local/bin/scripts/lisp/wallpaper.scm
new file mode 100644
index 0000000..61e946e
--- /dev/null
+++ b/bin/.local/bin/scripts/lisp/wallpaper.scm
@@ -0,0 +1,39 @@
+(use gauche.process)
+
+(define (get-input prompt options)
+ (sys-system (string-append "echo -e \"" options "\" | dmenu -p" prompt)))
+
+(define (get-input prompt chooseable-options)
+ (do-pipeline '((echo -e "\"" chooseable-options "\"")
+ (dmenu -p "\"" prompt "\""))))
+
+(define (main)
+ (let* ((wallpaper-dirs (string-append (sys-getenv "HOME") "/Pictures/wallpaper/\n"
+ (sys-getenv "HOME") "/Pictures/Anime-Wallpaper/"))
+ (selected-dir (get-input "Select directory: " wallpaper-dirs))
+ (choose-wallpaper (sys-system (string-append "nsxiv -t -r -o " selected-dir)))
+ (image-mode-options "Tiled\nZoom Filled\nCentered")
+ (selected-image-mode (get-input "Select Display Mode: " image-mode-options)))
+ (set-wallpaper selected-directory selected-image-mode)
+ (print "Wallpaper set successfully.")))
+
+(define (set-wallpaper wallpaper mode)
+ (case mode
+ (("Tiled") (sys-system (string-append "feh --bg-tile " wallpaper)))
+ (("Zoom Filled") (sys-system (string-append "feh --bg-fill " wallpaper)))
+ (("Centered") (sys-system (string-append "feh --bg-center " wallpaper)))
+ (else (print "Invalid option selected.") (exit 1))))
+
+(define (set-wallpaper wallpaper mode)
+ (case mode
+ (("Tiled") (sys-system (string-append "fe")))))
+
+(define (main)
+ (let* ((wallpaper-dirs (string-append (sys-getenv "HOME") "/Pictures/wallpaper/\n"
+ (sys-getenv "HOME") "/Pictures/Anime-Wallpaper/"))
+ (image-mode-options "Tiled\nZoom Filled\nCentered")
+ (selected-dir (get-input "Select directory: " wallpaper-dirs))
+ (selected-image-mode (get-input "Select Display Mode: " image-mode-options)))
+ ))
+
+(main)