XMonad.Actions.ToggleFullFloat

xmonad-contrib-0.18.1: Community-maintained extensions for xmonad

Copyright | (c) 2022 Tomáš Janoušek <tomi@nomi.cz>
License | BSD3
Maintainer | Tomáš Janoušek <tomi@nomi.cz>
Safe Haskell | None
Language | Haskell2010

XMonad.Actions.ToggleFullFloat

Contents

- Usage

Description

Synopsis

- toggleFullFloatEwmhFullscreen :: forall (a :: Type -> Type). XConfig a -> XConfig a
- toggleFullFloat :: Window -> X ()
- fullFloat :: Window -> X ()
- unFullFloat :: Window -> X ()
- gcToggleFullFloat :: forall (a :: Type -> Type). XConfig a -> XConfig a

# Usage

The main use-case is to make `ewmhFullscreen` (re)store the size and position of floating windows instead of just unconditionally sinking them into the floating layer. To enable this, you'll need this in your `xmonad.hs`:

    import XMonad
    import XMonad.Actions.ToggleFullFloat
    import XMonad.Hooks.EwmhDesktops

    main = xmonad $ … . toggleFullFloatEwmhFullscreen . ewmhFullscreen . ewmh . … $ def{…}

Additionally, this "smart" fullscreening can be bound to a key and invoked manually whenever one needs a larger window temporarily:

      , ((modMask .|. shiftMask, xK_t), withFocused toggleFullFloat)

toggleFullFloatEwmhFullscreen :: forall (a :: Type -> Type). XConfig a -> XConfig a #

Hook this module into `ewmhFullscreen`. This makes windows restore their original state (size and position if floating) instead of unconditionally sinking into the tiling layer.

(`gcToggleFullFloat` is included here.)

toggleFullFloat :: Window -> X () #

Full-float a window, if it's not already full-floating. Otherwise, restore its original state.

fullFloat :: Window -> X () #

Full-float a window, remembering its state (tiled/floating and position/size).

unFullFloat :: Window -> X () #

Restore window to its remembered state.

gcToggleFullFloat :: forall (a :: Type -> Type). XConfig a -> XConfig a #

Install ToggleFullFloat garbage collection hooks.

Note: This is included in `toggleFullFloatEwmhFullscreen`, only needed if using the `toggleFullFloat` separately from the EWMH hook.