summaryrefslogtreecommitdiff
path: root/xmonad.hs
blob: 1df21b51ef9d05a686300266aa5e257a874b6303 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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