aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBardofSprites <[email protected]>2025-05-30 17:42:01 -0400
committerBardofSprites <[email protected]>2025-05-30 17:42:01 -0400
commit2cc6f56e0b2d6881f8abef83582bcb0009faa0a7 (patch)
treee763fbbcd369551387502566d8ca4fe21bb3a0be
parent7979a9eddc5e71a3f205ee95011ea096860cdb23 (diff)
dired mark feature in bard/image-browser
-rw-r--r--bard-elisp/bard-media.el50
1 files changed, 19 insertions, 31 deletions
diff --git a/bard-elisp/bard-media.el b/bard-elisp/bard-media.el
index 9efa88d..d2a9f78 100644
--- a/bard-elisp/bard-media.el
+++ b/bard-elisp/bard-media.el
@@ -23,37 +23,7 @@
(emms-playlist-save bard/emms-playlist-format bard/watch-later-file)
(message "Playlist saved to %s" bard/watch-later-file)))
-;; (defun bard/image-browser (directory)
-;; "Open nsxiv in thumbnail mode on DIRECTORY.
-;; Asks the user whether to enable recursive mode."
-;; (interactive "DSelect directory: ")
-;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" "")))
-;; (start-process "nsxiv" "nsxiv" "-t" "-o" recursive (expand-file-name directory))))
-
-;; (defun bard/image-browser (directory)
-;; "Open nsxiv in thumbnail mode on DIRECTORY.
-;; Asks the user whether to enable recursive mode."
-;; (interactive "DSelect directory: ")
-;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" "")))
-;; (start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" "-o" recursive (expand-file-name directory))
-;; (pop-to-buffer "*nsxiv*")))
-
-;; (defun bard/image-browser (directory)
-;; "Open nsxiv in thumbnail mode on DIRECTORY.
-;; Asks the user whether to enable recursive mode."
-;; (interactive "DSelect directory: ")
-;; (let ((recursive (if (y-or-n-p "Recursive searching? ") "-r" ""))
-;; (stdout (if (y-or-n-p "Output marked files to buffer? ") "-o" "")))
-;; (start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" stdout recursive (expand-file-name directory))
-;; (if (string= stdout "-o")
-;; (progn (with-current-buffer "*nsxiv*"
-;; (read-only-mode nil)
-;; (erase-buffer))
-;; (pop-to-buffer "*nsxiv*")
-;; )
-;; nil)))
-
-(defun bard/image-browser (directory)
+(defun bard/image-browser-choose (directory)
"Open nsxiv in thumbnail mode on DIRECTORY.
Asks the user whether to enable recursive mode."
(interactive "DSelect directory: ")
@@ -70,6 +40,24 @@ Asks the user whether to enable recursive mode."
(erase-buffer)))))
(pop-to-buffer "*nsxiv*")))))
+(defun bard/image-browser-marked ()
+ "Open nsxiv on the marked files in Dired."
+ (interactive)
+ (let ((files (dired-get-marked-files)))
+ (if files
+ (apply #'start-process "nsxiv" "*nsxiv*" "nsxiv" "-t" files)
+ (message "No files marked."))))
+
+(defun bard/image-browser ()
+ "Open nsxiv in a context-sensitive way:
+- If in Dired with marked files, open those with nsxiv.
+- Otherwise, prompt for a directory to browse."
+ (interactive)
+ (if (and (derived-mode-p 'dired-mode)
+ (dired-get-marked-files))
+ (bard/image-browser-marked)
+ (call-interactively #'bard/image-browser)))
+
(defun bard/emms-download-current-video (destination)
"Download the currently playing EMMS video and move it to DESTINATION."
(interactive "DSelect destination directory: ")