From 6eb7b2a62282f1cedf923327c52a2bf4a6ad8ac2 Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Mon, 17 Mar 2025 23:05:33 +0000
Subject: [PATCH] Configure wallpaper

---
 bin/setbg                                 |  3 +++
 nix/modules/home-manager/desktop/dwm.nix  |  3 +++
 nix/pkgs/displayselect/default.nix        |  4 ----
 nix/pkgs/displayselect/remove-setbg.patch | 12 ------------
 4 files changed, 6 insertions(+), 16 deletions(-)
 create mode 100755 bin/setbg
 delete mode 100644 nix/pkgs/displayselect/remove-setbg.patch

diff --git a/bin/setbg b/bin/setbg
new file mode 100755
index 00000000..2856e15b
--- /dev/null
+++ b/bin/setbg
@@ -0,0 +1,3 @@
+#!/usr/bin/env bash
+
+xwallpaper --zoom ~/Code/dotfiles/wallpaper/wallpaper.jpg
diff --git a/nix/modules/home-manager/desktop/dwm.nix b/nix/modules/home-manager/desktop/dwm.nix
index 0006aee1..160bbdf7 100644
--- a/nix/modules/home-manager/desktop/dwm.nix
+++ b/nix/modules/home-manager/desktop/dwm.nix
@@ -21,6 +21,8 @@ with lib;
 
         poweralertd -s &
 
+        setbg &
+
         systemctl --user start dwm-status &
 
         exec dwm
@@ -29,6 +31,7 @@ with lib;
       packages = with pkgs; [
         dunst
         poweralertd
+        xwallpaper
       ];
     };
   };
diff --git a/nix/pkgs/displayselect/default.nix b/nix/pkgs/displayselect/default.nix
index cc70d599..efc5c8a7 100644
--- a/nix/pkgs/displayselect/default.nix
+++ b/nix/pkgs/displayselect/default.nix
@@ -19,10 +19,6 @@ stdenv.mkDerivation {
     xorg.xrandr
   ];
 
-  patches = [
-    ./remove-setbg.patch
-  ];
-
   installPhase = ''
     mkdir -p $out/bin
     cp .local/bin/displayselect $out/bin
diff --git a/nix/pkgs/displayselect/remove-setbg.patch b/nix/pkgs/displayselect/remove-setbg.patch
deleted file mode 100644
index 585f1fc5..00000000
--- a/nix/pkgs/displayselect/remove-setbg.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/.local/bin/displayselect b/.local/bin/displayselect
-index 51dd468..f69f154 100755
---- a/.local/bin/displayselect
-+++ b/.local/bin/displayselect
-@@ -57,7 +57,6 @@ onescreen() { # If only one output available or chosen.
- 	}
- 
- postrun() { # Stuff to run to clean up.
--	setbg		# Fix background if screen size/arangement has changed.
- 	{ killall dunst ; setsid -f dunst ;} >/dev/null 2>&1 # Restart dunst to ensure proper location on screen
- 	}
-