From 683bc98c6f9b3dfcd7c1445360aabcc13eb7ad1e Mon Sep 17 00:00:00 2001 From: Tom Willemse Date: Sat, 21 May 2022 11:08:01 -0700 Subject: [PATCH] Add configuration to set a random wallpaper on login --- oni/home/data/config.scm | 9 ++++-- oni/packages/pick-random-wallpaper.scm | 43 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 oni/packages/pick-random-wallpaper.scm diff --git a/oni/home/data/config.scm b/oni/home/data/config.scm index 005edf1..b633791 100644 --- a/oni/home/data/config.scm +++ b/oni/home/data/config.scm @@ -21,13 +21,15 @@ #:use-module (oni home services kdeconnect) #:use-module (oni home services cmst) #:use-module (oni home services syncthing) - #:use-module (oni packages hlwm-run-or-raise)) + #:use-module (oni packages hlwm-run-or-raise) + #:use-module (oni packages pick-random-wallpaper)) (home-environment (packages (list (specification->package+output "glibc-locales") (specification->package+output "font-fantasque-sans") (specification->package+output "font-comic-neue") - hlwm-run-or-raise)) + hlwm-run-or-raise + pick-random-wallpaper)) (services (list @@ -358,7 +360,8 @@ "keybind Mod4-apostrophe spawn dunstctl close" "keybind Mod4-quotedbl spawn dunstctl close-all" "keybind Mod4-Control-apostrophe spawn dunstctl history-pop" - "keybind Mod4-Mod1-apostrophe spawn dunstctl context")))) + "keybind Mod4-Mod1-apostrophe spawn dunstctl context" + "pick-random-wallpaper")))) (service home-polybar-service-type (home-polybar-configuration diff --git a/oni/packages/pick-random-wallpaper.scm b/oni/packages/pick-random-wallpaper.scm new file mode 100644 index 0000000..80bb372 --- /dev/null +++ b/oni/packages/pick-random-wallpaper.scm @@ -0,0 +1,43 @@ +(define-module (oni packages pick-random-wallpaper) + #:use-module (guix packages) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages bash) + #:use-module (gnu packages wm) + #:use-module (gnu packages xorg) + #:use-module (gnu packages image-viewers)) + +(define-public pick-random-wallpaper + (let ((commit "abc336dea1187f9d115a062d389c7c5ec730c144") + (revision "0")) + (package + (name "pick-random-wallpaper") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (uri (git-reference + (url "git://ryuslash.org/util/tom/pick-random-wallpaper.git") + (commit commit))) + (method git-fetch) + (sha256 + (base32 "074iack66w32f54ldinrr8kf6b9pp0dx81qp0sjv6jbvgwp9daax")) + (file-name (git-file-name name version)))) + (propagated-inputs + (list findutils bash herbstluftwm xwininfo grep sed coreutils feh)) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There is no test suite. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "pick-random-wallpaper" bin))))))) + (home-page "https://ryuslash.org/") + (synopsis "A simple script that sets a random wallpaper using feh.") + (description "Sets a random wallpaper using feh and stores which wallpaper was added in a herbstluftwm attribute.") + (license license:gpl3+))))