mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
Preserve backwards compatibility with H.ServerMode
This commit is contained in:
parent
28e0adcde7
commit
afecca6561
@ -24,7 +24,6 @@ import qualified Data.Map as M
|
||||
import XMonad hiding ( (|||) )
|
||||
import qualified XMonad.StackSet as W
|
||||
|
||||
import XMonad.Actions.Commands
|
||||
import XMonad.Actions.CycleWS
|
||||
import XMonad.Hooks.DynamicLog hiding (xmobar)
|
||||
import XMonad.Hooks.ManageDocks
|
||||
@ -99,7 +98,7 @@ arossatoConfig = do
|
||||
, normalBorderColor = "white"
|
||||
, focusedBorderColor = "black"
|
||||
, keys = newKeys
|
||||
, handleEventHook = serverModeEventHook defaultCommands
|
||||
, handleEventHook = serverModeEventHook
|
||||
, focusFollowsMouse = False
|
||||
}
|
||||
where
|
||||
|
@ -60,6 +60,7 @@ module XMonad.Hooks.ServerMode
|
||||
-- $usage
|
||||
ServerMode (..)
|
||||
, serverModeEventHook
|
||||
, serverModeEventHook'
|
||||
) where
|
||||
|
||||
import Control.Monad (when)
|
||||
@ -79,15 +80,20 @@ import XMonad.Actions.Commands
|
||||
--
|
||||
-- Then edit your @handleEventHook@ by adding the 'serverModeEventHook':
|
||||
--
|
||||
-- > main = xmonad defaultConfig { handleEventHook = serverModeEventHook defaultCommands }
|
||||
-- > main = xmonad defaultConfig { handleEventHook = serverModeEventHook }
|
||||
--
|
||||
|
||||
data ServerMode = ServerMode deriving ( Show, Read )
|
||||
|
||||
-- | Executes a command of the list when receiving its index via a special ClientMessageEvent
|
||||
-- (indexing starts at 1)
|
||||
serverModeEventHook :: X [(String,X ())] -> Event -> X All
|
||||
serverModeEventHook cmdAction (ClientMessageEvent {ev_message_type = mt, ev_data = dt}) = do
|
||||
serverModeEventHook :: Event -> X All
|
||||
serverModeEventHook = serverModeEventHook' defaultCommands
|
||||
|
||||
-- | serverModeEventHook' additionally takes an action to generate the list of
|
||||
-- commands.
|
||||
serverModeEventHook' :: X [(String,X ())] -> Event -> X All
|
||||
serverModeEventHook' cmdAction (ClientMessageEvent {ev_message_type = mt, ev_data = dt}) = do
|
||||
d <- asks display
|
||||
a <- io $ internAtom d "XMONAD_COMMAND" False
|
||||
when (mt == a && dt /= []) $ do
|
||||
@ -97,4 +103,4 @@ serverModeEventHook cmdAction (ClientMessageEvent {ev_message_type = mt, ev_data
|
||||
Just (c,_) -> runCommand' c
|
||||
Nothing -> mapM_ (io . hPutStrLn stderr) . listOfCommands $ cl
|
||||
return (All True)
|
||||
serverModeEventHook _ _ = return (All True)
|
||||
serverModeEventHook' _ _ = return (All True)
|
||||
|
Loading…
x
Reference in New Issue
Block a user