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 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,
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.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.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,
viewAdjacentTo,
withScreen,
)
import Rahm.Desktop.XMobarLog.PendingBuffer
( addStringToPendingBuffer,
pushAddPendingBuffer,
pushPendingBuffer,
)
import System.Exit (exitFailure, exitSuccess)
import Text.Printf (printf)
import XMonad as X
import XMonad.Actions.CopyWindow as CopyWindow
import XMonad.Actions.RotSlaves
|