diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..8e6f91652ffd2c26bd4f2c11fedc2e88ea60b9f7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+dwm
+drw.o
+dwm.o
+util.o
+dwm-6.2.tar.gz
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..cf3953c10a7c5444e38de3d1b9feca74ce746f61
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -0,0 +1,7 @@
+# See https://pre-commit.com for more information
+# See https://pre-commit.com/hooks.html for more hooks
+repos:
+-   repo: https://github.com/s3rius/dwm-autoconfig
+    rev: master
+    hooks:
+    -   id: sort_deps
diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..98aff2063c683b41a82c458bb5fa9fc0c24adcd4
--- /dev/null
+++ b/.pre-commit-hooks.yaml
@@ -0,0 +1,6 @@
+- id: sort_deps
+  name: Deps sorting
+  description: sort entries of a deps files.
+  language: script
+  entry: hooks/deps_sort.sh
+  files: *.deps
diff --git a/dotfiles/.picom.conf b/dotfiles/.picom.conf
index 03ad358283e99cc78b7a163a480165f02028299e..d9c3ae050d8891010d24c15eed5aa3293de12f0f 100644
--- a/dotfiles/.picom.conf
+++ b/dotfiles/.picom.conf
@@ -86,6 +86,7 @@ shadow-exclude = [
     "name *= 'picom'",
     "name *= 'Chromium'",
     "name *= 'Chrome'",
+    "name *= 'maim'",
     "class_g = 'Firefox' && argb",
     "class_g = 'Conky'",
     "class_g = 'Kupfer'",
@@ -123,7 +124,8 @@ blur-background = true;
 blur-background-fixed = false;
 blur-background-exclude = [
     "window_type = 'dock'",
-    "window_type = 'desktop'"
+    "window_type = 'desktop'",
+    "name *= 'slop'"
 ];
 
 #################################
diff --git a/dotfiles/.xinitrc b/dotfiles/.xinitrc
index 63551e05fd160fac3fbb0a7079e2a69b25ff4a34..58acd5d0913e8ff79cccc2409b1cc8c19c23c02f 100644
--- a/dotfiles/.xinitrc
+++ b/dotfiles/.xinitrc
@@ -6,4 +6,6 @@ done &
 nitrogen --restore
 picom --config ~/.picom.conf -b
 
-exec dwm
+while true; do
+    dwm >/dev/null 2>&1
+done
diff --git a/dwm/config.h b/dwm/config.h
index c6f521d03d0a810da468c1674a3d8871f322aa56..e781567e2e6f2f50bf5b1508065101848efb0a29 100644
--- a/dwm/config.h
+++ b/dwm/config.h
@@ -59,10 +59,15 @@ static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn()
 static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
 static const char *termcmd[]  = { "konsole", NULL };
 
+/* helper for spawning shell commands in the pre dwm-5.0 fashion */
+#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
+
 static Key keys[] = {
 	/* modifier                     key        function        argument */
 	{ MODKEY,                       XK_d,      spawn,          {.v = dmenucmd } },
 	{ MODKEY|ShiftMask,             XK_Return, spawn,          {.v = termcmd } },
+  { 0,                            XK_Print,  spawn,          SHCMD("maim /dev/stdout | xclip -sel clip -t image/png") },
+  { ShiftMask,                    XK_Print,  spawn,          SHCMD("maim -s /dev/stdout | xclip -sel clip -t image/png") },
 	{ MODKEY,                       XK_b,      togglebar,      {0} },
 	{ MODKEY,                       XK_j,      focusstack,     {.i = +1 } },
 	{ MODKEY,                       XK_k,      focusstack,     {.i = -1 } },
diff --git a/hooks/deps_sort.sh b/hooks/deps_sort.sh
new file mode 100644
index 0000000000000000000000000000000000000000..0d4caed17cc7643efd431ce2fe35517c22e5b241
--- /dev/null
+++ b/hooks/deps_sort.sh
@@ -0,0 +1,17 @@
+#! /bin/bash
+# Verifies that all dependencies are sorted.
+set -e
+
+check_files() {
+    local all_files=( "$@" )
+    has_error=0
+    for file in "${all_files[@]}" ; do
+        if [[ -f "$file" ]]; then
+          sort -o "$file" "$file"
+        fi
+    done
+}
+
+if ! check_files "$@" ; then
+    echo "To ignore, use --no-verify"
+fi
diff --git a/pacman.deps b/pacman.deps
index fd7648a2d999c0ce2003d6dfd120959d82f5f9e4..f5637e506f39a1f9932382a9c1d525ca888e0958 100644
--- a/pacman.deps
+++ b/pacman.deps
@@ -1,3 +1,4 @@
+asp
 base-devel
 zsh
 dmenu