XMonad.Util.Scratchpad

xmonad-contrib-0.11.4: Third party extensions for xmonad

Copyright | (c) Braden Shepherdson 2008
License | BSD-style (as xmonad)
Maintainer | Braden.Shepherdson@gmail.com
Stability | unstable
Portability | unportable
Safe Haskell | None
Language | Haskell98

XMonad.Util.Scratchpad

Contents

- Usage

Description

Very handy hotkey-launched floating terminal window.

Synopsis

- scratchpadSpawnAction :: XConfig l -> X ()
- scratchpadSpawnActionTerminal :: String -> X ()
- scratchpadSpawnActionCustom :: String -> X ()
- scratchpadManageHookDefault :: ManageHook
- scratchpadManageHook :: RationalRect -> ManageHook
- scratchpadFilterOutWorkspace :: [WindowSpace] -> [WindowSpace]

# Usage

Bind a key to `scratchpadSpawnAction` Pressing it will spawn the terminal, or bring it to the current workspace if it already exists. Pressing the key with the terminal on the current workspace will send it to a hidden workspace called `NSP`.

If you already have a workspace called `NSP`, it will use that. `NSP` will also appear in xmobar and dzen status bars. You can tweak your `dynamicLog` settings to filter it out if you like.

A tool like detach (http://detach.sourceforge.net) turns it into a launchpad for X apps.

By default, your xmonad terminal is used. The default ManageHook uses a centered, half-screen-wide, quarter-screen-tall window. The key, position and size are configurable.

The terminal application must support the `-name` argument. Known supported terminals: rxvt, rxvt-unicode, xterm. Most others are likely to follow the lead set by xterm.

Bind the following to a key in your xmonad.hs keybindings:

    scratchpadSpawnAction conf

Where `conf` is the configuration.

And add one of the `scratchpadManageHook*`s to your ManageHook list. The default rectangle is half the screen wide and a quarter of the screen tall, centered.

scratchpadSpawnAction

Arguments

:: XConfig l | The configuration, to retrieve the terminal
-> X () |

Action to pop up the terminal, for the user to bind to a custom key.

scratchpadSpawnActionTerminal

Arguments

:: String | Name of the terminal program
-> X () |

Action to pop up the terminal, with a directly specified terminal.

scratchpadSpawnActionCustom

Arguments

:: String | Command to spawn a program with resource "scratchpad"
-> X () |

Action to pop up any program with the user specifying how to set its resource to "scratchpad". For example, with gnome-terminal:

    scratchpadSpawnActionCustom "gnome-terminal --disable-factory --name scratchpad"

scratchpadManageHookDefault :: ManageHook

The ManageHook, with the default rectangle: Half the screen wide, a quarter of the screen tall, centered.

scratchpadManageHook

Arguments

:: RationalRect | User-specified screen rectangle.
-> ManageHook |

The ManageHook, with a user-specified StackSet.RationalRect, e.g., for a terminal 4/10 of the screen width from the left, half the screen height from the top, and 6/10 of the screen width by 3/10 the screen height, use:

    scratchpadManageHook (W.RationalRect 0.4 0.5 0.6 0.3)

scratchpadFilterOutWorkspace :: [WindowSpace] -> [WindowSpace]

Transforms a workspace list containing the SP workspace into one that doesn't contain it. Intended for use with logHooks.