summaryrefslogtreecommitdiff
path: root/xmonad.hs
diff options
context:
space:
mode:
authorChristian <[email protected]>2026-01-01 17:25:13 -0600
committerChristian <[email protected]>2026-01-01 17:26:07 -0600
commit39740c6f9a4a9ba5655fe77c0613cc86478571cb (patch)
treea2b1e8c8ad254f20a028d2d613797790547d1205 /xmonad.hs
Initial commit
Diffstat (limited to 'xmonad.hs')
-rw-r--r--xmonad.hs29
1 files changed, 29 insertions, 0 deletions
diff --git a/xmonad.hs b/xmonad.hs
new file mode 100644
index 0000000..1df21b5
--- /dev/null
+++ b/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