Merge pull request #326 from mrVanDalo/boring/broadcast

XMonad.Layout.BoringWindows: add markBoringEverywhere
This commit is contained in:
Brent Yorgey 2020-01-03 14:18:32 -06:00 committed by GitHub
commit c4f64bc7d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View File

@ -52,6 +52,11 @@
* `XMonad.Actions.Search` * `XMonad.Actions.Search`
The `hoogle` function now uses the new URL `hoogle.haskell.org`. The `hoogle` function now uses the new URL `hoogle.haskell.org`.
* `XMonad.Layout.BoringWindows`
Added 'markBoringEverywhere' function, to mark the currently
focused window boring on all layouts, when using 'XMonad.Actions.CopyWindow'.
## 0.16 ## 0.16

View File

@ -18,8 +18,9 @@ module XMonad.Layout.BoringWindows (
-- * Usage -- * Usage
-- $usage -- $usage
boringWindows, boringAuto, boringWindows, boringAuto,
markBoring, clearBoring, markBoring, markBoringEverywhere,
focusUp, focusDown, focusMaster, clearBoring, focusUp, focusDown,
focusMaster,
UpdateBoring(UpdateBoring), UpdateBoring(UpdateBoring),
BoringMessage(Replace,Merge), BoringMessage(Replace,Merge),
@ -33,7 +34,7 @@ module XMonad.Layout.BoringWindows (
import XMonad.Layout.LayoutModifier(ModifiedLayout(..), import XMonad.Layout.LayoutModifier(ModifiedLayout(..),
LayoutModifier(handleMessOrMaybeModifyIt, redoLayout)) LayoutModifier(handleMessOrMaybeModifyIt, redoLayout))
import XMonad(Typeable, LayoutClass, Message, X, fromMessage, import XMonad(Typeable, LayoutClass, Message, X, fromMessage,
sendMessage, windows, withFocused, Window) broadcastMessage, sendMessage, windows, withFocused, Window)
import Data.List((\\), union) import Data.List((\\), union)
import Data.Maybe(fromMaybe, listToMaybe, maybeToList) import Data.Maybe(fromMaybe, listToMaybe, maybeToList)
import qualified Data.Map as M import qualified Data.Map as M
@ -81,6 +82,11 @@ focusUp = sendMessage UpdateBoring >> sendMessage FocusUp
focusDown = sendMessage UpdateBoring >> sendMessage FocusDown focusDown = sendMessage UpdateBoring >> sendMessage FocusDown
focusMaster = sendMessage UpdateBoring >> sendMessage FocusMaster focusMaster = sendMessage UpdateBoring >> sendMessage FocusMaster
-- | Mark current focused window boring for all layouts.
-- This is useful in combination with the 'XMonad.Actions.CopyWindow' module.
markBoringEverywhere :: X ()
markBoringEverywhere = withFocused (broadcastMessage . IsBoring)
data BoringWindows a = BoringWindows data BoringWindows a = BoringWindows
{ namedBoring :: M.Map String [a] -- ^ store borings with a specific source { namedBoring :: M.Map String [a] -- ^ store borings with a specific source
, chosenBoring :: [a] -- ^ user-chosen borings , chosenBoring :: [a] -- ^ user-chosen borings