XMonad.Hooks.FloatNext

xmonad-contrib-0.12: Third party extensions for xmonad

Copyright | Quentin Moser <moserq@gmail.com>
License | BSD-style (see LICENSE)
Maintainer | orphaned
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell98

XMonad.Hooks.FloatNext

Contents

- Usage
- The hook
- Actions
- Queries
- `DynamicLog` utilities

Description

Hook and keybindings for automatically sending the next spawned window(s) to the floating layer.

Synopsis

- floatNextHook :: ManageHook
- floatNext :: Bool -> X ()
- toggleFloatNext :: X ()
- floatAllNew :: Bool -> X ()
- toggleFloatAllNew :: X ()
- willFloatNext :: X Bool
- willFloatAllNew :: X Bool
- willFloatNextPP :: (String -> String) -> X (Maybe String)
- willFloatAllNewPP :: (String -> String) -> X (Maybe String)
- runLogHook :: X ()

# Usage

This module provides actions (that can be set as keybindings) to automatically send the next spawned window(s) to the floating layer.

You can use it by including the following in your `~/.xmonad/xmonad.hs`:

    import XMonad.Hooks.FloatNext

and adding `floatNextHook` to your `ManageHook`:

    myManageHook = floatNextHook <+> manageHook def

The `floatNext` and `toggleFloatNext` functions can be used in key bindings to float the next spawned window:

    , ((modm, xK_e), toggleFloatNext)

`floatAllNew` and `toggleFloatAllNew` are similar but float all spawned windows until disabled again.

    , ((modm, xK_r), toggleFloatAllNew)

# The hook

floatNextHook :: ManageHook

This `ManageHook` will selectively float windows as set by `floatNext` and `floatAllNew`.

# Actions

floatNext :: Bool -> X ()

`floatNext True` arranges for the next spawned window to be sent to the floating layer, `floatNext False` cancels it.

toggleFloatNext :: X ()

floatAllNew :: Bool -> X ()

`floatAllNew True` arranges for new windows to be sent to the floating layer, `floatAllNew False` cancels it

toggleFloatAllNew :: X ()

# Queries

willFloatNext :: X Bool

Whether the next window will be set floating

willFloatAllNew :: X Bool

Whether new windows will be set floating

# `DynamicLog` utilities

The following functions are used to display the current state of `floatNext` and `floatAllNew` in your `dynamicLogWithPP`. `willFloatNextPP` and `willFloatAllNewPP` should be added to the `ppExtras` field of your `PP`.

Use `runLogHook` to refresh the output of your `logHook`, so that the effects of a `floatNext`/... will be visible immediately:

    , ((modm, xK_e), toggleFloatNext >> runLogHook)

The `String -> String` parameters to `willFloatNextPP` and `willFloatAllNewPP` will be applied to their output, you can use them to set the text color, etc., or you can just pass them `id`.

willFloatNextPP :: (String -> String) -> X (Maybe String)

willFloatAllNewPP :: (String -> String) -> X (Maybe String)

runLogHook :: X ()