Use glsl as a wallpaper
diff --git a/modules/xmonad/xmonad.hs b/modules/xmonad/xmonad.hs
index bbd949f..660db50 100644
--- a/modules/xmonad/xmonad.hs
+++ b/modules/xmonad/xmonad.hs
@@ -1,19 +1,23 @@
 -- spell-checker:words xmonad
-import XMonad
+import           XMonad
 
-import System.Exit
-import XMonad.Util.EZConfig
+import           System.Exit
+import           XMonad.Util.EZConfig
 
-import XMonad.Hooks.EwmhDesktops
-import XMonad.Hooks.ManageDocks
-import XMonad.Config.Desktop
+import           XMonad.Config.Desktop
+import           XMonad.Hooks.EwmhDesktops
+import           XMonad.Hooks.ManageDocks
 
-import XMonadLog
-import XMonad.Hooks.DynamicLog
-import qualified DBus.Client as D
+import qualified DBus.Client                as D
+import           XMonad.Hooks.DynamicLog
+import           XMonadLog
 
-import XMonad.Layout.Spacing
-import XMonad.Layout.Gaps
+import           XMonad.Hooks.ManageHelpers (isInProperty, doLower)
+import           XMonad.Layout.Gaps
+import           XMonad.Layout.Spacing
+import Foreign.C
+import Blaze.ByteString.Builder (toByteString)
+import XMonad.Layout.Drawer (propertyToQuery)
 
 terminal = "kitty"      -- Kitty, my beloved <3
 launcher = "pkill rofi; rofi -show combi"
@@ -22,7 +26,7 @@
 
 statusBar = "pkill polybar; polybar"
 compositor = "pkill picom; picom"
-background = "feh --no-fehbg --bg-fill .xmonad/background.png"
+background = "pkill show; show ~/.xmonad/wallpaper.glsl"
 
 shift = shiftMask
 
@@ -30,13 +34,13 @@
   spawn Main.statusBar
   spawn Main.compositor
   spawn background
-  
+
 
 main :: IO ()
 main = XMonadLog.xmonadLog >>= main'
 
 main' :: D.Client -> IO ()
-main' dbus = xmonad $ docks $ ewmh . ewmhFullscreen $ def
+main' dbus = xmonad $ ewmh . ewmhFullscreen $ docks $ def
   { modMask = modifierKey  -- Use Super as our mod key
   , borderWidth = 0
   , XMonad.terminal = Main.terminal
@@ -46,10 +50,16 @@
                         smartSpacing 5 $
                         gaps [(U, 5), (D, 5), (L, 5), (R, 5)] $
                         layoutHook def
+  , XMonad.manageHook = composeAll
+                        [ className =? "Show" --> doIgnore <+> doLower <+> doLower
+                        -- You can't check if "Show" is a desktop window,
+                        -- I believe it's because show doesn't instantly set
+                        -- desktop. Do not try. It is not worth it.
+                        ] <+> manageHook def
   } `additionalKeys`
   [ ((modifierKey, xK_d), spawn launcher)
   , ((modifierKey, xK_n), spawn networkManager)
   , ((modifierKey .|. shift, xK_q), kill)
   , ((modifierKey, xK_q), spawn "xmonad --restart")
-  , ((modifierKey .|. shift, xK_c), io (exitWith ExitSuccess))
+  , ((modifierKey .|. shift, xK_c), io exitSuccess)
   ]