{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
module XMonad.Config.Azerty (
azertyConfig, azertyKeys, belgianConfig, belgianKeys
) where
import XMonad
import qualified XMonad.StackSet as W
import qualified Data.Map as M
azertyConfig :: XConfig (Choose Tall (Choose (Mirror Tall) Full))
azertyConfig = XConfig (Choose Tall (Choose (Mirror Tall) Full))
forall a. Default a => a
def { keys :: XConfig Layout -> Map (KeyMask, KeySym) (X ())
keys = XConfig Layout -> Map (KeyMask, KeySym) (X ())
forall {l :: * -> *}. XConfig l -> Map (KeyMask, KeySym) (X ())
azertyKeys (XConfig Layout -> Map (KeyMask, KeySym) (X ()))
-> (XConfig Layout -> Map (KeyMask, KeySym) (X ()))
-> XConfig Layout
-> Map (KeyMask, KeySym) (X ())
forall a. Semigroup a => a -> a -> a
<> XConfig (Choose Tall (Choose (Mirror Tall) Full))
-> XConfig Layout -> Map (KeyMask, KeySym) (X ())
forall (l :: * -> *).
XConfig l -> XConfig Layout -> Map (KeyMask, KeySym) (X ())
keys XConfig (Choose Tall (Choose (Mirror Tall) Full))
forall a. Default a => a
def }
belgianConfig :: XConfig (Choose Tall (Choose (Mirror Tall) Full))
belgianConfig = XConfig (Choose Tall (Choose (Mirror Tall) Full))
forall a. Default a => a
def { keys :: XConfig Layout -> Map (KeyMask, KeySym) (X ())
keys = XConfig Layout -> Map (KeyMask, KeySym) (X ())
forall {l :: * -> *}. XConfig l -> Map (KeyMask, KeySym) (X ())
belgianKeys (XConfig Layout -> Map (KeyMask, KeySym) (X ()))
-> (XConfig Layout -> Map (KeyMask, KeySym) (X ()))
-> XConfig Layout
-> Map (KeyMask, KeySym) (X ())
forall a. Semigroup a => a -> a -> a
<> XConfig (Choose Tall (Choose (Mirror Tall) Full))
-> XConfig Layout -> Map (KeyMask, KeySym) (X ())
forall (l :: * -> *).
XConfig l -> XConfig Layout -> Map (KeyMask, KeySym) (X ())
keys XConfig (Choose Tall (Choose (Mirror Tall) Full))
forall a. Default a => a
def }
azertyKeys :: XConfig l -> Map (KeyMask, KeySym) (X ())
azertyKeys = [KeySym] -> XConfig l -> Map (KeyMask, KeySym) (X ())
forall {l :: * -> *}.
[KeySym] -> XConfig l -> Map (KeyMask, KeySym) (X ())
azertyKeysTop [KeySym
0x26,KeySym
0xe9,KeySym
0x22,KeySym
0x27,KeySym
0x28,KeySym
0x2d,KeySym
0xe8,KeySym
0x5f,KeySym
0xe7,KeySym
0xe0]
belgianKeys :: XConfig l -> Map (KeyMask, KeySym) (X ())
belgianKeys = [KeySym] -> XConfig l -> Map (KeyMask, KeySym) (X ())
forall {l :: * -> *}.
[KeySym] -> XConfig l -> Map (KeyMask, KeySym) (X ())
azertyKeysTop [KeySym
0x26,KeySym
0xe9,KeySym
0x22,KeySym
0x27,KeySym
0x28,KeySym
0xa7,KeySym
0xe8,KeySym
0x21,KeySym
0xe7,KeySym
0xe0]
azertyKeysTop :: [KeySym] -> XConfig l -> Map (KeyMask, KeySym) (X ())
azertyKeysTop [KeySym]
topRow conf :: XConfig l
conf@XConfig{modMask :: forall (l :: * -> *). XConfig l -> KeyMask
modMask = KeyMask
modm} = [((KeyMask, KeySym), X ())] -> Map (KeyMask, KeySym) (X ())
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList ([((KeyMask, KeySym), X ())] -> Map (KeyMask, KeySym) (X ()))
-> [((KeyMask, KeySym), X ())] -> Map (KeyMask, KeySym) (X ())
forall a b. (a -> b) -> a -> b
$
[((KeyMask
modm, KeySym
xK_semicolon), IncMasterN -> X ()
forall a. Message a => a -> X ()
sendMessage (Int -> IncMasterN
IncMasterN (-Int
1)))]
[((KeyMask, KeySym), X ())]
-> [((KeyMask, KeySym), X ())] -> [((KeyMask, KeySym), X ())]
forall a. [a] -> [a] -> [a]
++
[((KeyMask
m KeyMask -> KeyMask -> KeyMask
forall a. Bits a => a -> a -> a
.|. KeyMask
modm, KeySym
k), (WindowSet -> WindowSet) -> X ()
windows ((WindowSet -> WindowSet) -> X ())
-> (WindowSet -> WindowSet) -> X ()
forall a b. (a -> b) -> a -> b
$ String -> WindowSet -> WindowSet
f String
i)
| (String
i, KeySym
k) <- [String] -> [KeySym] -> [(String, KeySym)]
forall a b. [a] -> [b] -> [(a, b)]
zip (XConfig l -> [String]
forall (l :: * -> *). XConfig l -> [String]
workspaces XConfig l
conf) [KeySym]
topRow,
(String -> WindowSet -> WindowSet
f, KeyMask
m) <- [(String -> WindowSet -> WindowSet
forall s i l a sd.
(Eq s, Eq i) =>
i -> StackSet i l a s sd -> StackSet i l a s sd
W.greedyView, KeyMask
0), (String -> WindowSet -> WindowSet
forall a s i l sd.
(Ord a, Eq s, Eq i) =>
i -> StackSet i l a s sd -> StackSet i l a s sd
W.shift, KeyMask
shiftMask)]]
[((KeyMask, KeySym), X ())]
-> [((KeyMask, KeySym), X ())] -> [((KeyMask, KeySym), X ())]
forall a. [a] -> [a] -> [a]
++
[((KeyMask
m KeyMask -> KeyMask -> KeyMask
forall a. Bits a => a -> a -> a
.|. KeyMask
modm, KeySym
key), ScreenId -> X (Maybe String)
screenWorkspace ScreenId
sc X (Maybe String) -> (Maybe String -> X ()) -> X ()
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= (Maybe String -> (String -> X ()) -> X ())
-> (String -> X ()) -> Maybe String -> X ()
forall a b c. (a -> b -> c) -> b -> a -> c
flip Maybe String -> (String -> X ()) -> X ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust ((WindowSet -> WindowSet) -> X ()
windows ((WindowSet -> WindowSet) -> X ())
-> (String -> WindowSet -> WindowSet) -> String -> X ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> WindowSet -> WindowSet
f))
| (KeySym
key, ScreenId
sc) <- [KeySym] -> [ScreenId] -> [(KeySym, ScreenId)]
forall a b. [a] -> [b] -> [(a, b)]
zip [KeySym
xK_z, KeySym
xK_e, KeySym
xK_r] [ScreenId
0..],
(String -> WindowSet -> WindowSet
f, KeyMask
m) <- [(String -> WindowSet -> WindowSet
forall s i l a sd.
(Eq s, Eq i) =>
i -> StackSet i l a s sd -> StackSet i l a s sd
W.view, KeyMask
0), (String -> WindowSet -> WindowSet
forall a s i l sd.
(Ord a, Eq s, Eq i) =>
i -> StackSet i l a s sd -> StackSet i l a s sd
W.shift, KeyMask
shiftMask)]]