summaryrefslogtreecommitdiff
path: root/modules/xmonad.hs
diff options
context:
space:
mode:
authorChristian <[email protected]>2026-01-18 21:17:14 -0600
committerChristian <[email protected]>2026-01-18 21:41:12 -0600
commit87be0d3dd54e71f33b9d8a757273ae4f2170e3f0 (patch)
tree758db0c339023ef7bdae276dab85770a31c6644f /modules/xmonad.hs
parent44adb7d61e71370acb7d839e6b76270f9a081939 (diff)
Multiple configs
Diffstat (limited to 'modules/xmonad.hs')
-rw-r--r--modules/xmonad.hs29
1 files changed, 29 insertions, 0 deletions
diff --git a/modules/xmonad.hs b/modules/xmonad.hs
new file mode 100644
index 0000000..1df21b5
--- /dev/null
+++ b/modules/xmonad.hs
@@ -0,0 +1,29 @@
+import XMonad
+import XMonad.Util.EZConfig (additionalKeys)
+import Control.Monad (when)
+import Text.Printf (printf)
+import System.Posix.Process (executeFile)
+import System.Info (arch,os)
+import System.Environment (getArgs)
+import System.FilePath ((</>))
+
+compiledConfig = printf "xmonad-%s-%s" arch os
+
+myConfig = defaultConfig
+ { modMask = mod1Mask
+ , terminal = "alacritty" }
+ `additionalKeys`
+ [ ( (mod1Mask, xK_r), compileRestart True)
+ , ( (mod1Mask, xK_q), restart "xmonad" True ) ]
+
+compileRestart resume = do
+ dirs <- asks directories
+ whenX (recompile dirs True) $ do
+ when resume writeStateToFile
+ catchIO
+ ( do
+ args <- getArgs
+ executeFile (cacheDir dirs </> compiledConfig) False args Nothing
+ )
+
+main = getDirectories >>= launch myConfig