module Config (config) where import Data.Bits (shiftL) import Data.Word (Word32) import Montis.Core import Montis.Standard.Bindings.Button import Montis.Standard.Bindings.Dsl import Montis.Standard.Bindings.MagicKey (MagicKeyConfig (MagicKeyConfig), Magic (Magic)) import Montis.Standard.Drag import Montis.Standard.Mouse (MouseConfig (MouseConfig)) keyBindings :: [Binding] keyBindings = [ Bind (Mod1 .+ 'j') [ Bind (Mod1 .+ 'k') (mio $ putStrLn "Pressed 'k' after 'j'") ], Bind (Mod1 .+ 'Q') requestRebirth, Bind (Mod1 .+ 'q') requestExit, Bind (Mod1 .+ 's') (\(keyEvent :: KeyEvent) -> mio (print keyEvent)), Bind (Mod1 .+ 'S') (\(keyEvent :: KeyEvent) -> mio (print keyEvent)), Bind (Magic .+ 's') (mio $ putStrLn "Did Some Magic!"), Bind (Magic .+ btnLeft) startWindowMove, Bind (Magic .+ btnRight) startWindowResize, Bind (Magic .+ btnMiddle) (\(buttonEvent :: ButtonEvent) -> mio (print buttonEvent)) ] mod1Mask :: Word32 mod1Mask = 1 `shiftL` 3 -- WLR_MODIFIER_ALT config :: MontisConfig config = install (MagicKeyConfig '\t') $ install MouseConfig $ install DragConfig $ withBindings keyBindings defaultConfig