summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kangas <stefankangas@gmail.com>2022-09-14 15:01:58 +0200
committerStefan Kangas <stefankangas@gmail.com>2022-09-14 15:01:58 +0200
commitd3188196cca68f79a18a6d8a331fd98d4b18c22c (patch)
tree8b7bb07fdb729779bf5c1222889967d6a782ac03
parent37e1c896a02995c4a8ddc431bf14bf3fe5846390 (diff)
downloademacs-d3188196cca68f79a18a6d8a331fd98d4b18c22c.tar.gz
Add new command image-mode-wallpaper-set
* lisp/image-mode.el (wallpaper): Require. (image-mode-wallpaper-set): New command. (image-mode-map): Bind above new command to "W".
-rw-r--r--etc/NEWS9
-rw-r--r--lisp/image-mode.el15
2 files changed, 22 insertions, 2 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 0023d5e2eb6..a5292799948 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1954,6 +1954,11 @@ up as necessary. Unlike 'image-transform-fit-both', this does not
only scale the image down, but up as well. It is bound to "s w" in
Image Mode by default.
+---
+*** New command 'image-mode-wallpaper-set'.
+This command sets the desktop background to the current image. It is
+bound to "W" by default.
+
+++
*** 'image-transform-fit-to-(height|width)' are now obsolete.
Use the new command 'image-transform-fit-to-window' instead.
@@ -2048,8 +2053,8 @@ associated with Image-Dired.
---
*** New command 'image-dired-wallpaper-set'.
-This command sets the wallpaper to the image at point in the thumbnail
-buffer. It is bound to 'W' by default.
+This command sets the desktop background to the image at point in the
+thumbnail buffer. It is bound to 'W' by default.
---
*** 'image-dired-slideshow-start' is now bound to 'S'.
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index d27462ff0a2..f2ffbd89447 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -45,6 +45,7 @@
(require 'image)
(require 'exif)
(require 'dired)
+(require 'wallpaper)
(eval-when-compile (require 'cl-lib))
;;; Image mode window-info management.
@@ -523,6 +524,9 @@ image as text, when opening such images in `image-mode'."
"S-SPC" #'image-scroll-down
"DEL" #'image-scroll-down
+ ;; Misc
+ "W" #'image-mode-wallpaper-set
+
;; Remapped
"<remap> <forward-char>" #'image-forward-hscroll
"<remap> <backward-char>" #'image-backward-hscroll
@@ -1387,7 +1391,18 @@ If no such buffer exists, it will be opened."
(prog1 (bookmark-default-handler bmk)
(when (not (string= image-type (bookmark-prop-get bmk 'image-type)))
(image-toggle-display))))
+
+
+;;; Setting the wallpaper
+
+(defun image-mode-wallpaper-set ()
+ "Set the desktop background to the current image.
+This uses `wallpaper-set' (which see)."
+ (interactive nil image-mode)
+ (wallpaper-set buffer-file-name))
+
+;;; Image transformation
(defsubst image-transform-width (width height)
"Return the bounding box width of a rotated WIDTH x HEIGHT rectangle.