mirror of
https://github.com/xmonad/xmonad.git
synced 2025-08-06 07:01:52 -07:00
Merge pull request #327 from ssbothwell/feature/withFocused-function
Adds withUnfocused function to XMonad.Operations
This commit is contained in:
@@ -70,6 +70,9 @@
|
|||||||
of processing messages in `broadcastMessage`. Previously,
|
of processing messages in `broadcastMessage`. Previously,
|
||||||
`runOnWorkspaces` processed the hidden workspaces first.
|
`runOnWorkspaces` processed the hidden workspaces first.
|
||||||
|
|
||||||
|
* Added `withUnfocused` function to `XMonad.Operations`, allowing for
|
||||||
|
`X` operations to be applied to unfocused windows.
|
||||||
|
|
||||||
## 0.15 (September 30, 2018)
|
## 0.15 (September 30, 2018)
|
||||||
|
|
||||||
* Reimplement `sendMessage` to deal properly with windowset changes made
|
* Reimplement `sendMessage` to deal properly with windowset changes made
|
||||||
|
@@ -18,10 +18,11 @@ module XMonad.Operations (
|
|||||||
manage, unmanage, killWindow, kill, isClient,
|
manage, unmanage, killWindow, kill, isClient,
|
||||||
setInitialProperties, setWMState, setWindowBorderWithFallback,
|
setInitialProperties, setWMState, setWindowBorderWithFallback,
|
||||||
hide, reveal, tileWindow,
|
hide, reveal, tileWindow,
|
||||||
setTopFocus, focus, withFocused,
|
setTopFocus, focus,
|
||||||
|
|
||||||
-- * Manage Windows
|
-- * Manage Windows
|
||||||
windows, refresh, rescreen, modifyWindowSet, windowBracket, windowBracket_, clearEvents, getCleanedScreenInfo,
|
windows, refresh, rescreen, modifyWindowSet, windowBracket, windowBracket_, clearEvents, getCleanedScreenInfo,
|
||||||
|
withFocused, withUnfocused,
|
||||||
|
|
||||||
-- * Keyboard and Mouse
|
-- * Keyboard and Mouse
|
||||||
cleanMask, extraModifiers,
|
cleanMask, extraModifiers,
|
||||||
@@ -481,6 +482,13 @@ screenWorkspace sc = withWindowSet $ return . W.lookupWorkspace sc
|
|||||||
withFocused :: (Window -> X ()) -> X ()
|
withFocused :: (Window -> X ()) -> X ()
|
||||||
withFocused f = withWindowSet $ \w -> whenJust (W.peek w) f
|
withFocused f = withWindowSet $ \w -> whenJust (W.peek w) f
|
||||||
|
|
||||||
|
-- | Apply an 'X' operation to all unfocused windows on the current workspace, if there are any.
|
||||||
|
withUnfocused :: (Window -> X ()) -> X ()
|
||||||
|
withUnfocused f = withWindowSet $ \ws ->
|
||||||
|
whenJust (W.peek ws) $ \w ->
|
||||||
|
let unfocusedWindows = filter (/= w) $ W.index ws
|
||||||
|
in mapM_ f unfocusedWindows
|
||||||
|
|
||||||
-- | Is the window is under management by xmonad?
|
-- | Is the window is under management by xmonad?
|
||||||
isClient :: Window -> X Bool
|
isClient :: Window -> X Bool
|
||||||
isClient w = withWindowSet $ return . W.member w
|
isClient w = withWindowSet $ return . W.member w
|
||||||
|
Reference in New Issue
Block a user