module Rahm.Desktop.Keys (applyKeys) where
import Control.Monad
( filterM,
forM_,
unless,
when,
)
import Control.Monad.Identity (Identity (Identity, runIdentity))
import Control.Monad.Trans.Maybe
( MaybeT (..),
runMaybeT,
)
import Control.Monad.Writer
( WriterT,
execWriterT,
fix,
lift,
tell,
)
import Data.Char (isAlpha, toLower)
import Data.IORef
import Data.List (foldl', isInfixOf)
import Data.List.Safe ((!!))
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Maybe
( fromMaybe,
mapMaybe,
)
import Data.Monoid (Endo (..))
import GHC.IO.Handle (hClose, hFlush)
import Graphics.X11.ExtraTypes.XF86
( xF86XK_AudioLowerVolume,
xF86XK_AudioMute,
xF86XK_AudioNext,
xF86XK_AudioPlay,
xF86XK_AudioPrev,
xF86XK_AudioRaiseVolume,
xF86XK_Calculator,
xF86XK_MonBrightnessDown,
xF86XK_MonBrightnessUp,
)
import Graphics.X11.XScreenSaver (XScreenSaverState (ScreenSaverCycle))
import Rahm.Desktop.BorderColors (BorderColor (BorderColor), withBorderColor, withBorderColorM)
import Rahm.Desktop.Common
( Location (..),
click,
duplWindow,
focusLocation,
getCurrentWorkspace,
gotoWorkspace,
locationWindow,
locationWorkspace,
pointerScreen,
pointerWindow,
pointerWorkspace,
runMaybeT_,
setBorderWidth,
)
import Rahm.Desktop.DMenu (runDMenu)
import qualified Rahm.Desktop.Dragging as D
import Rahm.Desktop.History
( historyBack,
historyForward,
jumpToLastLocation,
)
import Rahm.Desktop.Keys.Dsl2
import Rahm.Desktop.Keys.Local
import Rahm.Desktop.Keys.Grab (KeySymOrKeyCode (..))
import Rahm.Desktop.Keys.KeyFeed (execKeyFeed, liftXToFeed, pushKey, runKeyFeed, runKeyFeedX)
import Rahm.Desktop.Keys.Wml
import Rahm.Desktop.Layout (nLayouts)
import Rahm.Desktop.Layout.ConsistentMosaic
( expandPositionAlt,
shrinkPositionAlt,
)
import Rahm.Desktop.Layout.Explode (toggleExplode, toggleExplodeM)
import Rahm
|