mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 11:30:22 -07:00
Merge pull request #682 from rayes0/master
X.L.VoidBorders: Add ability to reset borders for certain layouts
This commit is contained in:
commit
ae9b9c43a4
@ -111,6 +111,12 @@
|
|||||||
XMobar so that padding space may be reserved on xmobar for the
|
XMobar so that padding space may be reserved on xmobar for the
|
||||||
tray. Requires `xmobar` version 0.40 or higher.
|
tray. Requires `xmobar` version 0.40 or higher.
|
||||||
|
|
||||||
|
- `XMonad.Layout.VoidBorders`
|
||||||
|
|
||||||
|
- Added new layout modifier `normalBorders` which can be used for
|
||||||
|
resetting borders back in layouts where you want borders after calling
|
||||||
|
`voidBorders`.
|
||||||
|
|
||||||
## 0.17.0 (October 27, 2021)
|
## 0.17.0 (October 27, 2021)
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
@ -13,19 +13,21 @@
|
|||||||
-- Portability : unportable
|
-- Portability : unportable
|
||||||
--
|
--
|
||||||
-- Modifies a layout to set borders to 0 for all windows in the workspace.
|
-- Modifies a layout to set borders to 0 for all windows in the workspace.
|
||||||
-- Unlike XMonad.Layout.NoBorders, this modifier will not restore the window
|
--
|
||||||
-- border if the windows are moved to a different workspace or the layout is
|
-- Unlike "XMonad.Layout.NoBorders", the 'voidBorders' modifier will not
|
||||||
-- changed.
|
-- restore the window border if the windows are moved to a different workspace
|
||||||
|
-- or the layout is changed. There is, however, a companion 'normalBorders'
|
||||||
|
-- modifier which explicitly restores the border.
|
||||||
--
|
--
|
||||||
-- This modifier's primary use is to eliminate the "border flash" you get
|
-- This modifier's primary use is to eliminate the "border flash" you get
|
||||||
-- while switching workspaces with the `noBorders` modifier. It won't return
|
-- while switching workspaces with the "XMonad.Layout.NoBorders" modifier.
|
||||||
-- the borders to their original width, however.
|
|
||||||
--
|
--
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
|
|
||||||
module XMonad.Layout.VoidBorders ( -- * Usage
|
module XMonad.Layout.VoidBorders ( -- * Usage
|
||||||
-- $usage
|
-- $usage
|
||||||
voidBorders
|
voidBorders
|
||||||
|
, normalBorders
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import XMonad
|
import XMonad
|
||||||
@ -39,9 +41,10 @@ import XMonad.StackSet (integrate)
|
|||||||
-- > import XMonad.Layout.VoidBorders
|
-- > import XMonad.Layout.VoidBorders
|
||||||
--
|
--
|
||||||
-- and modify the layouts to call 'voidBorders' on the layouts you want to
|
-- and modify the layouts to call 'voidBorders' on the layouts you want to
|
||||||
-- remove borders from windows:
|
-- remove borders from windows, and 'normalBorders' on the layouts you want
|
||||||
|
-- to keep borders for:
|
||||||
--
|
--
|
||||||
-- > layoutHook = ... ||| voidBorders Full ||| ...
|
-- > layoutHook = ... ||| voidBorders Full ||| normalBorders Tall ...
|
||||||
--
|
--
|
||||||
-- For more detailed instructions on editing the layoutHook see:
|
-- For more detailed instructions on editing the layoutHook see:
|
||||||
--
|
--
|
||||||
@ -49,9 +52,6 @@ import XMonad.StackSet (integrate)
|
|||||||
|
|
||||||
data VoidBorders a = VoidBorders deriving (Read, Show)
|
data VoidBorders a = VoidBorders deriving (Read, Show)
|
||||||
|
|
||||||
voidBorders :: l Window -> ModifiedLayout VoidBorders l Window
|
|
||||||
voidBorders = ModifiedLayout VoidBorders
|
|
||||||
|
|
||||||
instance LayoutModifier VoidBorders Window where
|
instance LayoutModifier VoidBorders Window where
|
||||||
modifierDescription = const "VoidBorders"
|
modifierDescription = const "VoidBorders"
|
||||||
|
|
||||||
@ -60,6 +60,29 @@ instance LayoutModifier VoidBorders Window where
|
|||||||
mapM_ setZeroBorder $ integrate s
|
mapM_ setZeroBorder $ integrate s
|
||||||
return (wrs, Nothing)
|
return (wrs, Nothing)
|
||||||
|
|
||||||
|
voidBorders :: l Window -> ModifiedLayout VoidBorders l Window
|
||||||
|
voidBorders = ModifiedLayout VoidBorders
|
||||||
|
|
||||||
|
data NormalBorders a = NormalBorders deriving (Read, Show)
|
||||||
|
|
||||||
|
instance LayoutModifier NormalBorders Window where
|
||||||
|
modifierDescription = const "NormalBorders"
|
||||||
|
|
||||||
|
redoLayout NormalBorders _ Nothing wrs = return (wrs, Nothing)
|
||||||
|
redoLayout NormalBorders _ (Just s) wrs = do
|
||||||
|
mapM_ resetBorders $ integrate s
|
||||||
|
return (wrs, Nothing)
|
||||||
|
|
||||||
|
normalBorders :: l Window -> ModifiedLayout NormalBorders l Window
|
||||||
|
normalBorders = ModifiedLayout NormalBorders
|
||||||
|
|
||||||
-- | Sets border width to 0 for every window from the specified layout.
|
-- | Sets border width to 0 for every window from the specified layout.
|
||||||
setZeroBorder :: Window -> X ()
|
setZeroBorder :: Window -> X ()
|
||||||
setZeroBorder w = withDisplay $ \d -> io $ setWindowBorderWidth d w 0
|
setZeroBorder w = setBorders w 0
|
||||||
|
|
||||||
|
-- | Resets the border to the value read from the current configuration.
|
||||||
|
resetBorders :: Window -> X ()
|
||||||
|
resetBorders w = asks (borderWidth . config) >>= setBorders w
|
||||||
|
|
||||||
|
setBorders :: Window -> Dimension -> X ()
|
||||||
|
setBorders w bw = withDisplay $ \d -> io $ setWindowBorderWidth d w bw
|
||||||
|
Loading…
x
Reference in New Issue
Block a user