diff --git a/modules/home/scripts/scripts.nix b/modules/home/scripts/scripts.nix
index 90e0adf..a325cce 100644
--- a/modules/home/scripts/scripts.nix
+++ b/modules/home/scripts/scripts.nix
@@ -1,5 +1,5 @@
 {pkgs, ...}: let
-  wall-change = pkgs.writeShellScriptBin "wall-change" ''swaybg -m fill -i $1'';
+  wall-change = pkgs.writeShellScriptBin "wall-change" (builtins.readFile ./scripts/wall-change.sh);
   wallpaper-picker = pkgs.writeShellScriptBin "wallpaper-picker" (builtins.readFile ./scripts/wallpaper-picker.sh);
   
   runbg = pkgs.writeShellScriptBin "runbg" (builtins.readFile ./scripts/runbg.sh);
diff --git a/modules/home/scripts/scripts/wall-change.sh b/modules/home/scripts/scripts/wall-change.sh
new file mode 100755
index 0000000..8ec034c
--- /dev/null
+++ b/modules/home/scripts/scripts/wall-change.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env bash
+
+PIDS=$(pgrep -f "swaybg")
+
+swaybg -m fill -i $1 &
+
+if [ -n "$PIDS" ]; then
+  echo "$PIDS" | xargs kill
+fi