Contents

Description

Named scratchpads that support several arbitrary applications at the same time.

Synopsis

# Usage

Allows to have several floating scratchpads running different applications. Bind a key to namedScratchpadSpawnAction. Pressing it will spawn configured application, or bring it to the current workspace if it already exists. Pressing the key with the application 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.

import XMonad.StackSet as W

(customFloating $W.RationalRect (1/6) (1/6) (2/3) (2/3)) , -- run gvim, find by role, don't float NS "notes" "gvim --role notes ~/notes.txt" (role =? "notes") nonFloating ] where role = stringProperty "WM_WINDOW_ROLE" Add keybindings:  , ((modm .|. controlMask .|. shiftMask, xK_t), namedScratchpadAction scratchpads "htop") , ((modm .|. controlMask .|. shiftMask, xK_s), namedScratchpadAction scratchpads "stardict") , ((modm .|. controlMask .|. shiftMask, xK_n), namedScratchpadAction scratchpads "notes") ... and a manage hook:  , manageHook = namedScratchpadManageHook scratchpads For detailed instruction on editing the key binding see XMonad.Doc.Extending Single named scratchpad configuration Constructors  NS Fieldsname :: StringScratchpad namecmd :: StringCommand used to run applicationquery :: Query BoolQuery to find already running applicationhook :: ManageHookManage hook called for application window, use it to define the placement. See nonFloating, defaultFloating and customFloating Manage hook that makes the window non-floating Manage hook that makes the window floating with the default placement Manage hook that makes the window floating with custom placement Named scratchpads configuration Arguments  :: NamedScratchpads Named scratchpads configuration -> String Scratchpad name -> X () Action to pop up specified named scratchpad Arguments  :: NamedScratchpads Named scratchpads configuration -> ManageHook Manage hook to use with named scratchpads Transforms a workspace list containing the NSP workspace into one that doesn't contain it. Intended for use with logHooks. Transforms a pretty-printer into one not displaying the NSP workspace. A simple use could be: logHook = dynamicLogWithPP . namedScratchpadFilterOutWorkspace$ def
Here is another example, when using XMonad.Layout.IndependentScreens. If you have handles hLeft and hRight for bars on the left and right screens, respectively, and pp is a pretty-printer function that takes a handle, you could write
logHook = let log screen handle = dynamicLogWithPP . namedScratchpadFilterOutWorkspacePP . marshallPP screen . pp \$ handle
in log 0 hLeft >> log 1 hRight