From: Stefan Kangas Date: Wed, 14 Sep 2022 13:01:58 +0000 (+0200) Subject: Add new command image-mode-wallpaper-set X-Git-Tag: emacs-29.0.90~1856^2~520 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d3188196cca68f79a18a6d8a331fd98d4b18c22c;p=emacs.git 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". --- 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 " " #'image-forward-hscroll " " #'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.