| Copyright | (C) -- Brent Yorgey 2018 Yclept Nemo |
|---|---|
| License | BSD-style (see LICENSE) |
| Maintainer | <byorgey@gmail.com> |
| Stability | unstable |
| Portability | unportable |
| Safe Haskell | None |
| Language | Haskell2010 |
XMonad.Layout.Spacing
Description
Add a configurable amount of space around windows.
Note: For space/gaps along edges of the screen see XMonad.Layout.Gaps.
Synopsis
- data Spacing a = Spacing {}
- spacingRaw :: Bool -> Border -> Bool -> Border -> Bool -> l a -> ModifiedLayout Spacing l a
- spacing :: Int -> l a -> ModifiedLayout Spacing l a
- spacingWithEdge :: Int -> l a -> ModifiedLayout Spacing l a
- smartSpacing :: Int -> l a -> ModifiedLayout Spacing l a
- smartSpacingWithEdge :: Int -> l a -> ModifiedLayout Spacing l a
- data SpacingModifier
- = ModifySmartBorder (Bool -> Bool)
- | ModifyScreenBorder (Border -> Border)
- | ModifyScreenBorderEnabled (Bool -> Bool)
- | ModifyWindowBorder (Border -> Border)
- | ModifyWindowBorderEnabled (Bool -> Bool)
- setSmartSpacing :: Bool -> X ()
- setScreenSpacing :: Border -> X ()
- setScreenSpacingEnabled :: Bool -> X ()
- setWindowSpacing :: Border -> X ()
- setWindowSpacingEnabled :: Bool -> X ()
- toggleSmartSpacing :: X ()
- toggleScreenSpacingEnabled :: X ()
- toggleWindowSpacingEnabled :: X ()
- setScreenWindowSpacing :: Integer -> X ()
- incWindowSpacing :: Integer -> X ()
- incScreenSpacing :: Integer -> X ()
- decWindowSpacing :: Integer -> X ()
- decScreenSpacing :: Integer -> X ()
- incScreenWindowSpacing :: Integer -> X ()
- decScreenWindowSpacing :: Integer -> X ()
- data Border = Border {}
- borderMap :: (Integer -> Integer) -> Border -> Border
- borderIncrementBy :: Integer -> Border -> Border
Usage
You can use this module by importing it into your xmonad.hs
file:
import XMonad.Layout.Spacing
and, for example, modifying your layoutHook as follows:
main :: IO ()
main = xmonad $ def
{ layoutHook = spacingWithEdge 10 $ myLayoutHook
}
myLayoutHook = Full ||| ...The above would add a 10 pixel gap around windows on all sides, as
well as add the same amount of spacing around the edges of the
screen. If you only want to add spacing around windows, you can use
spacing instead.
There is also the spacingRaw command, for more fine-grained
control. For example:
layoutHook = spacingRaw True (Border 0 10 10 10) True (Border 10 10 10 10) True
$ myLayoutHookBreaking this down, the above would do the following:
True: Enable thesmartBorderto not apply borders when there is only one window.(Border 0 10 10 10): Add ascreenBorderof 10 pixels in every direction but the top.True: Enable thescreenBorder.(Border 10 10 10 10): Add awindowBorderof 10 pixels in every direction.True: Enable thewindowBorder.
Warning: If you also use the avoidStruts layout modifier, it
must come before any of these modifiers. See the documentation of
avoidStruts for details.
A LayoutModifier providing customizable screen and window borders.
Borders are clamped to [0,Infinity] before being applied.
Constructors
| Spacing | |
Fields
| |
Instances
Arguments
| :: Bool | The |
| -> Border | The |
| -> Bool | The |
| -> Border | The |
| -> Bool | The |
| -> l a | |
| -> ModifiedLayout Spacing l a |
Generate the ModifiedLayout, exposing all initial state of Spacing.
spacing :: Int -> l a -> ModifiedLayout Spacing l a Source #
Surround all windows by a certain number of pixels of blank space. See
spacingRaw.
spacingWithEdge :: Int -> l a -> ModifiedLayout Spacing l a Source #
Surround all windows by a certain number of pixels of blank space, and
additionally adds the same amount of spacing around the edge of the screen.
See spacingRaw.
smartSpacing :: Int -> l a -> ModifiedLayout Spacing l a Source #
Surrounds all windows with blank space, except when the window is the only
visible window on the current workspace. See spacingRaw.
smartSpacingWithEdge :: Int -> l a -> ModifiedLayout Spacing l a Source #
Surrounds all windows with blank space, and adds the same amount of
spacing around the edge of the screen, except when the window is the only
visible window on the current workspace. See spacingRaw.
Modify Spacing
data SpacingModifier Source #
Messages to alter the state of Spacing using the endomorphic function
arguments.
Constructors
| ModifySmartBorder (Bool -> Bool) | |
| ModifyScreenBorder (Border -> Border) | |
| ModifyScreenBorderEnabled (Bool -> Bool) | |
| ModifyWindowBorder (Border -> Border) | |
| ModifyWindowBorderEnabled (Bool -> Bool) |
Instances
| Message SpacingModifier Source # | |
Defined in XMonad.Layout.Spacing | |
setSmartSpacing :: Bool -> X () Source #
Set smartBorder to the given Bool.
setScreenSpacing :: Border -> X () Source #
Set screenBorder to the given Border.
setScreenSpacingEnabled :: Bool -> X () Source #
Set screenBorderEnabled to the given Bool.
setWindowSpacing :: Border -> X () Source #
Set windowBorder to the given Border.
setWindowSpacingEnabled :: Bool -> X () Source #
Set windowBorderEnabled to the given Bool.
toggleSmartSpacing :: X () Source #
Toggle smartBorder.
toggleScreenSpacingEnabled :: X () Source #
Toggle screenBorderEnabled.
toggleWindowSpacingEnabled :: X () Source #
Toggle windowBorderEnabled.
setScreenWindowSpacing :: Integer -> X () Source #
Set all borders to a uniform size; see setWindowSpacing and
setScreenSpacing.
incWindowSpacing :: Integer -> X () Source #
Increment the borders of windowBorder using borderIncrementBy, which
preserves border ratios during clamping.
incScreenSpacing :: Integer -> X () Source #
Increment the borders of screenBorder using borderIncrementBy.
decWindowSpacing :: Integer -> X () Source #
Inverse of incWindowSpacing, equivalent to applying negate.
decScreenSpacing :: Integer -> X () Source #
Inverse of incScreenSpacing.
incScreenWindowSpacing :: Integer -> X () Source #
Increment both screen and window borders; see incWindowSpacing and
incScreenSpacing.
decScreenWindowSpacing :: Integer -> X () Source #
Inverse of incScreenWindowSpacing.