module Rahm.Desktop.Keys (applyKeys) where
import Control.Monad
( filterM,
forM_,
unless,
when,
)
import Control.Monad.Trans.Maybe
( MaybeT (..),
runMaybeT,
)
import Control.Monad.Writer
( WriterT,
execWriterT,
fix,
lift,
tell,
)
import Data.Char (isAlpha)
import Data.IORef
import Data.List (foldl')
import Data.List.Safe ((!!))
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Maybe
( fromMaybe,
mapMaybe,
)
import Data.Monoid (Endo (..))
import Graphics.X11.ExtraTypes.XF86
( xF86XK_AudioLowerVolume,
xF86XK_AudioMute,
xF86XK_AudioNext,
xF86XK_AudioPlay,
xF86XK_AudioPrev,
xF86XK_AudioRaiseVolume,
xF86XK_Calculator,
xF86XK_MonBrightnessDown,
xF86XK_MonBrightnessUp,
)
import Rahm.Desktop.Common
( Location (..),
click,
duplWindow,
focusLocation,
getCurrentWorkspace,
gotoWorkspace,
locationWindow,
locationWorkspace,
pointerWorkspace,
runMaybeT_,
setBorderColor,
withBorderColor,
withBorderColorM,
)
import Rahm.Desktop.DMenu (runDMenu)
import qualified Rahm.Desktop.Dragging as D
import Rahm.Desktop.History
( historyBack,
historyForward,
jumpToLastLocation,
)
import Rahm.Desktop.Keys.Dsl
( ButtonBinding (..),
ButtonBindings,
Documented (..),
KeyBinding (..),
KeyBindings,
altMask,
altMod,
altgrMod,
bind,
buttonDocumentation,
controlMod,
doc,
documentation,
getConfig,
justMod,
noMod,
rawMask,
runButtons,
runKeys,
shiftMod,
(-|-),
)
import Rahm.Desktop.Keys.Wml
( addWindowToSelection,
clearWindowSelection,
getAndResetWindowSelection,
gotoWorkspaceFn,
moveWindowToWorkspaceFn,
readNextLocationSet,
readNextLocationSet',
readNextWorkspace,
readNextWorkspaceName,
readWindowsetMacro,
readWorkspaceMacro,
removeWindowFromSelection,
toggleWindowInSelection,
workspaceForString,
workspaceForStringT,
workspaceName,
)
import Rahm.Desktop.Layout (nLayouts)
import Rahm.Desktop.Layout.ConsistentMosaic
( expandPositionAlt,
shrinkPositionAlt,
)
import Rahm.Desktop.Layout.Flip
( flipHorizontally,
flipVertically,
)
import Rahm.Desktop.Layout.Hole
import Rahm.Desktop.Layout.List
( toFirstLayout,
toIndexedLayout,
toNextLayout,
toPreviousLayout,
)
import Rahm.Desktop.Layout.PinWindow (pinWindow, toggleWindowPin, unpinWindow, withWindowsUnpinned)
import Rahm.Desktop.Layout.Pop (togglePop)
import Rahm.Desktop.Layout.Rotate (rotateLayout)
import Rahm.Desktop.Logger
( LogLevel (..),
getLogLevel,
logs,
setLogLevel,
)
import Rahm.Desktop.Marking
( markAllLocations,
setAlternateWindows,
setAlternateWorkspace,
)
import Rahm.Desktop.PassMenu (runPassMenu)
import Rahm.Desktop.RebindKeys
( remapKey,
sendKey,
)
import qualified Rahm.Desktop.StackSet as W
import Rahm.Desktop.Submap
( escape,
mapNextString,
submap,
submapButtonsWithKey,
)
import Rahm.Desktop.SwapMaster (swapMaster)
import Rahm.Desktop.Theater
( restoreTheater,
)
import Rahm.Desktop.Workspaces
( accompaningWorkspace,
next,
prev,
viewAdjacent,
withScreen,
)
import Rahm.Desktop.XMobarLog.PendingBuffer
( addStringToPendingBuffer,
pushAddPendingBuffer,
pushPendingBuffer,
)
import Text.Printf (printf)
import XMonad as X
import XMonad.Actions.
|