diff options
Diffstat (limited to 'emacs/.emacs.d/wpc/wallpaper.el')
-rw-r--r-- | emacs/.emacs.d/wpc/wallpaper.el | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/emacs/.emacs.d/wpc/wallpaper.el b/emacs/.emacs.d/wpc/wallpaper.el deleted file mode 100644 index 9aa41cd364a4..000000000000 --- a/emacs/.emacs.d/wpc/wallpaper.el +++ /dev/null @@ -1,92 +0,0 @@ -;;; wallpaper.el --- Control Linux desktop wallpaper -*- lexical-binding: t -*- -;; Author: William Carroll <wpcarro@gmail.com> - -;;; Commentary: -;; Functions for setting desktop wallpaper. - -;;; Code: - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Dependencies -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(require 'prelude) -(require 'fs) -(require 'cycle) -(require 'string) -(require 'general) - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; Library -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - -(defcustom wallpaper/keybindings? t - "If non-nil, install the keybindings.") - -(defcustom wallpaper/path-to-dir - (f-expand "~/.local/share/wallpaper") - "Path to the images that will be used as the wallpaper.") - -(defconst wallpaper/whitelist - (cycle/from-list - (fs/ls wallpaper/path-to-dir t)) - "My preferred computer wallpapers.") - -(defun wallpaper/set (path) - "Set computer wallpaper to image at `PATH' using `feh` under-the-hood. -`PATH' can be absolute or relative since `f-expand' is called in the function - body to ensure feh can resolve the path." - (prelude/start-process - :name "wallpaper/set" - :command (string/format "feh --bg-scale --no-feh-bg %s" (f-expand path)))) - -(defun wallpaper/whitelist-set (wallpaper) - "Focuses the WALLPAPER in the `wallpaper/whitelist' cycle." - (cycle/focus (lambda (x) (equal x wallpaper)) wallpaper/whitelist) - (wallpaper/set (wallpaper/current))) - -(defun wallpaper/next () - "Cycles to the next wallpaper." - (interactive) - (let ((wallpaper (cycle/next wallpaper/whitelist))) - (wallpaper/set wallpaper) - (message (string/format "Active wallpaper: %s" (f-filename wallpaper))))) - -(defun wallpaper/prev () - "Cycles to the previous wallpaper." - (interactive) - (let ((wallpaper (cycle/prev wallpaper/whitelist))) - (wallpaper/set wallpaper) - (message (string/format "Active wallpaper: %s" (f-filename wallpaper))))) - -;; TODO: Define a macro that handles, next, prev, select, current for working -;; with cycles, since this is a common pattern. - -(defun wallpaper/print-current () - "Message the currently enabled wallpaper." - (interactive) - (message - (cycle/current wallpaper/whitelist))) - -(defun wallpaper/current () - "Return the currently enabled wallpaper." - (cycle/current wallpaper/whitelist)) - -(defun wallpaper/ivy-select () - "Use `counsel' to select and set a wallpaper from the `wallpaper/whitelist'." - (interactive) - (wallpaper/whitelist-set - (ivy-read "Select wallpaper: " (cycle/to-list wallpaper/whitelist)))) - -;; TODO: Create macro-based module system that will auto-namespace functions, -;; constants, etc. with the filename like `wallpaper'. - -(when wallpaper/keybindings? - (general-define-key - :prefix "<SPC>" - :states '(normal) - "Fw" #'wallpaper/next - "Pw" #'wallpaper/prev)) - -(provide 'wallpaper) -;;; wallpaper.el ends here |