Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > 16551e78563a5b49ff9624ee1c8b8101 > files > 904

ghc-xmonad-contrib-devel-0.11-1.1.fc18.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>XMonad.Util.NamedScratchpad</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_XMonad-Util-NamedScratchpad.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/XMonad-Util-NamedScratchpad.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">xmonad-contrib-0.11: Third party extensions for xmonad</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>unportable</td></tr><tr><th>Stability</th><td>unstable</td></tr><tr><th>Maintainer</th><td>Konstantin Sobolev &lt;konstantin.sobolev@gmail.com&gt;</td></tr><tr><th>Safe Haskell</th><td>Safe-Infered</td></tr></table><p class="caption">XMonad.Util.NamedScratchpad</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Usage
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Named scratchpads that support several arbitrary applications at the same time.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">data</span>  <a href="#t:NamedScratchpad">NamedScratchpad</a>  = <a href="#v:NS">NS</a> {<ul class="subs"><li><a href="#v:name">name</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:cmd">cmd</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></li><li><a href="#v:query">query</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:Query">Query</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></li><li><a href="#v:hook">hook</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></li></ul>}</li><li class="src short"><a href="#v:nonFloating">nonFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></li><li class="src short"><a href="#v:defaultFloating">defaultFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></li><li class="src short"><a href="#v:customFloating">customFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-StackSet.html#t:RationalRect">RationalRect</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:NamedScratchpads">NamedScratchpads</a> = [<a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpad">NamedScratchpad</a>]</li><li class="src short"><a href="#v:namedScratchpadAction">namedScratchpadAction</a> :: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:allNamedScratchpadAction">allNamedScratchpadAction</a> :: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></li><li class="src short"><a href="#v:namedScratchpadManageHook">namedScratchpadManageHook</a> :: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></li><li class="src short"><a href="#v:namedScratchpadFilterOutWorkspace">namedScratchpadFilterOutWorkspace</a> :: [<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:WindowSpace">WindowSpace</a>] -&gt; [<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:WindowSpace">WindowSpace</a>]</li><li class="src short"><a href="#v:namedScratchpadFilterOutWorkspacePP">namedScratchpadFilterOutWorkspacePP</a> :: <a href="XMonad-Hooks-DynamicLog.html#t:PP">PP</a> -&gt; <a href="XMonad-Hooks-DynamicLog.html#t:PP">PP</a></li></ul></div><div id="interface"><h1 id="g:1">Usage
</h1><div class="doc"><p>Allows to have several floating scratchpads running different applications.
 Bind a key to <code>namedScratchpadSpawnAction</code>.
 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 <code>NSP</code>.
</p><p>If you already have a workspace called <code>NSP</code>, it will use that.
 <code>NSP</code> will also appear in xmobar and dzen status bars. You can tweak your
 <code>dynamicLog</code> settings to filter it out if you like.
</p><p>Create named scratchpads configuration in your xmonad.hs like this:
</p><pre> import XMonad.StackSet as W
 import XMonad.ManageHook
 import XMonad.Util.NamedScratchpad

 scratchpads = [
 -- run htop in xterm, find it by title, use default floating window placement
     NS &quot;htop&quot; &quot;xterm -e htop&quot; (title =? &quot;htop&quot;) defaultFloating ,

 -- run stardict, find it by class name, place it in the floating window
 -- 1/6 of screen width from the left, 1/6 of screen height
 -- from the top, 2/3 of screen width by 2/3 of screen height
     NS &quot;stardict&quot; &quot;stardict&quot; (className =? &quot;Stardict&quot;)
         (customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3)) ,

 -- run gvim, find by role, don't float
     NS &quot;notes&quot; &quot;gvim --role notes ~/notes.txt&quot; (role =? &quot;notes&quot;) nonFloating
 ] where role = stringProperty &quot;WM_WINDOW_ROLE&quot;
</pre><p>Add keybindings:
</p><pre>  , ((modm .|. controlMask .|. shiftMask, xK_t), namedScratchpadAction scratchpads &quot;htop&quot;)
  , ((modm .|. controlMask .|. shiftMask, xK_s), namedScratchpadAction scratchpads &quot;stardict&quot;)
  , ((modm .|. controlMask .|. shiftMask, xK_n), namedScratchpadAction scratchpads &quot;notes&quot;)
</pre><p>... and a manage hook:
</p><pre>  , manageHook = namedScratchpadManageHook scratchpads
</pre><p>For detailed instruction on editing the key binding see
 <a href="XMonad-Doc-Extending.html#Editing_key_bindings">XMonad.Doc.Extending</a>
