| xmonad-contrib-0.8.1: Third party extensions for xmonad | Source code | Contents | Index

XMonad.Hooks.ServerMode

Portability | unportable
Stability | unstable
Maintainer | andrea.rossato@unibz.it

Contents

Usage

Description

This is an `EventHook` that will receive commands from an external client.

This is the example of a client:

     import Graphics.X11.Xlib
     import Graphics.X11.Xlib.Extras
     import System.Environment
     import Data.Char

     usage :: String -> String
     usage n = "Usage: " ++ n ++ " command number\nSend a command number to a running instance of XMonad"

     main :: IO ()
     main = do
       args <- getArgs
       pn <- getProgName
       let com = case args of
                   [] -> error $ usage pn
                   w -> (w !! 0)
       sendCommand com

     sendCommand :: String -> IO ()
     sendCommand s = do
       d   <- openDisplay ""
       rw  <- rootWindow d $ defaultScreen d
       a <- internAtom d "XMONAD_COMMAND" False
       allocaXEvent $ \e -> do
                       setEventType e clientMessage
                       setClientMessageEvent e rw a 32 (fromIntegral (read s)) currentTime
                       sendEvent d rw False structureNotifyMask e
                       sync d False

compile with: `ghc --make sendCommand.hs`

run with

     sendCommand command number

For instance:

     sendCommand 0

will ask to xmonad to print the list of command numbers in stderr (so you can read it in `~/.xsession-errors`).

Synopsis

data ServerMode = ServerMode
eventHook :: EventHook eh => eh -> l a -> HandleEvent eh l a

Usage

You can use this module with the following in your `~/.xmonad/xmonad.hs`:

     import XMonad.Hooks.ServerMode

Then edit your `layoutHook` by adding the `eventHook`:

     layoutHook = eventHook ServerMode $ avoidStruts $ simpleTabbed ||| Full ||| etc..

and then:

     main = xmonad defaultConfig { layoutHook = myLayouts }

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

data ServerMode | Source

Constructors

ServerMode |

Instances

Read ServerMode
Show ServerMode
EventHook ServerMode

eventHook :: EventHook eh => eh -> l a -> HandleEvent eh l a | Source

Produced by Haddock version 2.4.2