xmonad-contrib-0.13: Third party extensions for xmonad

Copyright(c) Peter De Wachter <pdewacht@gmail.com>
LicenseBSD
MaintainerPeter De Wachter <pdewacht@gmail.com>
Stabilityunstable
Portabilityunportable
Safe HaskellNone
LanguageHaskell98

XMonad.Layout.MagicFocus

Contents

Description

Automagically put the focused window in the master area.

Synopsis

Usage

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

import XMonad.Layout.MagicFocus

Then edit your layoutHook by adding the magicFocus layout modifier:

myLayout = magicFocus (Tall 1 (3/100) (1/2)) ||| Full ||| etc..
main = xmonad def { layoutHook = myLayout,
                    handleEventHook = promoteWarp }

For more detailed instructions on editing the layoutHook see:

XMonad.Doc.Extending

magicFocus :: l a -> ModifiedLayout MagicFocus l a Source #

Create a new layout which automagically puts the focused window in the master area.

promoteWarp :: Event -> X All Source #

An eventHook that overrides the normal focusFollowsMouse. When the mouse it moved to another window, that window is replaced as the master, and the mouse is warped to inside the new master.

It prevents infinite loops when focusFollowsMouse is true (the default), and MagicFocus is in use when changing focus with the mouse.

This eventHook does nothing when there are floating windows on the current workspace.

promoteWarp' :: (Rational, Rational) -> (Rational, Rational) -> Event -> X All Source #

promoteWarp' allows you to specify an arbitrary pair of arguments to pass to updatePointer when the mouse enters another window.

followOnlyIf :: X Bool -> Event -> X All Source #

Another event hook to override the focusFollowsMouse and make the pointer only follow if a given condition is satisfied. This could be used to disable focusFollowsMouse only for given workspaces or layouts. Beware that your focusFollowsMouse setting is ignored if you use this event hook.

disableFollowOnWS :: [WorkspaceId] -> X Bool Source #

Disables focusFollow on the given workspaces:

data MagicFocus a Source #

Instances

LayoutModifier MagicFocus Window Source # 

Methods

modifyLayout :: LayoutClass l Window => MagicFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X ([(Window, Rectangle)], Maybe (l Window)) Source #

modifyLayoutWithUpdate :: LayoutClass l Window => MagicFocus Window -> Workspace WorkspaceId (l Window) Window -> Rectangle -> X (([(Window, Rectangle)], Maybe (l Window)), Maybe (MagicFocus Window)) Source #

handleMess :: MagicFocus Window -> SomeMessage -> X (Maybe (MagicFocus Window)) Source #

handleMessOrMaybeModifyIt :: MagicFocus Window -> SomeMessage -> X (Maybe (Either (MagicFocus Window) SomeMessage)) Source #

pureMess :: MagicFocus Window -> SomeMessage -> Maybe (MagicFocus Window) Source #

redoLayout :: MagicFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> X ([(Window, Rectangle)], Maybe (MagicFocus Window)) Source #

pureModifier :: MagicFocus Window -> Rectangle -> Maybe (Stack Window) -> [(Window, Rectangle)] -> ([(Window, Rectangle)], Maybe (MagicFocus Window)) Source #

hook :: MagicFocus Window -> X () Source #

unhook :: MagicFocus Window -> X () Source #

modifierDescription :: MagicFocus Window -> String Source #

modifyDescription :: LayoutClass l Window => MagicFocus Window -> l Window -> String Source #

Read (MagicFocus a) Source # 
Show (MagicFocus a) Source #