</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:NamedScratchpad" class="def">NamedScratchpad</a>  <a href="src/XMonad-Util-NamedScratchpad.html#NamedScratchpad" class="link">Source</a></p><div class="doc"><p>Single named scratchpad configuration
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NS" class="def">NS</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:name" class="def">name</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>Scratchpad name
</p></dd><dt class="src"><a name="v:cmd" class="def">cmd</a> :: <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></dt><dd class="doc"><p>Command used to run application
</p></dd><dt class="src"><a name="v:query" class="def">query</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:Query">Query</a> <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-Bool.html#t:Bool">Bool</a></dt><dd class="doc"><p>Query to find already running application
</p></dd><dt class="src"><a name="v:hook" class="def">hook</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></dt><dd class="doc"><p>Manage hook called for application window, use it to define the placement. See <code>nonFloating</code>, <code>defaultFloating</code> and <code>customFloating</code>
</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:nonFloating" class="def">nonFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a><a href="src/XMonad-Util-NamedScratchpad.html#nonFloating" class="link">Source</a></p><div class="doc"><p>Manage hook that makes the window non-floating
</p></div></div><div class="top"><p class="src"><a name="v:defaultFloating" class="def">defaultFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a><a href="src/XMonad-Util-NamedScratchpad.html#defaultFloating" class="link">Source</a></p><div class="doc"><p>Manage hook that makes the window floating with the default placement
</p></div></div><div class="top"><p class="src"><a name="v:customFloating" class="def">customFloating</a> :: <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-StackSet.html#t:RationalRect">RationalRect</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a><a href="src/XMonad-Util-NamedScratchpad.html#customFloating" class="link">Source</a></p><div class="doc"><p>Manage hook that makes the window floating with custom placement
</p></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:NamedScratchpads" class="def">NamedScratchpads</a> = [<a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpad">NamedScratchpad</a>]<a href="src/XMonad-Util-NamedScratchpad.html#NamedScratchpads" class="link">Source</a></p><div class="doc"><p>Named scratchpads configuration
</p></div></div><div class="top"><p class="src"><a name="v:namedScratchpadAction" class="def">namedScratchpadAction</a><a href="src/XMonad-Util-NamedScratchpad.html#namedScratchpadAction" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a></td><td class="doc"><p>Named scratchpads configuration
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a></td><td class="doc"><p>Scratchpad name
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Action to pop up specified named scratchpad
</p></div></div><div class="top"><p class="src"><a name="v:allNamedScratchpadAction" class="def">allNamedScratchpadAction</a> :: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.5.0.0/Data-String.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:X">X</a> <a href="/usr/share/doc/ghc/html/libraries/ghc-prim-0.2.0.0/GHC-Tuple.html#t:-40--41-">()</a><a href="src/XMonad-Util-NamedScratchpad.html#allNamedScratchpadAction" class="link">Source</a></p></div><div class="top"><p class="src"><a name="v:namedScratchpadManageHook" class="def">namedScratchpadManageHook</a><a href="src/XMonad-Util-NamedScratchpad.html#namedScratchpadManageHook" class="link">Source</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="XMonad-Util-NamedScratchpad.html#t:NamedScratchpads">NamedScratchpads</a></td><td class="doc"><p>Named scratchpads configuration
</p></td></tr><tr><td class="src">-&gt; <a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:ManageHook">ManageHook</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="doc"><p>Manage hook to use with named scratchpads
</p></div></div><div class="top"><p class="src"><a name="v:namedScratchpadFilterOutWorkspace" class="def">namedScratchpadFilterOutWorkspace</a> :: [<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:WindowSpace">WindowSpace</a>] -&gt; [<a href="/usr/share/doc/ghc/html/libraries/xmonad-0.11/XMonad-Core.html#t:WindowSpace">WindowSpace</a>]<a href="src/XMonad-Util-NamedScratchpad.html#namedScratchpadFilterOutWorkspace" class="link">Source</a></p><div class="doc"><p>Transforms a workspace list containing the NSP workspace into one that
 doesn't contain it. Intended for use with logHooks.
</p></div></div><div class="top"><p class="src"><a name="v:namedScratchpadFilterOutWorkspacePP" class="def">namedScratchpadFilterOutWorkspacePP</a> :: <a href="XMonad-Hooks-DynamicLog.html#t:PP">PP</a> -&gt; <a href="XMonad-Hooks-DynamicLog.html#t:PP">PP</a><a href="src/XMonad-Util-NamedScratchpad.html#namedScratchpadFilterOutWorkspacePP" class="link">Source</a></p><div class="doc"><p>Transforms a pretty-printer into one not displaying the NSP workspace.
</p><p>A simple use could be:
</p><pre> logHook = dynamicLogWithPP . namedScratchpadFilterOutWorkspace $ defaultPP
</pre><p>Here is another example, when using <a href="XMonad-Layout-IndependentScreens.html">XMonad.Layout.IndependentScreens</a>.
 If you have handles <code>hLeft</code> and <code>hRight</code> for bars on the left and right screens, respectively, and <code>pp</code> is a pretty-printer function that takes a handle, you could write
</p><pre> logHook = let log screen handle = dynamicLogWithPP . namedScratchpadFilterOutWorkspacePP . marshallPP screen . pp $ handle
           in log 0 hLeft &gt;&gt; log 1 hRight
</pre></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.10.0</p></div></body></html>