!pYW      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  !"#$%&'()*+,-./0123456789:;<=>?@A B C!D!E!F!G!H!I!J!K!L"M"N"O"P"Q"R"S"T"U"V"W"X"Y"Z"["\"]"^#_#`#a#b#c#d#e#f#g$h$i$j$k$l%m&nop'q'r's't(u(v(w(x(y)z){)|)})~*****+++++,,,,,,,,-----.....////////0000000000000000000000000000000000111111112222222222222222222222222333333444444444444444445555 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 8 8 8 8 !8 "8 #8 $8 %8 &8 '8 (8 )8 *8 +8 ,8 -8 .8 /8 08 19 29 39 49 59 69 79 89 99 :9 ;9 <9 =9 >9 ?9 @: A: B: C: D: E F G H I J K L M N O P Q R S T U V W X Y Z; [; \; ]; ^; _; `; a< b< c< d< e< f< g< h< i< j< k< l< m< n< o< p< q< r< s= t= u= v= w= x= y= z= {= |= }> ~> > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A B B B B B B C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E F F F F F G G G G G H H H H H H H H I I I I I I I I I I I I I I I I J J K K K K K K K K K K K K K L L L L L M M M M M N N N !N "N #N $N %N &N 'N (N )N *N +N ,N -N .N /N 0N 1N 2O 3O 4O 5O 6O 7P 8P 9P :P ;P <Q =Q >Q ?Q @Q AQ BQ CQ DQ ER FR GR HR IR JR KR LR MR NR OR PS QS RS SS TS US VS WS XS YS ZS [S \T ]T ^T _T `T aU bU cU dU eU fU gU hU iV jV kW lX mX nY oZ pZ qZ rZ sZ tZ uZ vZ w[ x[ y[ z[ {[ |[ }[ ~\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] ] ] ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` a a a a a a a a a a                                                        b b b b b b b c c d d d d d d d d d d !d "d #d $d %d &d 'd (d )d *d +d ,d -d .d /d 0d 1d 2d 3d 4d 5d 6d 7d 8d 9d :d ;d <e =e >e ?e @e Ae Bf Cf Df Ef Ff Gf Hf If Jf Kf Lf Mf Ng Og Pg Qg Rh Sh Th Uh Vh Wh Xh Yh Zi [i \i ]i ^j _j `j aj bj cj dj ej fj gj hj ij jj kj lj mj nj oj pj qj rj sj tj uk vk wk xk yk zk {k |k }k ~k k k k k k l l l l l l l l l m m m m m m m n n n n n o o p p p p p p p p p p p p p q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q r r r r r r r r r r r r s s s s s s s s s s s s s s s s s s s s t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u u !u "u #u $u %u &u 'u (u )u *u +u ,u -u .u /u 0u 1u 2u 3u 4u 5u 6u 7u 8u 9u :u ;u <u =u >u ?u @u Au Bu Cu Du Eu Fv Gv Hv Iv Jv Kv Lv Mv Nv Ov Pw Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n ox px qx rx sx tx ux vy wy xy yy zy {y |y }y ~y y y y y y y y y y y y z z z z z z z { { { { { | } } } } } } } } } } } } } } } } } ~ ~ ~ ~ ~ ~                               ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V +(c) 2014 Anders Engstrom <ankaan@gmail.com>BSD3-style (see LICENSE)"Anders Engstrom <ankaan@gmail.com>unstable unportableNone#xmonad-contribFSchedule a task to take place after the current dragging is completed.xmonad-contribTake an action if the current dragging can be considered a click, supposing the drag just started before this function is called. A drag is considered a click if it is completed within 300 ms.xmonad-contrib\Take an action if the current dragging is completed within a certain time (in milliseconds.)xmonad-contribThe task to schedule.xmonad-contrib<The action to take if the dragging turned out to be a click.xmonad-contribKMaximum time of dragging for it to be considered a click (in milliseconds.)xmonad-contrib<The action to take if the dragging turned out to be a click.xmonad-contrib@The action to take if the dragging turned out to not be a click.(c) Dougal StantonBSD3-style (see LICENSE)<dougal@dougalstanton.net>stable unportableNone&xmonad-contrib@Resize (floating) window with optional aspect ratio constraints. ((c) Michal Janeczek <janeczek@gmail.com>BSD3-style (see LICENSE)$Michal Janeczek <janeczek@gmail.com>unstable unportableNone@axmonad-contribCycle through most recent workspaces with repeated presses of a key, while a modifier key is held down. The recency of workspaces previewed while browsing to the target workspace is not affected. That way a stack of most recently used workspaces is maintained, similarly to how many window managers handle window switching. For best effects use the same modkey+key combination as the one used to invoke this action.xmonad-contribCycle through a finite list of WindowSets with repeated presses of a key, while a modifier key is held down. For best effects use the same modkey+key combination as the one used to invoke this action.xmonad-contribxA list of modifier keys used when invoking this action. As soon as one of them is released, the final switch is made.xmonad-contrib3Key used to switch to next (less recent) workspace.xmonad-contribKey used to switch to previous (more recent) workspace. If it's the same as the nextWorkspace key, it is effectively ignored.xmonad-contrib=A function used to create a list of WindowSets to choose fromxmonad-contribA list of modifier keys used when invoking this action. As soon as one of them is released, the final WindowSet is chosen and the action exits.xmonad-contribEKey used to preview next WindowSet from the list of generated optionsxmonad-contribKey used to preview previous WindowSet from the list of generated options. If it's the same as nextOption key, it is effectively ignored. .(c) Spencer Janssen <spencerjanssen@gmail.com>BSD3-style (see LICENSE)*Spencer Janssen <spencerjanssen@gmail.com>stable unportableNoneCxmonad-contrib+Stop managing the currently focused window. (c) Miikka Koskinen 2007BSD3-style (see LICENSE)arcatan@kapsi.fistable unportableNoneGxmonad-contribSwap the focused window with the master window. If focus is in the master, swap it with the next window in the stack. Focus stays in the master. (c) Miikka Koskinen 2007BSD3-style (see LICENSE)arcatan@kapsi.fistable unportableNoneQWxmonad-contribFind the first hidden empty workspace in a StackSet. Returns Nothing if all workspaces are in use. Function searches currently focused workspace, other visible workspaces (when in Xinerama) and hidden workspaces in this order.xmonad-contribKFind and view an empty workspace. Do nothing if all workspaces are in use.xmonad-contrib_Tag current window to an empty workspace and view it. Do nothing if all workspaces are in use.xmonad-contribTSend current window to an empty workspace. Do nothing if all workspaces are in use. (c) Michael SloanBSD3-style (see LICENSE)<mgsloan@gmail.com>stable unportableNone=?]xmonad-contribvManipulate the window based on discrete pick regions; the window is divided into regions by thirds along each axis.xmonad-contribScale/reposition the window by factors obtained from the mouse position by linear interpolation. Dragging precisely on a corner resizes that corner; dragging precisely in the middle moves the window without resizing; anything else is an interpolation between the two.xmonad-contribEOnly resize the window, based on the window quadrant the mouse is in.xmonad-contribOnly reposition the window.xmonad-contribXGiven an interpolation function, implement an appropriate window manipulation action.X6Y6Z7[7$(c) Karsten Schoelzel <kuser@gmx.de>BSD Karsten Schoelzel <kuser@gmx.de>stable unportableNonevxmonad-contribkeysMoveWindow (dx, dy) moves the window by dx pixels to the right and dy pixels down.xmonad-contrib keysMoveWindowTo (x, y) (gx, gy)$ moves the window relative point (gx, gy) to the point (x,y), where (gx,gy): gives a position relative to the window border, i.e. gx = 0 is the left border, gx = 1 is the right border, gy = 0 is the top border, and gy = 1 the bottom border."For example, on a 1024x768 screen: keysMoveWindowTo (512,384) (1%2, 1%2) -- center the window on screen keysMoveWindowTo (1024,0) (1, 0) -- put window in the top right cornerxmonad-contrib"keysResizeWindow (dx, dy) (gx, gy) changes the width by dx and the height by dy$, leaving the window-relative point  (gx, gy) fixed. For example: LkeysResizeWindow (10, 0) (0, 0) -- make the window 10 pixels larger to the right keysResizeWindow (10, 0) (0, 1%2) -- does the same, unless sizeHints are applied keysResizeWindow (10, 10) (1%2, 1%2) -- add 5 pixels on each side keysResizeWindow (-10, -10) (0, 1) -- shrink the window in direction of the bottom-left cornerxmonad-contrib%keysAbsResizeWindow (dx, dy) (ax, ay) changes the width by dx and the height by dy$, leaving the screen absolute point  (ax, ay) fixed. For example: keysAbsResizeWindow (10, 10) (0, 0) -- enlarge the window; if it is not in the top-left corner it will also be moved down and to the right.$(c) Karsten Schoelzel <kuser@gmx.de>BSD Karsten Schoelzel <kuser@gmx.de>stable unportableNonez2xmonad-contrib6Give focus to the nth window of the current workspace.xmonad-contrib>Swap current window with nth. Focus stays in the same positionN(c) -- Quentin Moser <moserq@gmail.com> 2018 Yclept NemoBSD3orphanedunstable unportableNone xmonad-contrib Variant of    . Accepts  ; to use  see  . Returns True if the message was handled, False otherwise. Instead of using ; for efficiency this is pretty much an exact copy of the    code - foregoes the O(n)  .xmonad-contrib Variant of  that discards the result.xmonad-contrib Variant of    . Accepts  ; to use  see  . Returns True if the message was handled, False otherwise.xmonad-contrib Variant of  that discards the result.xmonad-contrib Variant of   8 that sends the message to the current layout. Accepts  ; to use  see  . Returns True if the message was handled, False: otherwise. This function is somewhat of a cross between   $ (sends to the current layout) and    (does not refresh).xmonad-contrib Variant of  that discards the result.xmonad-contrib Variant of  which like    accepts  rather than  . Returns True if the message was handled, False otherwise.xmonad-contrib Variant of  which like    accepts  rather than  . Returns True if the message was handled, False otherwise.xmonad-contrib Variant of  which accepts  rather than  . Returns True if the message was handled, False otherwise.xmonad-contrib Variant of  that discards the result.xmonad-contrib Send each / to the current layout without refresh (using ) and collect the results. If any message was handled, refresh. If you want to sequence a series of messages that would have otherwise used   ' while minimizing refreshes, use this.xmonad-contrib Variant of  that discards the results.xmonad-contrib Variant of  which accepts  rather than 4. Use this if all the messages are of the same type.xmonad-contrib Variant of  that discards the results.xmonad-contrib`Apply the dispatch function in order to each message of the list until one is handled. Returns True if so, False otherwise.xmonad-contrib Variant of B that sends messages to the current layout without refresh using .xmonad-contrib Variant of  that discards the results.xmonad-contribnApply the dispatch function to the first message, and if it was not handled, apply it to the second. Returns True! if either message was handled, False otherwise.xmonad-contrib Variant of B that sends messages to the current layout without refresh using .xmonad-contrib Variant of  that discards the results.xmonad-contribConvenience shorthand for .xmonad-contribSee .xmonad-contribSee .xmonad-contribSee .xmonad-contribSee .xmonad-contribSee .xmonad-contribSee .xmonad-contribSee . (c) Lukas MaiBSD3-style (see LICENSE)Lukas Mai <l.mai@web.de>stable unportableNonexmonad-contribXToggle the border of the currently focused window. To use it, add a keybinding like so: ., ((modm, xK_g ), withFocused toggleBorder)(c) 2009 Nils SchweinsbergBSD3-style (see LICENSE)!Nils Schweinsberg <mail@n-sch.de>unstable unportableNone~ xmonad-contribFocus data definitionsxmonad-contribalways focus the new screenxmonad-contrib+always keep the focus on the current screenxmonad-contrib#always focus tag i on the new stackxmonad-contribDfocus tag i only if workspace with tag i is visible on the old stackxmonad-contribRun any function that modifies the stack on a given screen. This function will also need to know which Screen to focus after the function has been run.xmonad-contribA variation of onScreen which will take any X () function and run it on the given screen. Warning: This function will change focus even if the function it's supposed to run doesn't succeed.xmonad-contribSwitch to workspace i on screen sc. If i is visible use view# to switch focus to the workspace i.xmonad-contribSwitch to workspace i on screen sc. If i is visible use  greedyView1 to switch the current workspace with workspace i.xmonad-contribSwitch to workspace i on screen sc. If i is visible do nothing.xmonad-contrib toggleOrView as in XMonad.Actions.CycleWS for onScreen with viewxmonad-contrib toggleOrView from XMonad.Actions.CycleWS for onScreen with greedyView xmonad-contribfunction to runxmonad-contribwhat to do with the focusxmonad-contrib screen idxmonad-contrib current stack\xmonad-contrib old stackxmonad-contrib new stackxmonad-contribX function to runxmonad-contribfocusxmonad-contrib screen idxmonad-contrib screen idxmonad-contribindex of the workspacexmonad-contrib current stackxmonad-contrib screen idxmonad-contribindex of the workspacexmonad-contrib current stackxmonad-contrib screen idxmonad-contribindex of the workspacexmonad-contrib current stackxmonad-contrib screen idxmonad-contribindex of the workspacexmonad-contrib current stackxmonad-contrib screen idxmonad-contribindex of the workspacexmonad-contrib current stack]xmonad-contribfunction to runxmonad-contribtag to look forxmonad-contribcurrent stackset  (c) Roman Cheplyaka, 2008BSD3-style (see LICENSE)"Roman Cheplyaka <roma@ro-che.info>unstable unportableNonexmonad-contribYUses supplied function to decide which action to run depending on current workspace name.xmonad-contribIf current workspace is listed, run appropriate action (only the first match counts!) If it isn't listed, then run default action (marked with empty string, ""), or do nothing if default isn't supplied.#(c) Nelson Elhage <nelhage@mit.edu>BSDNelson Elhage <nelhage@mit.edu>unstable unportableNoneM! xmonad-contribXA ScreenComparator allow to compare two screen based on their coordonate and Xinerama Idxmonad-contrib-The type of the index of a screen by locationxmonad-contrib'Translate a physical screen index to a ScreenIdxmonad-contrib!Switch to a given physical screenxmonad-contrib1Send the active window to a given physical screenxmonad-contrib'Compare screen only by their coordonatexmonad-contrib(Compare screen only by their Xinerama idxmonad-contrib@orders screens by the upper-left-most corner, from top-to-bottomxmonad-contrib@orders screens by the upper-left-most corner, from left-to-right^xmonad-contribKGet ScreenId for neighbours of the current screen based on position offset.xmonad-contribjApply operation on a WindowSet with the WorkspaceId of the next screen in the physical order as parameter.xmonad-contribnApply operation on a WindowSet with the WorkspaceId of the previous screen in the physical order as parameter.xmonad-contrib]The default ScreenComparator orders screens by the upper-left-most corner, from top-to-bottom(c) Miikka Koskinen 2007BSD3-style (see LICENSE)xmonad@s001.ethrael.comunstable unportableNoneNxmonad-contribMove the focused window to the master pane. All other windows retain their order. If focus is in the master, swap it with the next windo in the stack. Focus stays in the master.H(c) 2009 Anze Slosar translation to Haskell by Adam VogtBSD3-style (see LICENSE)<vogt.adam@gmail.com>unstable unportableNonexmonad-contribmRandomColor fixes constraints when generating random colors. All parameters should be in the range 0 -- 0xffxmonad-contribEspecify the minimum and maximum lowest values for each color channel.xmonad-contrib9specify the saturation and value, leaving the hue random.xmonad-contrib randomBg'* produces a random hex number in the form  '#xxyyzz'xmonad-contribrandomBg8 starts a terminal with the background color taken from This depends on the your _1 configuration field accepting an argument like -bg  '#ff0023'J(c) Hans Philipp Annen <haphi@gmx.net>, Mischa Dieterle <der_m@freenet.de>BSD3-style (see LICENSE)"Hans Philipp Annen <haphi@gmx.net>stable unportableNonexmonad-contribMRotate the windows in the current stack, excluding the first one (master).xmonad-contribMRotate the windows in the current stack, excluding the first one (master).xmonad-contrib<The actual rotation, as a pure function on the window stack.xmonad-contrib,Rotate all the windows in the current stack.xmonad-contrib,Rotate all the windows in the current stack.xmonad-contrib<The actual rotation, as a pure function on the window stack.$(c) Wirt Wolff <wirtwolff@gmail.com>BSD3-style (see LICENSE) Wirt Wolff <wirtwolff@gmail.com>unstable unportableNonexmonad-contribCycle through a finite list of window stacks with repeated presses of a key while a modifier key is held down. For best results use the same mod key + key combination as the one used to invoke the "bring from below" action. You could use cycleStacks' with a different stack permutations function to, for example, cycle from one below to one above to two below, etc. instead of in order. You are responsible for having it generate a finite list, though, or xmonad may hang seeking its length.xmonad-contribmGiven a stack element and a stack, shift or insert the element (window) at the currently focused position.xmonad-contrib!The opposite rotation on a Stack. xmonad-contrib:Rotate windows through the focused frame, excluding the "next" window. With, e.g. TwoPane, this allows cycling windows through either the master or slave pane, without changing the other frame. When the master is focused, the window below is skipped, when a non-master window is focused, the master is skipped."xmonad-contrib The focused rotation on a stack.%xmonad-contrib"The unfocused rotation on a stack.xmonad-contribxA list of modifier keys used when invoking this action. As soon as one of them is released, the final switch is made.xmonad-contribOKey used to shift windows from below the current choice into the current frame.xmonad-contribKey used to shift windows from above the current choice into the current frame. If it's the same as the first key, it is effectively ignored.xmonad-contrib=A function to a finite list of permutations of a given stack.xmonad-contrib'A list of modifier keys used to invoke N. As soon as any is released, we're no longer cycling on the [Stack Window]xmonad-contrib"Key used to select a "next" stack.xmonad-contrib&Key used to select a "previous" stack.  !"#$%&' " !%#$&''(c) Jason Creighton <jcreigh@gmail.com>BSD3-style (see LICENSE)#Jason Creighton <jcreigh@gmail.com>unstable unportableNone&(xmonad-contribGiven a  from key bindings to X () actions, return an action which waits for a user keypress and executes the corresponding action, or does nothing if the key is not found in the map.)xmonad-contribLike (9, but executes a default action if the key did not match.*xmonad-contribLike )A, but sends the unmatched key to the default action as argument.()*()*(c) Daniel SchoepeBSD3-style (see LICENSE)!Daniel Schoepe <asgaroth_@gmx.de>unstable unportableNone*+xmonad-contribCChanges the focus if the mouse is moved within an unfocused window.,xmonad-contrib4Adjusts the event mask to pick up pointer movements.+,+,(c) daniel@wagner-home.comBSD3-style (see LICENSE)daniel@wagner-home.comunstable unportableNone82xmonad-contrib[Move the mouse cursor to a corner of the focused window. Useful for uncluttering things.BInternally, this uses numerical parameters. We parametrize on the -I type so the user need not see the violence inherent in the system.5 and 4 can be used in a variety of ways. Suppose you wanted to emulate Ratpoison's 'banish' command, which moves the mouse pointer to a corner? warpToWindow can do that! 3xmonad-contribSame as 2F but moves the mouse to the corner of the currently focused screen 4xmonad-contribzWarp the pointer to a given position relative to the currently focused window. Top left = (0,0), bottom right = (1,1).5xmonad-contribgWarp the pointer to the given position (top left = (0,0), bottom right = (1,1)) on the given screen. -./012345 23-./0154BSD3-style (see LICENSE)unstable unportableNone>=6xmonad-contrib7Un-float all floating windows on the current workspace.7xmonad-contrib9Apply a function to all windows on the current workspace.8xmonad-contrib Execute an 1 action for each window on the current workspace.9xmonad-contrib.Kill all the windows on the current workspace.67896879BSD3-style (see LICENSE)unstable unportableNone?>66"(c) Devin Mullins <me@twifkak.com>BSDDevin Mullins <me@twifkak.com>stable unportableNone@:;<=:<;=%(c) Yorick Laupa <yo.eight@gmail.com>BSD!Yorick Laupa <yo.eight@gmail.com>stable unportableNoneB>?>?'(C) 2007 Don Stewart and Andrea RossatoBSD3andrea.rossato@unibz.itunstableportableSafeD(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstableportableSafeEb(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstableportableSafeF(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstableportableSafeG0(c) 2011 Brandon S Allbery <allbery.b@gmail.com>BSD'Brandon S Allbery <allbery.b@gmail.com>unstable unportableNoneLY@xmonad-contrib(Print key events to stderr for debugging`xmonad-contribConvenient showHex variantaxmonad-contrib,Convert a modifier mask into a useful string@@ (c) Brandon S Allbery, 2015BSD3-style (see LICENSE)allbery.b@gmail.comunstable not portableNoneZAxmonad-contribRun a  when a specific property is changed on a window. Note that this will run on any window which changes the property, so you should be very specific in your  MansgeHook= matching (lots of windows change their titles on the fly!):dynamicPropertyChange WM_NAME (className =?  Iceweasel  &&% title =? "whatever" --> doShift "2")mNote that the fixity of (-->) won't allow it to be mixed with ($), so you can't use the obvious $ shorthand. KdynamicPropertyChange "WM_NAME" $ title =? "Foo" --> doFloat -- won't work!-Consider instead phrasing it like any other :  , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig {- ... -} myDynHook = composeAll [...]Bxmonad-contrib4A shorthand for the most common case, dynamic titlesABAB!.(c) 2008 Justin Bogner <mail@justinbogner.com>BSD%Justin Bogner <mail@justinbogner.com>unstable unportableNonem0 bxmonad-contribGConverts a percentage to the format required for _NET_WM_WINDOW_OPACITYCxmonad-contribSets the opacity of a windowDxmonad-contrib)Fades a window out by setting the opacityExmonad-contrib Makes a window completely opaqueFxmonad-contribcFades a window by the specified amount if it satisfies the first query, otherwise makes it opaque.Gxmonad-contrib<Sets the opacity of inactive windows to the specified amountHxmonad-contribSet the opacity of inactive windows, on the current workspace, to the specified amount. This is specifically usefull in a multi monitor setup. See J.Ixmonad-contrib2Returns True if the window doesn't have the focus.Jxmonad-contrib8Returns True if the window doesn't have the focus, and the window is on the current workspace. This is specifically handy in a multi monitor setup (xinerama) where multiple workspaces are visible. Using this, non-focused workspaces are are not faded out making it easier to look and read the content on them.Kxmonad-contrib;Fades out every window by the amount returned by the query. CDEFGHIJK CIJEDFGHK"-Brandon S Allbery KF8NH <allbery.b@gmail.com>BSDBrandon S Allbery KF8NHunstable unportableNone=?Lxmonad-contribBA FadeHook is similar to a ManageHook, but records window opacity.Nxmonad-contribRender a window fully opaque.Oxmonad-contrib"Render a window fully transparent.Pxmonad-contrib Specify a window's transparency.Qxmonad-contrib3Specify a window's opacity; this is the inverse of P.Rxmonad-contrib An alias for P. An alias for P.Sxmonad-contrib An alias for P. An alias for P.Txmonad-contrib An alias for P.Uxmonad-contrib An alias for N. An alias for O.Vxmonad-contrib An alias for O.Wxmonad-contribLike doF, but usable with -like hooks that aren't ( wrapped around transforming functions (c).Xxmonad-contrib The identity L, which renders windows N.Yxmonad-contrib-A Query to determine if a window is floating.Zxmonad-contribA d$ to fade windows under control of a L., which is similar to but not identical to .[xmonad-contribA et to handle fading and unfading of newly mapped or unmapped windows; this avoids problems with layouts such as XMonad.Layout.Full or XMonad.Layout.Tabbed(. This hook may also be useful with XMonad.Hooks.FadeInactive.Pxmonad-contrib,The window's transparency as a fraction. transparency 1 is the same as O , whereas transparency 0 is the same as N.Qxmonad-contrib*The opacity of a window as a fraction.  opacity 1 is the same as N , whereas  opacity 0 is the same as O.ILMNOPQRSTUVWXYZ[ZLMXNVOUPSTQR[WYI#(c) 2009 Adam VogtBSD-style (see xmonad/LICENSE)vogt.adam@gmail.comunstableportableNone?fxmonad-contrib_insertPosition. A manage hook for placing new windows. XMonad's default is the same as using: insertPosition Above Newer.fxmonad-contrib>Modify the StackSet when the workspace containing w is focusedgxmonad-contribg and  focusLast belong in XMonad.StackSet? ^_`abcdef f^_`abcde$(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNonevghighi%&(c) Trevor Elliott <trevor@galois.com>BSD3-style (see LICENSE)"Trevor Elliott <trevor@galois.com>unstable unportableNone?lxmonad-contribExecute a named script hookll&, 2007 Ivan Tarasov <Ivan.Tarasov@gmail.com>BSDIvan.Tarasov@gmail.com experimental unportableNone`mxmonad-contrib sets WM namemmBSD!Tony Morris <haskell@tmorris.net>None2oxmonad-contrib0The value to add to your log hook configuration.mnomno'$(c) Karsten Schoelzel <kuser@gmx.de>BSD Karsten Schoelzel <kuser@gmx.de>unstable unportableNoneXpqrsspqr((c) glasser@mit.eduBSDglasser@mit.edustable unportableNone=?@AHtutu)/(c) 2009 Ilya Portnov, (c) 2018 Campbell BartonBSD3-style (see LICENSE)&Campbell Barton <ideasman42@gmail.com>unstable unportableNone=?@Ayzyz*(c) Peter De WachterBSD-style (see LICENSE)%Peter De Wachter <pdewacht@gmail.com>unstable unportableNone=?@A~~+(c) 2009 Ilya PortnovBSD3-style (see LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone=?@A,((c) Luis Cabellos <zhen.sydow@gmail.com>BSD3-style (see LICENSE)$Luis Cabellos <zhen.sydow@gmail.com>stableportableNone=?@Axmonad-contribyThe Cross Layout draws the focused window in the center of the screen and part of the other windows on the sides. The J and I3 messages increment the size of the main window.eThe focus keybindings change the center window, while other windows cycle through the side positions. With the Cross layout only four windows are shown around the focused window, two ups and two downs, no matter how many are in the current stack. I.e. focus down cycles the window below focused into the center; focus up cycles the window above.xmonad-contrib1Proportion of screen occupied by the main window.xmonad-contrib5Percent of main window to increment by when resizing.xmonad-contribA simple Cross Layout. It places the focused window in the center. The proportion of the screen used by the main window is 4/5.-(c) Jeremy ApthorpBSD-style (see LICENSE)#Jeremy Apthorp <nornagon@gmail.com>unstableportableNone=?@A..(c) 2008 Justin Bogner <mail@justinbogner.com>BSD3-style (as xmonad)%Justin Bogner <mail@justinbogner.com>unstable unportableNone=?@Adxmonad-contribIA tiling mode based on preserving a nice fixed width window. Supports J, I and M.hxmonad-contribDetermine the width of w# given that we would like it to be n columns wide, using inc9 as a resize increment for windows that don't have one/ (c) Lukas MaiBSD-style (see LICENSE)<l.mai@web.de>unstable unportableNone=?@A0(c) Norbert ZehBSD-style (see LICENSE)nzeh@cs.dal.caunstable unportableNone2=?@A xmonad-contrib TallGrid layout. Parameters arenumber of master rowsnumber of master columns&portion of screen used for master grid!x:y aspect ratio of slave windowsincrement for resize messageswThis exists mostly because it was introduced in an earlier version. It's a fairly thin wrapper around "SplitGrid L".xmonad-contrib9The geometry change message understood by the master gridxmonad-contrib Change the number of master rowsxmonad-contrib#Change the number of master columnsxmonad-contrib/Set the number of master rows to absolute valuexmonad-contrib2Set the number of master columns to absolute valuexmonad-contrib6Set the fraction of the screen used by the master gridxmonad-contribSType to specify the side of the screen that holds the master area of a SplitGrid.xmonad-contrib!SplitGrid layout. Parameters areside where the master isnumber of master rowsnumber of master columns&portion of screen used for master grid!x:y aspect ratio of slave windowsincrement for resize messagesxmonad-contrib9Geometry change messages understood by Grid and SplitGridxmonad-contribFGrid layout. The parameter is the desired x:y aspect ratio of windows1 (c) Lukas MaiBSD-style (see LICENSE)<l.mai@web.de>unstable unportableNone=@AYxmonad-contribGAutomatic mirroring of hinted layouts doesn't work very well, so this  comes with built-in mirroring.  Grid False is the normal layout,  Grid True1 is the mirrored variant (rotated by 90 degrees).xmonad-contrib4The internal function for computing the grid layout.i9 2)(c) Peter De Wachter <pdewacht@gmail.com>BSD3-style (see LICENSE)^Peter De Wachter <pdewacht@gmail.com> Andrea Rossato <andrea.rossato@unibz.it>unstable unportableNone=@Axmonad-contrib*Lay out windows similarly to Mirror tiled.xmonad-contrib#Lay out windows similarly to tiled.xmonad-contrib$number of windows in the master panexmonad-contrib how much to change when resizingxmonad-contrib$ratio between master/nonmaster panesxmonad-contribMWhere to place windows that are smaller than their preordained rectangles.xmonad-contribTall or Wide (mirrored) layout?3(c) 2013 Ilya PortnovBSD3-style (see LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone=>?@AQxmonad-contrib Layout itselfxmonad-contrib.Maximum number of windows for the first layoutxmonad-contrib First layoutxmonad-contrib Second layout4$(c) David Roundy <droundy@darcs.net>BSDnoneunstableportableNone2=?@AQ.9 xmonad-contribA  is simply a container for a layout modifier combined with an underlying layout. It is, of course, itself a layout (i.e. an instance of ).xmonad-contrib# allows you to intercept a call to  before it is called on the underlying layout, in order to perform some effect in the X monad, and/or modify some of the parameters before passing them on to the $ method of the underlying layout.The default implementation of  simply calls  on the underlying layout.xmonad-contrib Similar to t, but this function also allows you update the state of your layout modifier(the second value in the outer tuple).If both  and 2 return a modified state of the layout modifier, ~ takes precedence. If this function returns a modified state, this state will internally be used in the subsequent call to  as well.xmonad-contrib allows you to spy on messages to the underlying layout, in order to have an effect in the X monad, or alter the layout modifier state in some way (by returning  Just nm, where nm is a new modifier). In all cases, the underlying layout will also receive the message as usual, after the message has been processed by .gIf you wish to possibly modify a message before it reaches the underlying layout, you should use e instead. If you do not need to modify messages or have access to the X monad, you should use  instead.The default implementation of  calls  when receiving a  or # method (after which it returns Nothing-), and otherwise passes the message on to .xmonad-contrib allows you to intercept messages sent to the underlying layout, in order to have an effect in the X monad, alter the layout modifier state, or produce a modified message to be passed on to the underlying layout.The default implementation of $ simply passes on the message to .xmonad-contribz allows you to spy on messages sent to the underlying layout, in order to possibly change the layout modifier state.The default implementation of - ignores messages sent to it, and returns Nothing6 (causing the layout modifier to remain unchanged).xmonad-contrib# allows you to intercept a call to , on workspaces with at least one window, after it is called on the underlying layout, in order to perform some effect in the X monad, possibly return a new layout modifier, and/or modify the results of  before returning them.-If you don't need access to the X monad, use  instead. Also, if the behavior you need can be cleanly separated into an effect in the X monad, followed by a pure transformation of the results of &, you should consider implementing  and  instead of .*On empty workspaces, the Stack is Nothing.The default implementation of  calls  and then .xmonad-contrib# allows you to intercept a call to  after it is called on the underlying layout, in order to modify the list of window/rectangle pairings it has returned, and/or return a new layout modifier.The default implementation of - returns the window rectangles unmodified.xmonad-contrib/ is called by the default implementation of E, and as such represents an X action which is to be run each time ( is called on the underlying layout, after / has completed. Of course, if you override , then 5 will not be called unless you explicitly call it.The default implementation of  is  return () (i.e., it has no effect).xmonad-contrib/ is called by the default implementation of  upon receiving a  or a  message.4The default implementation, of course, does nothing.xmonad-contrib$ is used to give a String description to this layout modifier. It is the empty string by default; you should only override this if it is important that the presence of the layout modifier be displayed in text representations of the layout (for example, in the status bar of a XMonad.Hooks.DynamicLog user).xmonad-contrib gives a String description for the entire layout (modifier + underlying layout). By default, it is derived from the concatenation of the  with the c of the underlying layout, with a "smart space" in between (the space is not included if the  is empty).xmonad-contribThe  instance for a  defines the semantics of a ! applied to an underlying layout.xmonad-contribthe layout modifierxmonad-contribcurrent workspacexmonad-contribscreen rectanglexmonad-contribthe layout modifierxmonad-contribscreen rectanglexmonad-contribcurrent window stackxmonad-contrib;(window,rectangle) pairs returned by the underlying layoutxmonad-contribthe layout modifierxmonad-contribscreen rectanglexmonad-contribcurrent window stackxmonad-contrib<(window, rectangle) pairs returned by the underlying layout5(c) Peter Jones 2015BSD3-style (see LICENSE)pjones@devalot.comunstable not portableNone2=>@AQ;xmonad-contribMessages for the  HiddenWindows layout modifier.xmonad-contribHide a window.xmonad-contribRestore window (FILO).xmonad-contribRestore window (FIFO). xmonad-contrib Apply the  HiddenWindows layout modifier. xmonad-contribvRemove the given window from the current layout. It is placed in list of hidden windows so it can be restored later. xmonad-contribRestore a previously hidden window. Using this function will treat the list of hidden windows as a FIFO queue. That is, the first window hidden will be restored. xmonad-contribRestore a previously hidden window. Using this function will treat the list of hidden windows as a FILO queue. That is, the most recently hidden window will be restored.      6(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone2=>@A>5  7(c) 2009 Ilya PortnovBSD-style (see xmonad/LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone=?@AL xmonad-contribData type for LayoutModifierjxmonad-contrib:Function that decides where master window should be placed xmonad-contribdModifier that puts master window in center, other windows in background are managed by given layout xmonad-contribnModifier that puts master window in top right corner, other windows in background are managed by given layoutkxmonad-contrib!Internal function, doing main joblxmonad-contribPlace master window (it's Rectangle is given), using the given Positioner. If second argument is empty (that is, there is only one window on workspace), place that window fullscreen.mxmonad-contribIFunction that calculates Rectangle at top right corner of given Rectanglenxmonad-contrib@Function that calculates Rectangle at center of given Rectangle.        8*(c) 2008 David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)Adam Vogt <vogt.adam@gmail.com>unstable unportableNone2=>?@AQUoxmonad-contrib$store borings with a specific sourcepxmonad-contribuser-chosen boringsqxmonad-contribmaybe mark hidden windows xmonad-contrib|UpdateBoring is sent before attempting to view another boring window, so that layouts have a chance to mark boring windows. )xmonad-contrib4Mark windows that are not given rectangles as boringrxmonad-contrib Variant of  ' that works on a Stack rather than an entire StackSet.    ! " # $ % & ' ( ) ( ) # $ % & '   ! " 9+(c) 2014 Anders Engstrom <ankaan@gmail.com>BSD3-style (see LICENSE)&(c) Anders Engstrom <ankaan@gmail.com>unstable unportableNone2=>?@AJQy 1xmonad-contribQChange the state of the avoid float layout modifier conserning a specific window. 2xmonad-contribAdd a window to always avoid. 3xmonad-contrib%Stop always avoiding selected window. 4xmonad-contrib/Toggle between always avoiding selected window. 5xmonad-contrib:Change the state of the whole avoid float layout modifier. 6xmonad-contrib-Toggle between avoiding all or only selected. 7xmonad-contrib2Set if all all floating windows should be avoided. 8xmonad-contrib/Clear the set of windows to specifically avoid. 9xmonad-contribAvoid floating windows unless the resulting area for windows would be too small. In that case, use the whole screen as if this layout modifier wasn't there. No windows are avoided by default, they need to be added using signals. :xmonad-contribAvoid floating windows unless the resulting area for windows would be too small. In that case, use the whole screen as if this layout modifier wasn't there.sxmonad-contrib'Find all maximum empty rectangles (MERs) that are axis aligned. This is done in O(n^2) time using a modified version of the algoprithm MERAlg 1 described in "On the maximum empty rectangle problem" by A. Naamad, D.T. Lee and W.-L HSU. Published in Discrete Applied Mathematics 8 (1984.)txmonad-contribuSplit rectangles that horizontally fully contains another rectangle without sharing either the left or right side.uxmonad-contribJFind all horizontal gaps that are left empty from top to bottom of screen. 9xmonad-contribLayout to modify. :xmonad-contrib8Minimum width of the area used for non-floating windows.xmonad-contrib9Minimum height of the area used for non-floating windows.xmonad-contrib1If floating windows should be avoided by default.xmonad-contribLayout to modify.vxmonad-contrib1The current rectangle where the top edge is used.xmonad-contrib4The current rectangle where the bottom edge is used.xmonad-contribZList of MERs found so far, left bound, right bound and list of rectangles used for bounds.uxmonad-contribBounding rectangle.xmonad-contribFList of all rectangles that can cover areas in the bounding rectangle. 1 2 3 4 5 6 7 8 9 : 9 : 5 6 7 8 1 2 3 4:(c) 2009 Ilya PortnovBSD3-style (see LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone=>?@A @xmonad-contribData type for layout modifierwxmonad-contrib,Handle Shrink/Expand and IncMasterN messagesxxmonad-contribMain layout functionyxmonad-contribACalculates height of master area, depending on number of windows.zxmonad-contribRectangle for master area{xmonad-contribRectangle for slave area|xmonad-contrib Divide rectangle between windows}xmonad-contribShift rectangle right Axmonad-contribUser interface function @ A A @((c) 2009 Adam Vogt <vogt.adam@gmail.com>BSD Adam Vogtunstable unportableNone2=?@AS Gxmonad-contribImakeCursors requires a nonempty string, and each sublist must be nonempty Ixmonad-contribnon-wrapping version of ~ Jxmonad-contribnon-wrapping version of  Lxmonad-contrib modifyLayer- is used to change the focus at a given depth Mxmonad-contribshiftModifyLayer is the same as  LD, but also shifts the currently focused window to the new workspace Nxmonad-contrib shiftLayer is the same as  M2, but the focus remains on the current workspace. Oxmonad-contribexample usages are  N and  M Pxmonad-contribThe state is stored in the  Eu layout modifier. Put this as your outermost modifier, unless you want different cursors at different times (using XMonad.Layout.MultiToggle)V E F G H I J K L M N O P K GV P E H L O M N I J F;$(c) David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone=>?@A [xmonad-contribModify all screens. \xmonad-contribModify current screen. Z [ \ ] [ \ ] Z<K(c) 2009 Adam Vogt (c) 2009 Max Rabkin -- wrote limitSelectBSD-style (see xmonad/LICENSE)vogt.adam@gmail.comunstable unportableNone2=?@AQ9 fxmonad-contribOnly display the first n windows. gxmonad-contrib Only display nh windows around the focused window. This makes sense with layouts that arrange windows linearily, like . hxmonad-contribOnly display the first m windows and r others. The  IncMasterN message will change m4, as well as passing it onto the underlying layout.xmonad-contribFA non-wrapping, fixed-size slice of a stack around the focused element a b c d e f g h f g h c d e b a=(c) Ismael Carnales, Lukas MaiBSD-style (see LICENSE)%Ismael Carnales <icarnales@gmail.com>unstable unportableNone=>?@AQ sxmonad-contribNData type for LayoutModifier which converts given layout to a mastered layoutxmonad-contribhInternal function for adding a master window and let the modified layout handle the rest of the windowsxmonad-contribShift rectangle downxmonad-contrib Divide rectangle between windows txmonad-contribk, number of master windowsxmonad-contribdelta&, the ratio of the screen to resize byxmonad-contribfrac9, what portion of the screen to use for the master windowxmonad-contribthe layout to be modified uxmonad-contribdelta&, the ratio of the screen to resize byxmonad-contribfrac9, what portion of the screen to use for the master windowxmonad-contribthe layout to be modified vxmonad-contribdelta&, the ratio of the screen to resize byxmonad-contribfrac9, what portion of the screen to use for the master windowxmonad-contribthe layout to be modified s t u v u v t s>(c) 2007 James WebbBSD3-style (see LICENSE)xmonad#jwebb,sygneca,comunstable unportableNone2=>?@A9 xmonad-contribLike  V, but allows you to specify the amount of padding placed around the maximized window. } ~    ~ }?(c) 2008 Quentin MoserBSD3orphanedunstable unportableNone2=?@A xmonad-contrib,Data type for an escaped message. Send with  . xmonad-contrib)the UnEscape layout modifier. Listens to  6s and sends their nested message to the inner layout. xmonad-contribathe Ignore layout modifier. Prevents its inner layout from receiving messages of a certain type. xmonad-contrib Creates an  . xmonad-contrib1Applies the UnEscape layout modifier to a layout. xmonad-contribApplies the Ignore layout modifier to a layout, blocking all messages of the same type as the one passed as its first argument.  @#(c) 2009 Adam Vogt, 2007 James WebbBSD-style (see xmonad/LICENSE)vogt.adam<at>gmail.comunstable unportableNone2=?@AQ˽xmonad-contrib9True to override the aspect, current index, maximum index xmonad-contrib The relative magnitudes (the sign is ignored) of the rational numbers in the second argument determine the relative areas that the windows receive. The first number represents the size of the master window, the second is for the next window in the stack, and so on.The list is extended with  ++ repeat 1, so  mosaic 1.5 [] is like a resizable grid.PThe first parameter is the multiplicative factor to use when responding to the I message. xmonad-contribXThese sample functions are meant to be applied to the list of window sizes through the   message. xmonad-contribOApply a function to the Rational that represents the currently focused window.I and J messages are responded to with changeFocused (*delta) or changeFocused (delta/) where delta is the first argument to  ..This is exported because other functions (ex. const 1, (+1).) may be useful to apply to the current area. A(c) 2007 James WebbBSD-style (see xmonad/LICENSE)xmonad#jwebb,sygneca,comunstable unportableNone2=@AM B&(c) Anders Engstrom <ankaan@gmail.com>BSD3-style (see LICENSE)"Anders Engstrom <ankaan@gmail.com>unstable unportableNone=?@AL xmonad-contribLayout constructor.xmonad-contrib/Get which column a window is in, starting at 0. xmonad-contribIWindows in each column, starting with master. Set to 0 to catch the rest.xmonad-contrib(Default value for all following columns.xmonad-contrib"How much to change size each time.xmonad-contribDInitial size of master area, or column area if the size is negative.  C$(c) Jeremy Apthorp, Nathan FairhurstBSD-style (see LICENSE).Nathan Fairhurst <nathan.p3pictures@gmail.com>unstableportableNone=?@A؛  D (c) Lukas MaiBSD-style (see LICENSE)<l.mai@web.de>unstable unportableNone 2=>?@ACEQSX xmonad-contrib$Marks the end of a transformer list. xmonad-contrib(Toggle the specified layout transformer. xmonad-contribVA class to identify custom transformers (and look up transforming functions by type). xmonad-contrib Construct a  MultiToggle4 layout from a transformer table and a base layout. xmonad-contrib Construct a  MultiToggle5 layout from a single transformer and a base layout. xmonad-contribRPrepend an element to a heterogeneous list. Used to build transformer tables for  . xmonad-contrib(Construct a singleton transformer table.  0E#(c) Brandon S Allbery, Brent YorgeyBSD-style (see LICENSE)<allbery.b@gmail.com>unstable unportableNone=?@A xmonad-contribStructure for representing a host-specific layout along with a layout for all other hosts. We store the names of hosts to be matched, and the two layouts. We save the layout choice in the Bool, to be used to implement description. xmonad-contribSpecify one layout to use on a particular host, and another to use on all others. The second layout can be another call to   , and so on. xmonad-contribaSpecify one layout to use on a particular set of hosts, and another to use on all other hosts. xmonad-contribnSpecify a layout modifier to apply on a particular host; layouts on all other hosts will remain unmodified. xmonad-contribySpecify a layout modifier to apply on a particular set of hosts; layouts on all other hosts will remain unmodified.xmonad-contrib;Construct new OnHost values with possibly modified layouts.xmonad-contribf except that if one side has a dot and the other doesn't, we truncate the one that does at the dot.xmonad-contrib7String equality, possibly truncating one side at a dot. xmonad-contribthe name of the host to matchxmonad-contrib!layout to use on the matched hostxmonad-contriblayout to use everywhere else xmonad-contribnames of hosts to matchxmonad-contriblayout to use on matched hostsxmonad-contriblayout to use everywhere else xmonad-contribname of the host to matchxmonad-contrib*the modifier to apply on the matching hostxmonad-contribthe base layout xmonad-contribnames of the hosts to matchxmonad-contrib+the modifier to apply on the matching hostsxmonad-contribthe base layout  F(c) 2009 Ilya PortnovBSD3-style (see LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone=?@A  xmonad-contribData type for layoutxmonad-contrib Processes Shrink/Expand messagesxmonad-contribMain layout functionxmonad-contrib3Calculate how many windows must be placed at bottomxmonad-contrib%Calculate rectangle for master windowxmonad-contrib&Calculate rectangle for bottom windowsxmonad-contrib%Calculate rectangle for right windowsxmonad-contrib'Divide bottom rectangle between windowsxmonad-contrib&Divide right rectangle between windowsxmonad-contribShift rectangle rightxmonad-contribShift rectangle bottom  G(c) Edward Z. YangBSD-style (see LICENSE)<ezyang@cs.stanford.edu>unstable unportableNone=?@A.xmonad-contrib>Construct new PerScreen values with possibly modified layouts. xmonad-contribtarget screen widthxmonad-contrib,layout to use when the screen is wide enoughxmonad-contriblayout to use otherwise  H(c) Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>unstable unportableNone=?@A'^ xmonad-contribStructure for representing a workspace-specific layout along with a layout for all other workspaces. We store the tags of workspaces to be matched, and the two layouts. We save the layout choice in the Bool, to be used to implement description. xmonad-contribSpecify one layout to use on a particular workspace, and another to use on all others. The second layout can be another call to   , and so on. xmonad-contribkSpecify one layout to use on a particular set of workspaces, and another to use on all other workspaces. xmonad-contribxSpecify a layout modifier to apply to a particular workspace; layouts on all other workspaces will remain unmodified. xmonad-contribSpecify a layout modifier to apply to a particular set of workspaces; layouts on all other workspaces will remain unmodified.xmonad-contribAConstruct new PerWorkspace values with possibly modified layouts. xmonad-contrib!the tag of the workspace to matchxmonad-contrib&layout to use on the matched workspacexmonad-contriblayout to use everywhere else xmonad-contribtags of workspaces to matchxmonad-contrib#layout to use on matched workspacesxmonad-contriblayout to use everywhere else xmonad-contribtag of the workspace to matchxmonad-contrib/the modifier to apply on the matching workspacexmonad-contribthe base layout xmonad-contribtags of the workspaces to matchxmonad-contrib0the modifier to apply on the matching workspacesxmonad-contribthe base layout  I Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNone=?@A4: xmonad-contrib!The available renaming operations xmonad-contrib+Remove a number of characters from the left xmonad-contrib,Remove a number of characters from the right xmonad-contribAdd a string on the right xmonad-contribAdd a string on the left xmonad-contrib&Remove a number of words from the left xmonad-contrib'Remove a number of words from the right xmonad-contribAAdd a string to the right, prepending a space to it if necessary xmonad-contrib?Add a string to the left, appending a space to it if necessary xmonad-contribReplace with another string xmonad-contrib4Apply a list of modifications in left-to-right order xmonad-contribApply a list of  ( values to a layout, from left to right. J$(c) David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone=>?@A7 xmonad-contrib(Deprecated) Rename a layout. xmonad-contrib/(Deprecated) Remove the first word of the name.    K2(c) MATSUYAMA Tomohiro <t.matsuyama.pub@gmail.com>BSD-style (see LICENSE).MATSUYAMA Tomohiro <t.matsuyama.pub@gmail.com>unstable unportableNone2=?@AM? xmonad-contribnumber of master windows xmonad-contribchange when resizing by J, I,  ,   xmonad-contribwidth of master xmonad-contribQfraction to multiply the window height that would be given when divided equally.Oslave windows are assigned their modified heights in order, from top to bottom$unspecified values are replaced by 1        L(c) tim.thelion@gmail.comBSDtim.thelion@gmail.comunstable unportableNone=?@AA    M(c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@AC    N)(c) Joe Thornber <joe.thornber@gmail.com>BSD3-style (see LICENSE)%Joe Thornber <joe.thornber@gmail.com>stableportableNone=?@AL 'xmonad-contribA spiral layout. The parameter controls the size ratio between successive windows in the spiral. Sensible values range from 0 up to the aspect ratio of your monitor (often 4/3).NBy default, the spiral is counterclockwise, starting to the east. See also  (. (xmonad-contribCreate a spiral layout, specifying the starting cardinal direction, the spiral direction (clockwise or counterclockwise), and the size ratio.   ! " # $ % & ' ( ' ( $ % &  ! " # O$(c) David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone=?@AN 2 3 2 3P-(c) Rickard Gustafsson <acura@allyourbase.se>BSD-style (see LICENSE))Rickard Gustafsson <acura@allyourbase.se>unstable unportableNone2=?@AMQ- 7 8 7 8Q((c) Kai Grossjohann <kai@emptydomain.de>BSD3-style (see LICENSE)?unstable unportableNone=?@AT <xmonad-contrib&Arguments are nmaster, delta, fractionxmonad-contrib.tile3. Compute window positions using 3 panes < > = ? @ A < > = ? @ AR$(c) David Roundy <droundy@darcs.net>BSDnoneunstableportableNone2=?@AQV? E F G H I I E F G HS<(c) 2010 & 2013 Adam Vogt 2011 Willem VanlintBSD-style (see xmonad/LICENSE)vogt.adam@gmail.comunstable unportableNone=@AQ_ Rxmonad-contribWhen focus is on the tiled layer, the underlying layout is run with focus on the window named by the WM_TRANSIENT_FOR property on the floating window. Sxmonad-contrib6Runs another layout with a remembered focus, provided:9the subset of windows doesn't include the focus in XStateBit was previously run with a subset that included the XState focus-the remembered focus hasn't since been killed P Q R S S R Q PT.(c) Spencer Janssen <spencerjanssen@gmail.com>BSD3-style (see LICENSE)*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone=?@Aa \ ] \ ]U(c) Chayanon WichitrnithedBSD3-style (see LICENSE)*Chayanon Wichitrnithed <namowi@gatech.edu>unstable unportableNone=?@Af cxmonad-contribslave window; if EZ or not in the current workspace, the window below the master will go into the slave pane dxmonad-contribshrink/expand size exmonad-contribinitial master size a b c d e a b c d eV(C) 2015 Norbert ZehGPL#Norbert Zeh <norbert.zeh@gmail.com>unstable unportableSafen ixmonad-contribReturns True if the first argument is a subsequence of the second argument, that is, it can be obtained from the second sequence by deleting elements. jxmonad-contribSort the given set of strings by how well they match. Match quality is measured first by the length of the substring containing the match and second by the positions of the matching characters in the string. i j i jW(c) 2009 Collabora LtdBSD-style (see xmonad/LICENSE))Andres Salomon <dilinger@collabora.co.uk>unstable unportableNoneqK kxmonad-contribSet the default (root) cursorM k kX(c) 2007 Valery V. VorotyntsevBSD3-style (see LICENSE)Noneyz lxmonad-contrib Customize = -- delete needless shortcuts and insert those you will use. mxmonad-contribGeneral variant of  l7: customize key bindings of third-party configuration. lxmonad-contribshortcuts to deletexmonad-contribkey bindings to insert mxmonad-contriboriginal configurationxmonad-contribshortcuts to deletexmonad-contribkey bindings to insert l m l mY!(c) Brandon S Allbery KF8NH, 2014BSD3-style (see LICENSE)allbery.b@gmail.comunstable not portableNone~ nxmonad-contribOutput a window by ID in hex, decimal, its ICCCM resource name and class, and its title if available. Also indicate override_redirect with an exclamation mark, and wrap in brackets if it is unmapped or withdrawn. n nZ!(c) Brandon S Allbery KF8NH, 2014BSD3-style (see LICENSE)allbery.b@gmail.comunstable not portableNone oxmonad-contribLPrint the state of the current window stack for the current workspace to stderr', which for most installations goes to ~/.xsession-errors. XMonad.Util.DebugWindow+ is used to display the individual windows. pxmonad-contribEPrint the state of the current window stack for all workspaces to stderr', which for most installations goes to ~/.xsession-errors. XMonad.Util.DebugWindow+ is used to display the individual windows. qxmonad-contrib o packaged as a d . (Currently this is identical.) rxmonad-contrib'debugStackFull packaged as a d . (Currently this is identical.) sxmonad-contrib o packaged as a e. You almost certainly do not want to use this unconditionally, as it will cause massive amounts of output and possibly slow xmonad down severely. txmonad-contrib p packaged as a e. You almost certainly do not want to use this unconditionally, as it will cause massive amounts of output and possibly slow xmonad down severely. uxmonad-contrib/Dump the state of the current workspace in the StackSet as a multiline . vxmonad-contrib(Dump the state of all workspaces in the StackSet as a multiline :. @@@ this is in stackset order, which is roughly lru-ishxmonad-contrib-Dump the state of a workspace in the current StackSet as a multiline . 0 Workspace "foo:: mm * ww ^ww A * indicates the focused window, ^ indicates a floating window o p q r s t u v o p u v q r s t[!(c) Brandon S Allbery KF8NH, 2012BSD3-style (see LICENSE)allbery.b@gmail.comunstable not portableNoneM wxmonad-contribEvent hook to dump all received events. You should probably not use this unconditionally; it will produce massive amounts of output.xmonad-contrib0Dump an X11 event. Can't be used directly as a e.xmonad-contribEmit information about an atom.xmonad-contrib/Emit an atom with respect to the current event.xmonad-contrib0Emit a window with respect to the current event.xmonad-contrib(Helper to emit tagged event information.xmonad-contribDeconstuct a list of s into raw bytesxmonad-contrib2Specify how to decode some common client messages.xmonad-contrib,Convert a modifier mask into a useful stringxmonad-contribRetrive, parse, and dump a window property. As all the high-level property interfaces lose information necessary to decode properties correctly, we work at the lowest level available.xmonad-contrib Parse and dump a property (or a  ClientMessage).xmonad-contribA simplified version of 'dumpProperty\''), to format random values from events.xmonad-contrib<Launch a decoding parser, returning success and final state.xmonad-contribzThe top level property decoder, for a wide variety of standard ICCCM and EWMH window properties. We pass part of the ' as arguments for pattern matching. w w\+(c) 2007 Andrea Rossato and Spencer JanssenBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone ~xmonad-contribString position xmonad-contribeGet the Pixel value for a named color: if an invalid name is given the black pixel will be returned. xmonad-contrib Convert a Pixel into a String. xmonad-contribzGiven a fontname returns the font structure. If the font name is not valid the default font will be loaded and returned. xmonad-contrib/When initXMF gets a font name that starts with 'xft:'8 it switches to the Xft backend Example: 'xft: Sans-10' xmonad-contribReturn the string x and y B in a P , given a  and the  ~ment xmonad-contribShort-hand for  ~   ~  ](c) 2010 Alejandro SerranoBSD-style (see xmonad/LICENSE)trupill@gmail.comunstable unportableNone xmonad-contrib&Placement of the icon in the title bar xmonad-contrib4An exact amount of pixels from the upper left corner xmonad-contrib4An exact amount of pixels from the right left corner xmonad-contrib9Centered in the y-axis, an amount of pixels from the left xmonad-contrib:Centered in the y-axis, an amount of pixels from the rightxmonad-contrib Gets the (width, height ) of an image xmonad-contrib Return the x and y positions inside a P) to start drawing the image given its  xmonad-contriblConverts an image represented as [[Bool]] to a series of points to be painted (the ones with True values)xmonad-contribDisplaces a point (a, b) along a vector (x, y)xmonad-contrib*Displaces a list of points along a vector x, y xmonad-contribDraw an image into a X surface  ^%(c) 2007 Andrea Rossato, David RoundyBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNoneM  _(c) Bogdan Sinitsyn (2016)BSD3-style (see LICENSE)bogdan.sinitsyn@gmail.comunstable not portableNone2  `$2009 Adam Vogt <vogt.adam@gmail.com>BSD3-style (see LICENSE)Adam Vogt <vogt.adam@gmail.com>unstable unportableNone1=>?EX xmonad-contribRAn existential wrapper so that different types can be combined in lists, and maps xmonad-contrib# but add a description that is  show message2. Note that not all messages have show instances. xmonad-contribh) but the description is the string passed xmonad-contrib(F, but propagate the descriptions of the actions. Does this belong in XMonad.Actions.Submap? xmonad-contrib@Combine keymap lists with actions that may or may not have namesxmonad-contribOr allow another lookup table? xmonad-contribAn action to send to  ' for showing the keybindings. See also   and  xmonad-contribMerge the supplied keys with  I, also adding a keybinding to run an action for showing the keybindings. xmonad-contribWithout merging with  xmonad-contribHA version of the default keys from the default configuration, but with   instead of X () xmonad-contribFor a prettier presentation: keymask, keysym of 0 are reserved for this purpose: they do not happen, afaik, and keysymToString 0 would raise an error otherwise xmonad-contribThese are just the  NamedAction| constructor but with a more specialized type, so that you don't have to supply any annotations, for ex coercing spawn to X () from the more general MonadIO m => m ()  a]Devin Mullins <me@twifkak.com> Brent Yorgey <byorgey@gmail.com> (key parsing)BSD3-style (see LICENSE)Devin Mullins <me@twifkak.com>Noner xmonad-contrib?Add or override keybindings from the existing set. Example use: main = xmonad $ def { terminal = "urxvt" } `additionalKeys` [ ((mod1Mask, xK_m ), spawn "echo 'Hi, mom!' | dzen2 -p 4") , ((mod1Mask, xK_BackSpace), withFocused hide) -- N.B. this is an absurd thing to do ]0This overrides the previous definition of mod-m.Note that, unlike in xmonad 0.4 and previous, you can't use modMask to refer to the modMask you configured earlier. You must specify mod1Mask (or whichever), or add your own myModMask = mod1Mask line. xmonad-contribLike  , except using short String key descriptors like "M-m" instead of (modMask, xK_m)+, as described in the documentation for  . For example: main = xmonad $ def { terminal = "urxvt" } `additionalKeysP` [ ("M-m", spawn "echo 'Hi, mom!' | dzen2 -p 4") , ("M-<Backspace>", withFocused hide) -- N.B. this is an absurd thing to do ] xmonad-contrib:Remove standard keybindings you're not using. Example use: {main = xmonad $ def { terminal = "urxvt" } `removeKeys` [(mod1Mask .|. shiftMask, n) | n <- [xK_1 .. xK_9]] xmonad-contribLike  , except using short String key descriptors like "M-m" instead of (modMask, xK_m)+, as described in the documentation for  . For example: jmain = xmonad $ def { terminal = "urxvt" } `removeKeysP` ["M-S-" ++ [n] | n <- ['1'..'9']] xmonad-contribLike  , but for mouse bindings. xmonad-contribLike  , but for mouse bindings. xmonad-contribSGiven a config (used to determine the proper modifier key to use) and a list of (String, X ()) pairs, create a key map by parsing the key sequence descriptions contained in the Strings. The key sequence descriptions are "emacs-style": M-, C-, S- , and M#-2 denote mod, control, shift, and mod1-mod5 (where # is replaced by the appropriate number) respectively. Note that if you want to make a keybinding using 'alt' even though you use a different key (like the 'windows' key) for 'mod', you can use something like "M1-x" for alt+x (check the output of xmodmap to see which mod key 'alt' is bound to). Some special keys can also be specified by enclosing their name in angle brackets. For example, "M-C-x" denotes mod+ctrl+x;  "S-<Escape>" denotes shift-escape; "M1-C-<Delete>"M denotes alt+ctrl+delete (assuming alt is bound to mod1, which is common).hSequences of keys can also be specified by separating the key descriptions with spaces. For example, "M-x y <Down>"B denotes the sequence of keys mod+x, y, down. Submaps (see XMonad.Actions.SubmapE) will be automatically generated to correctly handle these cases.9So, for example, a complete key map might be specified as  keys = \c -> mkKeymap c $ [ ("M-S-<Return>", spawn $ terminal c) , ("M-x w", spawn "xmessage 'woohoo!'") -- type mod+x then w to pop up 'woohoo!' , ("M-x y", spawn "xmessage 'yay!'") -- type mod+x then y to pop up 'yay!' , ("M-S-c", kill) ]Alternatively, you can use  = to automatically create a keymap and add it to your config.Here is a complete list of supported special keys. Note that a few keys, such as the arrow keys, have synonyms. If there are other special keys you would like to see supported, feel free to submit a patch, or ask on the xmonad mailing list; adding special keys is quite simple. <Backspace> <Tab> <Return> <Pause> <Scroll_lock> <Sys_Req> <Print> <Escape>, <Esc> <Delete> <Home> <Left>, <L> <Up>, <U> <Right>, <R> <Down>, <D> <Page_Up> <Page_Down> <End> <Insert> <Break> <Space> <F1>-<F24> <KP_Space> <KP_Tab> <KP_Enter> <KP_F1> <KP_F2> <KP_F3> <KP_F4> <KP_Home> <KP_Left> <KP_Up> <KP_Right> <KP_Down> <KP_Prior> <KP_Page_Up> <KP_Next> <KP_Page_Down> <KP_End> <KP_Begin> <KP_Insert> <KP_Delete> <KP_Equal> <KP_Multiply> <KP_Add> <KP_Separator> <KP_Subtract> <KP_Decimal> <KP_Divide> <KP_0>-<KP_9>Long list of multimedia keys. Please note that not all keys may be present in your particular setup although most likely they will do. <XF86ModeLock> <XF86MonBrightnessUp> <XF86MonBrightnessDown> <XF86KbdLightOnOff> <XF86KbdBrightnessUp> <XF86KbdBrightnessDown> <XF86Standby> <XF86AudioLowerVolume> <XF86AudioMute> <XF86AudioRaiseVolume> <XF86AudioPlay> <XF86AudioStop> <XF86AudioPrev> <XF86AudioNext> <XF86HomePage> <XF86Mail> <XF86Start> <XF86Search> <XF86AudioRecord> <XF86Calculator> <XF86Memo> <XF86ToDoList> <XF86Calendar> <XF86PowerDown> <XF86ContrastAdjust> <XF86RockerUp> <XF86RockerDown> <XF86RockerEnter> <XF86Back> <XF86Forward> <XF86Stop> <XF86Refresh> <XF86PowerOff> <XF86WakeUp> <XF86Eject> <XF86ScreenSaver> <XF86WWW> <XF86Sleep> <XF86Favorites> <XF86AudioPause> <XF86AudioMedia> <XF86MyComputer> <XF86VendorHome> <XF86LightBulb> <XF86Shop> <XF86History> <XF86OpenURL> <XF86AddFavorite> <XF86HotLinks> <XF86BrightnessAdjust> <XF86Finance> <XF86Community> <XF86AudioRewind> <XF86XF86BackForward> <XF86Launch0>-<XF86Launch9>, <XF86LaunchA>-<XF86LaunchF> <XF86ApplicationLeft> <XF86ApplicationRight> <XF86Book> <XF86CD> <XF86Calculater> <XF86Clear> <XF86Close> <XF86Copy> <XF86Cut> <XF86Display> <XF86DOS> <XF86Documents> <XF86Excel> <XF86Explorer> <XF86Game> <XF86Go> <XF86iTouch> <XF86LogOff> <XF86Market> <XF86Meeting> <XF86MenuKB> <XF86MenuPB> <XF86MySites> <XF86New> <XF86News> <XF86OfficeHome> <XF86Open> <XF86Option> <XF86Paste> <XF86Phone> <XF86Q> <XF86Reply> <XF86Reload> <XF86RotateWindows> <XF86RotationPB> <XF86RotationKB> <XF86Save> <XF86ScrollUp> <XF86ScrollDown> <XF86ScrollClick> <XF86Send> <XF86Spell> <XF86SplitScreen> <XF86Support> <XF86TaskPane> <XF86Terminal> <XF86Tools> <XF86Travel> <XF86UserPB> <XF86User1KB> <XF86User2KB> <XF86Video> <XF86WheelButton> <XF86Word> <XF86Xfer> <XF86ZoomIn> <XF86ZoomOut> <XF86Away> <XF86Messenger> <XF86WebCam> <XF86MailForward> <XF86Pictures> <XF86Music> <XF86TouchpadToggle> <XF86AudioMicMute> <XF86_Switch_VT_1>-<XF86_Switch_VT_12> <XF86_Ungrab> <XF86_ClearGrab> <XF86_Next_VMode> <XF86_Prev_VMode>xmonad-contribmGiven a list of pairs of parsed key sequences and actions, group them into submaps in the appropriate way.xmonad-contribGiven a configuration record and a list of (key sequence description, action) pairs, parse the key sequences into lists of (KeyMask,KeySym)> pairs. Key sequences which fail to parse will be ignored.xmonad-contribjParse a sequence of keys, returning Nothing if there is a parse failure (no parse, or ambiguous parse).xmonad-contribBParse a sequence of key combinations separated by spaces, e.g.  "M-c x C-S-2" (mod+c, x, ctrl+shift+2).xmonad-contrib>Parse a modifier-key combination such as "M-C-s" (mod+ctrl+s).xmonad-contribUParse a modifier: either M- (user-defined mod-key), C- (control), S- (shift), or M- where : is an integer from 1 to 5 (mod1Mask through mod5Mask). xmonad-contrib$Parse an unmodified basic key, like "x", " F1", etc.xmonad-contrib1Parse a regular key name (represented by itself).xmonad-contrib:Parse a special key name (one enclosed in angle brackets).xmonad-contrib=A list of all special key names and their associated KeySyms.xmonad-contrib5A list pairing function key descriptor strings (e.g. " F2"!) with the associated KeySyms.xmonad-contrib<A list of special key names and their corresponding KeySyms.xmonad-contribList of multimedia keys. If X server does not know about some | keysym it's omitted from list. (stringToKeysym returns noSymbol in this case) xmonad-contrib#Given a configuration record and a list of (key sequence description, action) pairs, check the key sequence descriptions for validity, and warn the user (via a popup xmessage window) of any unparseable or duplicate key sequences. This function is appropriate for adding to your  startupHooky, and you are highly encouraged to do so; otherwise, duplicate or unparseable keybindings will be silently ignored..For example, you might do something like this: main = xmonad $ myConfig myKeymap = [("S-M-c", kill), ...] myConfig = def { ... keys = \c -> mkKeymap c myKeymap startupHook = return () >> checkKeymap myConfig myKeymap ... } NOTE: the  return ()J in the example above is very important! Otherwise, you might run into problems with infinite mutual recursion: the definition of myConfig depends on the definition of startupHook, which depends on the definition of myConfig, ... and so on. Actually, it's likely that the above example in particular would be OK without the  return () , but making myKeymap take myConfig as a parameter would definitely lead to problems. Believe me. It, uh, happened to my friend. In... a dream. Yeah. In any event, the  return () >>3 introduces enough laziness to break the deadlock.xmonad-contribGiven a config and a list of (key sequence description, action) pairs, check the key sequence descriptions for validity, returning a list of unparseable key sequences, and a list of duplicate key sequences. 'Devin Mullins <devin.mullins@gmail.com>BSD-style (see LICENSE)'Devin Mullins <devin.mullins@gmail.com>unstable unportableNone=>?@ACH) xmonad-contrib'This lets you remove from an attribute. xmonad-contrib"This lets you add to an attribute. xmonad-contrib"This lets you modify an attribute. xmonad-contribJThis lets you apply a function to an attribute (i.e. read, modify, write). xmonad-contribtAn Arr is a generalization of Prime. Don't reference the type, if you can avoid it. It might go away in the future. xmonad-contribA Prime is a function that transforms an XConfig. It's not a monad, but we turn on RebindableSyntax so we can abuse the pretty do notation. xmonad-contribComposes two Arrs using  from Prelude. xmonad-contrib{Because of RebindableSyntax, this is necessary to enable you to use if-then-else expressions. No need to call it directly. xmonad-contrib,This is the xmonad main function. It passes  (the default \) into your do-block, takes the modified config out of your do-block, and then runs xmonad.The do-block is a  6. Advanced readers can skip right to that definition. xmonad-contribThis doesn't modify the config in any way. It's just here for your initial config because Haskell doesn't allow empty do-blocks. Feel free to delete it once you've added other stuff. xmonad-contrib+Non-focused windows border color. Default:  "#dddddd" xmonad-contrib'Focused windows border color. Default:  "#ff0000" xmonad-contrib-The preferred terminal application. Default: "xterm" xmonad-contrib4The mod modifier, as used by key bindings. Default: mod1Mask+ (which is probably alt on your computer). xmonad-contrib'The border width (in pixels). Default: 1 xmonad-contribrWhether window focus follows the mouse cursor on move, or requires a mouse click. (Mouse? What's that?) Default: True xmonad-contribIf True, a mouse click on an inactive window focuses it, but the click is not passed to the window. If False, the click is also passed to the window. Default True xmonad-contrib7The action to run when a new window is opened. Default: ` manageHook =: composeAll [className =? "MPlayer" --> doFloat, className =? "Gimp" --> doFloat]:To add more rules to this list, you can say, for instance: import XMonad.StackSet ... manageHook =+ (className =? "Emacs" --> doF kill) manageHook =+ (className =? "Vim" --> doF shiftMaster)<Note that operator precedence mandates the parentheses here. xmonad-contribCustom X event handler. Return All Truef if the default handler should also be run afterwards. Default does nothing. To add an event handler: Kimport XMonad.Hooks.ServerMode ... handleEventHook =+ serverModeEventHook xmonad-contrib$List of workspaces' names. Default: map show [1 .. 9 :: Int]. Adding appends to the end:  workspaces =+ ["0"]<This is useless unless you also create keybindings for this. xmonad-contribtThe action to perform when the windows set is changed. This happens whenever focus change, a window is moved, etc.  logHook =+ takes an X ()* and appends it via '(>>)'. For instance: <import XMonad.Hooks.ICCCMFocus ... logHook =+ takeTopFocusDNote that if your expression is parametrically typed (e.g. of type MonadIO m => m ()2), you'll need to explicitly annotate it, like so: 4 logHook =+ (io $ putStrLn "Hello, world!" :: X ()) xmonad-contrib"The action to perform on startup. startupHook =+ takes an X ()* and appends it via '(>>)'. For instance: Cimport XMonad.Hooks.SetWMName ... startupHook =+ setWMName "LG3D"DNote that if your expression is parametrically typed (e.g. of type MonadIO m => m ()<), you'll need to explicitly annotate it, as documented in  . xmonad-contribnThe client events that xmonad is interested in. This is useful in combination with handleEventHook. Default: ?structureNotifyMask .|. enterWindowMask .|. propertyChangeMask / clientMask =+ keyPressMask .|. keyReleaseMask xmonad-contriblThe root events that xmonad is interested in. This is useful in combination with handleEventHook. Default: substructureRedirectMask .|. substructureNotifyMask .|. enterWindowMask .|. leaveWindowMask .|. structureNotifyMask .|. buttonPressMask xmonad-contribKey bindings to  actions. Default: see  `man xmonad`.  G takes a list of keybindings specified emacs-style, as documented in a0. For example, to change the "kill window" key: 0 keys =- ["M-S-c"] keys =+ [("M-M1-x", kill)] xmonad-contribMouse button bindings to an # actions on a window. Default: see  `man xmonad`. To make mod- scrollwheel switch workspaces: import XMonad.Actions.CycleWS (nextWS, prevWS) ... mouseBindings =+ [((mod4Mask, button4), const prevWS), ((mod4Mask, button5), const nextWS)]9Note that you need to specify the numbered mod-mask e.g. 6 instead of just  . xmonad-contrib=Configure workspaces through a Prime-like interface. Example: x withWorkspaces $ do wsKeys =+ ["0"] wsActions =+ [("M-M1-", windows . swapWithCurrent)] wsSetName 1 "mail"This will set  & and add the necessary keybindings to  H. Note that it won't remove old keybindings; it's just not that clever. xmonad-contrib"The list of workspace names, like   but with two differences: ZIf any entry is the empty string, it'll be replaced with the corresponding entry in  .%The list is truncated to the size of  .The default value is  "".iIf you'd like to create workspaces without associated keyspecs, you can do that afterwards, outside the   block, with   =+. xmonad-contribFThe list of workspace keys. These are combined with the modifiers in  A to form the keybindings for navigating to workspaces. Default: ["1","2",...,"9"]. xmonad-contrib0Mapping from key prefix to command. Its type is [(String, String -> X())]+. The key prefix may be a modifier such as "M-", or a submap prefix such as "M-a ", or both, as in "M-a M-"H. The command is a function that takes a workspace name and returns an X ().  3 creates keybindings for the cartesian product of   and  .Default: >[("M-", windows . W.greedyView), ("M-S-", windows . W.shift)] xmonad-contrib.A convenience for just modifying one entry in  9, in case you only want a few named workspaces. Example: , wsSetName 1 "mail" wsSetName 2 "web" xmonad-contrib5Configure screen keys through a Prime-like interface: * withScreens $ do sKeys =: ["e", "r"]+This will add the necessary keybindings to  H. Note that it won't remove old keybindings; it's just not that clever. xmonad-contribCThe list of screen keys. These are combined with the modifiers in  A to form the keybindings for navigating to workspaces. Default:  ["w","e","r"]. xmonad-contrib0Mapping from key prefix to command. Its type is [(String, ScreenId -> X())]. Works the same as  & except for a different function type.Default: L[("M-", windows . onScreens W.view), ("M-S-", windows . onScreens W.shift)] xmonad-contribConverts a stackset transformer parameterized on the workspace type into one parameterized on the screen type. For example, you can use onScreens W.view 0 to navigate to the workspace on the 0th screen. If the screen id is not recognized, the returned transformer acts as an identity function. xmonad-contribKAdd a layout to the list of layouts choosable with mod-space. For instance: 8import XMonad.Layout.Tabbed ... addLayout simpleTabbed xmonad-contribPReset the layoutHook from scratch. For instance, to get rid of the wide layout: - resetLayout $ Tall 1 (3/100) (1/2) ||| Full(The dollar is like an auto-closing parenthesis, so all the stuff to the right of it is treated like an argument to resetLayout.) xmonad-contrib Modify your  layoutHookW with some wrapper function. You probably want to call this after you're done calling   . Example: >import XMonad.Layout.NoBorders ... modifyLayout smartBorders xmonad-contribReplace the current ` with the given one. If you use this, you probably want it to be the first line of your config. xmonad-contribTurns a pure function on  into a  . xmonad-contribTurns an IO function on  into a  . #$ %&zyxwvutsrqponmlkji' ()*+  ,-gf./~}|{0123! "4Z[UTYWPOXRQS53120678GD9:;<=>EF?JKL@ABCHIMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     %$#"! +*)('&-,543210/.9876DCBA@?>=<;:EFGPONMLKJIHQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~}      !"#$%&'()*+,-/.0123?>=<;:987654@ABCDEFJIHGPONMLKXWVUTSRQ^]\[ZYedcba`_fghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,.-456789:;<=>?BCDEFGHIJKLMN\]^_abcdeh      !"#$%&'()*+,-./0123456789:;<@?>=ABCDEFGHKJIMLONTSRQPVUYXWZ[\]^_`abcdefghijklmnopqrstuvwxyz~}|{      2MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     %$#"! +*)('&-,543210/.9876DCBA@?>=<;:EFGPONMLKJIHQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|~}      !"#$%&'()*+,-/.0123?>=<;:987654@ABCDEFJIHGPONMLKXWVUTSRQ^]\[ZYedcba`_fghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,.-      !"#$%&'()*+,-./0123456789:;<@?>=ABCDEFGHKJIMLONTSRQPVUYXWZ[\]^_`abcdefghijklmnopqrstuvwxyz~}|{ #$ %&zyxwvutsrqponmlkji' ()*+  ,-gf./~}|{013! "4Z[UTYWPOXRQS53120678GD9:;<=>EF?JKL@ABCHI456789:;<=>?BCDEFGHIJKLMN\]^_abcdeh  0 0b$(c) David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone1x        cNone4T xmonad-contribA 8 to mark a window to not be shown in pagers or taskbars. xmonad-contribAn ? action to mark a window to not be shown in pagers or taskbars.    dL. S. Leary 2018BSD3-style (see LICENSE) L. S. Learyunstable not portableNone>M^Y xmonad-contribThe XLike typeclass over monads reading XConf values and tracking XState state. xmonad-contribThe PureX newtype over ReaderT XConf (State XState) a. xmonad-contrib Consume a PureX a. xmonad-contrib Despite appearing less general, PureX a is actually isomorphic to XLike m => m a. xmonad-contribA generalisation of 6+. Handles refreshing for an action that performs no refresh of its own but can indicate that it needs one through a return value that's tested against the supplied predicate. The action can interleave changes to the  WindowSet with IO or changes to the XState. xmonad-contrib A version of windowBracket' specialised to take a  PureX Any@ action and handle windowset changes with a refresh when the Any holds True. Analogous to 5=. Don't bake this into your action; it's for the end-user. xmonad-contrib A version of  windowBracket specialised to take an X ()? action and perform a refresh handling any changes it makes. xmonad-contribA & that accepts a monoidal return value. xmonad-contribA whenX/whenM& that accepts a monoidal return value. !xmonad-contribA _& that accepts a monoidal return value. "xmonad-contribAkin to <*u. Discarding the wrapped value in the second argument either way, keep its effects iff the first argument returns Any True. #xmonad-contribAkin to a low precedence <><. Combines applicative effects left-to-right and wrapped Bools with && (instead of ||). $xmonad-contribA generalisation of t. %xmonad-contribkIf there is a current tag and a focused window, perform an operation with them, otherwise return mempty. &xmonad-contribA generalisation of 7. 'xmonad-contrib A variant of W.modify and  W.modify' handling the Nothing and Just cases uniformly. (xmonad-contrib)Get the stack from the current workspace. )xmonad-contrib'Set the stack on the current workspace. *xmonad-contrib'Get the focused window if there is one. +xmonad-contribGet the current screen. ,xmonad-contribGet the current workspace. -xmonad-contribGet the current tag. .xmonad-contribGet the current ScreenId.xmonad-contrib4Internal. Refresh-tracking logic of view operations. /xmonad-contrib A version of W.view! that tracks the need to refresh. 0xmonad-contrib A version of  W.greedyView! that tracks the need to refresh. 1xmonad-contrib8View a workspace if it's not visible. An alternative to view and  greedyViewV that rather than changing the current screen or affecting another opts not to act. 2xmonad-contribA refresh-tracking version of W.Shift.          ! " # $ % & ' ( ) * + , - . / 0 1 2          ! " # $ % ' & ( ) * / 0 1 2 + , - . "4 #1e(c) Daniel Schoepe 2009BSD3-style (see LICENSE)daniel.schoepe@gmail.comunstable not portableNoneQkxmonad-contribBModify the map of state extensions by applying the given function. <xmonad-contrib_Apply a function to a stored value of the matching type or the initial value if there is none. =xmonad-contribAdd a value to the extensible state field. A previously stored value with the same type will be overwritten. (More precisely: A value whose string representation of its type is equal to the new one's) >xmonad-contribaTry to retrieve a value of the requested type, return an initial value if there is no such value. @xmonad-contrib`Remove the value from the extensible state field that has the same type as the supplied argument < = > ? @ A = < @ > ? Af(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone2m/ B C D E F G H C D E H G F Bg/(c) Jan Vornberger 2009, Alejandro Serrano 2010BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=>@AQo N Nh(c) 2013 Dmitri IouchtchenkoBSD3-style (see LICENSE)+Dmitri Iouchtchenko <johnnyspoon@gmail.com>unstable unportableNone2yxmonad-contrib2Workspace Screens in reverse-chronological order. Rxmonad-contribA dE that keeps track of the order in which workspaces have been viewed. Uxmonad-contribA list of workspace tags in the order they have been viewed, with the most recent first. No duplicates are present, but not all workspaces are guaranteed to appear, and there may be workspaces that no longer exist.xmonad-contribmUpdate the last visible workspace on each monitor if needed already there, or move it to the front if it is. R S T U V R U T S Vi(c) 2017 Ivan MalisonBSD3-style (see LICENSE)IvanMalison@gmail.comunstable unportableNone{ Z [ \ ] \ ] [ Zj(c) Anton Pirogov, 2014BSD3'Anton Pirogov <anton.pirogov@gmail.com>unstable unportableNone2 ^xmonad-contrib3Complete wallpaper configuration passed to the hook `xmonad-contribCWhere the wallpapers reside (if empty, will look in ~/.wallpapers/) axmonad-contrib1List of the wallpaper associations for workspaces dxmonad-contribRepresents a wallpaper exmonad-contribSingle, fixed wallpaper fxmonad-contrib'Random wallpaper from this subdirectoryxmonad-contribhinternal. to use XMonad state for memory in-between log-hook calls and remember PID of old external call gxmonad-contribBdefault configuration. looks in ~/.wallpapers/ for WORKSPACEID.jpg hxmonad-contribereturns the default association list (maps name to name.jpg, non-alphanumeric characters are omitted) ixmonad-contribGAdd this to your log hook with the workspace configuration as argument.xmonad-contrib"Picks a random element from a listxmonad-contribeget absolute picture path of the given wallpaper picture or select a random one if it is a directoryxmonad-contribTake a path to a picture, return (width, height) if the path is a valid picture (requires imagemagick tool identify to be installed)xmonad-contribcomplete unset fields to default values (wallpaper directory = ~/.wallpapers, expects a file "NAME.jpg" for each workspace named NAME)xmonad-contribKGets a list of geometry rectangles and filenames, builds and sets wallpaper ^ _ ` a b c d e f g h i i ^ _ ` a d e f b c g hk Ben Boeckel <mathstuf@gmail.com>BSD-style (see LICENSE) Ben Boeckel <mathstuf@gmail.com>unstable unportableNone2% uxmonad-contribThis * will selectively apply a hook as set by  w and  y. wxmonad-contribhookNext name True8 arranges for the next spawned window to have the hook name applied, hookNext name False cancels it. yxmonad-contribhookAllNew name True, arranges for new windows to have the hook name applied, hookAllNew name False cancels it {xmonad-contrib@Query what will happen at the next ManageHook call for the hook name. |xmonad-contrib.Whether the next window will trigger the hook name. }xmonad-contrib*Whether new windows will trigger the hook name. u v w x y z { | } ~  u v w x y z { | } ~  l Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNone2 xmonad-contribThis + will selectively float windows as set by   and  . xmonad-contribfloatNext TrueI arranges for the next spawned window to be sent to the floating layer, floatNext False cancels it. xmonad-contribfloatAllNew True= arranges for new windows to be sent to the floating layer, floatAllNew False cancels it xmonad-contrib,Whether the next window will be set floating xmonad-contrib(Whether new windows will be set floating m!(c) Brandon S Allbery KF8NH, 2014BSD3-style (see LICENSE)allbery.b@gmail.comunstable not portableNone2] xmonad-contribA combinator to add full ! debugging in a single operation. xmonad-contrib A combinator to add triggerable K debugging in a single operation. Specify a key sequence as a string in M syntax; press this key before opening the window to get just that logged. xmonad-contribPlace this at the start of a P, or possibly other places for a more limited view. It will show the current StackSet5 state and the new window, and set a flag so that manageDebugLogHook will display the final StackSet state.pNote that the initial state shows only the current workspace; the final one shows all workspaces, since your  might use e.g. , xmonad-contrib manageDebug$ only if the user requested it with debugNextManagedWindow. xmonad-contribIf  manageDebug. has set the debug-stack flag, show the stack. xmonad-contrib.Request that the next window to be managed be  manageDebugl-ed. This can be used anywhere an X action can, such as key bindings, mouse bindings (presumably with ), , etc.  n(c) Braden Shepherdson 2008BSD-style (as xmonad)Braden.Shepherdson@gmail.comunstable unportableNone2C xmonad-contribMaster  that must be in your  xmonad.hs . xmonad-contribAppends the given  to the permanent dynamic . xmonad-contribModifies the permanent  with an arbitrary function. xmonad-contribCreates a one-shot 6. Note that you have to specify the two parts of the + separately. Where you would usually write: "className =? "example" --> doFloatyou must call   as 7oneShotHook dynHooksRef (className =? "example) doFloat  o(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone2Z  p(c) 2012 kedals0BSD3-style (see LICENSE)Dal <kedasl0@gmail.com>unstable unportableNone29 xmonad-contribAHelper to group workspaces. Multiply workspace by screens number. xmonad-contrib`Create workscreen list from workspace list. Group workspaces to packets of screens number size. xmonad-contrib$Initial configuration of workscreens xmonad-contribView workscreen of index  WorkscreenIdR. If current workscreen is asked workscreen, workscreen's workspaces are shifted. xmonad-contrib5Shift a window on the first workspace of workscreen  WorkscreenId. q(c) 2018 Yclept NemoBSD-style (see LICENSE)Stability : unstable unportableNone2( xmonad-contribMapping from workspace tag to master history list. The current master is the head of the list, the previous master the second element, and so on. Without history, the list is empty. xmonad-contrib-Return the master history map from the state. xmonad-contribReturn the master history list of a given tag. The master history list may be empty. An invalid tag will also result in an empty list. xmonad-contrib8Return the master history list of the current workspace. xmonad-contribReturn the master history list of the workspace containing the given window. Return an empty list if the window is not in the stackset. xmonad-contribModify the master history list of a given workspace, or the empty list of no such workspace is mapped. The result is then re-inserted into the master history map. xmonad-contribModify the master history list of the current workspace. While the current workspace is guaranteed to exist; its master history may not. For more information see  . xmonad-contribA d to update the master history mapping. Non-existent workspaces are removed, and the master history list for the current workspaces is updated. See  . xmonad-contrib Backend for  .xmonad-contribLess efficient version of 6. Given broader eventual adoption, replace this with . xmonad-contribGiven the current master history list and an integrated stack, return the new master history list. The current master is either moved (if it exists within the history) or added to the head of the list, and all missing (i.e. closed) windows are removed. xmonad-contribWrap   ; see also  . xmonad-contribLike   but discard the result. xmonad-contribWrap   ; see also  . xmonad-contribLike   but discard the result. xmonad-contribWrap   ; see also  . xmonad-contribLike   but discard the result. xmonad-contribNApply the given master history stack modifier to the current stack. If given True<, all non-focused floating windows will be ignored. Return True$ if insufficient history; if so use ^* to sequence a backup promotion function. xmonad-contribMIf the focused window is the master window and there is no previous master, do nothing. Otherwise swap the master with the previous master. If the focused window is not the master window, swap it with the master window. In either case focus follows the original window, i.e. the focused window does not change, only its position.dThe first argument is the previous master (which may not exist), the second a window stack. Return True if the master history hindered the swap; the history is either empty or out-of-sync. Though the latter shouldn't happen this function never changes the stack under such circumstances. xmonad-contribPerform the same swap as  . However the new window receives the focus; it appears to "swap into" the position of the original window. Under this model focus follows stack position and the zipper does not move.See  + for more details regarding the parameters. xmonad-contrib0If the focused window is the master window, use  . Otherwise use  .See  + for more details regarding the parameters. xmonad-contribbCycle a list by the given count. If positive, cycle to the left. If negative, cycle to the right:cycleN 2 [1,2,3,4,5] [3,4,5,1,2]cycleN (-2) [1,2,3,4,5] [4,5,1,2,3] xmonad-contribWrap   with an initial index of 0, discarding the list's length. xmonad-contribJGiven a predicate, an initial index and a list, return a tuple containing: List length.Indexed list of elements which satisfy the predicate. An indexed element is a tuple containing the element index (offset by the initial index) and the element.4List of elements which do not satisfy the predicate.qThe initial index and length of the list simplify chaining calls to this function, such as for zippers of lists. xmonad-contribWrap  " with an initial virtual index of 0X. Return only the unindexed list with elements from the leftover indexed list appended. xmonad-contrib Inverse of  5. Merge an indexed list with an unindexed list (see  \). Given a virtual index, an indexed list and an unindexed list, return a tuple containing:Virtual index after the unindexed listRemainder of the indexed listMerged unindexed listIf the indexed list is empty, this functions consumes the entire unindexed list. If the unindexed list is empty, this function consumes only adjacent indexed elements. For example, [(10,"ten"),(12,"twelve")]1 implies missing unindexed elements and so once  (10,"ten")& is consumed this function concludes.4The indexed list is assumed to have been created by  p and not checked for correctness. Indices are assumed to be ascending, i.e. > [(1,"one"),(2,"two"),(4,"four")]The initial and final virtual indices simplify chaining calls to the this function, as as for zippers of lists. Positive values shift the unindexed list towards the tail, as if preceded by that many elements. xmonad-contribRemove all elements of the set from the stack. Skip the currently focused member. Return an indexed list of excluded elements and the modified stack. Use  + to re-insert the elements using this list. xmonad-contrib Inverse of   . Given a list of elements and their original indices, re-insert the elements into these same positions within the stack. Skip the currently focused member. Works best if the stack's length hasn't changed, though if shorter any leftover elements will be tacked on. xmonad-contribIf True!, remove non-existent workspaces.xmonad-contribFunction used to update the master history list of the current workspace. First argument is the master history, second is the integrated stack. See   for more details. xmonad-contribThe master history list.xmonad-contribThe integrated stack.  r(c) nzeh@cs.dal.caBSD3-style (see LICENSE)nzeh@cs.dal.caunstable unportableNone2;O xmonad-contrib1The direction in which to look for the next match xmonad-contrib(Forward from current window or workspace xmonad-contrib)Backward from current window or workspace xmonad-contribBackward in history xmonad-contribFocuses the next window for which the given query produces the same result as the currently focused window. Does nothing if there is no focused window (i.e., the current workspace is empty). xmonad-contrib~Focuses the next window that matches the given boolean query. Does nothing if there is no such window. This is the same as   with alternate action  return (). xmonad-contrib}Focuses the next window that matches the given boolean query. If there is no such window, perform the given action instead. xmonad-contribuAction that needs to be executed as a logHook to maintain the focus history of all windows as the WindowSet changes. xmonad-contribA query that matches all windows on visible workspaces. This is useful for configurations with multiple screens, and matches even invisible windows. s(c) 2018 Yclept NemoBSD-style (see LICENSE)Stability : unstable unportableNonem xmonad-contribTRectangle as two points. What those points mean depends on the conversion function. xmonad-contribPoint nearest to the origin. xmonad-contribPoint furthest from the origin. xmonad-contrib>There are three possible ways to convert rectangles to pixels:>Consider integers as "gaps" between pixels; pixels range from (N,N+1), exclusively: (0,1), (1,2), and so on. This leads to interval ambiguity: whether an integer endpoint contains a pixel depends on which direction the interval approaches the pixel. Consider the adjacent pixels (0,1) and (1,2) where 1 can refer to either pixel (0,1) or pixel (1,2).KConsider integers to demarcate the start of each pixel; pixels range from [N,N+1): [0,1), [1,2), and so on - or equivalently: (N,N+1]P. This is the most flexible coordinate system, and the convention used by the P type.LConsider integers to demarcate the center of each pixel; pixels range from [N,N+1], as though each real-valued coordinate had been rounded (either down or up) to the nearest integers. So each pixel, from zero, is listed as: [0,0], [1,1], [2,2], and so on. Rather than a coordinate system, this considers pixels as row/colum indices. While easiest to reason with, indices are unable to represent zero-dimension rectangles.@Consider pixels as indices. Do not use this on empty rectangles. xmonad-contribConsider pixels as [N,N+1)- coordinates. Available for empty rectangles. xmonad-contribInvert  . xmonad-contribInvert  . xmonad-contribTrue if either the L or K2 fields are zero, i.e. the rectangle has no area. xmonad-contribTrue if the intersection of the set of points comprising each rectangle is not the empty set. Therefore any rectangle containing the initial points of an empty rectangle will never intersect that rectangle - including the same empty rectangle. xmonad-contribTrue if the first rectangle contains at least all the points of the second rectangle. Any rectangle containing the initial points of an empty rectangle will be a superset of that rectangle - including the same empty rectangle. xmonad-contribReturn the smallest set of rectangles resulting from removing all the points of the second rectangle from those of the first, i.e. r1 - r2 , such that  0 <= l <= 4 where l% is the length of the resulting list. xmonad-contribFit a P within the given borders of itself. Given insufficient space, borders are minimized while preserving the ratio of opposite borders. Origin is top-left, and yes, negative borders are allowed. xmonad-contribCalculate the center - (x,y) - as if the P were bounded. xmonad-contribInvert 4h. Since that operation is lossy a roundtrip conversion may not result in the original value. The first P is scaled to the second:3(Rectangle 2 2 6 6) `toRatio` (Rectangle 0 0 10 10),RationalRect (1 % 5) (1 % 5) (3 % 5) (3 % 5) xmonad-contrib Top border.xmonad-contribBottom border.xmonad-contrib Right border.xmonad-contrib Left border.xmonad-contribKSmallest allowable rectangle dimensions, i.e. width/height, with values <0 defaulting to 0.  t:(C) -- Brent Yorgey 2018 Yclept NemoBSD-style (see LICENSE)<byorgey@gmail.com>unstable unportableNone2=?@Aw) xmonad-contribsMessage to dynamically modify (e.g. increase/decrease/set) the size of the screen spacing and window spacing. See  . xmonad-contribA type synonym for the   . xmonad-contribA type synonym for the   . xmonad-contribA type synonym for the   . xmonad-contribMessages to alter the state of  + using the endomorphic function arguments. xmonad-contribA K providing customizable screen and window borders. Borders are clamped to  [0,Infinity] before being applied. xmonad-contribWhen True< borders are not applied if there fewer than two windows. xmonad-contribThe screen border. xmonad-contribIs the screen border enabled? xmonad-contribThe window borders. xmonad-contribIs the window border enabled? xmonad-contrib%Represent the borders of a rectangle. xmonad-contrib Generate the  , exposing all initial state of  . xmonad-contribSet   to the given 8. xmonad-contribSet   to the given  . xmonad-contribSet   to the given 8. xmonad-contribSet   to the given  . xmonad-contribSet   to the given 8. xmonad-contribToggle  . xmonad-contribToggle  . xmonad-contribToggle  . xmonad-contrib'Set all borders to a uniform size; see   and  . xmonad-contribIncrement the borders of   using  1, which preserves border ratios during clamping. xmonad-contribIncrement the borders of   using  . xmonad-contrib Inverse of  , equivalent to applying . xmonad-contrib Inverse of  . xmonad-contrib.Increment both screen and window borders; see   and  . xmonad-contrib Inverse of  .xmonad-contribConstruct a uniform  +. That is, having equal individual borders. xmonad-contribMap a function over a  ,. That is, over the four individual borders.xmonad-contribClamp borders to within  [0,Infinity]. xmonad-contribaChange the border spacing by the provided amount, adjusted so that at least one border field is >=0.xmonad-contrib Interface to s.xmonad-contribRReturn the border necessary to derive the second rectangle from the first. Since   may scale the borders to stay within rectangle bounds, it is not an invertible operation, i.e. applying a negated border may not return the original rectangle. Use this instead.xmonad-contribEGiven an ordering and a three-tuple, return the first tuple entry if J , second if K and third if L. xmonad-contribHSurround all windows by a certain number of pixels of blank space. See  . xmonad-contribSurround all windows by a certain number of pixels of blank space, and additionally adds the same amount of spacing around the edge of the screen. See  . xmonad-contribySurrounds all windows with blank space, except when the window is the only visible window on the current workspace. See  . xmonad-contribSurrounds all windows with blank space, and adds the same amount of spacing around the edge of the screen, except when the window is the only visible window on the current workspace. See  . xmonad-contribSee  . xmonad-contribSee  . xmonad-contribThe  .xmonad-contribThe  .xmonad-contribThe  .xmonad-contribThe  .xmonad-contribThe  .0                  0                  uP(c) -- David Roundy <droundy@darcs.net> 2018 Yclept NemoBSD3-style (see LICENSE)*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone2=>?@AQ xmonad-contribUsed to indicate to the  , instance for  ## how two lists should be combined. xmonad-contribuses  !xmonad-contribuses  "xmonad-contribuses  #xmonad-contribIn order of increasing ambiguity (less borders more frequently), where subsequent constructors add additional cases where borders are not drawn than their predecessors. These behaviors make most sense with with multiple screens: for single screens,  ( or  6 makes more sense. $xmonad-contribsThis constructor is used to combine the borderless windows provided by the SetsAmbiguous instances from two other  # data types. %xmonad-contribEOnly remove borders on floating windows that cover the whole screen. &xmonad-contribLike  'J, but only removes borders if no window stacked below remains visible. Considers all floating windows on the current screen and all visible tiled windows of the child layout. If any such window (that is stacked below) shows in any gap between the parent layout rectangle and the physical screen, the border will remain drawn. 'xmonad-contribXOnly remove borders on floating windows that exactly cover the parent layout rectangle. (xmonad-contribGNever remove borders when ambiguous: this is the same as smartBorders. )xmonad-contrib5Focus in an empty screen does not count as ambiguous. *xmonad-contrib7No borders on full when all other screens have borders. +xmonad-contrib~Borders are never drawn on singleton screens. With this one you really need another way such as a statusbar to detect focus. ,xmonad-contribmSetsAmbiguous allows custom actions to generate lists of windows that should not have borders drawn through  .cTo add your own (though perhaps those options would better belong as an additional constructor to  #2), you can add the following function. Note that lr!, the parameter representing the P% of the parent layout, was added to  -+ in 0.14. Update your instance accordingly. 4data MyAmbiguity = MyAmbiguity deriving (Read, Show) instance SetsAmbiguous MyAmbiguity where hiddens _ wset lr mst wrs = otherHiddens Screen \\ otherHiddens OnlyScreenFloat where otherHiddens p = hiddens p wset lr mst wrsJThe above example is redundant, because you can have the same result with: _layoutHook = lessBorders (Combine Difference Screen OnlyScreenFloat) (Tall 1 0.5 0.03 ||| ... )To get the same result as  6: 8layoutHook = lessBorders Never (Tall 1 0.5 0.03 ||| ...)-This indirect method is required to keep the - and 1< for ConfigurableBorder so that xmonad can serialize state.xmonad-contrib2Generates a list of windows without borders. Uses  , to filter the current layout.xmonad-contribFWindows that never have borders. This list is added to the result of generateHidden.xmonad-contrib]Windows that always have borders - i.e. ignored by this module. This list is subtraced from  and so has higher precendence.xmonad-contrib;The current set of windows without borders, i.e. the state. 0xmonad-contribIf True9, never remove the border from the specified window. If False5, always remove the border from the specified window. 1xmonad-contribReset the effects of any  0# messages on the specified window. 4xmonad-contrib5Removes all window borders from the specified layout. 5xmonad-contrib3Forces a layout to use the specified border width.  4 is equivalent to  5 0. 6xmonad-contribHRemoves the borders from a window under one of the following conditions:xThere is only one screen and only one window. In this case it's obvious that it has the focus, so no border is needed.:A floating window covers the entire screen (e.g. mplayer). 7xmonad-contribnApply a datatype that has a SetsAmbiguous instance to provide a list of windows that should not have borders._This gives flexibility over when borders should be drawn, in particular with xinerama setups:  # has a number of useful  , instances 8xmonad-contrib for sending  0 messages: $ title =? "foo" --> hasBorder TrueThere is no equivalent for  1. 9xmonad-contribOnly necessary with  /) - remove non-existent windows from the  or  lists.  ! " # + ( $ & ' % * ) , - . / 0 1 2 3 4 5 6 7 8 9 4 6 5 7 8 , - # + ( $ & ' % * )  ! " / 0 1 9 2 3 .v(c) 2008 Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>unstable unportableNone2=@A Gxmonad-contribswitch to Full layout Hxmonad-contribswitch to Full with no borders Ixmonad-contribMirror the current layout. Jxmonad-contribRemove borders. Kxmonad-contribApply smart borders. F G H I J K F G H I J Kw(c) Jan Vornberger 2009BSD3-style (see LICENSE)Adam Vogt <vogt.adam@gmail.com>unstable unportableNone2C Pxmonad-contribreplacex must be run before xmonad starts to signals to compliant window managers that they must exit and let xmonad take over. P P9(C) 2007 Spencer Janssen, Andrea Rossato, glasser@mit.eduBSD-style (see LICENSE)/Christian Thiemann <mail@christian-thiemann.de>unstable unportableNone$ Qxmonad-contribReturns the output. Rxmonad-contribWait is in  (microseconds) Sxmonad-contrib@Multiplies by ONE MILLION, for functions that take microseconds. Use like: (5.5 `seconds`)UIn GHC 7 and later, you must either enable the PostfixOperators extension (by adding !{-# LANGUAGE PostfixOperators #-}7to the top of your file) or use seconds in prefix form:  seconds 5.5 Txmonad-contrib T bypasses h, because spawn passes strings to /bin/sh to be interpreted as shell commands. This is often what one wants, but in many cases the passed string will contain shell metacharacters which one does not want interpreted as such (URLs particularly often have shell metacharacters like '&' in them). In this case, it is more useful to specify a file or program to be run and a string to give it as an argument so as to bypass the shell and be certain the program will receive the string as you typed it. Examples: , ((modm, xK_Print), unsafeSpawn "import -window root $HOME/xwd-$(date +%s)$$.png") , ((modm, xK_d ), safeSpawn "firefox" [])yNote that the unsafeSpawn example must be unsafe and not safe because it makes use of shell interpretation by relying on $HOME and interpolation, whereas the safeSpawn example can be safe because Firefox doesn't need any arguments if it is just being started. Uxmonad-contrib Simplified  T*; only takes a program (and no arguments): -, ((modm, xK_d ), safeSpawnProg "firefox") Vxmonad-contrib An alias for h; the name emphasizes that one is calling out to a Turing-complete interpreter which may do things one dislikes; for details, see  T.xmonad-contribOpen a terminal emulator. The terminal emulator is specified in the default configuration as xterm by default. It is then asked to pass the shell a command with certain options. This is unsafe in the sense of  V Wxmonad-contribOpen a terminal emulator. The terminal emulator is specified in the default configuration as xterm by default. It is then asked to pass the shell a command with certain options. This is unsafe in the sense of  V Xxmonad-contrib<Run a given program in the preferred terminal emulator; see  W. This makes use of  T. Yxmonad-contribELaunch an external application through the system shell and return a Handle to its standard input. @A Q R S T U V W X Y Q R T U V W X S YA@(c) glasser@mit.eduBSDglasser@mit.edustable unportableNoneX [xmonad-contribdzenConfig config s will display the string s! according to the configuration config&. For example, to display the string "foobar"4 with all the default settings, you can simply call dzenConfig return "foobar"*Or, to set a longer timeout, you could use  dzenConfig (timeout 10) "foobar"EYou can combine configurations with the (>=>) operator. To display "foobar"2 for 10 seconds on the first screen, you could use .dzenConfig (timeout 10 >=> xScreen 0) "foobar"9As a final example, you could adapt the above to display "foobar"+ for 10 seconds on the current screen with 3dzenConfig (timeout 10 >=> onCurr xScreen) "foobar" \xmonad-contribdzen wants exactly one newline at the end of its input, so this can be used for your own invocations of dzen. However, all functions in this module will call this for you. ]xmonad-contribKSet the timeout, in seconds. This defaults to 3 seconds if not specified.xmonad-contribISet the timeout, in microseconds. Mostly here for the legacy interface. ^xmonad-contribAdd raw command-line arguments to the configuration. These will be passed on verbatim to dzen2. The default includes no arguments. _xmonad-contribgStart dzen2 on a particular screen. Only works with versions of dzen that support the "-xs" argument. `xmonad-contribTake a screen-specific configuration and supply it with the screen ID of the currently focused screen, according to xmonad. For example, show a 100-pixel wide bar centered within the current screen, you could use *dzenConfig (onCurr (hCenter 100)) "foobar"VOf course, you can still combine these with (>=>); for example, to center the string "foobar"` both horizontally and vertically in a 100x14 box using the lovely Terminus font, you could use pterminus = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*" dzenConfig (onCurr (center 100 14) >=> font terminus) "foobar" axmonad-contrib2Put the top of the dzen bar at a particular pixel. bxmonad-contrib3Put the left of the dzen bar at a particular pixel. cxmonad-contribSet the foreground color.Please be advised that fgColor and bgColor also exist in  XMonad.PromptS. If you use both modules, you might have to tell the compiler which one you mean: aimport XMonad.Prompt as P import XMonad.Util.Dzen as D dzenConfig (D.fgColor "#f0f0f0") "foobar" dxmonad-contribSet the background color. exmonad-contribASet the alignment of the title (main) window content. Note that AlignRightOffset is treated as equal to  AlignRight. Jimport XMonad.Util.Font (Align(..)) dzenConfig (align AlignLeft) "foobar" fxmonad-contribgSet the alignment of the slave window content. Using this option only makes sense if you also use the  lineCount parameter. gxmonad-contribSpecify the font. Check out xfontsel to get the format of the String right; if your dzen supports xft, then you can supply that here, too. hxmonad-contribvCenter height sc? sets the configuration to have the dzen bar appear on screen sc with height heightF, vertically centered with respect to the actual size of that screen. ixmonad-contribhCenter width sc? sets the configuration to have the dzen bar appear on screen sc with width widthH, horizontally centered with respect to the actual size of that screen. jxmonad-contribcenter width height sc? sets the configuration to have the dzen bar appear on screen sc with width width and height height], centered both horizontally and vertically with respect to the actual size of that screen. kxmonad-contrib4Enable slave window and specify the number of lines.Dzen can optionally draw a second window underneath the title window. By default, this window is only displayed if the mouse enters the title window. This option is only useful if the string you want to display contains more than one line. lxmonad-contribdzen str timeout pipes str to dzen2 for timeout microseconds. Example usage: dzen "Hi, mom!" (5 `seconds`) mxmonad-contribdzen str args timeout pipes str to dzen2 for timeout seconds, passing args to dzen. Example usage: 3dzenWithArgs "Hi, dons!" ["-ta", "r"] (5 `seconds`) nxmonad-contribdzenScreen sc str timeout pipes str to dzen2 for timeout microseconds, and on screen sc6. Requires dzen to be compiled with Xinerama support./ S Z [ \ ] ^ _ ` a b c d e f g h i j k l m n [ Z ] g _ h i j ` a b ^ c d e f k l n m S \/x.(c) Spencer Janssen <spencerjanssen@gmail.com>BSD-style (see LICENSE)*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNoned2 oxmonad-contribCStarts dmenu on the current screen. Requires this patch to dmenu: 5http://www.jcreigh.com/dmenu/dmenu-3.2-xinerama.patch pxmonad-contrib*Run dmenu to select an option from a list. qxmonad-contriblike  p# but also takes the command to run. rxmonad-contribLike  q1 but also takes a list of command line arguments. sxmonad-contribLike  u# but also takes the command to run. txmonad-contribLike  s1 but also takes a list of command line arguments. uxmonad-contrib9Run dmenu to select an entry from a map based on the key. o p q r s t u p o u q r s tyDevin Mullins <me@twifkak.com>BSD-style (see LICENSE)Devin Mullins <me@twifkak.com>stable unportableNoneP xxmonad-contrib3The shell command that will handle window selection yxmonad-contrib%Arguments to be passed to menuCommand zxmonad-contribEA function that produces window titles given a workspace and a window {xmonad-contribjPops open a dmenu with window titles. Choose one, and you will be taken to the corresponding workspace. |xmonad-contribPops open a dmenu with window titles. Choose one, and you will be taken to the corresponding workspace. This version accepts a configuration object. }xmonad-contribPops open a dmenu with window titles. Choose one, and you will be taken to the corresponding workspace. This version takes a list of arguments to pass to dmenu. ~xmonad-contribPops open an application with window titles given over stdin. Choose one, and you will be taken to the corresponding workspace. xmonad-contribPops open an application with window titles given over stdin. Choose one, and you will be taken to the corresponding workspace. This version takes a list of arguments to pass to dmenu. xmonad-contribPops open a dmenu with window titles. Choose one, and it will be dragged, kicking and screaming, into your current workspace. xmonad-contribPops open a dmenu with window titles. Choose one, and it will be dragged, kicking and screaming, into your current workspace. This version accepts a configuration object. xmonad-contribPops open a dmenu with window titles. Choose one, and it will be dragged, kicking and screaming, into your current workspace. This version takes a list of arguments to pass to dmenu. xmonad-contribPops open an application with window titles given over stdin. Choose one, and it will be dragged, kicking and screaming, into your current workspace. xmonad-contribPops open an application with window titles given over stdin. Choose one, and it will be dragged, kicking and screaming, into your current workspace. This version allows arguments to the chooser to be specified. xmonad-contrib7Brings the specified window into the current workspace. xmonad-contribVCalls dmenuMap to grab the appropriate Window, and hands it off to action if found. xmonad-contrib#A map from window names to Windows. xmonad-contribBA map from window names to Windows, given a windowTitler function.xmonad-contribReturns the window name as will be listed in dmenu. Tagged with the workspace ID, to guarantee uniqueness, and to let the user know where he's going. v w y x z { | } ~   v w y x z { | ~ }  z(c) David Glasser 2007BSD3glasser@mit.edustableportableNone xmonad-contrib Create a  from String,s to xmonad actions from a list of pairs. xmonad-contribDGenerate a list of commands to switch to/send windows to workspaces. xmonad-contrib:Generate a list of commands dealing with multiple screens. xmonad-contrib$A nice pre-defined list of commands. xmonad-contrib}Given a list of command/action pairs, prompt the user to choose a command using dmenu and return the corresponding action. xmonad-contribGiven a list of command/action pairs, prompt the user to choose a command using dmenu-compatible launcher and return the corresponding action. See X.U.Dmenu for compatible launchers. xmonad-contrib!Given the name of a command from  Y, return the corresponding action (or the null action if the command is not found).  {=(c) Peter Olson 2013 and Andrea Rossato and David Roundy 2007BSD-style (see xmonad/LICENSE)polson2@hawk.iit.eduunstable unportableNone xmonad-contribExecutes a command of the list when receiving its index via a special ClientMessageEvent (indexing starts at 1). Sending index 0 will ask xmonad to print the list of command numbers in stderr (so that you can read it in ~/.xsession-errors). Uses 'XMonad.Actions.Commands#defaultCommands as the default. ;main = xmonad def { handleEventHook = serverModeEventHook } exmonadctl 0 # tells xmonad to output command list xmonadctl 1 # tells xmonad to switch to workspace 1 xmonad-contribTserverModeEventHook' additionally takes an action to generate the list of commands. xmonad-contrib_Executes a command of the list when receiving its name via a special ClientMessageEvent. Uses 'XMonad.Actions.Commands#defaultCommands as the default. >main = xmonad def { handleEventHook = serverModeEventHookCmd } 5xmonadctl run # Tells xmonad to generate a run prompt xmonad-contrib=Additionally takes an action to generate the list of commands xmonad-contribListens for an atom, then executes a callback function whenever it hears it. A trivial example that prints everything supplied to it on xmonad's standard out: [main = xmonad def { handleEventHook = serverModeEventHookF "XMONAD_PRINT" (io . putStrLn) } 'xmonadctl -a XMONAD_PRINT "hello world"  |(c) Don Stewart 2007BSD3-style (see LICENSE)dons@cse.unsw.edu.austableportableNoneO  }q(c) Marco Tlio Gontijo e Silva <marcot@riseup.net>, Leonardo Serra <leoserra@minaslivre.org>BSD3-style (see LICENSE)/Marco Tlio Gontijo e Silva <marcot@riseup.net>unstable unportableNonet xmonad-contribThe number of lines in which the workspaces will be arranged. It's possible to use a number of lines that is not a divisor of the number of workspaces, but the results are better when using a divisor. If it's not a divisor, the last line will have the remaining workspaces. xmonad-contribUse  gconftool-2! to find out the number of lines. xmonad-contrib'Specify the number of lines explicitly. xmonad-contribCDefines the behaviour when you're trying to move out of the limits. xmonad-contrib9Ignore the function call, and keep in the same workspace. xmonad-contrib.Get on the other side, like in the Snake game. xmonad-contribYThe plan comes as a row, so it goes to the next or prev if the workspaces were numbered. xmonad-contribDirection to go in the plane. xmonad-contribMThis is the way most people would like to use this module. It attaches the  passed as a parameter with , ,  and , associating it with   to the corresponding  *. It also associates these bindings with < to  . xmonad-contrib(Shift a window to the next workspace in  [. Note that this will also move to the next workspace. It's a good idea to use the same   and   for all the bindings. xmonad-contribMove to the next workspace in  .  ~(c) Markus Ongyerth 2017BSD3-style (see LICENSE)markus@ongy.netunstable not portableNone2! xmonad-contrib8Use this to only do a part of your hook on session start xmonad-contrib1Query if the current startup is the session start xmonad-contribOThis currently has to be added to the end of the startup hook to set the flag.  (c) Christian Wills 2014 BSD3-style (see LICENSE)cwills.dev@gmail.comunstable not portableNone2 xmonad-contribWhen   is executed with a command String and a name String3 respectively. The command string is spawned with  Y@ (as long as the name chosen hasn't been used already) and the Handle? returned is saved in Xmonad's state associated with the name String. xmonad-contribAttempts to retrieve a Handle_ to a pipe previously stored in Xmonad's state associated with the given string via a call to  a. If the given string doesn't exist in the map stored in Xmonad's state Nothing is returned.    Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableSafeQ * xmonad-contribCreate a stack from a list, and the 0-based index of the focused element. If the index is out of bounds, focus will go to the first element. xmonad-contrib>Turn a stack into a list and the index of its focused element. xmonad-contribCreate a stack from a list of C,-tagged values. Focus will go to the first I* value, or if there is none, to the first H one. xmonad-contribTurn a stack into an C7-tagged list. The focused element will be tagged with I, the others with H. xmonad-contrib6Insert an element before the focused one, and focus it xmonad-contrib5Insert an element after the focused one, and focus it xmonad-contrib.Swap the focused element with the previous one xmonad-contrib*Swap the focused element with the next one xmonad-contrib+Swap the focused element with the first one xmonad-contrib&Move the focus to the previous element xmonad-contrib"Move the focus to the next element xmonad-contrib#Move the focus to the first element xmonad-contrib Refocus a Stack a7 on an element satisfying the predicate, or fail to Nothing. xmonad-contrib Refocus a Zipper a7 on an element satisfying the predicate, or fail to Nothing. Never returns  Just Nothing, so the second layer of Maybe is actually redundant. xmonad-contribGet the focused element xmonad-contrib Get the element at a given index xmonad-contrib$Sort a stack of elements supporting , xmonad-contrib/Sort a stack with an arbitrary sorting function xmonad-contribjMap a function over a stack. The boolean argument indcates whether the current element is the focused one xmonad-contrib  without the 8 argument xmonad-contribMonadic version of  xmonad-contribMonadic version of  xmonad-contrib'Apply a function to the focused element xmonad-contribMonadic version of  xmonad-contrib2Apply a function to the element at the given index xmonad-contribMonadic version of  xmonad-contribFiter a stack according to a predicate. The refocusing behavior mimics XMonad's usual one. The boolean argument indicates whether the current element is the focused one. xmonad-contrib  without the 8 argument xmonad-contribDelete the focused element xmonad-contribDelete the ith element xmonad-contrib Analogous to Z. The 8Y argument to the step functions indicates whether the current element is the focused one xmonad-contrib Analogous to Y. The 8Y argument to the step functions indicates whether the current element is the focused one xmonad-contrib  without the 8 argument. xmonad-contrib  without the 8 argument. xmonad-contrib.Find whether an element is present in a stack. xmonad-contribSafe version of  xmonad-contribMap a function across both Hs and Is. The 8 argument is G in a I, D in a H. xmonad-contribMonadic version of  xmonad-contribGet the a from an  Either a a xmonad-contribTag the element with I if the property is true, H otherwise xmonad-contrib Reverse a Stack a; O(1). xmonad-contrib Reverse a Zipper a; O(1)./ / 7The StateFull Layout & FocusTracking Layout Transformer(c) 2018 L. S. LearyBSD3-style (see LICENSE) L. S. Learyunstable unportableNone=>?@Ag   xmonad-contribA type synonym to match the  StateFull pattern synonym. xmonad-contribThe  FocusTracking data type for which the  LayoutClass instance is provided. xmonad-contrib2A pattern synonym for the primary use case of the  FocusTracking transformer; using Full. xmonad-contribCTransform a layout into one that remembers and uses its last focus.   Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNone 12=>?@AQSX_ _. xmonad-contribThis is the same as  8, but it allows the function to use actions inside the f monad. This is useful, for example, if the function has to make decisions based on the results of a z. xmonad-contrib0Type of functions describing modifications to a  & layout. They are transformations on   s of groups.Things you shouldn't do:(Forge new windows (they will be ignored)4Duplicate windows (whatever happens is your problem))Remove windows (they will be added again)ODuplicate layouts (only one will be kept, the rest will get the base layout) Note that  # is a rank-2 type (indicating that  Os must be polymorphic in the layout type), so if you define functions taking  Ss as arguments, or returning them, you'll need to write a type signature and add {- LANGUAGE Rank2Types -} at the beginning xmonad-contribMessages accepted by  -based layouts. All other messages are forwarded to the layout of the currently focused subgroup (as if they had been wrapped in  ). xmonad-contribSSend a message to the enclosing layout (the one that places the groups themselves) xmonad-contrib;Send a message to the layout for nth group (starting at 0) xmonad-contrib3Send a message to the layout for the focused group xmonad-contrib%Send a message to all the sub-layouts xmonad-contribDRefocus the window which should be focused according to the layout. xmonad-contribAModify the ordering/grouping/focusing of windows according to a  xmonad-contribSame as  , but within the  monad xmonad-contribThe type of our layouts.xmonad-contrib"The starting layout for new groupsxmonad-contrib/The layout for placing each group on the screenxmonad-contribThe window groupsxmonad-contrib A seed for generating unique ids xmonad-contrib,A group of windows and its layout algorithm. xmonad-contrib%Split an infinite list into two. I ended up not needing this, but let's keep it just in case. split :: [a] -> ([a], [a]) split as = snd $ foldr step (True, ([], [])) as where step a (True, (as1, as2)) = (False, (a:as1, as2)) step a (False, (as1, as2)) = (True, (as1, a:as2))>Add a unique identity to a layout so we can follow it around. xmonad-contrib Create a   layout.UNote that the second parameter (the layout for arranging the groups) is not used on Windows , but on  Vs. For this reason, you can only use layouts that don't specifically need to manage -s. This is obvious, when you think about it.xmonad-contribFrom a seed, generate an infinite list of keys and a new seed. All keys generated with this method will be different provided you don't use ? again with a key from the list. (if you need to do that, see split instead) xmonad-contribCompare the ids of two   valuesxmonad-contribAdapt our groups to a new stack. This algorithm handles window additions and deletions correctly, ignores changes in window ordering, and tries to react to any other stack changes as gracefully as possible.xmonad-contribJRemove the windows from a group which are no longer present in the stack.xmonad-contrib,Identify the windows not already in a group.xmonad-contribqAdd windows to the focused group. If you need to create one, use the given layout and an id from the given list.xmonad-contrib+Focus the group containing the given windowxmonad-contribFocus the given windowxmonad-contribApply a ModifySpec.xmonad-contribhelper xmonad-contrib.Swap the focused window with the previous one. xmonad-contrib*Swap the focused window with the next one. xmonad-contrib:Swap the focused window with the (group's) master window. xmonad-contrib-Swap the focused group with the previous one. xmonad-contrib)Swap the focused group with the next one. xmonad-contrib-Swap the focused group with the master group. xmonad-contrib/Move focus to the previous window in the group. xmonad-contrib+Move focus to the next window in the group. xmonad-contrib(Move focus to the group's master window. xmonad-contrib!Move focus to the previous group. xmonad-contribMove focus to the next group. xmonad-contribMove focus to the master group.xmonad-contribhelper xmonad-contrib>Move the focused window to a new group before the current one. xmonad-contrib=Move the focused window to a new group after the current one. xmonad-contrib3Move the focused window to the previous group. If G<, when in the first group, wrap around to the last one. If D, create a new group before it. xmonad-contrib/Move the focused window to the next group. If G<, when in the last group, wrap around to the first one. If D, create a new group after it. xmonad-contribSplit the focused group into two at the position of the focused window (below it, unless it's the last window - in that case, above it).%         %          Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedstable unportableNone@ASX } xmonad-contrib-Swap the focused window with the previous one xmonad-contrib)Swap the focused window with the next one xmonad-contrib.Swap the focused window with the master window xmonad-contriboIf the focused window is floating, focus the next floating window. otherwise, focus the next non-floating one. !xmonad-contriboIf the focused window is floating, focus the next floating window. otherwise, focus the next non-floating one. "xmonad-contribMove focus to the master window #xmonad-contrib7Move focus between the floating and non-floating layers $xmonad-contrib,Swap the focused group with the previous one %xmonad-contrib(Swap the focused group with the next one &xmonad-contrib,Swap the focused group with the master group 'xmonad-contrib$Move the focus to the previous group (xmonad-contrib Move the focus to the next group )xmonad-contrib"Move the focus to the master group *xmonad-contrib3Move the focused window to the previous group. The 8q argument determines what will be done if the focused window is in the very first group: Wrap back to the end (G%), or create a new group before it (D). +xmonad-contrib/Move the focused window to the next group. The 8v argument determines what will be done if the focused window is in the very last group: Wrap back to the beginning (G$), or create a new group after it (D). ,xmonad-contrib=Move the focused window to a new group before the current one -xmonad-contrib<Move the focused window to a new group after the current one .xmonad-contribFSplit the focused group in two at the position of the focused window.xmonad-contrib(if you want to focus a floating window, #. if you want a non-floating one, .xmonad-contribif you want the next window, !. if you want the previous one, .    ! " # $ % & ' ( ) * + , - .    ! " # $ % & ' ( ) * + , - .1Hooks and actions to refocus the previous window.(c) 2018 L. S. LearyBSD3-style (see LICENSE) L. S. Learyunstable unportableNone=?@A`  /xmonad-contrib A newtype on Bool- to act as a universal toggle for refocusing. 2xmonad-contribA  that updates the  6" for a workspace upon relayout. 4xmonad-contribNewtype wrapper for a Map holding the  RecentWins* for each workspace. Is an instance of ExtensionClass with persistence of state. 6xmonad-contrib0Data type holding onto the previous and current Window. :xmonad-contribdA log hook recording the current workspace's most recently focused windows into extensible state. ;xmonad-contribRecords a workspace's recently focused windows into extensible state upon relayout. Potentially a less wasteful alternative to refocusLastLogHook, as it does not run on WM_NAME propertyNotify events. <xmonad-contrib Given a predicate on the event window determining whether or not to act, construct an event hook that runs iff the core xmonad event handler will unmanage the window, and which shifts focus to the last focused window on the appropriate workspace if desired. =xmonad-contrib'Holds iff refocusing is toggled active. >xmonad-contrib&Holds iff the event window is a float. ?xmonad-contribDToggle automatic refocusing at runtime. Has no effect unless the refocusingIsActive predicate has been used. @xmonad-contribQRefocuses the previously focused window; acts as a toggle. Is not affected by toggleRefocusing. Axmonad-contribWSwaps the current and previous windows of the current workspace. Is not affected by toggleRefocusing. Bxmonad-contribMGiven a target workspace and a predicate on its current window, produce a 8 suitable function that will refocus that workspace appropriately. Allows you to hook refocusing into any action you can run through windows. See the implementation of  shiftRLWhen) for a straight-forward usage example. Cxmonad-contribSends the focused window to the specified workspace, refocusing the last focused window if the predicate holds on the current window. Note that the native version of this, windows . W.shift, has a nice property that this does not: shifting a window to another workspace then shifting it back preserves its place in the stack. Can be used in a keybinding like e.g. .windows =<< shiftRLWhen refocusingIsActive "3"or 0(windows <=< shiftRLWhen refocusingIsActive) "3"where <=< is imported from  Control.Monad. Dxmonad-contribPerform an update to the  6 for the specified workspace. The RefocusLast log and layout hooks are both implemented trivially in terms of this function. Only exported to aid extensibility.xmonad-contribJFocuses the first window in the list it can find on the current workspace.xmonad-contrib+Operate the above on a specified workspace.xmonad-contribJGet the RecentsMap out of extensible state and remove its newtype wrapper.xmonad-contribPerform an X action dependent on successful lookup of the RecentWins for the specified workspace, or return a default value.xmonad-contrib8The above specialised to the current workspace and unit. / 0 1 2 3 4 5 6 7 9 8 : ; < = > ? @ A B C D : ; < = > ? @ A B C D 6 7 9 8 4 5 2 3 / 0 1(c) Nicolas Pouillard 2009BSD-style (see LICENSE)/Nicolas Pouillard <nicolas.pouillard@gmail.com>unstable unportableNone  Txmonad-contrib#Set the value of a string property. Uxmonad-contrib6Get the name of a string property and returns it as a >. Vxmonad-contrib`Given a property name, returns its contents as a list. It uses the empty list as default value. Wxmonad-contribcGiven a property name and a list, sets the value of this property with the list given as argument. S T U V W S U T V W((c) Andrea Rossato and David Roundy 2007BSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone f Yxmonad-contribRStart a timer, which will send a ClientMessageEvent after some time (in seconds). Zxmonad-contribGiven a  X and an , run an action when the . has been sent by the timer specified by the  X X Y Z Y Z X&(c) Tom Smeets <tom.tsmeets@gmail.com>BSD3-style (see LICENSE)"Tom Smeets <tom.tsmeets@gmail.com>unstable unportableSafe"# g [xmonad-contribA  https://wiki.haskell.org/ZipperZipper over the  Data.Tree data structure.!Very crappy visualization of the  [ data structure  (tz_parents) ([*], *, [*]) ([*, *], *, []) ([], * [*, *]) | | | +-------+--------+-------+------+ +-*-+ * | | | | | | | (tz_before) (tz_current) (tz_after) * * | | | | +-*-+ * * * | | * * ]xmonad-contrib/the currently focused sub-tree under the cursor ^xmonad-contriball sub-tree's to the left( of the cursor that have the same parent _xmonad-contriball sub-tree's to the right( of the cursor that have the same parent `xmonad-contribKlist zippers for each parent level, the first element is the current parent axmonad-contribGet the highlighted value bxmonad-contrib Create a  [ from a list of s focused on the first element cxmonad-contrib$Convert the entire zipper back to a  dxmonad-contrib Create a , from all the children of the current parent exmonad-contribKGo to the upper most node such that nothing is before nor above the cursor fxmonad-contribMove to the parent node gxmonad-contrib0Move the cursor one level down to the first node hxmonad-contribGo to the next child node ixmonad-contribGo to the previous child node jxmonad-contrib"How many nodes are above this one? kxmonad-contrib<How many nodes are before the cursor? (on the current level) lxmonad-contrib,follow a Path specified by the list of nodes mxmonad-contrib4go to the first node next to the cursor that matches nxmonad-contrib"Check whenther this is a leaf node oxmonad-contrib"Check whenther this is a leaf node pxmonad-contrib"Check whenther this the last child qxmonad-contrib#Check whenther this the first child [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q&(c) Tom Smeets <tom.tsmeets@gmail.com>BSD3-style (see LICENSE)"Tom Smeets <tom.tsmeets@gmail.com>unstable unportableNone"#M **-xmonad-contribState monad transformer using xmonad-contribState used by TreeSelect.TContains all needed information such as the window, font and a zipper over the tree.xmonad-contribsize of  tz_windowxmonad-contribhistory zipper, navigated with   and  rxmonad-contrib$Tree Node With a name and extra text uxmonad-contrib+extra text, displayed next to the node name vxmonad-contrib*value to return when this node is selected wxmonad-contrib0Extensive configuration for displaying the tree.This class also has a  instance yxmonad-contribwhen enabled, only the parents (and their first children) of the current node will be shown (This feature is not yet implemented!) zxmonad-contrib+background color filling the entire screen. {xmonad-contrib-XMF font for drawing the node name extra text |xmonad-contrib=node foreground (text) and background color when not selected }xmonad-contrib0every other node will use this color instead of  | ~xmonad-contrib9node foreground (text) and background color when selected xmonad-contribextra text color xmonad-contribnode width in pixels xmonad-contribnode height in pixels xmonad-contrib'tree X position on the screen in pixels xmonad-contrib'tree Y position on the screen in pixels xmonad-contrib+indentation amount for each level in pixels xmonad-contrib$key bindings for navigating the tree xmonad-contribDefault navigation2navigation using either arrow key or vi style hjklReturn or Space to confirm Escape or Backspace to cancel to xmonad-contribDefault configuration.!Using nice alternating blue nodesxmonad-contrib Lift the  action into the  monad xmonad-contribVRun Treeselect with a given config and tree. This can be used for selectiong anything0for switching workspaces and moving windows use  for selecting actions use  xmonad-contribSame as  $ but ad a specific starting position xmonad-contrib6Select a workspace and execute a "view" function from XMonad.StackSet on it. xmonad-contribPConvert the workspace-tree to a flat list of paths such that XMonad can use them4The Nodes will be separated by a dot ('.') character xmonad-contribSelect from a Tree of  actions `https://wiki.haskell.org/wikiupload/thumb/9/9b/Treeselect-Action.png/800px-Treeselect-Action.png4Each of these actions have to be specified inside a  rExample +treeselectAction myTreeConf [ Node (TSNode "Hello" "displays hello" (spawn "xmessage hello!")) [] , Node (TSNode "Shutdown" "Poweroff the system" (spawn "shutdown")) [] , Node (TSNode "Brightness" "Sets screen brightness using xbacklight" (return ())) [ Node (TSNode "Bright" "FULL POWER!!" (spawn "xbacklight -set 100")) [] , Node (TSNode "Normal" "Normal Brightness (50%)" (spawn "xbacklight -set 50")) [] , Node (TSNode "Dim" "Quite dark" (spawn "xbacklight -set 10")) [] ] ] xmonad-contrib*Quit returning the currently selected node xmonad-contribQuit without returning anything xmonad-contrib"Move the cursor to its parent node xmonad-contribAMove the cursor one level down, highlighting its first child-node xmonad-contrib&Move the cursor to the next child-node xmonad-contrib*Move the cursor to the previous child-node xmonad-contribMove backwards in history xmonad-contribMove forward in history xmonad-contribMove to a specific nodexmonad-contrib'Apply a transformation on the internal  [.xmonad-contrib wait for keys and run navigationxmonad-contribRequest a full redrawxmonad-contrib3Draw a node at a given indentation and height levelxmonad-contribDraw a simple box with textxmonad-contribModified version of   that uses A as color formatxmonad-contribConvert A to 3Note that it uses short to represent its components xmonad-contrib config filexmonad-contrib a list of s to select from. xmonad-contrib config filexmonad-contrib5tree structure with a cursor position (starting node)xmonad-contrib)list of paths that can be navigated with   and   (bound to the o and i keys) xmonad-contribyour tree of workspace-namesxmonad-contrib'the "view" function. Instances can be & for switching to a workspace and/or 7 for moving the focused window to a selected workspace.+These actions can also be combined by doing  \i -> W.greedyView i . W.shift i xmonad-contrib"path, always starting from the topxmonad-contribindentation levelxmonad-contribheightxmonad-contrib!node layers (from top to bottom!)xmonad-contrib!indentation level (not in pixels)xmonad-contribheight level (not in pixels)xmonad-contrib node to drawxmonad-contrib+node foreground (font) and background colorxmonad-contribXMF Fontxmonad-contrib font colorxmonad-contrib x-positionxmonad-contrib y-position xmonad-contrib string text%A r s t u v w x y z { | } ~  % A w x y z { | } ~  r s t u v (c) Daniel Schoepe (2009)BSD3-style (see LICENSE))Daniel Schoepe <daniel.schoepe@gmail.com>unstable unportableSafe2 / xmonad-contribTwo-dimensional directions: xmonad-contribUp xmonad-contribDown xmonad-contribRight xmonad-contribLeft xmonad-contribOne-dimensional directions:  '(c) Norbert Zeh <norbert.zeh@gmail.com>BSD3#Norbert Zeh <norbert.zeh@gmail.com> experimentalportableNone=?@A TH xmonad-contrib-Rotation between consecutive split directions xmonad-contrib5Layouts with geometrically decreasing window sizes.   and   split the screen into a rectangle for the first window and a rectangle for the remaining windows, which is split recursively to lay out these windows. Both layouts alternate between horizontal and vertical splits."In each recursive step, the split  m determines the placement of the remaining windows relative to the current window: to the left, to the right, above or below. The split direction of the first split is determined by the first layout parameter. The split direction of the second step is rotated 90 degrees relative to the first split direction according to the second layout parameter of type  . So, if the first split is  % and the second layout parameter is  , then the second split is  .For the   layout, the same   is used for computing the split direction of each step from the split direction of the previous step. For example, parameters   and  ! produces the direction sequence  ,  ,  ,  ,  ,  ,  ,  , ...For the   layout, the   alternates between   and  ) in each step. For example, parameters   and  ! produce the direction sequence  ,  ,  ,  , ... because   is the   rotation of   and   is the   rotation of  .In each split, the current rectangle is split so that the ratio between the size of the rectangle allocated to the current window and the size of the rectangle allocated to the remaining windows is the third layout parameter. This ratio can be altered using I and J~ messages. The former multiplies the ratio by the fourth layout parameter. The latter divides the ratio by this parameter. { does not alternate between horizontal and vertical splits and simply splits in the direction given as its first argument.Parameters for both   and  :First split directionFirst split chiralitygSize ratio between rectangle allocated to current window and rectangle allocated to remaining windows9Factor by which the size ratio is changed in response to I or J messagesThe parameters for  ' are the same, except that there is no   parameter. d(c) 2007 David Roundy <droundy@darcs.net>, Devin Mullins <me@twifkak.com>Devin Mullins <me@twifkak.com>None V &(c) 2011 Norbert Zeh <nzeh@cs.dal.ca>BSD3-style (see LICENSE)Norbert Zeh <nzeh@cs.dal.ca>unstable unportableNone2=@AQSX 3xmonad-contrib%Shorthand for the tedious screen type xmonad-contrib8Stores the configuration of directional navigation. The  instance uses line navigation for the tiled layer and for navigation between screens, and center navigation for the float layer. No custom navigation strategies or rectangles for unmapped windows are defined for individual layouts. xmonad-contrib/default navigation strategy for the tiled layer xmonad-contrib'navigation strategy for the float layer xmonad-contrib'strategy for navigation between screens xmonad-contrib association list of customized navigation strategies for different layouts in the tiled layer. Each pair is of the form ("layout description", navigation strategy). If there is no pair in this list whose first component is the name of the current layout, the   strategy is used. xmonad-contrib;list associating functions to calculate rectangles for unmapped windows with layouts to which they are to be applied. Each pair in this list is of the form ("layout description", function), where the function calculates a rectangle for a given unmapped window from the screen it is on and its window ID. See  #Finer_Points for how to use this.xmonad-contrib9Score that indicates how general a navigation strategy is xmonad-contrib$Encapsulates the navigation strategyxmonad-contrib;A shorthand for workspace-rectangle pairs. Reduces typing.xmonad-contrib8A shorthand for window-rectangle pairs. Reduces typing.xmonad-contrib!A rectangle paired with an object xmonad-contribLine navigation. To illustrate this navigation strategy, consider navigating to the left from the current window. In this case, we draw a horizontal line through the center of the current window and consider all windows that intersect this horizontal line and whose right boundaries are to the left of the left boundary of the current window. From among these windows, we choose the one with the rightmost right boundary. xmonad-contribCenter navigation. Again, consider navigating to the left. Then we consider the cone bounded by the two rays shot at 45-degree angles in north-west and south-west direction from the center of the current window. A window is a candidate to receive the focus if its center lies in this cone. We choose the window whose center has minimum L1-distance from the current window center. The tie breaking strategy for windows with the same distance is a bit complicated (see  #Technical_Discussion) but ensures that all windows can be reached and that windows with the same center are traversed in their order in the window stack, that is, in the order   and ! would traverse them. xmonad-contribSide navigation. Consider navigating to the right this time. The strategy is to take the line segment forming the right boundary of the current window, and push it to the right until it intersects with at least one other window. Of those windows, one with a point that is the closest to the centre of the line (+1) is selected. This is probably the most intuitive strategy for the tiled layer when using XMonad.Layout.Spacing. xmonad-contribSide navigation with bias. Consider a case where the screen is divided up into three vertical panes; the side panes occupied by one window each and the central pane split across the middle by two windows. By the criteria of side navigation, the two central windows are equally good choices when navigating inwards from one of the side panes. Hence in order to be equitable, symmetric and pleasant to use, different windows are chosen when navigating from different sides. In particular, the lower is chosen when going left and the higher when going right, causing L, L, R, R, L, L, etc to cycle through the four windows clockwise. This is implemented by using a bias of 1. Bias is how many pixels off centre the vertical split can be before this behaviour is lost and the same window chosen every time. A negative bias swaps the preferred window for each direction. A bias of zero disables the behaviour. xmonad-contribHybrid of two modes of navigation, preferring the motions of the first. Use this if you want to fall back on a second strategy whenever the first does not find a candidate window. E.g. (hybridOf lineNavigation centerNavigation1 is a good strategy for the floating layer, and (hybridOf sideNavigation centerNavigationr will enable you to take advantage of some of the latter strategy's more interesting motions in the tiled layer. xmonad-contribConvenience function for enabling Navigation2D with typical keybindings. Takes a Navigation2DConfig, an (up, left, down, right) tuple, a mapping from modifier key to action, and a bool to indicate if wrapping should occur, and returns a function from XConfig to XConfig. Example: v navigation2D def (xK_w, xK_a, xK_s, xK_d) [(mod4Mask, windowGo), (mod4Mask .|. shiftMask, windowSwap)] False myConfig xmonad-contribfConvenience function for enabling Navigation2D with typical keybindings, using the syntax defined in a". Takes a Navigation2DConfig, an (up, left, down, right) tuple, a mapping from key prefix to action, and a bool to indicate if wrapping should occur, and returns a function from XConfig to XConfig. Example: _ navigation2DP def ("w", "a", "s", "d") [("M-", windowGo), ("M-S-", windowSwap)] False myConfig xmonad-contribConvenience function for adding keybindings. Takes an (up, left, down, right) tuple, a mapping from key prefix to action, and a bool to indicate if wrapping should occur, and returns a function from XConfig to XConfig. Example: y additionalNav2DKeys (xK_w, xK_a, xK_s, xK_d) [(mod4Mask, windowGo), (mod4Mask .|. shiftMask, windowSwap)] False myConfig xmonad-contribJConvenience function for adding keybindings, using the syntax defined in a". Takes an (up, left, down, right) tuple, a mapping from key prefix to action, and a bool to indicate if wrapping should occur, and returns a function from XConfig to XConfig. Example: f additionalNav2DKeysP def ("w", "a", "s", "d") [("M-", windowGo), ("M-S-", windowSwap)] False myConfig xmonad-contribIModifies the xmonad configuration to store the Navigation2D configuration xmonad-contribSwitches focus to the closest window in the other layer (floating if the current window is tiled, tiled if the current window is floating). Closest means that the L1-distance between the centers of the windows is minimized. xmonad-contrib Moves the focus to the next window in the given direction and in the same layer as the current window. The second argument indicates whether navigation should wrap around (e.g., from the left edge of the leftmost screen to the right edge of the rightmost screen). xmonad-contribSwaps the current window with the next window in the given direction and in the same layer as the current window. (In the floating layer, all that changes for the two windows is their stacking order if they're on the same screen. If they're on different screens, each window is moved to the other window's screen but retains its position and size relative to the screen.) The second argument indicates wrapping (see  ). xmonad-contribrMoves the current window to the next screen in the given direction. The second argument indicates wrapping (see  ). xmonad-contribiMoves the focus to the next screen in the given direction. The second argument indicates wrapping (see  ). xmonad-contribSwaps the workspace on the current screen with the workspace on the screen in the given direction. The second argument indicates wrapping (see  ). xmonad-contribMaps each window to a fullscreen rect. This may not be the same rectangle the window maps to under the Full layout or a similar layout if the layout respects statusbar struts. In such cases, it may be better to use  . xmonad-contribMaps each window to the rectangle it would receive if it was the only window in the layout. Useful, for example, for determining the default rectangle for unmapped windows in a Full layout that respects statusbar struts.xmonad-contrib>Acts on the appropriate layer using the given action functionsxmonad-contrib?Returns the list of windows on the currently visible workspacesxmonad-contribUReturns the current rectangle of the given window, Nothing if the window isn't mappedxmonad-contrib3Acts on the screens using the given action functionxmonad-contrib+Determines whether a given window is mappedxmonad-contrib1Finds the window closest to the given window and focuses it. Ties are broken by choosing the first window in the window stack among the tied windows. (The stack order is the one produced by integrate'ing each visible workspace's window stack and concatenating these lists for all visible workspaces.)xmonad-contrib)Implements navigation for the tiled layerxmonad-contrib)Implements navigation for the float layerxmonad-contrib%Implements navigation between screens xmonad-contribImplements line navigation. For layouts without overlapping windows, there is no need to break ties between equidistant windows. When windows do overlap, even the best tie breaking rule cannot make line navigation feel natural. Thus, we fairly arbtitrarily break ties by preferring the window that comes first in the window stack. (The stack order is the one produced by integrate'ing each visible workspace's window stack and concatenating these lists for all visible workspaces.) xmonad-contribImplements center navigation xmonad-contrib:Swaps the current window with the window given as argument xmonad-contrib$Calculates the center of a rectangle xmonad-contrib!Shorthand for integer conversionsxmonad-contrib7Functions to choose the subset of windows to operate onxmonad-contrib7Functions to choose the subset of windows to operate onxmonad-contrib=Returns the list of visible workspaces and their screen rectsxmonad-contribCreates five copies of each (window/workspace, rect) pair in the input: the original and four offset one desktop size (desktop = collection of all screens) to the left, to the right, up, and down. Wrap-around at desktop edges is implemented by navigating into these displaced copies.xmonad-contrib|Calculates the offsets for window/screen coordinates for the duplication of windows/workspaces that implements wrap-around.xmonad-contribuReturns the list of screens sorted primarily by their centers' x-coordinates and secondarily by their y-coordinates.xmonad-contrib.Calculates the L1-distance between two points.xmonad-contribXChooses which layer to operate on, relative to the current window (same or other layer)xmonad-contribThe action for the tiled layerxmonad-contribThe action for the float layerxmonad-contrib,The action if the current workspace is emptyxmonad-contrib+Should navigation wrap around screen edges?xmonad-contribShould wrapping be used?xmonad-contrib,The window set, used to get the desktop sizexmonad-contrib,Should wrapping be used? Do nothing if not.xmonad-contrib+Input set of (window/workspace, rect) pairs" "   (c) Lukas MaiBSD3-style (see LICENSE)<l.mai@web.de>unstable unportableNone  xmonad-contrib  moveHook endHookH is a mouse button event handler. It collects mouse movements, calling moveHook9 for each update; when the button is released, it calls endHook. xmonad-contribA utility function on top of   . It uses a P to look up the mouse gesture, then executes the corresponding action (if any). xmonad-contribA callback generator for  .  0 returns two callback functions for passing to  . The move hook will collect mouse movements (and return the current gesture as a list); the end hook will return a list of the completed gesture, which you can access with .  (c) 2016 Brandon S AllberyBSD-style (see xmonad/LICENSE)allbery.b@gmail.comunstable unportableNone ( xmonad-contribERelease xmonad's keyboard grab, so other grabbers can do their thing.  $(c) Dmitry Bogatov <KAction@gnu.org>BSD Dmitry Bogatov <KAction@gnu.org>unstable unportableNone=>?@AMX  xmonad-contribWrapper around Query with phanom type s', representing state, saved in window. xmonad-contribApply  StateQuery to Window. xmonad-contrib Lifted to Query version of x xmonad-contrib&Instance of MonadState for StateQuery.  .(c) Spencer Janssen <spencerjanssen@gmail.com>BSD3-style (see LICENSE)*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone 1' xmonad-contribxLookup the index of a workspace id in the user's config, return Nothing if that workspace does not exist in the config.xmonad-contribaCompare Maybe's differently, so Nothing (i.e. workspaces without indexes) come last in the order xmonad-contrib^A comparison function for WorkspaceId, based on the index of the tags in the user's config. xmonad-contribPA simple comparison function that orders workspaces lexicographically by tag. xmonad-contribxA comparison function for Xinerama based on visibility, workspace and screen id. It produces the same ordering as #. xmonad-contribA comparison function like  *, but uses physical locations for screens. xmonad-contribLCreate a workspace sorting function from a workspace comparison function. xmonad-contribQSort several workspaces according to their tags' indices in the user's config. xmonad-contrib)Sort workspaces lexicographically by tag. xmonad-contribQSort serveral workspaces for xinerama displays, in the same order produced by #Z: first visible workspaces, sorted by screen, then hidden workspaces, sorted by tag. xmonad-contribLike  6, but allow you to use physical locations for screens. z(c) Joachim Breitner <mail@joachim-breitner.de>, Nelson Elhage <nelhage@mit.edu> (`toggleWS' function)BSD3-style (see LICENSE)+Joachim Breitner <mail@joachim-breitner.de>unstable unportableNone q+ xmonad-contrib8What type of workspaces should be included in the cycle? xmonad-contribcycle through empty workspaces xmonad-contrib"cycle through non-empty workspacesxmonad-contrib$cycle through non-visible workspacesxmonad-contrib.cycle through non-empty non-visible workspacesxmonad-contrib*cycle through empty non-visible workspacesxmonad-contribcycle through all workspacesxmonad-contribcycle through workspaces in the same group, the group name is all characters up to the first separator character or the end of the tagxmonad-contrib=cycle through workspaces satisfying an arbitrary predicatexmonad-contribSwitch to the next workspace.xmonad-contrib!Switch to the previous workspace.xmonad-contrib.Move the focused window to the next workspace. xmonad-contrib2Move the focused window to the previous workspace. xmonad-contrib-Toggle to the workspace displayed previously. xmonad-contribAToggle to the previous workspace while excluding some workspaces. M-- Ignore the scratchpad workspace while toggling: ("M-b", toggleWS' ["NSP"]) xmonad-contrib` a workspace, or if already there, view the previously displayed workspace ala weechat. Change  greedyView to  toggleOrView& in your workspace bindings as in the  faq at  @http://haskell.org/haskellwiki/Xmonad/Frequently_asked_questions. For more flexibility see  . xmonad-contribAllows ignoring listed workspace tags (such as scratchpad's "NSP"), and running other actions such as view, shift, etc. For example: !import qualified XMonad.StackSet as W import XMonad.Actions.CycleWS -- toggleOrView for people who prefer view to greedyView toggleOrView' = toggleOrDoSkip [] W.view -- toggleOrView ignoring scratchpad and named scratchpad workspace toggleOrViewNoSP = toggleOrDoSkip ["NSP"] W.greedyViewxmonad-contribList difference (\\b) for workspaces and tags. Removes workspaces matching listed tags from the given workspace list.xmonad-contribRIgnoring the skips, find the best candidate for the last viewed hidden workspace.xmonad-contrib4Convert a WSType value to a predicate on workspaces.xmonad-contribUView the next workspace in the given direction that satisfies the given condition.xmonad-contribuMove the currently focused window to the next workspace in the given direction that satisfies the given condition.xmonad-contrib|Using the given sort, find the next workspace in the given direction of the given type, and perform the given action on it.xmonad-contribGiven a function s! to sort workspaces, a direction dir, a predicate p on workspaces, and an integer n,, find the tag of the workspace which is n1 away from the current workspace in direction dirF (wrapping around if necessary), among those workspaces, sorted by s, which satisfy p.4For some useful workspace sorting functions, see XMonad.Util.WorkspaceCompare.IFor ideas of what to do with a workspace tag once obtained, note that  and  are implemented by applying (>>= (windows . greedyView)) and (>>= (windows . shift))$, respectively, to the output of .xmonad-contribView next screenxmonad-contribView prev screenxmonad-contribGet the  dQ places over. Example usage is a variation of the the default screen keybindings: V -- mod-{w,e}, Switch to previous/next Xinerama screen -- mod-shift-{w,e}, Move client to previous/next Xinerama screen -- [((m .|. modm, key), sc >>= screenWorkspace >>= flip whenJust (windows . f)) | (key, sc) <- zip [xK_w, xK_e] [(screenBy (-1)),(screenBy 1)] , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]xmonad-contrib$Swap current screen with next screenxmonad-contrib(Swap current screen with previous screenxmonad-contrib/Move focused window to workspace on next screenxmonad-contrib/Move focused window to workspace on prev screen               "(c) Devin Mullins <me@twifkak.com>BSD3-style (see LICENSE)Devin Mullins <me@twifkak.com>unstable unportableNone ztxmonad-contribKSwaps the currently focused workspace with the given workspace tag, via swapWorkspaces.xmonad-contribSay  swapTo Next or  swapTo Prev- to move your current workspace. This is an X ()2 so can be hooked up to your keybindings directly.xmonad-contribTakes two workspace tags and an existing XMonad.StackSet and returns a new one with the two corresponding workspaces' tags swapped.  (c) Brent Yorgey 2009BSD-style (see LICENSE)<byorgey@gmail.com> experimental unportableNone2 xmonad-contrib1Extensible state storage for the workspace order.xmonad-contrib4Lift a Map function to a function on WSOrderStorage.xmonad-contribwUpdate the ordering storage: initialize if it doesn't yet exist; add newly created workspaces at the end as necessary.xmonad-contribXA comparison function which orders workspaces according to the stored dynamic ordering.xmonad-contrib9Sort workspaces according to the stored dynamic ordering.xmonad-contribOSwap the current workspace with another workspace in the stored dynamic order.xmonad-contrib.Swap the given workspace with the current one.xmonad-contrib3Swap the two given workspaces in the dynamic order. xmonad-contrib3Update the name of a workspace in the stored order.!xmonad-contrib)Remove a workspace from the stored order.xmonad-contribUpdate a key in a Map."xmonad-contribView the next workspace of the given type in the given direction, where "next" is determined using the dynamic workspace order.#xmonad-contribSame as " , but using  greedyView instead of view.$xmonad-contribShift the currently focused window to the next workspace of the given type in the given direction, using the dynamic workspace order.%xmonad-contribDo something with the nth workspace in the dynamic order after transforming it. The callback is given the workspace's tag as well as the  of the workspace itself.&xmonad-contribwDo something with the nth workspace in the dynamic order. The callback is given the workspace's tag as well as the  of the workspace itself.  !"#$%&  !"#$%&((C) 2007 Andrea Rossato, Matthew SackmanBSD3 Gwern Branwen <gwern0@gmail.com>unstable unportableNone *xmonad-contribuReturns a String corresponding to the current mouse selection in X; if there is none, an empty string is returned.WARNING: this function is fundamentally implemented incorrectly and may, among other possible failure modes, deadlock or crash. For details, see  4http://code.google.com/p/xmonad/issues/detail?id=573G. (These errors are generally very rare in practice, but still exist.)+xmonad-contribA wrapper around *. Makes it convenient to run a program with the current selection as an argument. This is convenient for handling URLs, in particular. For example, in your Config.hs you could bind a key to promptSelection "firefox"^; this would allow you to highlight a URL string and then immediately open it up in Firefox.+ passes strings through the system shell, /bin/sh; if you do not wish your selected text to be interpreted or mangled by the shell, use ,4. safePromptSelection will bypass the shell using  T from XMonad.Util.Runc; see its documentation for more details on the advantages and disadvantages of using safeSpawn. ,xmonad-contribA wrapper around *. Makes it convenient to run a program with the current selection as an argument. This is convenient for handling URLs, in particular. For example, in your Config.hs you could bind a key to promptSelection "firefox"^; this would allow you to highlight a URL string and then immediately open it up in Firefox.+ passes strings through the system shell, /bin/sh; if you do not wish your selected text to be interpreted or mangled by the shell, use ,4. safePromptSelection will bypass the shell using  T from XMonad.Util.Runc; see its documentation for more details on the advantages and disadvantages of using safeSpawn.  xmonad-contribA wrapper around *. Makes it convenient to run a program with the current selection as an argument. This is convenient for handling URLs, in particular. For example, in your Config.hs you could bind a key to promptSelection "firefox"^; this would allow you to highlight a URL string and then immediately open it up in Firefox.+ passes strings through the system shell, /bin/sh; if you do not wish your selected text to be interpreted or mangled by the shell, use ,4. safePromptSelection will bypass the shell using  T from XMonad.Util.Runc; see its documentation for more details on the advantages and disadvantages of using safeSpawn. -xmonad-contribA wrapper around += and its safe variant. They take two parameters, the first is a function that transforms strings, and the second is the application to run. The transformer essentially transforms the selection in X. One example is to wrap code, such as a command line action copied out of the browser to be run as  "sudo" ++ cmd or "su - -c ""++ cmd ++""". .xmonad-contribA wrapper around += and its safe variant. They take two parameters, the first is a function that transforms strings, and the second is the application to run. The transformer essentially transforms the selection in X. One example is to wrap code, such as a command line action copied out of the browser to be run as  "sudo" ++ cmd or "su - -c ""++ cmd ++""". *+,-.*+,-.(C) 2008 Jrmy Bobbio, gwernBSD3noneunstable unportableNone Q/xmonad-contrib9Paste the current X mouse selection. Note that this uses * from XMonad.Util.XSelection and so is heir to its flaws.0xmonad-contribSend a string to the window which is currently focused. This function correctly handles capitalization. Warning: in dealing with capitalized characters, this assumes a QWERTY layout.1xmonad-contribSend a character to the current window. This is more low-level. Remember that you must handle the case of capitalization appropriately. That is, from the window's perspective: pasteChar mod2Mask 'F' ~> "f"$You would want to do something like: pasteChar shiftMask 'F'%Note that this function makes use of 0, and so will probably have trouble with any 9 outside ASCII.3xmonad-contrib5The primitive. Allows you to send any combination of  and  to any  you specify.=/0123/0123=(c) Christian DietrichBSD-style (as xmonad)stettberger@dokucde.deunstable unportableNone2 6xmonad-contribEUsing this in the keybindings to set the actual Key Translation table7xmonad-contribAdding this to your startupHook, to select your default Key Translation table. You also must give it all the KeymapTables you are willing to use8xmonad-contrib>Append the output of this function to your keybindings with ++9xmonad-contrib*The empty KeymapTable, does no translation:xmonad-contribSThe dvorak Programmers keymap, translates from us keybindings to dvorak programmers456789:687459:i(C) 2007 Andrea Rossato, 2015 Evgeny Kurnevsky 2015 Sibi Prabakaran, 2018 Yclept NemoBSD3*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone>EX ro@xmonad-contribBackground colorAxmonad-contrib Font colorBxmonad-contrib2Background color of a highlighted completion entryCxmonad-contrib,Font color of a highlighted completion entryDxmonad-contrib Border colorHxmonad-contribPrompt will be placed in the center horizontally and in the certain place of screen vertically. If it's in the upper part of the screen, completion window will be placed below(like in F) and otherwise above(like in G)Ixmonad-contribeRational between 0 and 1, giving y coordinate of center of the prompt relative to the screen height.Jxmonad-contribSRational between 0 and 1, giving width of the prompt relatave to the screen width.Kxmonad-contribThe class prompt types must be an instance of. In order to create a prompt you need to create a data type, without parameters, and make it an instance of this class, by implementing a simple method, LU, which will be used to print the string to be displayed in the command line window.4This is an example of a XPrompt instance definition: E instance XPrompt Shell where showXPrompt Shell = "Run: "Lxmonad-contribTThis method is used to print the string to be displayed in the command line window.Mxmonad-contribThis method is used to generate the next completion to be printed in the command line when tab is pressed, given the string presently in the command line and the list of completion. This function is not used when in multiple modes (because alwaysHighlight in XPConfig is True)Nxmonad-contribTThis method is used to generate the string to be passed to the completion function.Oxmonad-contribThis method is used to process each completion in order to generate the string that will be compared with the command presently displayed in the command line. If the prompt is using  for implementing M (the default implementation), this method is also used to generate, from the returned completion, the string that will form the next command line when tab is pressed.Pxmonad-contribWhen the prompt has multiple modes, this is the function used to generate the autocompletion list. The argument passed to this function is given by N4 The default implementation shows an error message.Qxmonad-contribWhen the prompt has multiple modes (created with mkXPromptWithModes), this function is called when the user picks an item from the autocompletion list. The first argument is the prompt (or mode) on which the item was picked The first string argument is the autocompleted item's text. The second string argument is the query made by the user (written in the prompt's buffer). See XMonadActions Launcher.hs for a usage example.Xxmonad-contrib.Font. For TrueType fonts, use something like "xft:Hack:pixelsize=1"G. Alternatively, use X Logical Font Description, i.e. something like >"-*-dejavu sans mono-medium-r-normal--*-80-*-*-*-*-iso10646-1".Yxmonad-contribBackground colorZxmonad-contrib Font color[xmonad-contrib2Background color of a highlighted completion entry\xmonad-contrib,Font color of a highlighted completion entry]xmonad-contrib Border color^xmonad-contrib Border width_xmonad-contrib Position: F, G, or H`xmonad-contribzAlways highlight an item, overriden to True with multiple modes. This implies having *one* column of autocompletions only.axmonad-contrib Window heightbxmonad-contrib;Just x: maximum number of rows to show in completion windowcxmonad-contrib)The number of history entries to be saveddxmonad-contrib8a filter to determine which history entries to rememberexmonad-contrib(Mapping from key combinations to actionsfxmonad-contrib"Key that should trigger completiongxmonad-contrib7Key to change mode (when the prompt has multiple modes)hxmonad-contrib&The text by default in the prompt lineixmonad-contribVJust x: if only one completion remains, auto-select it, and delay by x microsecondsjxmonad-contrib2Only show list of completions when Tab was pressedkxmonad-contribMGiven the typed string and a possible completion, is the completion valid?lxmonad-contribModifies the prompt given by Lmxmonad-contribyUsed to sort the possible completions by how well they match the search string (see X.P.FuzzyMatch for an example).!xmonad-contribThis IORef should always have the same value as complWin. Its purpose is to enable removal of the completion window if an exception occurs, since the most recent value of complWin is not available when handling exceptions.sxmonad-contrib)Sets the input string to the given value.txmonad-contribLReturns the current input string. Intented for use in custom keymaps where ) or similar can't be used to retrieve it.uxmonad-contribWReturns the offset of the current input string. Intended for use in custom keys where ) or similar can't be used to retrieve it.vxmonad-contrib1Accessor encapsulating disparate color fields of V into an >- (the configuration provides default values).wxmonad-contribModify the prompt colors.xxmonad-contribSet the prompt colors.yxmonad-contrib&Reset the prompt colors to those from V.zxmonad-contribSet the prompt border color.{xmonad-contrib1Modify the prompter, i.e. for chaining prompters.|xmonad-contribSet the prompter.}xmonad-contrib#Reset the prompter to the one from V."xmonad-contrib$Set the current completion list, or E( to invalidate the current completions.#xmonad-contrib Get the current completion list.~xmonad-contribSame as 3, except that the action function can have type  String -> X a , for any a&, and the final action returned by ~ will have type  X (Maybe a). Nothingr is yielded if the user cancels the prompt (by e.g. hitting Esc or Ctrl-G). For an example of use, see the $ module.xmonad-contribCreates a prompt given:a prompt type, instance of the K class.a prompt configuration (! can be used as a starting point)a completion function (T can be used to create a completions function given a list of possible completions)>an action to be run: the action must take a string and return  ()xmonad-contrib+Creates a prompt with multiple modes given:A non-empty list of modesA prompt configuration7The created prompt allows to switch between modes with g in confS. The modes are instances of XPrompt. See XMonad.Actions.Launcher for more detailsThe argument supplied to the action to execute is always the current highlighted item, that means that this prompt overrides the value ` for its configuration to True.$xmonad-contribrRemoves numlock and capslock from a keymask. Duplicate of cleanMask from core, but in the XP monad instead of X.%xmonad-contrib Inverse of %&k, that is, a convenience function that checks to see if the input string is UTF8 encoded before decoding.&xmonad-contribJMain event "loop". Gives priority to events from the state's event buffer.'xmonad-contrib"Default event loop stop condition.(xmonad-contriblCommon patterns shared by all event handlers. Expose events can be triggered by switching virtual consoles.)xmonad-contribePrompt event handler for the main loop. Dispatches to input, completion and mode switching handlers.*xmonad-contrib'Prompt input handler for the main loop.+xmonad-contrib3Prompt completion handler for the main loop. Given EU, generate the current completion list. With the current list, trigger a completion.xmonad-contribInitiate a prompt sub-map event loop. Submaps are intended to provide alternate keybindings. Accepts a default action and a mapping from key combinations to actions. If no entry matches, the default action is run.xmonad-contribInitiate a prompt input buffer event loop. Input is sent to a buffer and bypasses the prompt. The provided function is given the existing buffer and the input keystring. The first field of the result determines whether the input loop continues (if True\). The second field determines whether the input is appended to the buffer, or dropped (if False<). If the loop is to stop without keeping input - that is,  (False,False) - the event is prepended to the event buffer to be processed by the parent loop. This allows loop to process both fixed and indeterminate inputs. Result given (continue,keep): cont and keepgrow input buffer stop and keepgrow input buffer stop loop stop and drop buffer event stop loop cont and drop do nothingxmonad-contribPredicate instructing ' to get (and keep) a single non-empty  .xmonad-contribrDefault key bindings for prompts. Click on the "Source" link to the right to see the complete list. See also .xmonad-contrib A variant of  which lets you specify a custom predicate for identifying non-word characters, which affects all the word-oriented commands (move/kill word). The default is ,'. For example, by default a path like  foo/bar/bazM would be considered as a single word. You could use a predicate like (\c -> isSpace c || c == '/')C to move through or delete components of the path one at a time.xmonad-contrib~A keymap with many emacs-like key bindings. Click on the "Source" link to the right to see the complete list. See also .xmonad-contrib A variant of  which lets you specify a custom predicate for identifying non-word characters, which affects all the word-oriented commands (move/kill word). The default is ,'. For example, by default a path like  foo/bar/bazM would be considered as a single word. You could use a predicate like (\c -> isSpace c || c == '/')C to move through or delete components of the path one at a time.xmonad-contribbVim-ish key bindings. Click on the "Source" link to the right to see the complete list. See also .xmonad-contrib A variant of  with customizable aspects:xmonad-contribSet TrueK to save the prompt's entry to history and run it via the provided action.xmonad-contribSet True0 to leave all event loops, no matter how nested.xmonad-contribSet True/ to leave the current event loop, i.e. submaps.xmonad-contribQuit.xmonad-contrib1Kill the portion of the command before the cursorxmonad-contrib>Kill the portion of the command including and after the cursorxmonad-contrib#Kill the next/previous word, using ,; as the default predicate for non-word characters. See .xmonad-contribKill the next/previous word, given a predicate to identify non-word characters. First delete any consecutive non-word characters; then delete consecutive word characters, stopping just before the next non-word character.For example, by default (using ) a path like  foo/bar/bazJ would be deleted in its entirety. Instead you can use something like 'killWord' (\c -> isSpace c || c == '/')/ to delete the path one component at a time.xmonad-contrib From Vim's :help cw:Special case: When the cursor is in a word, "cw" and "cW" do not include the white space after a word, they only change up to the end of the word.xmonad-contrib!Put the cursor at the end of linexmonad-contrib#Put the cursor at the start of line-xmonad-contrib-Flush the command string and reset the offsetxmonad-contrib)Insert a character at the cursor positionxmonad-contrib_Insert the current X selection string at the cursor position. The X selection is not modified.xmonad-contrib A variant of 8 which allows modifying the X selection before pasting.xmonad-contrib)Remove a character at the cursor positionxmonad-contribIEnsure the cursor remains over the command by shifting left if necessary.xmonad-contribMove the cursor one position.xmonad-contrib9Move the cursor one position, but not beyond the command.xmonad-contrib Move the cursor one word, using ,; as the default predicate for non-word characters. See .xmonad-contribGiven a direction, move the cursor to just before the next (predicate,not-predicate) character transition. This means a (not-word,word) transition should be followed by a  action. Always considers the character under the current cursor position. This means a (word,not-word) transition should be preceded by a D action. Calculated as the length of consecutive non-predicate characters starting from the cursor position, plus the length of subsequent consecutive predicate characters, plus when moving backwards the distance of the cursor beyond the input. Reduced by one to avoid jumping off either end of the input, when present.5Use these identities to retain the pre-0.14 behavior: B (oldMoveWord' p Prev) = (moveCursor Prev >> moveWord' p Prev) B (oldMoveWord' p Next) = (moveWord' p Next >> moveCursor Next) xmonad-contribVSet the prompt's input to an entry further up or further down the history stack. Use Stack functions from '(, i.e. focusUp' or  focusDown'.xmonad-contribMove the cursor in the given direction to the first instance of the first character of the given string, assuming the string is not empty. The starting cursor character is not considered, and the cursor is placed over the matching character.xmonad-contribFills a  with a rectangle and a borderxmonad-contrib{Creates a window with the attribute override_redirect set to True. Windows Managers should not touch this kind of windows.xmonad-contribgThis function takes a list of possible completions and returns a completions function to be used with xmonad-contribgThis function takes a list of possible completions and returns a completions function to be used with 8. If the string is null it will return all completions.xmonad-contribGiven the prompt type, the command line and the completion list, return the next completion in the list for the last word of the command line. This is the default M implementation.xmonad-contribAn alternative M~ implementation: given a command and a completion list, get the next completion in the list matching the whole command line.xmonad-contrib3Given a maximum length, splits a list into sublistsxmonad-contribNGets the last word of a string or the whole string if formed by only one wordxmonad-contribrSkips the last word of the string, if the string is composed by more then one word. Otherwise returns the string.xmonad-contrib4 provides a canned completion function much like  getShellCompl}; you pass it to mkXPrompt, and it will make completions work from the query history stored in the XMonad cache directory.xmonad-contribLike S but only uses history data from Prompts whose name satisfies the given predicate.xmonad-contrib(Sort a list and remove duplicates. Like :, but trades off laziness and stability for efficiency.xmonad-contribFunctions to be used with the d setting. % will remove all duplicate entries. E will only remove duplicate elements immediately next to each other.xmonad-contribFunctions to be used with the d setting. % will remove all duplicate entries. E will only remove duplicate elements immediately next to each other.xmonad-contribMInitializes a new HistoryMatches structure to be passed to historyUpMatchingxmonad-contribRetrieve the next history element that starts with the current input. Pass it the result of initMatches when creating the prompt. Example:  .. ((modMask,xK_p), shellPrompt . myPrompt =<< initMatches) .. myPrompt ref = def { promptKeymap = M.union [((0,xK_Up), historyUpMatching ref) ,((0,xK_Down), historyDownMatching ref)] (promptKeymap def) , .. }xmonad-contribRetrieve the next history element that starts with the current input. Pass it the result of initMatches when creating the prompt. Example:  .. ((modMask,xK_p), shellPrompt . myPrompt =<< initMatches) .. myPrompt ref = def { promptKeymap = M.union [((0,xK_Up), historyUpMatching ref) ,((0,xK_Down), historyDownMatching ref)] (promptKeymap def) , .. }xmonad-contribEModifies the prompt color when entering normal mode. The default is setBorderColor "grey22"/ - same color as the default background color.xmonad-contrib/Prompter to use in normal mode. The default of  balances l but  ("[n] " ++) is a good alternate with l as  ("[i] " ++).xmonad-contribBFilter applied to the X Selection before pasting. The default is  but filter isPrint is a good alternate.xmonad-contrib;Predicate identifying non-word characters. The default is ,9. See the documentation of other keymaps for alternates.y =>?D@ABCEFGHIJKLMNOPQRSTUVW_XakZY[\]^`bcdefghijlmnopqrstuvwxyz{|}~y~rpqRTU>?D@ABCEFGHIJVW_XakZY[\]^`bcdefghijlmKLMNOPQostuvwxyz{|} S=n(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstable unportableNone sxmonad-contrib+An xmonad prompt with a custom command list%(C) 2007 Andrea Rossato, David RoundyBSD3Stability : unstable unportableNone 9(c) 2016 Joachim Breitner 2017 Nick HuBSD-style (see LICENSE)<mail@joachim-breitner.de>stableNone2 xmonad-contrib]Prompt the user for a Unicode character to be inserted into the paste buffer of the X server.xmonad-contrib7Prompt the user for a Unicode character to be typed by xdotool.(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstable unportableNone e(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstable unportableNone .xmonad-contribtAsk the shell environment for the value of a variable in XMonad's environment, with a default value. In order to setF an environment variable (eg. combine with a prompt so you can modify  $HTTP_PROXY" dynamically), you need to use )*.xmonad-contribAsk the shell what browser the user likes. If the user hasn't defined any $BROWSER, defaults to returning "firefox", since that seems to be the most common X web browser. Note that if you don't specify a GUI browser but a textual one, that'll be a problem as  will be called by functions expecting to be able to just execute the string or pass it to a shell; so in that case, define $BROWSER as something like "xterm -e elinks" or as the name of a shell script doing much the same thing. xmonad-contribLike X, but should be of a text editor. This gets the $EDITOR variable, defaulting to "emacs".   Public domain<gwern0@gmail.com>unstable unportableNone H/xmonad-contrib!Get a list of all windows in the StackSet( with an absolute ordering of workspacesxmonad-contribIf windows that satisfy the query exist, apply the supplied function to them, otherwise run the action given as second parameter.xmonad-contribjThe same as ifWindows, but applies a ManageHook to the first match instead and discards the other matchesxmonad-contribaction is an executable to be run via  U (of XMonad.Util.Run) if the Window cannot be found. Presumably this executable is the same one that you were looking for. Note that this does not go through the shell. If you wish to run an arbitrary IO action (such as spawnV, which will run its String argument through the shell), then you will want to use  directly. xmonad-contribSee ?. If the Window can't be found, quietly give up and do nothing.xmonad-contrib{ queries all Windows based on a boolean provided by the user. Currently, there are 3 such useful booleans defined in XMonad.ManageHook: , , . Each one tests based pretty much as you would think. ManageHook also defines several operators, the most useful of which is (=?). So a useful test might be finding a Windowo whose class is Firefox. Firefox 3 declares the class "Firefox", so you'd want to pass in a boolean like (className =? "Firefox").If the boolean returns TrueZ on one or more windows, then XMonad will quickly make visible the first result. If no Window@ meets the criteria, then the first argument comes into play.qThe first argument is an arbitrary IO function which will be executed if the tests fail. This is what enables  to use : it simply runs the desired program if it isn't found. But you don't have to do that. Maybe you want to do nothing if the search fails (the definition of ), or maybe you want to write to a log file, or call some prompt function, or something crazy like that. This hook gives you that flexibility. You can do some cute things with this hook. Suppose you want to do the same thing for Mutt which you just did for Firefox - but Mutt runs inside a terminal window? No problem: you search for a terminal window calling itself "mutt", and if there isn't you run a terminal with a command to run Mutt! Here's an example (borrowing  runInTerm from XMonad.Util.Run): O, ((modm, xK_m), raiseMaybe (runInTerm "-title mutt" "mutt") (title =? "mutt"))xmonad-contrib%A manage hook that raises the window.xmonad-contribSee  and .. Version that allows cycling through matches.xmonad-contribSee  and .. Version that allows cycling through matches.xmonad-contribSee .  is an alternative version that allows cycling through the matching windows. If the focused window matches the query the next matching window is raised. If no matches are found the function f is executed. xmonad-contribSee  and 4. In addition to all of the options offered by  q allows the user to supply the function that should be used to shift the focus to any window that is found. 0xmonad-contribGiven a function which gets us a String, we try to raise a window with that classname, or we then interpret that String as a executable name.xmonad-contrib and  grab $BROWSER and $EDITOR respectively and they either take you to the specified program's window, or they try to run it. This is most useful if your variables are simple and look like "firefox" or "emacs". xmonad-contrib and  grab $BROWSER and $EDITOR respectively and they either take you to the specified program's window, or they try to run it. This is most useful if your variables are simple and look like "firefox" or "emacs". xmonad-contribIf the window is found the window is focused and the third argument is called otherwise, the first argument is called See  for an example. xmonad-contribIf a window matching the second argument is found, the window is focused and the third argument is called; otherwise, the first argument is called. xmonad-contriblif the window is found the window is focused and set to master otherwise, the first argument is called. IraiseMaster (runInTerm "-title ghci" "zsh -c 'ghci'") (title =? "ghci") xmonad-contrib^If the window is found the window is focused and set to master otherwise, action is run. 5runOrRaiseMaster "firefox" (className =? "Firefox")) "g(c) David Roundy <droundy@darcs.net>, Ivan Veselov <veselov@gmail.com>, Lanny Ripple <lan3ny@gmail.com>BSD3-style (see LICENSE)???unstable unportableNoneQ ^: xmonad-contrib'Copy the focused window to a workspace.xmonad-contrib*Copy the focused window to all workspaces.xmonad-contrib(Copy an arbitrary window to a workspace.xmonad-contribrunOrCopy will run the provided shell command unless it can find a specified window in which case it will copy the window to the current workspace. Similar to (i.e., stolen from) XMonad.Actions.WindowGo.1xmonad-contrib=Copy a window if it exists, run the first argument otherwise.xmonad-contribRemove the focused window from this workspace. If it's present in no other workspace, then kill it instead. If we do kill it, we'll get a delete notify back from X.There are two ways to delete a window. Either just kill it, or if it supports the delete protocol, send a delete event (e.g. firefox).xmonad-contribKill all other copies of focused window (if they're present). 'All other' means here 'copies which are not on the current workspace'.xmonad-contribDA list of hidden workspaces containing a copy of the focused window.2xmonad-contrib8Get a list of tuples (tag, [Window]) for each workspace.3xmonad-contrib8Get tags with copies of the focused window (if present.)WDevin Mullins <me@twifkak.com> Andrea Rossato <andrea.rossato@unibz.it>BSD-style (see LICENSE)XDevin Mullins <me@twifkak.com> Andrea Rossato <andrea.rossato@unibz.it>unstable unportableNone t xmonad-contrib]A Map where keys are pretty printable window names and values are Xmonad windows identifier.4xmonad-contrib0Internal type used for the multiple mode prompt.xmonad-contrib%Deprecated. Use windowPrompt instead.xmonad-contrib%Deprecated. Use windowPrompt instead.xmonad-contrib%Deprecated. Use windowPrompt instead.xmonad-contrib'A helper to get the map of all windows.xmonad-contrib<A helper to get the map of windows of the current workspace.xmonad-contribPops open a prompt with window titles belonging to winmap. Choose one, and an action is applied on the selected window, according to WindowPrompt.xmonad-contribLike *, but uses the multiple modes feature of Prompt (via ).Given a list of actions along with the windows they should work with, display the appropriate prompt with the ability to switch between them using the  changeModeKey.For example, to have a prompt that first shows you all windows, but allows you to narrow the list down to just the windows on the current workspace: @windowMultiPrompt config [(Goto, allWindows), (Goto, wsWindows)]5xmonad-contribABrings a copy of the specified window into the current workspace.  (C) 2008 Justin BognerBSD3mail@justinbogner.comunstable unportableNone v,+(c) 2014 Igor Babuschkin, Antoine R. DumontBSD3-style (see LICENSE)'Antoine R. Dumont <eniotna.t@gmail.com>unstable unportableNone 6xmonad-contrib6Default password store folder in $HOME/.password-store7xmonad-contribCompute the password store's location. Use the PASSWORD_STORE_DIR environment variable to set the password store. If empty, return the password store located in user's home.8xmonad-contribA pass prompt factoryxmonad-contrib3A prompt to retrieve a password from a given entry.xmonad-contrib.A prompt to retrieve a OTP from a given entry.xmonad-contribA prompt to generate a password for a given entry. This can be used to override an already stored entry. (Beware that no confirmation is asked)xmonad-contribA prompt to generate a password for a given entry and immediately copy it to the clipboard. This can be used to override an already stored entry. (Beware that no confirmation is asked)xmonad-contribXA prompt to remove a password for a given entry. (Beware that no confirmation is asked)xmonad-contribTA prompt to type in a password for a given entry. This doesn't touch the clipboard.xmonad-contribBA prompt to edit a given entry. This doesn't touch the clipboard.9xmonad-contribSelect a password.:xmonad-contrib Select a OTP.;xmonad-contribuGenerate a 30 characters password for a given entry. If the entry already exists, it is updated with a new password.<xmonad-contribGenerate a 30 characters password for a given entry. If the entry already exists, it is updated with a new password. After generating the password, it is copied to the clipboard.=xmonad-contrib+Remove a password stored for a given entry.>xmonad-contrib)Edit a password stored for a given entry.?xmonad-contrib7Type a password stored for a given entry using xdotool.@xmonad-contribHRetrieve the list of passwords from the password store 'passwordStoreDir(c) 2007 Valery V. VorotyntsevBSD3-style (see LICENSE)+Valery V. Vorotyntsev <valery.vv@gmail.com>(non-portable (uses "manpath" and "bash")None xmonad-contrib&Query for manual page to be displayed. xmonad-contrib0Run a command using shell and return its output.XXX Merge into +?(Ask "gurus" whether evaluate (length ...)% approach is better/more idiomatic.)  (c) 2007 Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>stable unportableNone s xmonad-contribGiven a prompt configuration and some prompt text, create an X action which pops up a prompt waiting for user input, and returns whatever they type. Note that the type of the action is X (Maybe String)Q, which reflects the fact that the user might cancel the prompt (resulting in Nothing), or enter an input string s (resulting in Just s). xmonad-contrib The same as  /, but with a completion function. The type  ComplFunction is String -> IO [String], as defined in  XMonad.Prompt. The & utility function, also defined in  XMonad.PromptO, is useful for creating such a function from a known list of possibilities.xmonad-contribA combinator for hooking up an input prompt action to a function which can take the result of the input prompt and produce another action. If the user cancels the input prompt, the second function will not be run.The astute student of types will note that this is actually a very general combinator and has nothing in particular to do with input prompts. If you find a more general use for it and want to move it to a different module, be my guest.      1(c) 2007 Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>stable unportableNone xmonad-contribPrompt the user for a recipient, subject, and body, and send an email via the GNU 'mail' utility. The second argument is a list of addresses for autocompletion.%(C) 2007 Andrea Rossato, David RoundyBSD3Stability : unstable unportableNone fxmonad-contribA XPType entry suitable for using with mkXPromptWithModes.xmonad-contribPrompt.xmonad-contribAction.(C) 2008 Juraj HercekBSD3juhe_xmonad@hck.skunstable unportableNone xmonad-contrib Function P starts the prompt with list of all executable files in directory specified by Cf. The name of the prompt is taken from the last element of the path. If you specify root directory - / - as the path, name Root:6 will be used as the name of the prompt instead. The V parameter can be used to customize visuals of the prompt. The runner parameter specifies the function used to run the program - see usage for more informationxmonad-contrib Function  does the same as 0 except the name of the prompt is specified by  parameter.(C) 2015 Antoine BeauprBSD3$Antoine Beaupr <anarcat@debian.org>unstable unportableNone mxmonad-contrib Customized K2 prompt that will ask to confirm the given string xmonad-contribPrompt the user to confirm a given action. We offer no completion and simply ask to confirm (ENTER) or cancel (ESCAPE). The actual key handling is done by mkXPrompt.KLVKLV(c) 2007 Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>stable unportableNone xmonad-contribwGiven an XPrompt configuration and a file path, prompt the user for a line of text, and append it to the given file.xmonad-contribGiven an XPrompt configuration, string transformation function and a file path, prompt the user for a line of text, transform it and append the result to the given file.Axmonad-contribAppend a string to a file.(C) 2008 Luis CabellosBSD3zhen.sydow@gmail.comunstable unportableNone ѡBxmonad-contribAGiven an application and its parameters, launch the application. "xmonad-contribyGet the user's response to a prompt an launch an application using the input as command parameters of the application.KLVk !""KLVk !*(c) 2007 David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone2=?@AQ Ӭ$%&%&$$(c) Karsten Schoelzel <kuser@gmx.de>BSD Karsten Schoelzel <kuser@gmx.de>unstable unportableNone U ,xmonad-contribEset multiple tags for a window at once (overriding any previous tags)Cxmonad-contribhset a tag for a window (overriding any previous tags) writes it to the "_XMONAD_TAGS" window property-xmonad-contribJread all tags of a window reads from the "_XMONAD_TAGS" window property.xmonad-contrib check a window for the given tag/xmonad-contribadd a tag to the existing ones0xmonad-contrib(remove a tag from a window, if it exists1xmonad-contribremove all tags2xmonad-contribMove the focus in a group of windows, which share the same given tag. The Global variants move through all workspaces, whereas the other ones operate only on the current workspace3xmonad-contribMove the focus in a group of windows, which share the same given tag. The Global variants move through all workspaces, whereas the other ones operate only on the current workspace4xmonad-contribMove the focus in a group of windows, which share the same given tag. The Global variants move through all workspaces, whereas the other ones operate only on the current workspace5xmonad-contribMove the focus in a group of windows, which share the same given tag. The Global variants move through all workspaces, whereas the other ones operate only on the current workspace6xmonad-contrib+apply a pure function to windows with a tag7xmonad-contrib+apply a pure function to windows with a tag+,-./0123456789:;<=>/01,-.67:892435;<=>+(c) Roman CheplyakaBSD-style (see LICENSE)"Roman Cheplyaka <roma@ro-che.info>unstable unportableNone @xmonad-contrib<Most of the property constructors are quite self-explaining.Dxmonad-contribWM_WINDOW_ROLE propertyExmonad-contribWM_CLIENT_MACHINE propertyJxmonad-contrib Tagged via ,-Kxmonad-contrib%Does given window have this property?Lxmonad-contrib+Does the focused window have this property?Mxmonad-contrib1Find all existing windows with specified propertyNxmonad-contribConvert property to  8 (see XMonad.ManageHook)Oxmonad-contribGet a window property from atomPxmonad-contrib!Get a window property from string@DHICABEFGJKLMNOP@DHICABEFGJKLMNOPF9 G8+(c) Anton Vorontsov <anton@enomsg.org> 2014BSD-style (as xmonad)"Anton Vorontsov <anton@enomsg.org>unstable unportableNoneSxmonad-contribGiven a window, tell if it is a local or a remote process. Normally, it checks XMONAD_REMOTE property. If it does not exist (i.e. the manageRemote hook was not deployed in user's config), it falls back to checking environment variables and assuming that hostname never changes.Txmonad-contribOUse this hook to let XMonad properly track remote/local windows. For example, ,manageHook = manageRemote =<< io getHostName.Uxmonad-contribUse this hook if you want to manage XMONAD_REMOTE properties, but don't want to use an external getHostName in your config. That way you are retreating to environment variables.STUSTU+(c) Anton Vorontsov <anton@enomsg.org> 2014BSD-style (as xmonad)"Anton Vorontsov <anton@enomsg.org>unstable unportableNone=@AQ eVxmonad-contribData type for ModifiedLayout. The constructor lets you to specify a custom mark/description modifier and a delay. You can also use [ helper function.[xmonad-contribgConvert a layout to a stoppable layout using the default mark ("Stoppable") and a delay of 15 seconds.VWYXZ[VWYXZ[(c) 2016 Kurt DietrichBSD-style (see xmonad/LICENSE) kurto@mac.comunstable unportableNone=>@A z_xmonad-contrib?Modify a layout using a list of properties to sort its windows. @DHICABEFGJ_ _@DHICABEFGJ(c) 2009 Anders Engstrom <ankaan@gmail.com>, 2011 Ilya Portnov <portnov84@rambler.ru>, 2015 Peter Jones <pjones@devalot.com>BSD3-style (see LICENSE)Anders Engstrom <ankaan@gmail.com>, Ilya Portnov <portnov84@rambler.ru>, Peter Jones <pjones@devalot.com>unstable unportableNone "#2=>?@AQXb=gxmonad-contribOA box to place a layout in. The stored values are xpos, ypos, width and height.ixmonad-contribNThe absolute or relative measures used to describe the area a layout should be placed in. For negative absolute values the total remaining space will be added. For sizes, the remaining space will also be added for zeroes. Relative values are applied on the remaining space after the top-left corner of the box have been removed.lxmonad-contrib;Change the number of windows handled by the focused layout.nxmonad-contrib A variant of o that can't use wH. For backwards compatibility with previous versions of LayoutBuilder.oxmonad-contribnUse one layout in the specified area for a number of windows and possibly let another layout handle the rest.Dxmonad-contrib"The focused window in this layout.Exmonad-contrib&The focused window in the next layout.Fxmonad-contrib%How to split windows between layouts.Gxmonad-contribNormal size of layout.Hxmonad-contrib)Size of layout when handling all windows.Ixmonad-contribThe layout to use in this box.Jxmonad-contribThe next layout in the chain.Kxmonad-contrib7Information about how to split windows between layouts.Lxmonad-contribSee: u.Mxmonad-contribSee: v.Nxmonad-contribSee: w.pxmonad-contribOContains no actual data, but is needed to help select the correct instance of rrxmonad-contribType class for predicates. This enables us to manage not only Windows, but any objects, for which instance Predicate is defined.JAnother instance exists in XMonad.Util.WindowPropertiesRE in xmonad-extrasuxmonad-contribUse the specified layout in the described area for N windows and send the rest of the windows to the next layout in the chain. It is possible to supply an alternative area that will then be used instead, if there are no windows to send to the next layout.vxmonad-contribAs layoutN, but the number of windows is given relative to the total number of windows remaining to be handled. The first argument is how much to change the ratio when using IncLayoutN, and the second is the initial ratio.wxmonad-contribUse the specified layout in the described area windows that match given predicate and send the rest of the windows to the next layout in the chain. It is possible to supply an alternative area that will then be used instead, if there are no windows to send to the next layout.xxmonad-contribIUse the specified layout in the described area for all remaining windows.yxmonad-contribCreate a box with only absolute measurements. If the values are negative, the total remaining space will be added. For sizes it will also be added for zeroes.zxmonad-contrib-Create a box with only relative measurements.Oxmonad-contrib=Increase the number of windows allowed in the focused layout.Pxmonad-contrib6Check to see if the given window is currently focused.Qxmonad-contrib;Split given list of objects (i.e. windows) using predicate. sxmonad-contrib A predicate that is always True.txmonad-contribBCheck if given object (window or smth else) matches that predicateuxmonad-contribThe number of windows to handlexmonad-contribThe box to place the windows inxmonad-contrib[Possibly an alternative box that is used when this layout handles all windows that are leftxmonad-contrib'The layout to use in the specified areaxmonad-contrib#Where to send the remaining windowsxmonad-contribThe resulting layoutvxmonad-contrib1How much to change the ratio with each IncLayoutNxmonad-contrib,The ratio of the remaining windows to handlexmonad-contribThe box to place the windows inxmonad-contrib[Possibly an alternative box that is used when this layout handles all windows that are leftxmonad-contrib'The layout to use in the specified areaxmonad-contrib#Where to send the remaining windowsxmonad-contribThe resulting layoutwxmonad-contribThe predicate to usexmonad-contribThe box to place the windows inxmonad-contrib[Possibly an alternative box that is used when this layout handles all windows that are leftxmonad-contrib'The layout to use in the specified areaxmonad-contrib#Where to send the remaining windowsxmonad-contribThe resulting layoutxxmonad-contribThe box to place the windows inxmonad-contrib'The layout to use in the specified areaxmonad-contribThe resulting layoutyxmonad-contribAbsolute X-Positionxmonad-contribAbsolute Y-Positionxmonad-contribAbsolute widthxmonad-contribAbsolute heightxmonad-contribThe resulting g describing the areazxmonad-contrib8Relative X-Position with respect to the surrounding areaxmonad-contrib8Relative Y-Position with respect to the surrounding areaxmonad-contrib2Relative width with respect to the remaining widthxmonad-contrib4Relative height with respect to the remaining heightxmonad-contribThe resulting g describing the areaRxmonad-contrib Window set.xmonad-contribHow to split the stack.xmonad-contrib+The window that was focused in this layout.xmonad-contrib/The window that was focused in the next layout.ghijklmnopqrstuvwxyzuvwxrstpqlmijkghyzonU(c) 2009 Anders Engstrom <ankaan@gmail.com>, 2011 Ilya Portnov <portnov84@rambler.ru>BSD3-style (see LICENSE)#Ilya Portnov <portnov84@rambler.ru>unstable unportableNone 2=>?@AQX{xmonad-contribData type for our layout.xmonad-contribOContains no actual data, but is needed to help select the correct instance of xmonad-contribType class for predicates. This enables us to manage not only Windows, but any objects, for which instance Predicate is defined.JAnother instance exists in XMonad.Util.WindowPropertiesRE in xmonad-extrasxmonad-contribUse the specified layout in the described area windows that match given predicate and send the rest of the windows to the next layout in the chain. It is possible to supply an alternative area that will then be used instead, if there are no windows to send to the next layout.xmonad-contribIUse the specified layout in the described area for all remaining windows.Sxmonad-contrib;Split given list of objects (i.e. windows) using predicate.xmonad-contrib A predicate that is always True.xmonad-contribBCheck if given object (window or smth else) matches that predicatexmonad-contribThe box to place the windows inxmonad-contrib[Possibly an alternative box that is used when this layout handles all windows that are leftxmonad-contrib'The layout to use in the specified areaxmonad-contrib#Where to send the remaining windowsxmonad-contribThe resulting layoutxmonad-contribThe box to place the windows inxmonad-contrib'The layout to use in the specified areaxmonad-contribThe resulting layout yz zy8(c) Roman Cheplyaka, Ivan N. Veselov <veselov@gmail.com>BSD-style (see LICENSE)"Roman Cheplyaka <roma@ro-che.info>unstable unportableNone=>?@A}xmonad-contribWThis is for compatibility with old configs only and will be removed in future versions!xmonad-contribData type for LayoutModifier which converts given layout to IM-layout (with dedicated space for the roster and original layout for chat windows)xmonad-contribyModifier which converts given layout to IM-layout (with dedicated space for roster and original layout for chat windows)xmonad-contrib-IM layout modifier applied to the Grid layoutTxmonad-contrib}Internal function for adding space for the roster specified by the property and running original layout for all chat windowsUxmonad-contribGLike find, but works with monadic computation instead of pure function.@DHICABEFGJ@DHICABEFGJDevin Mullins <me@twifkak.com>BSD3-style (see LICENSE)Devin Mullins <me@twifkak.com>unstable unportableNone2=>?@AQ$xmonad-contrib6Your set of options for configuring a dzenUrgencyHook.xmonad-contribRnumber of microseconds to display the dzen (hence, you'll probably want to use  S)xmonad-contriblist of extra args (as s) to pass to dzenxmonad-contrib5The class definition, and some pre-defined instances.Vxmonad-contrib$An urgency reminder, as reified for /. The last value is the countdown number, for .xmonad-contribA set of choices as to when you want to be re-notified of an urgent window. Perhaps you focused on something and you miss the dzen popup bar. Or you're AFK. Or you feel the need to be more distracted. I don't care./The interval arguments are in seconds. See the  helper.xmonad-contribtriggering once is enoughxmonad-contribrepeat  arg1 times every  arg2 secondsxmonad-contrib repeat every  arg1" until the urgency hint is clearedxmonad-contribA set of choices as to whenT you should (or rather, shouldn't) be notified of an urgent window. The default is 8. Prefix each of the following with "don't bug me when":xmonad-contribthe window is currently visiblexmonad-contrib6the window is on the currently focused physical screenxmonad-contribthe window is currently focusedxmonad-contrib1... aww, heck, go ahead and bug me, just in case.xmonad-contrib.Global configuration, applied to all types of . See  for the defaults.xmonad-contrib when to trigger the urgency hookxmonad-contrib#when to re-trigger the urgency hookxmonad-contribCThis is the method to enable an urgency hook. It uses the default * to control behavior. To change this, use  instead.xmonad-contrib)This lets you modify the defaults set in  . An example: QwithUrgencyHookC dzenUrgencyHook { ... } urgencyConfig { suppressWhen = Focused }(Don't type the ..., you dolt.) See  for details on configuration.xmonad-contrib1A prettified way of multiplying by 60. Use like: (5 ).xmonad-contrib The default u. suppressWhen = Visible, remindWhen = Dont. Use a variation of this in your config just as you use a variation of  for your xmonad definition.xmonad-contribpFocuses the most recently urgent window. Good for what ails ya -- I mean, your keybindings. Example keybinding: 3, ((modm , xK_BackSpace), focusUrgent)xmonad-contrib4Just makes the urgents go away. Example keybinding: 4, ((modm .|. shiftMask, xK_BackSpace), clearUrgents)xmonad-contribPX action that returns a list of currently urgent windows. You might use it, or Q, in your custom logHook, to display the workspaces that contain urgent windows.xmonad-contribAn HOF version of *, for those who prefer that sort of thing.Wxmonad-contrib%Stores the list of urgency reminders.Xxmonad-contribNChange the _NET_WM_STATE property by applying a function to the list of atoms.Yxmonad-contrib*Add an atom to the _NET_WM_STATE property.Zxmonad-contrib/Remove an atom from the _NET_WM_STATE property.[xmonad-contrib,Get the _NET_WM_STATE propertly as a [CLong]xmonad-contribA hook which will automatically send you to anything which sets the urgent flag (as opposed to printing some sort of message. You would use this as usual, eg. *withUrgencyHook FocusHook $ myconfig { ...xmonad-contrib A hook that sets the border color of an urgent window. The color will remain until the next time the window gains or loses focus, at which point the standard border color from the XConfig will be applied. You may want to use suppressWhen = Never with this: pwithUrgencyHookC BorderUrgencyHook { urgencyBorderColor = "#ff0000" } urgencyConfig { suppressWhen = Never } ...(This should be urgentBorderColor but that breaks XMonad.Layout.Decoration.  borderColor breaks anyone using XPConfig from  XMonad.PromptC. We need to think a bit more about namespacing issues, maybe.)xmonad-contribFlashes when a window requests your attention and you can't see it. Defaults to a duration of five seconds, and no extra args to dzen. See .xmonad-contribSpawn a commandline thing, appending the window id to the prefix string you provide. (Make sure to add a space if you need it.) Do your crazy xcompmgr thing.xmonad-contribFor debugging purposes, really.xmonad-contribKurgencyhook such that windows on certain workspaces never get urgency set.)Useful for scratchpad workspaces perhaps: Omain = xmonad (withUrgencyHook (filterUrgencyHook ["NSP", "SP"]) defaultConfig). S. S (c) Lukas MaiBSDLukas Mai <l.mai@web.de>unstable unportableNone.xmonad-contribA grouping type, which can hold the outcome of a predicate Query. This is analogous to group types in regular expressions. TODO: create a better API for aggregating multiple Matches logicallyxmonad-contribYA ManageHook that may or may not have been executed; the outcome is embedded in the Maybexmonad-contribDenotes a side of a screen. S stands for South, NE for Northeast etc. C stands for Center.xmonad-contribAn alternative  composer. Unlike , it stops as soon as a candidate returns a F; value, effectively running only the first match (whereas , continues and executes all matching rules).xmonad-contrib2q /=? x. if the result of q equals x, return Falsexmonad-contribAq <==? x. if the result of q equals x, return True grouped with qxmonad-contribDq </=? x. if the result of q notequals x, return True grouped with qxmonad-contribA helper operator for use in J. It takes a condition and an action; if the condition fails, it returns E from the  so # will go on and try the next rule.xmonad-contribA helper operator for use in L. It takes a condition and a function taking a grouped datum to action. If p+ is true, it executes the resulting action.xmonad-contribA helper operator for use in J. It takes a condition and a function taking a groupdatum to action. If pE is true, it executes the resulting action. If it fails, it returns E from the  so " will go on and try the next rule.xmonad-contribReturn the current workspacexmonad-contrib@A predicate to check whether a window is a KDE system tray icon.xmonad-contrib<Helper to check if a window property contains certain value.xmonad-contribPA predicate to check whether a window wants to fill the whole screen. See also  .xmonad-contrib2A predicate to check whether a window is a dialog.xmonad-contribA predicate to check whether a window is Transient. It holds the result which might be the window it is transient to or it might be E.xmonad-contribA convenience R that will check to see if a window is transient, and then move it to its parent. xmonad-contrib set to a  xmonad-contrib converts s to s xmonad-contrib-Floats the new window in the given rectangle. xmonad-contribDFloats the window and makes it use the whole screen. Equivalent to   $ \ 0 0 1 1. xmonad-contribtFloats a new window using a rectangle computed as a function of the rectangle that it would have used by default.xmonad-contribFloats a new window with its original size, and its top left corner at a specific point on the screen (both coordinates should be in the range 0 to 1).xmonad-contribMFloats a new window with its original size on the specified side of a screenxmonad-contrib9Floats a new window with its original size, but centered.xmonad-contribHides window and ignores it. xmonad-contrib9The rectangle to float the window in. 0 to 1; x, y, w, h.$     $     000(c) Roman CheplyakaBSD-style (see LICENSE)"Roman Cheplyaka <roma@ro-che.info>unstable unportableNone2=@AQ xmonad-contribhMessages without names affect all monitors. Messages with names affect only monitors whose names match.xmonad-contrib1property which uniquely identifies monitor windowxmonad-contribspecifies where to put monitor xmonad-contribis it visible by default?!xmonad-contrib2name of monitor (useful when we have many of them)"xmonad-contribis it shown on all layouts?#xmonad-contrib opacity level$xmonad-contrib Template for  record. At least  and ) should be redefined. Default settings:   is G, " is D.%xmonad-contribGManageHook which demanages monitor window and applies opacity settings.@DHICABEFGJ #!"$% #!"$@DHICABEFGJ%(c) 2010 Audun SkaugenBSD-style (see xmonad/LICENSE)audunskaugen@gmail.comunstable unportableNone2=>?@A). 0xmonad-contribMessages that control the fullscreen state of the window. AddFullscreen and RemoveFullscreen are sent to all layouts when a window wants or no longer wants to be fullscreen. FullscreenChanged is sent to the current layout after one of the above have been sent.4xmonad-contribrModifies your config to apply basic fullscreen support -- fullscreen windows when they request it. Example usage: Cmain = xmonad $ fullscreenSupport $ defaultConfig { ... }5xmonad-contribGLayout modifier that makes fullscreened window fill the entire screen.6xmonad-contribfAs above, but the fullscreened window will fill the specified rectangle instead of the entire screen.7xmonad-contribkLayout modifier that makes the fullscreened window fill the entire screen only if it is currently focused.8xmonad-contribfAs above, but the fullscreened window will fill the specified rectangle instead of the entire screen.9xmonad-contribYHackish layout modifier that makes floating fullscreened windows fill the entire screen.:xmonad-contribfAs above, but the fullscreened window will fill the specified rectangle instead of the entire screen.;xmonad-contrib8The event hook required for the layout modifiers to work<xmonad-contribXManage hook that sets the fullscreen property for windows that are initially fullscreen=xmonad-contribxA version of fullscreenManageHook that lets you specify your own query to decide whether a window should be fullscreen.]xmonad-contribKApplies a pair of predicates to a pair of operands, combining them with ||.-./0123456789:;<=457689:;<=0123-./(c) Bogdan Sinitsyn (2016)BSD3-style (see LICENSE)+Bogdan Sinitsyn <bogdan.sinitsyn@gmail.com>unstable not portableNone9Hxmonad-contribMinimize a window^xmonad-contrib=Maximize window and apply a function to maximized window and Ixmonad-contrib'Just maximize a window without focusingJxmonad-contrib#Maximize a window and then focus itKxmonad-contribPerform an action with first minimized window on current workspace or do nothing if there is no minimized windows on current workspaceLxmonad-contribLike withFirstMinimized but the provided action is always invoked with a 'Maybe Window', that will be nothing if there is no first minimized window.Mxmonad-contribPerform an action with last minimized window on current workspace or do nothing if there is no minimized windows on current workspaceNxmonad-contribLike withLastMinimized but the provided action is always invoked with a 'Maybe Window', that will be nothing if there is no last minimized window.HIJKLMNOHIJMNKLO(c) Justin Bogner 2010BSD3-style (see LICENSE)%Justin Bogner <mail@justinbogner.com>unstable not portableNone;6PPBruce Forte (2017)BSD-style (see LICENSE) Bruce Forteunstable unportableNone_`Txmonad-contribName of the scratchpadUxmonad-contribCommand to spawn the scratchpadVxmonad-contribQuery to match the scratchpadWxmonad-contrib$Hook to specify the placement policyXxmonad-contribNames of exclusive scratchpadsYxmonad-contribCreate Q from [(name,cmd,query)] with a common hookZxmonad-contribCreate  from Q[xmonad-contribBPop up/hide the scratchpad by name and possibly hide its exclusive\xmonad-contrib Hide all Q on the current screen]xmonad-contribIf the focused window is a scratchpad, the scratchpad gets reset to the original placement specified with the hook and becomes exclusive again_xmonad-contribOHide the scratchpad of the same family by name if it's on the focused workspace`xmonad-contribAConditionally map a function on all windows of the current screenaxmonad-contrib9Extract all windows on the current screen from a StackSetbxmonad-contrib%Check if given window is a scratchpadcxmonad-contrib*Build a disjunction from a list of clausesdxmonad-contribUseful queriesexmonad-contribUseful queries^xmonad-contrib#Make a window not exclusive anymore_xmonad-contrib8Float and drag the window, make it not exclusive anymore`xmonad-contrib,Resize window, make it not exclusive anymoreaxmonad-contrib.Manage hook that makes the window non-floatingbxmonad-contribEManage hook that makes the window floating with the default placementcxmonad-contrib@Manage hook that makes the window floating with custom placement Yxmonad-contribList of (name,cmd,query) of the exclusive scratchpadsxmonad-contrib The common hook that they useZxmonad-contrib.List of exclusive scratchpads from which a  should be generated[xmonad-contribList of exclusive scratchpadsxmonad-contrib Name of the scratchpad to toggle\xmonad-contribList of exclusive scratchpads]xmonad-contribList of exclusive scratchpads^xmonad-contribList of exclusive scratchpadsxmonad-contrib4Window which should be made not exclusive anymore_xmonad-contribList of exclusive scratchpadsxmonad-contribWindow which should be moved`xmonad-contribList of exclusive scratchpadsxmonad-contribWindow which should be resizedcxmonad-contribRationalRect x y w h< that specifies relative position, height and width (see XMonad.StackSet#RationalRect)QRSXTWUVYZ[\]^_`abcYZ[\]^`_RSXTWUVQabc(c) Spencer JanssenBSD*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone2nAfxmonad-contrib:Get the current Spawner or create one if it doesn't exist.exmonad-contrib9Provides a manage hook to react on process spawned with j, i etc.gxmonad-contribReplacement for Shell prompt (XMonad.Prompt.Shell3) which launches application on current workspace.hxmonad-contribReplacement for Shell prompt (XMonad.Prompt.Shell1) which launches application on given workspace.ixmonad-contribReplacement for h2 which launches application on current workspace.jxmonad-contribReplacement for h0 which launches application on given workspace.kxmonad-contrib=Spawn an application and apply the manage hook when it opens.fxmonad-contribDfunction to stop accumulation of entries for windows that never set  _NET_WM_PIDdefghijkdefijkgh(c) Spencer Janssen 2009BSD3-style (see LICENSE)spencerjanssen@gmail.comunstable not portableNone2x-mxmonad-contribThe first time ms is executed on a particular command, that command is executed. Subsequent invocations for a command do nothing.nxmonad-contribCLike spawnOnce but launches the application on the given workspace.oxmonad-contribLanch the given application n times on the specified workspace. Subsequent attempts to spawn this application will be ignored.pxmonad-contribuSpawn the application once and apply the manage hook. Subsequent attempts to spawn this application will be ignored.mnopmnop(C) 2012 Carlos Lpez-CameyNone; public domain<c.lopez@kmels.net>unstableNonewgxmonad-contribuCreates an autocompletion function for a programm given the program's name and a list of args to send to the command.yxmonad-contrib%Creates a prompt with the given modeszxmonad-contrib]Create a list of modes based on : a list of extensions mapped to actions the path to hoogle{xmonad-contribUses the program hoogle to search for functions|xmonad-contribUses the command calc" to compute arithmetic expressionstuvwxyzztuvwxy$(c) David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)noneunstable unportableNone2hxmonad-contribeInternal dynamic project state that stores a mapping between workspace indexes and workspace tags.}xmonad-contribQThe workspace index is mapped to a workspace tag by the user and can be updated.~xmonad-contrib'Set the index of the current workspace.xmonad-contribAdd a new workspace with the given name, or do nothing if a workspace with the given name already exists; then switch to the newly created workspace.xmonad-contribQSame as addWorkspace, but adds the workspace to the end of the list of workspacesxmonad-contribAdds a new workspace with the given name to the current list of workspaces. This function allows the user to pass a function that inserts an element into a list at an arbitrary spot.xmonad-contribaPrompt for the name of a new workspace, add it if it does not already exist, and switch to it.xmonad-contribPrompt for the name of a new workspace, appending it to the end of the list of workspaces if it does not already exist, and switch to it.xmonad-contribAdd a new hidden workspace with the given name, or do nothing if a workspace with the given name already exists. Takes a function to insert the workspace at an arbitrary spot in the list.xmonad-contribsAdd a new hidden workspace with the given name, or do nothing if a workspace with the given name already exists.xmonad-contrib7Remove the current workspace if it contains no windows.xmonad-contribRemove the current workspace.xmonad-contrib=Remove workspace with specific tag if it contains no windows.xmonad-contrib#Remove workspace with specific tag.xmonad-contribRemove the current workspace after an operation if it is empty and hidden. Can be used to remove a workspace if it is empty when leaving it. The operation may only change workspace once, otherwise the workspace will not be removed.xmonad-contribLike M but use a list of sticky workspaces, whose entries will never be removed.ixmonad-contribRemove the hidden workspace with the given tag from the StackSet, if it exists. All the windows in that workspace are moved to the current workspace.}~~}(c) Brent Yorgey 2009BSD-style (see LICENSE)<byorgey@gmail.com> experimental unportableNone2h xmonad-contribAdd a new workspace group of the given name, mapping to an explicitly specified association between screen IDs and workspace names. This function could be useful for, say, creating some standard workspace groups in your startup hook.xmonad-contrib.Add a new workspace group with the given name.xmonad-contrib+Give a name to the current workspace group.xmonad-contribDelete the named workspace group from the list of workspace groups. Note that this has no effect on the workspaces involved; it simply forgets the given name.xmonad-contrib-View the workspace group with the given name.jxmonad-contrib-View the given workspace on the given screen.kxmonad-contrib:Find the workspace which is currently on the given screen.xmonad-contrib%Prompt for a workspace group to view.xmonad-contrib2Prompt for a name for the current workspace group.xmonad-contrib'Prompt for a workspace group to forget.  (c) Peter J. JonesBSD3-style (see LICENSE) Peter Jones <pjones@devalot.com>unstable not portableNone2͟lxmonad-contribInternal project state.xmonad-contrib4Details about a workspace that represents a project.xmonad-contribWorkspace name.xmonad-contribWorking directory.xmonad-contribOptional start-up hook.xmonad-contrib1Add dynamic projects support to the given config.mxmonad-contrib(Log hook for tracking workspace changes.nxmonad-contrib0Start-up hook for recording configured projects.xmonad-contrib!Find a project based on its name.xmonad-contribSFetch the current project (the one being used for the currently active workspace).oxmonad-contrib1Modify the current project using a pure function.xmonad-contribSwitch to the given project.xmonad-contrib}Prompt for a project name and then switch to it. Automatically creates a project if a new name is returned from the prompt.xmonad-contrib8Shift the currently focused window to the given project.xmonad-contribYPrompts for a project name and then shifts the currently focused window to that project.xmonad-contribRename the current project.xmonad-contrib:Change the working directory used for the current project.NOTE: This will only affect new processed started in this project. Existing processes will maintain the previous working directory.pxmonad-contribPrompt for a project name.xmonad-contribActivate a project by updating the working directory and possibly running its start-up hook. This function is automatically invoked when the workspace changes.qxmonad-contribDefault project.Nonexmonad-contribJA customized prompt indicating we are searching, and the name of the site.xmonad-contribEscape the search string so search engines understand it. Only digits and ASCII letters are not encoded. All non ASCII characters which are encoded as UTF8xmonad-contribGiven an already defined search engine, extracts its transformation function, making it easy to create compound search engines. For an instance you can use  use google\ to get a function which makes the same transformation as the google search engine would.xmonad-contrib~Given a browser, a search engine's transformation function, and a search term, perform the requested search in the browser.xmonad-contribGiven a base URL, create the  that escapes the query and appends it to the base. You can easily define a new engine locally using exported functions without needing to modify XMonad.Actions.Search: ;myNewEngine = searchEngine "site" "http://site.com/search="The important thing is that the site has a interface which accepts the escaped query string as part of the URL. Alas, the exact URL to feed searchEngine varies from site to site, often considerably, so there's no general way to cover this.Generally, examining the resultant URL of a search will allow you to reverse-engineer it if you can't find the necessary URL already described in other projects such as Surfraw. xmonad-contribIf your search engine is more complex than this (you may want to identify the kind of input and make the search URL dependent on the input or put the query inside of a URL instead of in the end) you can use the alternative  function. (searchFunc :: String -> String searchFunc s | "wiki:" `isPrefixOf` s = "http://en.wikipedia.org/wiki/" ++ (escape $ tail $ snd $ break (==':') s) | "http://" `isPrefixOf` s = s | otherwise = (use google) s myNewEngine = searchEngineF "mymulti" searchFunc searchFuncY here searches for a word in wikipedia if it has a prefix of "wiki:" (you can use the  function to escape any forbidden characters), opens an address directly if it starts with "http://" and otherwise uses the provided google search engine. You can use other engines inside of your own through the 5 function as shown above to make complex searches.LThe user input will be automatically escaped in search engines created with , K, however, completely depends on the transformation function passed to it. xmonad-contribThis function wraps up a search engine and creates a new one, which works like the argument, but goes directly to a URL if one is given rather than searching. .myIntelligentGoogleEngine = intelligent googleMNow if you search for http://xmonad.org it will directly open in your browserrxmonad-contrib SremoveColonPrefix "foo://bar" ~> "//bar" removeColonPrefix "foo//bar" ~> "foo//bar"xmonad-contribConnects a few search engines into one. If the search engines' names are "s1", "s2" and "s3", then the resulting engine will use s1 if the query is s1:word, s2 if you type s2:word and s3 in all other cases.Example: JmultiEngine = intelligent (wikipedia !> mathworld !> (prefixAware google))Now if you type "wiki:Haskell" it will search for "Haskell" in Wikipedia, "mathworld:integral" will search mathworld, and everything else will fall back to google. The use of intelligent will make sure that URLs are opened directly. xmonad-contribDMakes a search engine prefix-aware. Especially useful together with . It will automatically remove the prefix from a query so that you don't end up searching for google:xmonad if google is your fallback engine and you explicitly add the prefix. xmonad-contribChanges search engine's name xmonad-contribLike , but for use with the output from a Prompt; it grabs the Prompt's result, passes it to a given searchEngine and opens it in a given browser. xmonad-contribLike k, but in this case, the string is not specified but grabbed from the user's response to a prompt. Example: 3, ((modm, xK_g), promptSearch greenXPConfig google)[This specializes "promptSearchBrowser" by supplying the browser argument as supplied by  from XMonad.Prompt.Shell. xmonad-contribLike , but for use with the X selection; it grabs the selection, passes it to a given searchEngine and opens it in a given browser.xmonad-contribLike , but for use with the X selection; it grabs the selection, passes it to a given searchEngine and opens it in the default browser . Example: 3, ((modm .|. shiftMask, xK_g), selectSearch google)[This specializes "selectSearchBrowser" by supplying the browser argument as supplied by  from XMonad.Prompt.Shell. 0`0`B(c) 2007 Andrea Rossato 2010 Alejandro SerranoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone;j xmonad-contribBCompute the weighted average the colors of two given Pixel values.xmonad-contribCreate a simple window given a rectangle. If Nothing is given only the exposureMask will be set, otherwise the Just value. Use  to map and hideWindow to unmap.xmonad-contrib Map a windowxmonad-contribthe list versionxmonad-contribunmap a windowxmonad-contribthe list versionxmonad-contribdestroy a windowxmonad-contribthe list versionxmonad-contrib+Fill a window with a rectangle and a borderxmonad-contrib`Fill a window with a rectangle and a border, and write | a number of strings to given positionsxmonad-contribvFill a window with a rectangle and a border, and write | a number of strings and a number of icons to given positionssxmonad-contribNPaints a titlebar with some strings and icons drawn inside it. Not exported.txmonad-contribPCreates a window with the possibility of setting some attributes. Not exported.xmonad-contribThe window where to drawxmonad-contrib Window widthxmonad-contrib Window heightxmonad-contrib Border widthxmonad-contribWindow background colorxmonad-contrib Border color xmonad-contribThe window where to drawxmonad-contribXMonad Font for drawingxmonad-contrib Window widthxmonad-contrib Window heightxmonad-contrib Border widthxmonad-contribWindow background colorxmonad-contrib Border colorxmonad-contrib String colorxmonad-contribString background color xmonad-contribString  ~ments xmonad-contribStrings to be printed xmonad-contribThe window where to drawxmonad-contribXMonad Font for drawingxmonad-contrib Window widthxmonad-contrib Window heightxmonad-contrib Border widthxmonad-contribWindow background colorxmonad-contrib Border colorxmonad-contrib String colorxmonad-contribString background color xmonad-contribString  ~ments xmonad-contribStrings to be printed xmonad-contribIcon  Placements xmonad-contribIcons to be printed  *(c) 2007 David Roundy <droundy@darcs.net>BSD3-style (see LICENSE)Devin Mullins <me@twifkak.com>unstable unportableNone2=?@AMQ>xmonad-contrib$Apply action with destination window  5(c) Konstantin Sobolev <konstantin.sobolev@gmail.com>BSD-style (see LICENSE)1Konstantin Sobolev <konstantin.sobolev@gmail.com>unstable unportableNone2=>?@AQG xmonad-contribReset the layout and partition all windows into the correct sub-layout. Useful for when window properties have changed and you want ComboP to update which layout a window belongs to.xmonad-contribSwap window between panesxmonad-contrib5Swap window between panes in the N-th nested ComboP.  SwapWindowN 0 equals to SwapWindow@DHICABEFGJ        @DHICABEFGJ$(c) David Roundy <droundy@darcs.net>BSD-style (see LICENSE)noneunstable unportableNone=>?@AQJ(c) Andrea Rossato 2007BSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone2=?@AQW0xmonad-contrib5A layout modifier to float the windows in a workspace1xmonad-contrib9A layout modifier to float all the windows in a workspace2xmonad-contribGiven a function to be applied to each member of a list, and a function to check a condition by processing this transformed member with the members of a list, you get the list of members that satisfy the condition.3xmonad-contribGiven a function to be applied to each member of ta list, and a function to check a condition by processing this transformed member with something, you get the first member that satisfy the condition, or an empty list.4xmonad-contribGet the list of elements to be deleted and the list of elements to be added to the first list in order to get the second list. /!"#$%&'()*+,-.0123401 /!"#$%&'()*+,-.324(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=@AQZ;<<;(c) 2008 Jussi MkiBSD-style (see xmonad/LICENSE)joamaki@gmail.comunstable unportableNone=@A^Axmonad-contribdA simple floating layout where every window is placed according to the window's initial attributes.@AA@(c) Andrea Rossato 2007BSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@AQe^Gxmonad-contrib Font nameHxmonad-contribBackground colorIxmonad-contrib String colorJxmonad-contrib&Time in seconds of the name visibilityLxmonad-contrib;A layout modifier to show the workspace name when switchingMxmonad-contriboA layout modifier to show the workspace name when switching. It is possible to provide a custom configuration. EFGHIJKLMN LMNEFGHIJK(c) Brent YorgeyBSD-style (see LICENSE)<byorgey@gmail.com>unstable unportableNone2=?@AlZxmonad-contrib?Apply a horizontal reflection (left <--> right) to a layout.[xmonad-contrib=Apply a vertical reflection (top <--> bottom) to a layout.uxmonad-contribGiven an axis of reflection and the enclosing rectangle which contains all the laid out windows, transform a rectangle representing a window into its flipped counterpart.UVWXYZ[Z[WXUVY(c) 2009 Max RabkinBSD-style (see xmonad/LICENSE)max.rabkin@gmail.comunstable unportableNone=>?@AyPvxmonad-contrib*filter : filterM :: partition : partitionMkxmonad-contrib=Construct a drawer with a simple layout of the windows insidelxmonad-contrib>Construct a drawer with an arbitrary layout for windows insidekxmonad-contrib<The portion of the screen taken up by the drawer when closedxmonad-contrib:The portion of the screen taken up by the drawer when openxmonad-contrib"Which windows to put in the drawerlxmonad-contrib<The portion of the screen taken up by the drawer when closedxmonad-contrib:The portion of the screen taken up by the drawer when openxmonad-contrib"Which windows to put in the drawerxmonad-contrib#The layout of windows in the drawer@DHICABEFGJKLMNOPijklmnopklmonpji(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone2=?@AQM uxmonad-contrib;Get/set the number of windows in master pane (default: 1).vxmonad-contribIGet/set the proportion of screen occupied by master pane (default: 1/2).wxmonad-contribbGet/set the proportion of remaining space in a column occupied by a slave window (default: 1/2).xxmonad-contribxGet/set the increment used when modifying masterFrac/slaveFrac by the Shrink, Expand, etc. messages (default: 3/100).yxmonad-contrib@Get/set dragger and gap dimensions (default: FixedDragger 6 6).zxmonad-contrib9Get/set whether the layout is mirrored (default: False).{xmonad-contrib9Specifies the size of the clickable area between windows.}xmonad-contrib(no gaps, draggers overlap window borders~xmonad-contribwidth of a gap between windowsxmonad-contribGwidth of the dragger itself (will overlap windows if greater than gap)xmonad-contribMay be removed in favor of (mouseResizableTile { isMirrored = True }tyzxwvu{|}~uvwxzy{|}~t,(c) Peter De Wachter and Andrea Rossato 2007BSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone2=@AQxmonad-contrib.Increase the size of the window that has focusxmonad-contrib=Change the size of the window that has focus by a custom zoomxmonad-contrib[Increase the size of the window that has focus, unless if it is one of the master windows.xmonad-contribMagnifier that defaults to Offxmonad-contribpIncrease the size of the window that has focus by a custom zoom, unless if it is one of the the master windows.xmonad-contrib>A magnifier that greatly magnifies just the vertical direction  (c) 2008 Brent YorgeyBSD3<byorgey@gmail.com>unstable unportableNone2=?@AQxmonad-contrib-Messages which can be sent to a gap modifier.xmonad-contribToggle all gaps.xmonad-contribToggle a single gap.xmonad-contrib-Increase a gap by a certain number of pixels.xmonad-contribDecrease a gap.xmonad-contribModify arbitrarily.xmonad-contribThe gap state. The first component is the configuration (which gaps are allowed, and their current size), the second is the gaps which are currently active.xmonad-contribrA manual gap configuration. Each side of the screen on which a gap is enabled is paired with a size in pixels.xmonad-contrib&Modifies gaps weakly, for convenience.xmonad-contrib8Arbitrarily modify a single gap with the given function.xmonad-contribSet the GapSpec.xmonad-contribSet a gap to the given value.wxmonad-contribIImposes limits upon a GapSpec, ensuring gaps are at least 0. Not exposed.xxmonad-contrib^Takes a weak gaps-modifying function f and returns a GapSpec modifying function. Not exposed.yxmonad-contribGiven f as a definition for the behaviour of a gaps modifying function in one direction d, produces a continuation of the function to the other directions using the identity. Not exposed.xmonad-contrib&Add togglable manual gaps to a layout.xmonad-contribPAdd togglable manual gaps to a layout, explicitly specifying the initial states.xmonad-contrib3The gaps to allow, paired with their initial sizes.xmonad-contribThe layout to modify.xmonad-contrib+The gaps to allow and their initial states.xmonad-contribThe layout to modify.  (c) Spencer Janssen <spencerjanssen@gmail.com> David Roundy <droundy@darcs.net>, Andrea Rossato <andrea.rossato@unibz.it>BSD3-style (see LICENSE)(Andrea Rossato <andrea.rossato@unibz.it>unstable unportableNone2=?@AQ~$(c) David Roundy <droundy@darcs.net>BSDnoneunstableportableNone2=?@AQNxmonad-contribxmonad-contribQA message to jump to a particular layout , specified by its description string..xmonad-contribA reimplementation of the combinator of the same name from the xmonad core, providing layout choice, and the ability to support  messages.22-666666666666666666666666666666666666666666665%(C) 2007 Andrea Rossato, David RoundyBSD3Stability : unstable unportableNone(c) Roman CheplyakaBSD3-style (see LICENSE)"Roman Cheplyaka <roma@ro-che.info>unstable unportableNoneTxmonad-contriboIf the current layout is in the list, cycle to the next layout. Otherwise, apply the first layout from list.(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNoneK,(c) 2007 Andrea Rossato, 2009 Jan VornbergerBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone2=>?@AQ-xmonad-contrib The default 2, with just the default methods' implementations.xmonad-contribThe ; class, defines methods used in the implementation of the   ; instance. A type instance of this class is passed to the  = type in order to decorate a layout, by using these methods.xmonad-contribThe description that the   modifier will display.xmonad-contrib9Shrink the window's rectangle when applying a decoration.xmonad-contribThe decoration event hookxmonad-contribA hook that can be used to catch the cases when the user clicks on the decoration. If you return True here, the click event will be considered as dealt with and no further processing will take place. xmonad-contribThis hook is called while a window is dragged using the decoration. The hook can be overwritten if a different way of handling the dragging is required. xmonad-contribJThis hoook is called after a window has been dragged using the decoration. xmonad-contrib%The pure version of the main method,  . xmonad-contribGiven the theme's decoration width and height, the screen rectangle, the windows stack, the list of windows and rectangles returned by the underlying layout and window to be decorated, tupled with its rectangle, produce a F P or E& if the window is not to be decorated. xmonad-contribThe   (. This data type is an instance of the G class. This data type will be passed, together with a layout, to the N type constructor to modify the layout by adding decorations according to a .xmonad-contribThe   state component, where the list of decorated window's is zipped with a list of decoration. A list of decoration is a list of tuples, a >  and a 'Maybe Rectangle'. The 5 will be displayed only if the rectangle is of type F.xmonad-contribA   layout modifier will handle 2, a message to dynamically change the decoration .xmonad-contribA 3 is a record of colors, font etc., to customize a .For a collection of s see XMonad.Util.Themesxmonad-contribColor of the active windowxmonad-contribColor of the inactive windowxmonad-contribColor of the urgent windowxmonad-contrib(Color of the border of the active windowxmonad-contrib*Color of the border of the inactive windowxmonad-contrib(Color of the border of the urgent windowxmonad-contrib(Width of the border of the active windowxmonad-contrib*Width of the border of the inactive windowxmonad-contrib(Width of the border of the urgent windowxmonad-contrib&Color of the text of the active windowxmonad-contrib(Color of the text of the inactive windowxmonad-contrib&Color of the text of the urgent window xmonad-contrib Font name!xmonad-contrib6Maximum width of the decorations (if supported by the )"xmonad-contribHeight of the decorations#xmonad-contribEExtra text to appear in a window's title bar. Refer to for a use #XMonad.Layout.ImageButtonDecoration$xmonad-contrib9Extra icons to appear in a window's title bar. Inner [Bool] is a row in a icon bitmap.%xmonad-contribA layout modifier that, with a , a , a V, and a layout, will decorate this layout according to the decoration style provided.For some usage examples see XMonad.Layout.DecorationMadness.&xmonad-contribThe default xmonad .zxmonad-contrib By default   handles  and  only.{xmonad-contribsMouse focus and mouse drag are handled by the same function, this way we can start dragging unfocused windows too.|xmonad-contrib\Given a window and the state, if a matching decoration is in the state return it with its (>) P.}xmonad-contribInitialize the L by initializing the font structure and by creating the needed decorations.~xmonad-contribBDelete windows stored in the state and release the font structure.xmonad-contribYCreate the decoration windows of a list of windows and their rectangles, by calling the   method of the  received.xmonad-contribYUpdate a decoration window given a shrinker, a theme, the font structure and the needed Ps(xmonad-contribTrue if the window is in the Stack. The : comes second to facilitate list processing, even though w `isInStack` s won't work...;))xmonad-contribGiven a P and a list of Ps is True if the P$ is not completely contained by any P of the list.*xmonad-contribThe contrary of ).+xmonad-contribTrue is the first P is totally within the second P.3xmonad-contrib The long  instance for the   type.In < we check the state: if there is no state we initialize it. The state is 4zed against the list of windows produced by the underlying layout: removed windows get deleted and new ones decorated by , which will call  ( to decide if a window must be given a P5, in which case a decoration window will be created.After that we resync the updated state with the windows' list and then we process the resynced stated (as we do with a new state).aFirst we map the decoration windows, we update each decoration to reflect any decorated window's change, and we insert, in the list of windows and rectangles returned by the underlying layout, the decoration for each window. This way xmonad will restack the decorations and their windows accordingly. At the end we remove invisible/stacked windows.UMessage handling is quite simple: when needed we release the state component of the   . Otherwise we call z", which will call the appropriate  methods to perform its tasks.xmonad-contribAdistance from the left where the click happened on the decorationxmonad-contribBdistance from the right where the click happened on the decorationA       !"#$%&'()*+,-3% !"#$&     -,()*+ '(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstable unportableNone0Exmonad-contrib*The default xmonad theme, by David Roundy.Fxmonad-contrib=Small decorations with a Ion3 remembrance, by Andrea Rossato.Gxmonad-contrib*Matching decorations for Adwaita GTK themeHxmonad-contrib/Matching decorations for Adwaita-dark GTK themeIxmonad-contrib-Don's preferred colors - from DynamicLog...;)Jxmonad-contrib"Ffrom Robert Manea's prompt theme.Kxmonad-contribDark Theme, by Lucian Poston.Lxmonad-contribdeifl's Theme, by deifl.Mxmonad-contrib&oxymor00n's theme, by Tom Rauchenwald.Oxmonad-contrib#Forest colours, by Kathryn AndersenPxmonad-contrib.Lake (blue/green) colours, by Kathryn AndersenQxmonad-contrib$Peacock colours, by Kathryn AndersenRxmonad-contrib)Violet-Green colours, by Kathryn AndersenSxmonad-contrib!Blue colours, by Kathryn AndersenTxmonad-contrib&Christmas colours, by Kathryn AndersenUxmonad-contrib#Autumn colours, by Kathryn AndersenVxmonad-contrib!Fire colours, by Kathryn Andersen=>?@ABCDEFGHIJKLMNOPQRSTUVDCEFGHJKLMINOPQRSUVT=>?@AB(C) 2007 Andrea RossatoBSD3andrea.rossato@unibz.itunstable unportableNone2WXXW Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNone 2=>?@AEQXOMZxmonad-contrib#The type of messages accepted by a c layout[xmonad-contrib?Multiply the focused window's size factor by the given number.\xmonad-contrib:Set the focused window's size factor to the given number.]xmonad-contribSSet whether the focused window should occupy all available space when it has focus^xmonad-contribVToggle whether the focused window should occupy all available space when it has focusxmonad-contrib"Size specification for an element.xmonad-contrib The elementxmonad-contribIts size ratioxmonad-contribDWhether it should occupy all the available space when it has focus._xmonad-contribTo use the usual :axmonad-contrib?Class for equivalence relations. Must be transitive, reflexive.cxmonad-contribA layout that arranges its windows in a horizontal row, and allows to change the relative size of each element independently.xmonad-contribhFunction to compare elements for equality, a real Eq instance might not be what you want in some casesxmonad-contribUElement specs. The zipper is so we know what the focus is when we handle a messagedxmonad-contribc8 layout for laying out elements which are instances of %. Perfect for s.exmonad-contrib[ZoomRow layout with a custom equality predicate. It should of course satisfy the laws for %, and you should also make sure that the layout never has to handle two "equal" elements at the same time (it won't do any huge damage, but might behave a bit strangely).fxmonad-contrib5Increase the size of the focused window. Defined as Zoom 1.5gxmonad-contrib5Decrease the size of the focused window. Defined as  Zoom (2/3)hxmonad-contrib2Reset the size of the focused window. Defined as ZoomTo 1Z[\]^_`abcdefghcdZ[\]^fgheab_`%(c) 2007 David Roundy, Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@AQkyxmonad-contrib.A tabbed layout with the default xmonad Theme.(This is a minimal working configuration: Yimport XMonad import XMonad.Layout.Tabbed main = xmonad def { layoutHook = simpleTabbed }{xmonad-contrib5A bottom-tabbed layout with the default xmonad Theme.|xmonad-contrib5A bottom-tabbed layout with the default xmonad Theme.}xmonad-contrib3A side-tabbed layout with the default xmonad Theme.~xmonad-contrib3A side-tabbed layout with the default xmonad Theme.xmonad-contrib3A side-tabbed layout with the default xmonad Theme.xmonad-contrib3A side-tabbed layout with the default xmonad Theme.xmonad-contribUA layout decorated with tabs and the possibility to set a custom shrinker and theme.xmonad-contribcA layout decorated with tabs at the bottom and the possibility to set a custom shrinker and theme.xmonad-contribUA layout decorated with tabs and the possibility to set a custom shrinker and theme.xmonad-contribUA layout decorated with tabs and the possibility to set a custom shrinker and theme.xmonad-contribUA layout decorated with tabs and the possibility to set a custom shrinker and theme.xmonad-contribUA layout decorated with tabs and the possibility to set a custom shrinker and theme.xmonad-contribVA layout modifier that uses the provided shrinker and theme to add tabs to any layout.xmonad-contribdA layout modifier that uses the provided shrinker and theme to add tabs to the bottom of any layout.xmonad-contribbA layout modifier that uses the provided shrinker and theme to add tabs to the side of any layout.xmonad-contribbA layout modifier that uses the provided shrinker and theme to add tabs to the side of any layout.:  !"#$&-vwxyz{|}~:yz{}~| !"#$&vw-x (c) 2009 Adam VogtBSD-style (see xmonad/LICENSE)vogt.adam@gmail.comunstable unportableNone2=>?@AJQxmonad-contrib send a message to all sublayoutsxmonad-contribYGroupMsg take window parameters to determine which group the action should be applied toxmonad-contrib*free the focused window from its tab stackxmonad-contrib0separate the focused group into singleton groupsxmonad-contrib+merge the first group into the second groupxmonad-contrib3make one large group, keeping the parameter focusedxmonad-contribzused to the window named in the first argument to the second argument's group, this may be replaced by a combination of  and xmonad-contrib8the sublayout with the given window will get the messagexmonad-contribGroups assumes this invariant: M.keys gs == map W.focus (M.elems gs) (ignoring order) All windows in the workspace are in the Map2The keys are visible windows, the rest are hidden.FThis representation probably simplifies the internals of the modifier.xmonad-contribmmessages are handled when running the layout, not in the handleMessage, I'm not sure that this is necessaryxmonad-contrib{how many NextLayout messages to send to newly populated layouts. If there is no corresponding index, then don't send any.xmonad-contrib)The sublayouts and the stacks they managexmonad-contrib#The main layout modifier arguments: 5subLayout advanceInnerLayouts innerLayout outerLayout advanceInnerLayoutsWhen a new group at index n? in the outer layout is created (even with one element), the  innerLayoutE is used as the layout within that group after being advanced with advanceInnerLayouts !! n W9 messages. If there is no corresponding element in the advanceInnerLayouts list, then  innerLayout is not given any W messages. innerLayout1The single layout given to be run as a sublayout. outerLayout@The layout that determines the rectangles given to each group.Ex. The second group is T, the third is Circle, all others are tabbed with: myLayout = addTabs shrinkText def $ subLayout [0,1,2] (Simplest ||| Tall 1 0.2 0.5 ||| Circle) $ Tall 1 0.2 0.5 ||| Fullxmonad-contrib subTabbed is a use of  with  to show decorations.xmonad-contribdefaultSublMapZ is an attempt to create a set of keybindings like the defaults ones but to be used as a submap( for sending messages to the sublayout.xmonad-contribmerge the window that would be focused by the function when applied to the W.Stack of all windows, with the current group removed. The given window should be focused by a sublayout. Example usage: 2withFocused (sendMessage . mergeDir W.focusDown')xmonad-contrib pullGroup,  pushGroupw allow you to merge windows or groups inheriting the position of the current window (pull) or the other window (push). pushWindow and  pullWindowa move individual windows between groups. They are less effective at preserving window positions.xmonad-contrib pullGroup,  pushGroupw allow you to merge windows or groups inheriting the position of the current window (pull) or the other window (push). pushWindow and  pullWindowa move individual windows between groups. They are less effective at preserving window positions.xmonad-contrib pullGroup,  pushGroupw allow you to merge windows or groups inheriting the position of the current window (pull) or the other window (push). pushWindow and  pullWindowa move individual windows between groups. They are less effective at preserving window positions.xmonad-contrib pullGroup,  pushGroupw allow you to merge windows or groups inheriting the position of the current window (pull) or the other window (push). pushWindow and  pullWindowa move individual windows between groups. They are less effective at preserving window positions.xmonad-contribApply a function on the stack belonging to the currently focused group. It works for rearranging windows and for changing focus.xmonad-contrib2Send a message to the currently focused sublayout.xmonad-contrib/update Group to follow changes in the workspacexmonad-contribjrearrange the windowset to put the groups of tabs next to eachother, so that the stack of tabs stays put.xmonad-contrib[focusWindow'. focus an element of a stack, is Nothing if that element is absent. See also xmonad-contribrestore the default layout for each group. It needs the X monad to switch the default layout to a specific one (handleMessage NextLayout)(c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@Axmonad-contrib.Add simple decorations to windows of a layout. !"#$&- !"#$&-(c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@AQ  (c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@Axmonad-contribzAdd, on the top of the screen, a simple bar of tabs to a given | layout, with the default theme and the default shrinker.xmonad-contribSame of [, but with the possibility of setting a custom shrinker, a custom theme and the position: F or G.EFGHIJ&- &-EFGHIJ(c) 2018 Lucian PostonBSD-style (see LICENSE)<lucianposton@pm.me>unstable unportableNone2=@AWxmonad-contribTransformer for XMonad.Layout.TabBarDecoration.(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=?@AƄxmonad-contrib3Add very simple decorations to windows of a layout. !"#$&-$(c) David Roundy <droundy@darcs.net>BSDnoneunstable unportableNone=?@AJQZ xmonad-contrib(layoutHintsWithPlacement (rx, ry) layout will adapt the sizes of a layout's windows according to their size hints, and position them inside their originally assigned area according to the rx and ryp parameters. (0, 0) places the window at the top left, (1, 0) at the top right, (0.5, 0.5) at the center, etc.xmonad-contriblayoutHintsToCenter layout applies hints, sliding the window to the center of the screen and expanding its neighbors to fill the gaps. Windows are never expanded in a way that increases overlap.layoutHintsToCenterv only makes one pass at resizing the neighbors of hinted windows, so with some layouts (ex. the arrangement with two Mirror Tall stacked vertically), layoutHintsToCenter+ may leave some gaps. Simple layouts like Tall are unaffected.xmonad-contribplaceRectangle (rx, ry) r0 r: will return a new rectangle with the same dimensions as r, but positioned inside of r0/ as specified by the (rx, ry) parameters (see ).xmonad-contrib(Leave the opposite edges where they werexmonad-contribin what direction is the second window from the first that can expand if the first is shrunk, assuming that the root window is fully covered: one direction for a common edge two directions for a common cornerxmonad-contribMTrue whenever two edges touch. not (Set.null $ adjacent x y) ==> touching x yxmonad-contrib!starting top left going clockwisexmonad-contribIEvent hook that refreshes the layout whenever a window changes its hints.xmonad-contribBTrue if the window's current size does not satisfy its size hints. Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNone@AHSVXjxmonad-contrib4Configuration data for the "tiled tab groups" layoutxmonad-contrib Compare two Group(s by comparing the ids of their layouts.xmonad-contrib(Increase the width of the focused columnxmonad-contrib(Decrease the width of the focused columnxmonad-contrib%Reset the width of the focused columnxmonad-contribeToggle whether the currently focused column should take up all available space whenever it has focusxmonad-contrib)Increase the heigth of the focused windowxmonad-contrib)Decrease the height of the focused windowxmonad-contrib&Reset the height of the focused windowxmonad-contribbToggle whether the currently focused window should take up the whole column whenever it has focusxmonad-contrib+Increase the number of master groups by onexmonad-contrib+Decrease the number of master groups by onexmonad-contribShrink the master areaxmonad-contribExpand the master areaxmonad-contrib,Rotate the available outer layout algorithms4    ! " # $ % & ' ( ) * + , - .&-"-& Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedstable unportableNone@ASXO xmonad-contribA layout inspired by wmiixmonad-contrib'Increase the width of the focused groupxmonad-contrib&Decrease the size of the focused group xmonad-contrib2Reset the size of the focused group to the default xmonad-contribVToggle whether the currently focused group should be maximized whenever it has focus. xmonad-contrib(Rotate the layouts in the focused group. xmonad-contrib3Switch the focused group to the "maximized" layout. xmonad-contrib0Switch the focused group to the "tabbed" layout.xmonad-contrib0Switch the focused group to the "column" layout.    ! " # $ % & ' ( ) * + , - .&-           -&(c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=?@Axmonad-contrib<Add simple old dwm-style decorations to windows of a layout. !"#$&- !"#$&-)Clemens Fruhwirth <clemens@endorphin.org>BSD-style (see LICENSE))Clemens Fruhwirth <clemens@endorphin.org>unstable unportableNone=?MXNxmonad-contribuA function taking the search string and a list of elements, and returning a potentially rearranged list of elements.xmonad-contribThat is 5 if you are selecting a , or  if you are selecting a . The catch-all instance HasColorizer a uses the  and  colors.xmonad-contribThe * instance gives a basic configuration for 7/, with the colorizer chosen based on the type.If you want to replace the   field, use : instead of # to avoid ambiguous type variables.xmonad-contribWe enforce an ordering such that we will always get the same result. If the elements position changes from call to call of gridselect, then the shown positions will also change when you search for the same string. This is especially the case when using gridselect for showing and switching between workspaces, as workspaces are usually shown in order of last visited. The chosen ordering is "how deep in the haystack the needle is" (number of characters from the beginning of the string and the needle).(xmonad-contribEmbeds a key handler into the X event handler that dispatches key events to the key handler, while non-key event go to the standard handler.)xmonad-contribWhen the map contains (KeySym,KeyMask) tuple for the given event, the associated action in the map associated shadows the default key handler*xmonad-contrib8Closes gridselect returning the element under the cursor+xmonad-contrib'Closes gridselect returning no element.,xmonad-contrib)Sets the absolute position of the cursor.-xmonad-contrib)Moves the cursor by the offsets specified0xmonad-contrib9Apply a transformation function the current search string1xmonad-contribBy default gridselect used the defaultNavigation action, which binds left,right,up,down and vi-style h,l,j,k navigation. Return quits gridselect, returning the selected element, while Escape cancels the selection. Slash enters the substring search mode. In substring search mode, every string-associated keystroke is added to a search string, which narrows down the object selection. Substring search mode comes back to regular navigation via Return, while Escape cancels the search. If you want that navigation style, add 1 as " to your  object. This is done by : automatically.2xmonad-contribThis navigation style combines navigation and search into one mode at the cost of losing vi style navigation. With this style, there is no substring search submode, but every typed character is added to the substring search.3xmonad-contrib{Navigation submode used for substring search. It returns to the first argument navigation style when the user hits Return.4xmonad-contribDefault colorizer for Strings5xmonad-contrib.Colorize a window depending on it's className.6xmonad-contribTA colorizer that picks a color inside a range, and depending on the window's class.xmonad-contribXCreates a mix of two colors according to a ratio (1 -> first color, 0 -> second color).xmonad-contribGenerates a Double from a string, trying to achieve a random distribution. We create a random seed from the sum of all characters in the string, and use it to generate a ratio between 0 and 17xmonad-contribBrings up a 2D grid of elements in the center of the screen, and one can select an element with cursors keys. The selected element is returned.8xmonad-contribLike  gridSelect: but with the current windows and their titles as elements9xmonad-contribBrings up a 2D grid of windows in the center of the screen, and one can select a window with cursors keys. The selected window is then passed to a callback function.:xmonad-contrib5Builds a default gs config from a colorizer function.;xmonad-contrib0Brings selected window to the current workspace.<xmonad-contrib@Switches to selected window's workspace and focuses that window.=xmonad-contrib0Select an application to spawn from a given list>xmonad-contrib*Select an action and run it in the X monad?xmonad-contribCSelect a workspace and view it using the given function (normally  or )HAnother option is to shift the current window to the selected workspace: 9gridselectWorkspace (\ws -> W.greedyView ws . W.shift ws)@xmonad-contrib5Select a workspace and run an arbitrary action on it.Axmonad-contrib1A rearranger that leaves the elements unmodified.Bxmonad-contribA generator for rearrangers that append a single element based on the search string, if doing so would not be redundant (empty string or value already present).6xmonad-contribBeginning of the color rangexmonad-contribEnd of the color rangexmonad-contribBackground of the active windowxmonad-contribInactive text colorxmonad-contribActive text color/ !"#$%&'()*+,-./0123456789:;<=>?@AB/ !"#$%&':789;<?@=>546()132,-./*+0AB(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=@AQRKLMNOOKLMN(c) 2013 Ben Weitzman <benweitzman@gmail.com> 2015 Anton Pirogov <anton.pirogov@gmail.com> 2019 Mateusz Karbowy <obszczymucha@gmail.comBSD3-style (see LICENSE)$Ben Weitzman <benweitzman@gmail.com>unstable unportableNone)2=?@AQbs Yxmonad-contrib6Message for shifting window by splitting its neighbour[xmonad-contrib%Message to move nodes inside the tree^xmonad-contrib@Message to cyclically select the parent node instead of the leaf`xmonad-contribLMessage for swapping the left child of a split with the right child of splitbxmonad-contrib=Message for rotating a split (horizontal/vertical) in the BSPdxmonad-contrib0Message for resizing one of the cells in the BSPhxmonad-contrib^Message to balance the tree in some way (Balance retiles the windows, Equalize changes ratios)kxmonad-contrib^Message for rotating the binary tree around the parent node of the window to the left or rightnxmonad-contribHan empty BinarySpacePartition to use as a default for adding windows to. XYZ[\]^_`abcdefghijklmnnXbc`adefgklmhij^_[\] YZ(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNoneeB1(c) 2009 Nils Schweinsberg, 2015 Evgeny KurnevskyBSD3-style (see LICENSE)!Nils Schweinsberg <mail@n-sch.de>unstable unportableNone2=?@Aj5xmonad-contribAdd one single X () action to a screen cornerxmonad-contribAdd a list of (ScreenCorner, X ()) tuplesxmonad-contribHandle screen corner events   Quentin Moser <moserq@gmail.com>BSD-style (see LICENSE)orphanedunstable unportableNoneYxmonad-contrib(Alternate representation for rectangles.xmonad-contribTop left coordinates, inclusivexmonad-contribTop left coordinates, inclusivexmonad-contrib#Bottom right coorsinates, exclusivexmonad-contrib#Bottom right coorsinates, exclusivexmonad-contribThe type of placement policiesxmonad-contrib7Try to place windows with as little overlap as possiblexmonad-contrib!Place windows at a fixed positionxmonad-contribPlace windows under the mousexmonad-contrib`Apply the given placement policy, constraining the placed windows inside the screen boundaries.xmonad-contribSame as 5, but allows specifying gaps along the screen's edgesxmonad-contribyRepositions the focused window according to a placement policy. Works for both "real" floating windows and windows in a -based layout.xmonad-contrib:Hook to automatically place windows when they are created.xmonad-contribECompute the new position of a window according to a placement policy.xmonad-contribZHelper: Places a Rectangle at a fixed position indicated by two Rationals inside another,xmonad-contribZHelper: Ensures its second parameter is contained inside the first by possibly moving it.xmonad-contribfReturn values are, in order: window's rectangle, other windows' rectangles and pointer's coordinates.xmonad-contribMain placement functionxmonad-contribSecond part of the algorithm: Chooses the best position in which to place a window, according to a list of free areas and an ideal position for the top-left corner. We can't use semi-open surfaces for this, so we go back to X11 Rectangles Positions etc instead.xmonad-contribFirst part of the algorithm: Tries to find an area in which to place a new rectangle so that it overlaps as little as possible with other rectangles already present. The first rectangles in the list will be overlapped first.xmonad-contribgSubtracts smaller rectangles from a total rectangle , returning a list of remaining rectangular areas.xmonad-contribNubsg a list of rectangles, dropping all those that are already contained in another rectangle of the list. xmonad-contribBWhere the window should be placed inside the available area. See .xmonad-contribWhere windows should go.(0,0) -> top left of the screen (1,0) -> top right of the screenetcxmonad-contribAWhere the pointer should be relative to the window's frame; see .xmonad-contrib top, right, bottom and left gapsxmonad-contrib^The workspace with reference to which the window should be placed, and the screen's geometry.xmonad-contribThe list of floating windows.xmonad-contribThe placement strategyxmonad-contrib The screenxmonad-contribThe other visible windowsxmonad-contribThe pointer's position.xmonad-contribThe window to be placedxmonad-contribGpoint of the screen where windows should be placed first, if possible.xmonad-contribscreenxmonad-contrib other clientsxmonad-contribwidthxmonad-contribheightxmonad-contrib Free areasxmonad-contribIdeal coordinatesxmonad-contribWidth and height of the windowxmonad-contribThe total available areaxmonad-contribThe parts already in usexmonad-contribWidth of the rectangle to placexmonad-contrib Height of the rectangle to place  /(c) Joachim Breitner <mail@joachim-breitner.de>BSD+Joachim Breitner <mail@joachim-breitner.de>unstable unportableNone2=?@AQxmonad-contribE(Initial x pixel, initial y pixel, final x pixel, final y pixel).xmonad-contrib6(Direction, height/width, initial pixel, final pixel).xmonad-contribSetStruts is a message constructor used to set or unset specific struts, regardless of whether or not the struts were originally set. Here are some example bindings:Show all gaps: R ,((modm .|. shiftMask ,xK_b),sendMessage $ SetStruts [minBound .. maxBound] [])Hide all gaps: R ,((modm .|. controlMask,xK_b),sendMessage $ SetStruts [] [minBound .. maxBound])Show only upper and left gaps: c ,((modm .|. controlMask .|. shiftMask,xK_b),sendMessage $ SetStruts [U,L] [minBound .. maxBound])7Hide the bottom keeping whatever the other values were: M ,((modm .|. controlMask .|. shiftMask,xK_g),sendMessage $ SetStruts [] [D])xmonad-contrib7These are removed from the currently set struts before  are added.xmonad-contrib%Message type which can be sent to an * layout modifier to alter its behavior.xmonad-contribGAdd docks functionality to the given config. See above for an example.xmonad-contrib]Detects if the given window is of type DOCK and if so, reveals it, but does not manage it.xmonad-contrib.Checks if a window is a DOCK or DESKTOP windowxmonad-contribSWhenever a new dock appears, refresh the layout immediately to avoid the new dock.xmonad-contrib6Gets the STRUT config, if present, in xmonad gap orderxmonad-contrib^Goes through the list of windows and find the gap so that all STRUT settings are satisfied.xmonad-contribKAdjust layout automagically: don't cover up any docks, status bars, etc.xmonad-contribAdjust layout automagically: don't cover up docks, status bars, etc. on the indicated sides of the screen. Valid sides are U (top), D (bottom), R (right), or L (left).xmonad-contribInvertible conversion.xmonad-contribInvertible conversion.xmonad-contribDo the two ranges overlap?#Precondition for every input range (x, y): x  y.A range (x, y)( is assumed to include every pixel from x to y. (c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNonea&(c) Don Stewart <dons@cse.unsw.edu.au>BSD3-style (see LICENSE)"Don Stewart <dons@cse.unsw.edu.au>unstable unportableNone>Q? -xmonad-contribThe K type allows the user to customize the formatting of status information.xmonad-contrib8how to print the tag of the currently focused workspacexmonad-contribHhow to print tags of visible but not focused workspaces (xinerama only)xmonad-contrib=how to print tags of hidden workspaces which contain windowsxmonad-contrib,how to print tags of empty hidden workspacesxmonad-contrib-how to print tags of empty visible workspacesxmonad-contrib2format to be applied to tags of urgent workspaces.xmonad-contribRseparator to use between different log sections (window name, layout, workspaces)xmonad-contrib'separator to use between workspace tagsxmonad-contribwindow title formatxmonad-contribescape / sanitizes input to xmonad-contriblayout name formatxmonad-contribhow to order the different log sections. By default, this function receives a list with three formatted strings, representing the workspaces, the layout, and the current window title, respectively. If you have specified any extra loggers in l, their output will also be appended to the list. To get them in the reverse order, you can just use ppOrder = reverseW. If you don't want to display the current layout, you could use something like "ppOrder = \(ws:_:t:_) -> [ws,t] , and so on.xmonad-contrib"how to sort the workspaces. See XMonad.Util.WorkspaceCompare for some useful sorts.xmonad-contribologgers for generating extra information such as time and date, system load, battery status, and so on. See XMonad.Util.Loggers# for examples, or create your own!xmonad-contribapplied to the entire formatted string in order to output it. Can be used to specify an alternative output method (e.g. write to a pipe instead of stdout), and/or to perform some last-minute formatting.xmonad-contribPRun xmonad with a dzen status bar with specified dzen command line arguments. main = xmonad =<< dzenWithFlags flags myConfig myConfig = def { ... } flags = "-e onstart lower -w 800 -h 24 -ta l -fg #a8a3f7 -bg #3f3c6d"zThis function can be used to customize the arguments passed to dzen2. e.g changing the default width and height of dzen2.OIf you wish to customize the status bar format at all, you'll have to use the  function instead.uThe binding uses the XMonad.Hooks.ManageDocks module to automatically handle screen placement for dzen, and enables 'mod-b' for toggling the menu bar.3You should use this function only when the default ' function does not serve your purpose.xmonad-contrib<Run xmonad with a dzen status bar set to some nice defaults. 7main = xmonad =<< dzen myConfig myConfig = def { ... }_The intent is that the above config file should provide a nice status bar with minimal effort.uThe binding uses the XMonad.Hooks.ManageDocks module to automatically handle screen placement for dzen, and enables 'mod-b'- for toggling the menu bar. Please refer to % function for further documentation.xmonad-contrib>Run xmonad with a xmobar status bar set to some nice defaults. 9main = xmonad =<< xmobar myConfig myConfig = def { ... }#This works pretty much the same as  function above.xmonad-contribModifies the given base configuration to launch the given status bar, send status information to that bar, and allocate space on the screen edges for the bar.xmonad-contribWrite a string to a property on the root window. This property is of type UTF8_STRING. The string must have been processed by encodeString (dynamicLogString does this).xmonad-contrib>Write a string to the _XMONAD_LOG property on the root window.xmonad-contrib6Helper function which provides ToggleStruts keybindingxmonad-contribVAn example log hook, which prints status information to stdout in the default format: 1 2 [3] 4 7 : full : titlepThat is, the currently populated workspaces, the current workspace layout, and the title of the focused window.$To customize the output format, see .xmonad-contrib_Format the current status using the supplied pretty-printing format, and write it to stdout.xmonad-contrib The same as , except it simply returns the status as a formatted string without actually printing it to stdout, to allow for further processing, or use in some application other than a status bar.xmonad-contribFormat the workspace information, given a workspace sorting function, a list of urgent windows, a pretty-printer format, and the current WindowSet.xmonad-contrib5Workspace logger with a format designed for Xinerama:  [1 9 3] 2 7}where 1, 9, and 3 are the workspaces on screens 1, 2 and 3, respectively, and 2 and 7 are non-visible, non-empty workspaces.At the present time, the current layout and window title are not shown. The xinerama workspace format shown above can be (mostly) replicated using  by setting  to getSortByXineramaRule from XMonad.Util.WorkspaceCompare. For example, xdef { ppCurrent = dzenColor "red" "#efebe7" , ppVisible = wrap "[" "]" , ppSort = getSortByXineramaRule }xmonad-contrib0Wrap a string in delimiters, unless it is empty.xmonad-contrib/Pad a string with a leading and trailing space.xmonad-contrib3Trim leading and trailing whitespace from a string.xmonad-contrib>Limit a string to a certain length, adding "..." if truncated.xmonad-contribbOutput a list of strings, ignoring empty ones and separating the rest with the given separator.xmonad-contribXUse dzen escape codes to output a string with given foreground and background colors.xmonad-contribEscape any dzen metacharacters.xmonad-contrib"Strip dzen formatting or commands.xmonad-contribZUse xmobar escape codes to output a string with given foreground and background colors.xmonad-contribEncapsulate text with an action. The text will be displayed, and the action executed when the displayed text is clicked. Illegal input is not filtered, allowing xmobar to display any parse errors. Uses xmobar's new syntax wherein the command is surrounded by backticks.xmonad-contribEncapsulate arbitrary text for display only, i.e. untrusted content if wrapped (perhaps from window titles) will be displayed only, with all tags ignored. Introduced in xmobar 0.21; see their documentation. Be careful not to shorten the result.xmonad-contrib&Strip xmobar markup, specifically the  fc,  icon and  action" tags and the matching tags like  /fc.xmonad-contrib0The default pretty printing options, as seen in .xmonad-contrib/Settings to emulate dwm's statusbar, dzen only.xmonad-contribSome nice xmobar defaults.xmonad-contribUThe options that sjanssen likes to use with xmobar, as an example. Note the use of  and the record update on .xmonad-contribDThe options that byorgey likes to use with dzen, as another example.xmonad-contrib)the command line to launch the status barxmonad-contribthe pretty printing optionsxmonad-contrib0the desired key binding to toggle bar visibilityxmonad-contribthe base configxmonad-contribleft delimiterxmonad-contribright delimiterxmonad-contrib output stringxmonad-contrib separatorxmonad-contribfields to outputxmonad-contrib1foreground color: a color name, or #rrggbb formatxmonad-contribbackground colorxmonad-contrib output stringxmonad-contrib1foreground color: a color name, or #rrggbb formatxmonad-contribbackground colorxmonad-contrib output stringxmonad-contrib7Command. Use of backticks (`) will cause a parse error.xmonad-contribGButtons 1-5, such as "145". Other characters will cause a parse error.xmonad-contribDisplayed/wrapped text.xmonad-contribtagsxmonad-contrib with all  tag... /tag removed//5(c) Konstantin Sobolev <konstantin.sobolev@gmail.com>BSD-style (see LICENSE)1Konstantin Sobolev <konstantin.sobolev@gmail.com>unstable unportableNoneQ]xmonad-contribNamed scratchpads configurationxmonad-contrib%Single named scratchpad configurationxmonad-contribScratchpad namexmonad-contribCommand used to run applicationxmonad-contrib)Query to find already running applicationxmonad-contribOManage hook called for application window, use it to define the placement. See  nonFloating, defaultFloating and customFloatingxmonad-contrib.Manage hook that makes the window non-floatingxmonad-contribEManage hook that makes the window floating with the default placementxmonad-contrib@Manage hook that makes the window floating with custom placementxmonad-contrib,Finds named scratchpad configuration by namexmonad-contrib<Runs application which should appear in specified scratchpadxmonad-contrib+Action to pop up specified named scratchpadxmonad-contrib)Manage hook to use with named scratchpadsxmonad-contrib{Transforms a workspace list containing the NSP workspace into one that doesn't contain it. Intended for use with logHooks.xmonad-contribFTransforms a pretty-printer into one not displaying the NSP workspace.A simple use could be: DlogHook = 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 ppB 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 hRightxmonad-contribNamed scratchpads configurationxmonad-contribScratchpad namexmonad-contribNamed scratchpads configuration(c) Braden Shepherdson 2008BSD-style (as xmonad)Braden.Shepherdson@gmail.comunstable unportableNonerxmonad-contribDAction to pop up the terminal, for the user to bind to a custom key. xmonad-contribBAction to pop up the terminal, with a directly specified terminal. xmonad-contribAction to pop up any program with the user specifying how to set its resource to "scratchpad". For example, with gnome-terminal: PscratchpadSpawnActionCustom "gnome-terminal --disable-factory --name scratchpad" xmonad-contribjThe ManageHook, with the default rectangle: Half the screen wide, a quarter of the screen tall, centered. xmonad-contribThe 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: 5scratchpadManageHook (W.RationalRect 0.4 0.5 0.6 0.3) xmonad-contribzTransforms a workspace list containing the SP workspace into one that doesn't contain it. Intended for use with logHooks.xmonad-contrib+The configuration, to retrieve the terminal xmonad-contribName of the terminal program xmonad-contrib5Command to spawn a program with resource "scratchpad" xmonad-contrib User-specified screen rectangle.          (c) Brent Yorgey, Wirt WolffBSD-style (see LICENSE)<byorgey@gmail.com>unstable unportableNone~xmonad-contrib" is just a convenient synonym for X (Maybe String).xmonad-contribGet the current volume with aumix. !http://jpj.net/~trevor/aumix.htmlxmonad-contribGet the battery status (percent charge and charging/discharging status). This is an ugly hack and may not work for some people. At some point it would be nice to make this more general/have fewer dependencies (assumes  /usr/bin/acpi and sed are installed.)xmonad-contribGet the current date and time, and format them via the given format string. The format used is the same as that used by the C library function strftime; for example, date "%a %b %d" might display something like  Tue Feb 190. For more information see something like  ?http://www.cplusplus.com/reference/clibrary/ctime/strftime.html.xmonad-contribFGet the load average. This assumes that you have a utility called /usr/bin/uptime and that you have sedn installed; these are fairly common on GNU/Linux systems but it would be nice to make this more general.xmonad-contrib Create a ! from an arbitrary shell command.xmonad-contrib3Get a count of filtered files in a directory. See  and  source for usage examples.xmonad-contribxGet a count of unread mails in a maildir. For maildir format details, to write loggers for other classes of mail, see  "http://cr.yp.to/proto/maildir.html and .xmonad-contrib&Get a count of new mails in a maildir.xmonad-contrib+Get the title (name) of the focused window.xmonad-contrib#Get the name of the current layout.xmonad-contrib&Get the name of the current workspace.xmonad-contrib+Use a string formatting function to edit a f string. For example, to create a tag function to prefix or label loggers, as in 'tag: output', use: UtagL l = onLogger $ wrap (l ++ ": ") "" tagL "bat" battery tagL "load" loadAvgQIf you already have a (String -> String) function you want to apply to a logger: revL = onLogger trim,See formatting utility source code for more  usage examples.xmonad-contrib3Wrap a logger's output in delimiters, unless it is  X (Nothing) or  X (Just ""). Some examples:  wrapL " | " " | " (date "%a %d %b") -- ' | Tue 19 Feb | ' wrapL "bat: " "" battery -- ' bat: battery_logger_output'xmonad-contribIMake a logger's output constant width by padding with the given string, even if the logger is  X (Nothing) or  X (Just ""). Useful to reduce visual noise as a title logger shrinks and grows, to use a fixed width for a logger that sometimes becomes Nothing, or even to create fancy spacers or character based art effects.It fills missing logger output with a repeated character like ".", ":" or pattern, like " -.-". The cycling padding string is reversed on the left of the logger output. This is mainly useful with AlignCenter.xmonad-contribCreate a "spacer" logger, e.g. logSp 3 -- loggerizes ' '#. For more complex "spacers", use  with return Nothing.xmonad-contribGPad a logger's output with a leading and trailing space, unless it is  X (Nothing) or  X (Just "").xmonad-contrib3Limit a logger's length, adding "..." if truncated. xmonad-contribCColor a logger's output with dzen foreground and background colors. % dzenColorL "green" "#2A4C3F" battery!xmonad-contribEColor a logger's output with xmobar foreground and background colors. + xmobarColorL "#6A5ACD" "gray6" loadAveragexmonad-contrib!directory in which to count filesxmonad-contrib,predicate to match if file should be countedxmonad-contrib%AlignCenter, AlignRight, or AlignLeftxmonad-contrib,String to cycle to pad missing logger outputxmonad-contribBFixed length to output (including invisible formatting characters) ! !+(c) Brandon S Allbery <allbery.b@gmail.com>BSD-style (see LICENSE)'Brandon S Allbery <allbery.b@gmail.com>unstable unportableNone2"xmonad-contrib- to initialize scratchpad activation tracking 3, startupHook = ... <+> nspTrackStartup scratchpadsIf you kickstart the d, do it after "!#xmonad-contribe, to track scratchpad activation/deactivation 4, handleEventHook = ... <+> nspTrackHook scratchpads$xmonad-contrib= for scratchpads' state, using Unicode characters as "icons". E, ppExtras = [..., nspActive' iconChars showActive showInactive, ...]%xmonad-contrib with String-s (and no defaults) C, ppExtras = [..., nspActive iconStrs showActive showInactive, ...]&xmonad-contrib3Variant of the above getting the String-s from the s"#$%&"#$%&(c) 2009 Daniel WagnerBSD3<daniel@wagner-home.com>unstable unportableNone,1xmonad-contribIn case you don't know statically how many screens there will be, you can call this in main before starting xmonad. For example, part of my config reads main = do nScreens <- countScreens xmonad $ def { ... workspaces = withScreens nScreens (workspaces def), ... }2xmonad-contrib|This turns a naive pretty-printer into one that is aware of the independent screens. That is, you can write your pretty printer to behave the way you want on virtual workspaces; this function will convert that pretty-printer into one that first filters out physical workspaces on other screens, then converts all the physical workspaces on this screen to their virtual names.!For example, if you have handles hLeft and hRight; for bars on the left and right screens, respectively, and ppB is a pretty-printer function that takes a handle, you could write }logHook = let log screen handle = dynamicLogWithPP . marshallPP screen . pp $ handle in log 0 hLeft >> log 1 hRight3xmonad-contribTake a pretty-printer and turn it into one that only runs when the current workspace is one associated with the given screen. The way this works is a bit hacky, so beware: the V field of the input will not be invoked if either of the following conditions is met: The 9 of the input returns an empty list (when not given one).The ' of the input returns the exact string "\0".For example, you can use this to create a pipe which tracks the title of the window currently focused on a given screen (even if the screen is not current) by doing something like this: ppFocus s = whenCurrentOn s def { ppOrder = \(_:_:title:_) -> [title] , ppOutput = appendFile ("focus" ++ show s) . (++ "\n") }eSequence a few of these pretty-printers to get a log hook that keeps each screen's title up-to-date.4xmonad-contribIf vSort is a function that sorts s with virtual names, then marshallSort s vSort is a function which sorts Qs with physical names in an analogous way -- but keeps only the spaces on screen s.5xmonad-contribConvert the tag of the  from a ) to a (.6xmonad-contribConvert the tag of the  from a ( to a )./xmonad-contrib,The number of screens to make workspaces forxmonad-contrib#The desired virtual workspace namesxmonad-contrib/A list of all internal physical workspace names()*+,-./0123456)(./0231*+,-564'(c) Jan-David Quesel <quesel@gmail.org>BSD3-style (see LICENSE)noneunstable unportableNone2xmonad-contribStuff for linking workspacesxmonad-contribuSwitch to the given workspace in a non greedy way, stop if we reached the first screen | we already did switching onxmonad-contribSwitch to the workspace that matches the current one, executing switches for that workspace as well. | The function switchWorkspaceNonGreedy' will take of stopping if we reached the first workspace again.xmonad-contribCInsert a mapping between t1 and t2 or remove it was already presentxmonad-contrib8Insert a mapping between t1 and t2 and display a message?xmonad-contrib"Remove all maps between workspaces@xmonad-contrib/remove all matching regarding a given workspaceAxmonad-contribToggle the currently displayed workspaces as matching. Starting from the one with focus | a linked list of workspaces is created that will later be iterated by switchToMatching. 789:;<=>?@A >?@A=789:;<(c) Ben Boeckel 2012BSD-style (as xmonad)mathstuf@gmail.comunstable unportableNone2Lxmonad-contrib&The PP to use if the screen is focusedxmonad-contribThe PP to use otherwise EFGHIJKLM GFEHIJKLM!(c) Tomas Janousek <tomi@nomi.cz>BSD3-style (see LICENSE)Tomas Janousek <tomi@nomi.cz> experimental unportableNone2Fxmonad-contribWorkspace names container.Oxmonad-contribFReturns a lookup function that maps workspace tags to workspace names.Pxmonad-contrib+Returns a function that maps workspace tag "t" to "t:name"% for workspaces with a name, and to "t" otherwise.Qxmonad-contrib@Gets the name of a workspace, if set, otherwise returns nothing.Rxmonad-contrib,Gets the name of the current workspace. See QSxmonad-contribNSets the name of a workspace. Empty string makes the workspace unnamed again.Txmonad-contrib,Sets the name of the current workspace. See S.Uxmonad-contrib;Prompt for a new name for the current workspace and set it.Vxmonad-contribModify XMonad.Hooks.DynamicLog;'s pretty-printing format to show workspace names as well.Wxmonad-contribSee .. This is the same with names.Xxmonad-contrib;Swap with the previous or next workspace of the given type.Yxmonad-contribSee /&. This is almost the same with names.xmonad-contrib!Swap names of the two workspaces.Zxmonad-contribSame behavior than 0@ excepted it acts on the workspace name provided by this module. OPQRSTUVWXYZ UVOPQRSTWXYZ(c) Nicolas PouillardBSD-style (see LICENSE)/Nicolas Pouillard <nicolas.pouillard@gmail.com>unstable unportableNone2(^xmonad-contrib+Here is the topic space configuration area.`xmonad-contrib1This mapping associate a directory to each topic.axmonad-contribfThis mapping associate an action to trigger when switching to a given topic which workspace is empty.bxmonad-contrib!This is the default topic action.cxmonad-contribThis is the default topic.dxmonad-contribThis setups the maximum depth of topic history, usually 10 is a good default since we can bind all of them using numeric keypad.exmonad-contribe is just an alias for C" but should points to a directory.fxmonad-contribf is just an alias for gxmonad-contrib An alias for flip replicateM_ixmonad-contribEReturns the list of last focused workspaces the empty list otherwise.jxmonad-contribGiven a ^, the last focused topic, and a predicate that will select topics that one want to keep, this function will set the property of last focused topics.kxmonad-contrib)Reverse the list of "last focused topics"lxmonad-contribThis function is a variant of A which takes a topic configuration and a pretty-printing record c. It will show the list of topics sorted historically and highlighting topics with urgent windows.mxmonad-contribwGiven a prompt configuration and a topic configuration, triggers the action associated with the topic given in prompt.nxmonad-contribWGiven a configuration and a topic, triggers the action associated with the given topic.oxmonad-contrib5Trigger the action associated with the current topic.pxmonad-contribSwitch to the given topic.qxmonad-contrib8Switch to the Nth last focused topic or failback to the c.rxmonad-contribUShift the focused window to the Nth last focused topic, or fallback to doing nothing.sxmonad-contribWReturns the directory associated with current topic returns the empty string otherwise.txmonad-contribNCheck the given topic configuration for duplicates topics or undefined topics.xmonad-contrib$Display the given message using the xmessage program.^_`abcdefghijklmnopqrstfe^_`abcdhijklmnopqrstgg None=EX)*yz{|}~*}~{|yz+(c) 2009 Anders Engstrom <ankaan@gmail.com>BSD3-style (see LICENSE)"Anders Engstrom <ankaan@gmail.com>unstable unportableNoneVxmonad-contribResize the window by each edge independently to snap against the closest part of other windows or the edge of the screen. Use the location of the mouse over the window to decide which edges to snap. In corners, the two adjoining edges will be snapped, along the middle of an edge only that edge will be snapped. In the center of the window all edges will snap. Intended to be used together with XMonad.Actions.FlexibleResize or !XMonad.Actions.FlexibleManipulate.xmonad-contribyResize the window by each edge independently to snap against the closest part of other windows or the edge of the screen.xmonad-contribzMove a window by both axises in any direction to snap against the closest part of other windows or the edge of the screen.xmonad-contribiMove a window in the specified direction until it snaps against another window or the edge of the screen.xmonad-contribdGrow the specified edge of a window until it snaps against another window or the edge of the screen.xmonad-contribfShrink the specified edge of a window until it snaps against another window or the edge of the screen.xmonad-contrib4How big the middle snap area of each axis should be.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribEThe maximum distance to snap. Use Nothing to not impose any boundary.xmonad-contribThe window to move and resize.xmonad-contribThe edges to snap.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribEThe maximum distance to snap. Use Nothing to not impose any boundary.xmonad-contribThe window to move and resize.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribEThe maximum distance to snap. Use Nothing to not impose any boundary.xmonad-contribThe window to move.xmonad-contrib%What direction to move the window in.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribThe window to move.xmonad-contrib What edge of the window to grow.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribThe window to grow.xmonad-contrib"What edge of the window to shrink.xmonad-contribrThe distance in the orthogonal axis to look for windows to snap against. Use Nothing to snap against every window.xmonad-contribThe window to shrink.  :(c) 2007, 2008 Joachim Breitner <mail@joachim-breitner.de>BSD+Joachim Breitner <mail@joachim-breitner.de>unstable unportableNones xmonad-contrib The value of _NET_ACTIVE_WINDOW0, cached to avoid unnecessary property updates.xmonad-contrib(Cached window-desktop assignments (e.g. _NET_CLIENT_LIST_STACKING).xmonad-contribCached current desktop (e.g. _NET_CURRENT_DESKTOP).xmonad-contribCached client list (e.g. _NET_CLIENT_LIST).xmonad-contribCached desktop names (e.g. _NET_NUMBER_OF_DESKTOPS and _NET_DESKTOP_NAMES).xmonad-contribFAdd EWMH functionality to the given config. See above for an example.xmonad-contribEInitializes EwmhDesktops and advertises EWMH support to the X serverxmonad-contribsNotifies pagers and window lists, such as those in the gnome-panel of the current state of workspaces and windows.xmonad-contribeCompare the given value against the value in the extensible state. Run the action if it has changed.xmonad-contribGeneralized version of ewmhDesktopsLogHook that allows an arbitrary user-specified function to transform the workspace list (post-sorting)xmonad-contribaIntercepts messages from pagers and similar applications and reacts on them. Currently supports:)_NET_CURRENT_DESKTOP (switching desktops)0_NET_WM_DESKTOP (move windows to other desktops)J_NET_ACTIVE_WINDOW (activate another window, changing workspace if needed)xmonad-contribGeneralized version of ewmhDesktopsEventHook that allows an arbitrary user-specified function to transform the workspace list (post-sorting)xmonad-contribAn event hook to handle applications that wish to fullscreen using the _NET_WM_STATE protocol. This includes users of the gtk_window_fullscreen() function, such as Totem, Evince and OpenOffice.org.Note this is not included in .Nonet(c) Spencer Janssen 2007BSD3-style (see LICENSE)NoneQwxmonad-contribAThe xmonad key bindings. Add, modify or remove key bindings here.F(The comment formatting character is used when generating the manpage).(c) Spencer Janssen <spencerjanssen@gmail.com>BSD*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNoney/(c) Ivan Miljenovic <Ivan.Miljenovic@gmail.com>BSDnoneunstable unportableNonez!(c) Brandon S Allbery KF8NH, 2014BSDallbery.b@gmail.comunstable unportableNonexmonad-contribSLaunch the "Run Application" dialog. mate-panel must be running for this to work.xmonad-contribRegister xmonad with mate.  'dbus-send'4 must be in the $PATH with which xmonad is started.This action reduces a delay on startup only if you have configured mate-session to start xmonad with a command such as (check local documentation): Rdconf write /org/mate/desktop/session/required_components/windowmanager "'xmonad'"((the extra quotes are required by dconf).(c) Spencer Janssen <spencerjanssen@gmail.com>BSD*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNone.(c) Spencer Janssen <spencerjanssen@gmail.com>BSD*Spencer Janssen <spencerjanssen@gmail.com>unstable unportableNonexmonad-contribTLaunch the "Run Application" dialog. gnome-panel must be running for this to work.xmonad-contribRegister xmonad with gnome.  'dbus-send'4 must be in the $PATH with which xmonad is started.This action reduces a delay on startup only only if you have configured gnome-session>=2.26: to start xmonad with a command as such: \gconftool-2 -s /desktop/gnome/session/required_components/windowmanager xmonad --type string(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNonexmonad-contrib+A function intended to be plugged into the  of a decoration. It will intercept clicks on the buttons of the decoration and invoke the associated action. To actually see the buttons, you will need to use a theme that includes them. See  below.xmonad-contrib"Intended to be used together with  . See above.xmonad-contrib+A function intended to be plugged into the   of a decoration. It will check if the window has been dragged onto another screen and shift it there. The PositionStore is also updated accordingly, as this is designed to be used together with  XMonad.Layout.PositionStoreFloat.B(c) Jan Vornberger 2009 Alejandro Serrano 2010BSD3-style (see LICENSE)trupill@gmail.comunstable not portableNone=?@A(xmonad-contrib+A function intended to be plugged into the  of a decoration. It will intercept clicks on the buttons of the decoration and invoke the associated action. To actually see the buttons, you will need to use a theme that includes them. See  below.B(c) Jan Vornberger 2009 Alejandro Serrano 2010BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=?@A(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone=?@A:(c) Jan Vornberger 2009BSD3-style (see LICENSE)*jan.vornberger@informatik.uni-oldenburg.deunstable not portableNone>A>(c) Robert Marlow <robreim@bobturf.org>, 2015 Evgeny KurnevskyBSD3-style (see LICENSE)#Robert Marlow <robreim@bobturf.org>stableportableNoneXnxmonad-contribUpdate the pointer's location to the currently focused window or empty screen unless it's already there, or unless the user was changing focus with the mouse)(c) Peter De Wachter <pdewacht@gmail.com>BSD%Peter De Wachter <pdewacht@gmail.com>unstable unportableNone=>?@Axmonad-contribVCreate a new layout which automagically puts the focused window in the master area.xmonad-contribAn eventHook that overrides the normal focusFollowsMouse. When the mouse it moved to another window, that window is replaced as the master, and the mouse is warped to inside the new master.It prevents infinite loops when focusFollowsMouse is true (the default), and MagicFocus is in use when changing focus with the mouse.VThis eventHook does nothing when there are floating windows on the current workspace.xmonad-contribNpromoteWarp' allows you to specify an arbitrary pair of arguments to pass to & when the mouse enters another window.xmonad-contrib#Another event hook to override the focusFollowsMouse and make the pointer only follow if a given condition is satisfied. This could be used to disable focusFollowsMouse only for given workspaces or layouts. Beware that your focusFollowsMouse setting is ignored if you use this event hook.xmonad-contrib-Disables focusFollow on the given workspaces:(c) Mario Pastorelli (2012)BSD-style (see xmonad/LICENSE)pastorelli.mario@gmail.comunstable unportableNone2ʶxmonad-contrib Font namexmonad-contribBackground colorxmonad-contribForeground colorxmonad-contribKShowText contains the map with timers as keys and created windows as valuesxmonad-contribUtility to modify a ShowText xmonad-contrib@Handles timer events that notify when a window should be removed xmonad-contrib>Shows a window in the center of the screen with the given text xmonad-contribnumber of secondsxmonad-contribtext to display     (c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=@AMQ(c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNone=@Axmonad-contribdA simple floating layout where every window is placed according to the window's initial attributes.#This version is decorated with the  style.xmonad-contribSame as L, but with the possibility of setting a custom shrinker and a custom theme. - -(c) Andrea Rossato 2007BSD3-style (see LICENSE)andrea.rossato@unibz.itstableportableNone (c) 2007 Andrea RossatoBSD-style (see xmonad/LICENSE)andrea.rossato@unibz.itunstable unportableNoneg7xmonad-contribA ~P layout with the xmonad default decoration, default theme and default shrinker. Here you can find a screen shot: Ehttp://code.haskell.org/~arossato/xmonadShots/circleSimpleDefault.pngxmonad-contrib Similar to K but with the possibility of setting a custom shrinker and a custom theme.xmonad-contribA ~O layout with the xmonad simple decoration, default theme and default shrinker. Here you can find a screen shot: Bhttp://code.haskell.org/~arossato/xmonadShots/circleSimpleDeco.png xmonad-contrib Similar to circleSimpleDeceK but with the possibility of setting a custom shrinker and a custom theme.!xmonad-contribA ~ layout with the xmonad default decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Nhttp://code.haskell.org/~arossato/xmonadShots/circleSimpleDefaultResizable.png"xmonad-contrib Similar to !K but with the possibility of setting a custom shrinker and a custom theme.#xmonad-contribA ~ layout with the xmonad simple decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Khttp://code.haskell.org/~arossato/xmonadShots/circleSimpleDecoResizable.png$xmonad-contrib Similar to #K but with the possibility of setting a custom shrinker and a custom theme.%xmonad-contribA ~Q layout with the xmonad DwmStyle decoration, default theme and default shrinker. Here you can find a screen shot: Fhttp://code.haskell.org/~arossato/xmonadShots/circleSimpleDwmStyle.png&xmonad-contrib Similar to %K but with the possibility of setting a custom shrinker and a custom theme.'xmonad-contribA ~O layout with the xmonad tabbed decoration, default theme and default shrinker. Here you can find a screen shot: Dhttp://code.haskell.org/~arossato/xmonadShots/circleSimpleTabbed.png(xmonad-contrib Similar to 'K but with the possibility of setting a custom shrinker and a custom theme.)xmonad-contribAn tP layout with the xmonad default decoration, default theme and default shrinker. Here you can find a screen shot: Hhttp://code.haskell.org/~arossato/xmonadShots/accordionSimpleDefault.png*xmonad-contrib Similar to )K but with the possibility of setting a custom shrinker and a custom theme.+xmonad-contribAn tO layout with the xmonad simple decoration, default theme and default shrinker. Here you can find a screen shot: Ehttp://code.haskell.org/~arossato/xmonadShots/accordionSimpleDeco.png,xmonad-contrib Similar to accordionSimpleDeceK but with the possibility of setting a custom shrinker and a custom theme.-xmonad-contribAn t layout with the xmonad default decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard..xmonad-contrib Similar to -K but with the possibility of setting a custom shrinker and a custom theme./xmonad-contribAn t layout with the xmonad simple decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard.0xmonad-contrib Similar to /K but with the possibility of setting a custom shrinker and a custom theme.1xmonad-contribAn tQ layout with the xmonad DwmStyle decoration, default theme and default shrinker. Here you can find a screen shot: Ihttp://code.haskell.org/~arossato/xmonadShots/accordionSimpleDwmStyle.png2xmonad-contrib Similar to 1K but with the possibility of setting a custom shrinker and a custom theme.3xmonad-contribAn tO layout with the xmonad tabbed decoration, default theme and default shrinker. Here you can find a screen shot: Ghttp://code.haskell.org/~arossato/xmonadShots/accordionSimpleTabbed.png4xmonad-contrib Similar to 3K but with the possibility of setting a custom shrinker and a custom theme.5xmonad-contribA TP layout with the xmonad default decoration, default theme and default shrinker. Here you can find a screen shot: Chttp://code.haskell.org/~arossato/xmonadShots/tallSimpleDefault.png6xmonad-contrib Similar to 5K but with the possibility of setting a custom shrinker and a custom theme.7xmonad-contribA TO layout with the xmonad simple decoration, default theme and default shrinker. Here you can find a screen shot: @http://code.haskell.org/~arossato/xmonadShots/tallSimpleDeco.png8xmonad-contrib Similar to tallSimpleDeceK but with the possibility of setting a custom shrinker and a custom theme.9xmonad-contribA T layout with the xmonad default decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Lhttp://code.haskell.org/~arossato/xmonadShots/tallSimpleDefaultResizable.png:xmonad-contrib Similar to 9K but with the possibility of setting a custom shrinker and a custom theme.;xmonad-contribA T layout with the xmonad simple decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Ihttp://code.haskell.org/~arossato/xmonadShots/tallSimpleDecoResizable.png<xmonad-contrib Similar to ;K but with the possibility of setting a custom shrinker and a custom theme.=xmonad-contribA TQ layout with the xmonad DwmStyle decoration, default theme and default shrinker. Here you can find a screen shot: Dhttp://code.haskell.org/~arossato/xmonadShots/tallSimpleDwmStyle.png>xmonad-contrib Similar to =K but with the possibility of setting a custom shrinker and a custom theme.?xmonad-contribA TO layout with the xmonad tabbed decoration, default theme and default shrinker. Here you can find a screen shot: Bhttp://code.haskell.org/~arossato/xmonadShots/tallSimpleTabbed.png@xmonad-contrib Similar to ?K but with the possibility of setting a custom shrinker and a custom theme.Axmonad-contrib_A 'Mirror Tall' layout with the xmonad default decoration, default theme and default shrinker. Here you can find a screen shot: Ihttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleDefault.pngBxmonad-contrib Similar to AK but with the possibility of setting a custom shrinker and a custom theme.Cxmonad-contrib^A 'Mirror Tall' layout with the xmonad simple decoration, default theme and default shrinker. Here you can find a screen shot: Fhttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleDeco.pngDxmonad-contrib Similar to mirrorTallSimpleDeceK but with the possibility of setting a custom shrinker and a custom theme.Exmonad-contribA 'Mirror Tall' layout with the xmonad default decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Rhttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleDefaultResizable.pngFxmonad-contrib Similar to EK but with the possibility of setting a custom shrinker and a custom theme.Gxmonad-contribA 'Mirror Tall' layout with the xmonad simple decoration, default theme and default shrinker, but with the possibility of moving windows with the mouse, and resize/move them with the keyboard. Here you can find a screen shot: Ohttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleDecoResizable.pngHxmonad-contrib Similar to GK but with the possibility of setting a custom shrinker and a custom theme.Ixmonad-contrib`A 'Mirror Tall' layout with the xmonad DwmStyle decoration, default theme and default shrinker. Here you can find a screen shot: Jhttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleDwmStyle.pngJxmonad-contrib Similar to IK but with the possibility of setting a custom shrinker and a custom theme.Kxmonad-contrib^A 'Mirror Tall' layout with the xmonad tabbed decoration, default theme and default shrinker. Here you can find a screen shot: Hhttp://code.haskell.org/~arossato/xmonadShots/mirrorTallSimpleTabbed.pngLxmonad-contrib Similar to KK but with the possibility of setting a custom shrinker and a custom theme.Mxmonad-contribdA simple floating layout where every window is placed according to the window's initial attributes. Here you can find a screen shot: Chttp://code.haskell.org/~arossato/xmonadShots/floatSimpleSimple.pngOxmonad-contrib#This version is decorated with the  style. Here you can find a screen shot: Dhttp://code.haskell.org/~arossato/xmonadShots/floatSimpleDefault.pngPxmonad-contribSame as OL, but with the possibility of setting a custom shrinker and a custom theme.Qxmonad-contrib#This version is decorated with the 5. Note that this is a keyboard only floating layout. Here you can find a screen shot: Ehttp://code.haskell.org/~arossato/xmonadShots/floatSimpleDwmStyle.pngRxmonad-contribSame as QL, but with the possibility of setting a custom shrinker and a custom theme.Sxmonad-contrib#This version is decorated with the TabbedDecoration+ style. | Mouse dragging is somehow weird. Here you can find a screen shot: Chttp://code.haskell.org/~arossato/xmonadShots/floatSimpleTabbed.pngTxmonad-contribSame as SL, but with the possibility of setting a custom shrinker and a custom theme.;&- !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST;!"# $%&'()*-.+/,01234569:78;<=>?@ABEFCDGHIJKLMNOPQRST&-  (c) Lukas MaiBSD3-style (see LICENSE)<l.mai@web.de>unstable unportableNonepEUxmonad-contribJResize a floating window from whichever corner the mouse is closest to.Vxmonad-contribRResize a floating window from whichever corner or edge the mouse is closest to.Uxmonad-contribThe window to resize.Vxmonad-contrib4The size of the area where only one edge is resized.xmonad-contribThe window to resize.UVUV1234561781791:;1<=1<>12?12@12A1BC1BD1EF1GH1GI1GJ1GK4LM4LN1BO12P12Q12R12S1ET1EU1EV1EW12X12Y12Z12[12\12]12^1G_1G`4La1bc1Ed1Ee12f12g1Bh4Li1jk1El1bm1En1op1qr12s1tu1vw12x12y4z{4z|4z}4z~4z14z1E4z4z14z114z114z4z4z      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abbcdefghijkllmnopqqrrstuvwxyyz{||}~      !"#$%&'()*+,-./01234565758595:5;5<5=5>5?5@5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5[5\5]5^5_5`5a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5{5|5}~~~~~~~~~~~~~      !"#$%&'()*+,-./0123456789:;<=<><?<@<A<B<C<D<E<F<G<HIJIKILIMINIOPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcPdefegeheiejekelemeneoepeqereseteuevewexeyz{z{z|z}z~zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrst1uv1uw1xy1vz1v{1v|1v}1:~1:1:1:1:1:1:1:1:1:1:1:1111111t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t1t111111111j1j1j1j11b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b111E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1G1G1G1G1G1G1o1o1o1o1o1o1o1o1717171717171717171717171717 17 17 17 17 17171717171717171711<1<1B1B1B1B1B12 12!12"12#12$12%12&12'12(12)12*1+,1+-1+.4L/4L04L14L24L34L44L54L64L74L89:;9:<=><=?<=@<=A<=B<=C<DE<DF<DG<DH<DIJKLJMJNOJNPJNQJNRJNSJNTJNUJNVJNWJNXJNYJNZJN[JN\JN]JN^JN_JN`J aJ bJ cJ dJ eJ fJ gJ hJ iJ jJ kJ lJ mJ nJ oJ pJ qJ rJ sJ tJ uJ vJ wJ xJ yJ zJ  J {J  J |J }J ~J J J J J J J J J J J J J J J J J J J J J J J J J J J JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ J    h                         ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E E F  G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~             ! ! ! ! ! ! ! ! ! " " " " " " " " " " " " " " " " " " # 7# # ## # # # # $ $ $ $ $ % &   ' ' ' ' ((( ( ( ) ) ) ) ) * * * * * + + + + + , , , , , , , , - - - - - . . . . . / / / / / / / / 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 2 2 2 2 2 22 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 !4 "4 #4 $5 %5 &5 '5 (5 )5 *5 +5 ,5 -5 .5 /5 05 16 26 36 46 56 66 76 86 96 :6 ;7 <7 =7 >7 ?7 @7 A7 B7 C7 D7 E8 F8 G8 G8 H8 I8 J8 K8 L8 8!8 M8 N8 O8 P8 Q8 R8 S8 T8 U8 V9 W9 X9 Y9 Z9 [9 \9 ]9 ^9 _9 `9 a9 b9 c9 d9 e: f: g: h: i: j k l m n o p q r s t u v w x y z { | } ~ ; ; ; ; ; ; ; < < < < < < < < < < < < < < < < < < = = = = = = = = = = > > > > > > > > > > ? ? ? ? ? ? ? ? ? ? ? ? ? ? @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ A A A A A A A A A A A A A A A A A B B B B B B C C C C C D D D D D D D D D D D D D D D D D D D D D D D D D E E E E E E E E F F F F F G G G G G H H H H H H H H I I I I I I I I I I II I I !I "I #I $J %J &K 'K 'K (K )K *K +K ,K -K .K /K 0K 1K 2L 3L 3L 4L 5L 6M 7M 7M 8M 9M :N ;N <N =N >N ?N @NlN AN BN CN DN EN FN GN HN IN JN KN LN MO NO NO OO PO QP RP RP SP TP UQ VQ WQ VQ XQ YQ ZQ [Q \Q ]R ^R ^R R _R `R aR bR cR dR eR fS gS hS iS jS kS lS mS nS oS pS qS rT sT sT tT uT vU wU wU xU yU zU {U |U }V ~V W X X Y Z Z Z Z Z Z Z Z [ [ [ [ [ [ [ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ] ] ] ] ] ] ] ] ] ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` a a a a a a a"a a a                                                        b b b !b "b #b $b %c &c 'd (d )d *d +d ,d -d .d /d 0d 1d 2d 3d 4d 5d 6d 7d 8d 9d :d ;d <d =d >d ?d @d Ad Bd Cd Dd Ed Fd Gd Hd Id Jd Kd Le?eAeBe>e Me Nf Of Pf Qf Rf Sf Tf Uf Vf Wf Xf Yf Zg [g \g ]g ^h _h `h ah bh ch dh eh fi gi hi ii jj kj kj lj mj nj nj oj pj qj rj sj tj uj vj wj xj yj zj {j |j }j ~j k k k k k k k k k k k k k k k l l l l l l l l l m m m m m m m n n n n n o o p p p p p p p p p p p p p q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q q r <r r r r r r r r r r r s s s s s s s s s s s s s s ss s s s s t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t t u !u "u #u $u %u &u 'u (u )u *u +u ,u|u -u .u /u 0u 1u 2u 3u 4u 5uu 6u 7u 8u 9u :u ;u <u =u >u ?u @u Au Bu Cu Du Ev Fv Gv Hv Iv Jv Kv Lv Mv Nv Ow P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i  j k l mx nx ox px qx rx sx ty uy uy vy qy wy xy yy zy {y |y }y ~y y y y y y y y z z z z z z z { { { { { | } } } } } } } } <} } } } } } } } I} ~ ~ ~ ~ ~ ~                          ! M        ! M   !"#$%&'()*+,-./0123456789:;;<=>?@ABCDEFGHIJKLMNOPPQRSTTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz  {|}~ A Bq/.q       !"#$ g d c%&'( )*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'0       !"#$%&'())*+,--./00123456789:;<=>?@ABCDEFF0012367:GHIJJKLMNOPQRSTTUUVVWXXYYZ[\\]^_`abcdefg *hhijklmnopqrstuvwxyz{|}~ A        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJJKLMNOPQRSTUVWXYZ[[\]^_ `abcdefghijklmnopqrstuvwxyz{|}~ *       !"#$%&'()*+,- ./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*++,-. J/0123456789:;<=>?@ABCDEFGHIJJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~ijmnb       !"#$%&'() *+,--./00123456789:;<=>?@ABCDEFGHIJKKLMNOPQRSTUVWXYZ[ k\]^_`abcd#efghijklmnopqrstuvwxy    z{|}~  (./c       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                                         h    D  J !1J J ##.1$77777 88889999:::::::JJ<===@ BEEEFFFFFFFFFFGHQZ[[[[[[1[[[[[[[]]] ] ` a a aaaaaaaaaaa12dehhjjj j!j"j#J q$%&$t't(t)t*t+1,1-1.u/u0u1u234y56789:;<=>?@ABCDEFGHI%JK%JLMNOP`QRSTUVWXYZJ AJ C[|\]^_`abcdefghijk lmnopqr%&sJ @tuvwx/yz{|}~t1LJ J@J J        xmonad-contrib-0.16-inplaceXMonad.Config.PrimeXMonad.Util.DzenXMonad.Util.RunXMonad.Actions.WorkspaceCursorsXMonad.Actions.SearchXMonad.Hooks.ICCCMFocusXMonad.Actions.AfterDrag XMonad.Actions.ConstrainedResizeXMonad.Actions.CycleRecentWSXMonad.Actions.DeManageXMonad.Actions.DwmPromote!XMonad.Actions.FindEmptyWorkspace!XMonad.Actions.FlexibleManipulateXMonad.Actions.FloatKeysXMonad.Actions.FocusNthXMonad.Actions.MessageFeedbackXMonad.Actions.NoBordersXMonad.Actions.OnScreenXMonad.Actions.PerWorkspaceKeysXMonad.Actions.PhysicalScreensXMonad.Actions.PromoteXMonad.Actions.RandomBackgroundXMonad.Actions.RotSlavesXMonad.Actions.CycleWindowsXMonad.Actions.SubmapXMonad.Actions.UpdateFocusXMonad.Actions.WarpXMonad.Actions.WithAllXMonad.Config.AzertyXMonad.Config.BepoXMonad.Hooks.DebugKeyEventsXMonad.Hooks.DynamicPropertyXMonad.Hooks.FadeInactiveXMonad.Hooks.FadeWindowsXMonad.Hooks.InsertPositionXMonad.Hooks.RestoreMinimizedXMonad.Hooks.ScriptXMonad.Hooks.SetWMNameXMonad.Hooks.XPropManageXMonad.Layout.AccordionXMonad.Layout.BinaryColumnXMonad.Layout.CircleXMonad.Layout.ColumnXMonad.Layout.CrossXMonad.Layout.DishesXMonad.Layout.FixedColumnXMonad.Layout.GridXMonad.Layout.GridVariantsXMonad.Layout.HintedGridXMonad.Layout.HintedTileXMonad.Layout.IfMaxXMonad.Layout.LayoutModifierXMonad.Layout.Hidden XMonad.Layout.DraggingVisualizerXMonad.Layout.CenteredMasterXMonad.Layout.BoringWindowsXMonad.Layout.AvoidFloatsXMonad.Layout.AutoMasterXMonad.Layout.LayoutScreensXMonad.Layout.LimitWindowsXMonad.Layout.MasterXMonad.Layout.MaximizeXMonad.Layout.MessageControlXMonad.Layout.MosaicXMonad.Layout.MosaicAltXMonad.Layout.MultiColumnsXMonad.Layout.MultiDishesXMonad.Layout.MultiToggleXMonad.Layout.OnHostXMonad.Layout.OneBigXMonad.Layout.PerScreenXMonad.Layout.PerWorkspaceXMonad.Layout.RenamedXMonad.Layout.NamedXMonad.Layout.ResizableTileXMonad.Layout.RoledexXMonad.Layout.SimplestXMonad.Layout.SpiralXMonad.Layout.SquareXMonad.Layout.StackTileXMonad.Layout.ThreeColumnsXMonad.Layout.ToggleLayoutsXMonad.Layout.TrackFloatingXMonad.Layout.TwoPaneXMonad.Layout.TwoPanePersistentXMonad.Prompt.FuzzyMatchXMonad.Util.CursorXMonad.Util.CustomKeysXMonad.Util.DebugWindowXMonad.Hooks.DebugStackXMonad.Hooks.DebugEventsXMonad.Util.FontXMonad.Util.ImageXMonad.Util.InvisibleXMonad.Util.MinimizeXMonad.Util.NamedActionsXMonad.Util.EZConfigXMonad.Util.NamedWindowsXMonad.Util.NoTaskbarXMonad.Util.PureXXMonad.Util.ExtensibleStateXMonad.Util.PositionStoreXMonad.Layout.MinimizeXMonad.Hooks.WorkspaceHistory%XMonad.Actions.CycleWorkspaceByScreenXMonad.Hooks.WallpaperSetterXMonad.Hooks.ToggleHookXMonad.Hooks.FloatNextXMonad.Hooks.ManageDebugXMonad.Hooks.DynamicHooks"XMonad.Hooks.CurrentWorkspaceOnTopXMonad.Actions.WorkscreenXMonad.Actions.SwapPromoteXMonad.Actions.GroupNavigationXMonad.Util.RectangleXMonad.Layout.SpacingXMonad.Layout.NoBorders#XMonad.Layout.MultiToggle.InstancesXMonad.Util.ReplaceXMonad.Util.DmenuXMonad.Actions.WindowBringerXMonad.Actions.CommandsXMonad.Hooks.ServerModeXMonad.Actions.SimpleDateXMonad.Actions.PlaneXMonad.Util.SessionStartXMonad.Util.SpawnNamedPipeXMonad.Util.StackXMonad.Layout.StateFullXMonad.Layout.GroupsXMonad.Layout.Groups.HelpersXMonad.Hooks.RefocusLastXMonad.Util.StringPropXMonad.Util.TimerXMonad.Util.TreeZipperXMonad.Actions.TreeSelectXMonad.Util.TypesXMonad.Layout.DwindleXMonad.Actions.WindowNavigationXMonad.Actions.Navigation2DXMonad.Actions.MouseGesturesXMonad.Util.UngrabXMonad.Util.WindowStateXMonad.Util.WorkspaceCompareXMonad.Actions.CycleWSXMonad.Actions.SwapWorkspaces$XMonad.Actions.DynamicWorkspaceOrderXMonad.Util.XSelectionXMonad.Util.PasteXMonad.Actions.KeyRemap XMonad.PromptXMonad.Prompt.XMonadXMonad.Prompt.WorkspaceXMonad.Prompt.UnicodeXMonad.Prompt.SshXMonad.Prompt.ShellXMonad.Actions.WindowGoXMonad.Actions.CopyWindowXMonad.Prompt.WindowXMonad.Prompt.RunOrRaiseXMonad.Prompt.PassXMonad.Prompt.ManXMonad.Prompt.InputXMonad.Prompt.EmailXMonad.Prompt.DirectoryXMonad.Prompt.DirExecXMonad.Prompt.ConfirmPromptXMonad.Prompt.AppendFileXMonad.Prompt.AppLauncherXMonad.Layout.WorkspaceDirXMonad.Actions.TagWindowsXMonad.Util.WindowPropertiesXMonad.Util.RemoteWindowsXMonad.Layout.StoppableXMonad.Layout.SortedLayoutXMonad.Layout.LayoutBuilderXMonad.Layout.LayoutBuilderPXMonad.Layout.IMXMonad.Hooks.UrgencyHookXMonad.Hooks.ManageHelpersXMonad.Layout.MonitorXMonad.Layout.FullscreenXMonad.Actions.MinimizeXMonad.Hooks.Minimize XMonad.Util.ExclusiveScratchpadsXMonad.Actions.SpawnOnXMonad.Util.SpawnOnceXMonad.Actions.Launcher XMonad.Actions.DynamicWorkspaces%XMonad.Actions.DynamicWorkspaceGroupsXMonad.Actions.DynamicProjectsXMonad.Util.XUtilsXMonad.Layout.WindowNavigationXMonad.Layout.ComboPXMonad.Layout.ComboXMonad.Layout.WindowArranger XMonad.Layout.PositionStoreFloatXMonad.Layout.SimplestFloatXMonad.Layout.ShowWNameXMonad.Layout.ReflectXMonad.Layout.Drawer XMonad.Layout.MouseResizableTileXMonad.Layout.MagnifierXMonad.Layout.GapsXMonad.Layout.DragPaneXMonad.Layout.LayoutCombinatorsXMonad.Prompt.Layout#XMonad.Actions.CycleSelectedLayoutsXMonad.Actions.BluetileCommandsXMonad.Layout.DecorationXMonad.Util.ThemesXMonad.Prompt.ThemeXMonad.Layout.ZoomRowXMonad.Layout.TabbedXMonad.Layout.SubLayoutsXMonad.Layout.SimpleDecorationXMonad.Layout.ResizeScreenXMonad.Layout.TabBarDecoration*XMonad.Layout.MultiToggle.TabBarDecoration XMonad.Layout.NoFrillsDecorationXMonad.Layout.LayoutHintsXMonad.Layout.Groups.ExamplesXMonad.Layout.Groups.WmiiXMonad.Layout.DwmStyleXMonad.Actions.GridSelectXMonad.Layout.BorderResize"XMonad.Layout.BinarySpacePartitionXMonad.Hooks.WorkspaceByPosXMonad.Hooks.ScreenCornersXMonad.Hooks.PlaceXMonad.Hooks.ManageDocksXMonad.Hooks.PositionStoreHooksXMonad.Hooks.DynamicLogXMonad.Util.NamedScratchpadXMonad.Util.ScratchpadXMonad.Util.Loggers#XMonad.Util.Loggers.NamedScratchpad XMonad.Layout.IndependentScreensXMonad.Actions.LinkWorkspacesXMonad.Hooks.DynamicBarsXMonad.Actions.WorkspaceNamesXMonad.Actions.TopicSpaceXMonad.Config.DmwitXMonad.Actions.FloatSnapXMonad.Hooks.EwmhDesktopsXMonad.Config.SjanssenXMonad.Config.DroundyXMonad.Config.DesktopXMonad.Config.XfceXMonad.Config.MateXMonad.Config.KdeXMonad.Config.GnomeXMonad.Actions.WindowMenuXMonad.Layout.DecorationAddons#XMonad.Layout.ImageButtonDecoration&XMonad.Layout.WindowSwitcherDecorationXMonad.Layout.ButtonDecorationXMonad.Config.BluetileXMonad.Actions.UpdatePointerXMonad.Layout.MagicFocusXMonad.Actions.ShowTextXMonad.Actions.MouseResizeXMonad.Layout.SimpleFloatXMonad.Config.ArossatoXMonad.Layout.DecorationMadnessXMonad.Actions.FlexibleResizeXMonad.Operations sendMessagesendMessageWithNoRefreshData.MapMapXMonad.Actions.SinkAllXMonad.Doc.ConfiguringXMonad.Doc.DevelopingXMonad.Doc.Extending XMonad.DocXMonad.Layout.Layout Accordion Data.Listelem XMonad.ConfigdefmkKeyMap XMonad.UtilEZConfig withBorderXMonad.StackSetfocusUp focusDownmkKeymappprWindowSetXineramaInputCodec.Binary.UTF8.String utf8EncodeXMonadStackSet System.PosixputEnvRunXMonad.Actions TagWindowsswapToswapWithCurrentworkspacePromptbaseGHC.Base++ghc-primGHC.PrimseqGHC.Listfilterzip System.IOprint Data.Tuplefstsnd otherwisemap$GHC.Num fromInteger-GHC.Real fromRationalGHC.EnumenumFrom enumFromThen enumFromToenumFromThenTo GHC.Classes==>=negatefail>>=fmapreturn fromIntegral realToFrac toInteger toRational<>memptymappendmconcat<*>pure*>BoundedEnumEq GHC.FloatFloating FractionalIntegralMonadFunctorNumOrdGHC.ReadReadReal RealFloatRealFracGHC.ShowShowData.Typeable.InternalTypeable Applicative Data.FoldableFoldableData.Traversable Traversable SemigroupMonoid GHC.TypesBoolCharDoubleFloatInt integer-gmpGHC.Integer.TypeInteger GHC.MaybeMaybeOrderingRationalIOWord Data.EitherEitherFalseNothingJustTrueLeftRightLTEQGT X11-1.9.1-4cKlus0ZOzs1Oj5QUWiq0PGraphics.X11.Xlib.ExtrasgetModifierMapping getCommand getErrorEventsetErrorHandler setWMHints getWMHintsallHintsBitmaskurgencyHintBitwindowGroupHintBiticonMaskHintBiticonPositionHintBiticonWindowHintBiticonPixmapHintBit stateHintBit inputHintBit iconicState normalStatewithdrawnState getClassHintgetWMNormalHintspWinGravityBit pBaseSizeBit pAspectBit pResizeIncBit pMaxSizeBit pMinSizeBit unmapWindowdeletePropertypropModeAppendpropModePrependpropModeReplacechangeProperty32changeProperty16changeProperty8getWindowProperty32getWindowProperty16getWindowProperty8rawGetWindowPropertyanyPropertyTyperefreshKeyboardMapping setKeyEventsetConfigureEventsetClientMessageEventsetSelectionNotify setEventTypegetWMProtocolsgetTransientForHint fetchNamewcTextEscapementwcDrawImageString wcDrawString wcTextExtents createFontSetwcTextPropertyToTextListgetTextProperty withServergetWindowAttributes waIsViewablewaIsUnviewable waIsUnmapped queryTreeconfigureWindow currentTimeanyKey anyButtonnonegetEvent eventName eventTablexConfigureWindow killClient xQueryTreexGetWindowAttributeschangeWindowAttributesxGetTextPropertyxwcTextPropertyToTextListwcFreeStringListxCreateFontSetfreeStringList freeFontSetxwcTextExtents xwcDrawStringxwcDrawImageStringxwcTextEscapement xFetchNamexGetTransientForHintxGetWMProtocolsxSetErrorHandlerxRefreshKeyboardMappingxChangePropertyxDeletePropertyxGetWindowProperty xUnmapWindowxGetWMNormalHints xGetClassHint xGetWMHints xAllocWMHints xSetWMHints isCursorKey isFunctionKey isKeypadKeyisMiscFunctionKey isModifierKeyisPFKeyisPrivateKeypadKeyxSetSelectionOwnerxGetSelectionOwnerxConvertSelectionmkXErrorHandlergetXErrorHandler_xSetErrorHandler mapRaised xGetCommandxGetModifierMappingxFreeModifiermap ev_forced ev_ss_kind ev_ss_state ev_rr_state ev_connection ev_output ev_rr_height ev_rr_width ev_rr_modeev_crtc ev_subtype ev_mheight ev_mwidth ev_rotationev_subpixel_order ev_size_indexev_config_timestamp ev_timestampev_dataev_message_type ev_propstateev_atom ev_property ev_target ev_selection ev_requestorev_ownerev_focusev_modeev_countev_first_keycode ev_requestev_from_configure ev_buttonev_same_screen ev_keycodeev_state ev_y_root ev_x_rootev_time ev_subwindowev_rootev_override_redirectev_event ev_value_mask ev_detailev_aboveev_border_width ev_heightev_widthev_yev_x ev_parent ev_windowev_event_display ev_send_event ev_serial ev_event_typeScreenSaverNotifyEventRROutputPropertyNotifyEventRROutputChangeNotifyEventRRCrtcChangeNotifyEvent RRNotifyEventRRScreenChangeNotifyEventClientMessageEvent ExposeEvent PropertyEventSelectionClearSelectionRequest CrossingEventMappingNotifyEventMapNotifyEvent UnmapEventDestroyWindowEvent MotionEvent ButtonEventKeyEventMapRequestEventConfigureEventConfigureRequestEventAnyEventEvent wc_stack_mode wc_siblingwc_border_width wc_heightwc_widthwc_ywc_x WindowChangeswa_override_redirect wa_map_statewa_map_installed wa_colormapwa_border_width wa_heightwa_widthwa_ywa_xWindowAttributes tp_nitems tp_format tp_encodingtp_value TextPropertyFontSetsh_win_gravity sh_base_size sh_aspect sh_resize_inc sh_max_size sh_min_size SizeHintsresClassresName ClassHintwmh_window_group wmh_icon_mask wmh_icon_y wmh_icon_xwmh_icon_windowwmh_icon_pixmapwmh_initial_state wmh_input wmh_flagsWMHintsXErrorEventPtrCXErrorHandler XErrorHandler ev_resourceid ev_minor_codeev_request_code ev_error_code ev_serialnum ev_displayev_type ErrorEventGraphics.X11.Xlib.WindowrestackWindowswithdrawWindow iconifyWindowtranslateCoordinates storeNamecreateSimpleWindow createWindowmoveResizeWindow resizeWindow moveWindowreparentWindow mapSubwindowsunmapSubwindows mapWindow lowerWindow raiseWindowcirculateSubwindowsDowncirculateSubwindowsUpcirculateSubwindows destroyWindowdestroySubwindowssetWindowBordersetWindowBorderPixmapsetWindowBorderWidthsetWindowBackgroundsetWindowBackgroundPixmapsetWindowColormap addToSaveSetremoveFromSaveSet changeSaveSet clearWindow clearAreaGraphics.X11.Xlib.MiscsetTextProperty rotateBuffers fetchBytes fetchBuffer storeBytes storeBufferdrawImageString drawStringfillArcs fillPolygonfillRectanglesdrawArcsdrawRectangles drawSegments drawLines drawPoints set_cursor set_colormapset_override_redirectset_do_not_propagate_maskset_event_maskset_save_underset_backing_pixelset_backing_planesset_backing_storeset_win_gravityset_bit_gravityset_border_pixelset_border_pixmapset_background_pixelset_background_pixmapallocaSetWindowAttributessetWMProtocols recolorCursorcreateGlyphCursorcreatePixmapCursor setIconName getIconName lookupStringnoSymbolstringToKeysymkeysymToStringdisplayKeycodesreadBitmapFilematchVisualInfo getVisualInfo visualAllMaskvisualBitsPerRGBMaskvisualColormapSizeMaskvisualBlueMaskMaskvisualGreenMaskMaskvisualRedMaskMaskvisualClassMaskvisualDepthMaskvisualScreenMask visualIDMask visualNoMaskgetPointerControlgetScreenSaverscreenSaverResetscreenSaverActivedefaultBlankingpreferBlankingdontPreferBlankingdefaultExposuresallowExposuresdontAllowExposuressetLocaleModifiers getGeometrygeometrysetDefaultErrorHandler displayName queryPointer queryBestSizequeryBestCursorqueryBestStipple queryBestTile getInputFocus rmInitialize autoRepeatOff autoRepeatOnbellsetCloseDownModelastKnownRequestProcessed setInputFocus grabButton ungrabButton grabPointer ungrabPointergrabKey ungrabKey grabKeyboardungrabKeyboard grabServer ungrabServersupportsLocalesetScreenSaveractivateScreenSaverresetScreenSaverforceScreenSaver warpPointervisualIDFromVisual initThreads lockDisplay unlockDisplay createPixmap freePixmapbitmapBitOrder bitmapUnit bitmapPad lookupKeysymkeycodeToKeysymkeysymToKeycode defineCursorundefineCursorcreateFontCursor freeCursor drawPointdrawLine drawRectangledrawArc fillRectanglefillArccopyArea copyPlaneAllowExposuresModePreferBlankingModeScreenSaverModeVisualInfoMaskGraphics.X11.Xlib.AtomlAST_PREDEFINEDwM_TRANSIENT_FORwM_CLASS cAP_HEIGHT fULL_NAME fAMILY_NAME fONT_NAMEnOTICE cOPYRIGHT rESOLUTION pOINT_SIZEwEIGHT qUAD_WIDTHx_HEIGHT iTALIC_ANGLEsTRIKEOUT_DESCENTsTRIKEOUT_ASCENTuNDERLINE_THICKNESSuNDERLINE_POSITION sUBSCRIPT_Y sUBSCRIPT_X sUPERSCRIPT_Y sUPERSCRIPT_X eND_SPACE mAX_SPACE nORM_SPACE mIN_SPACE wM_ZOOM_HINTS wM_SIZE_HINTSwM_NORMAL_HINTSwM_NAME wM_ICON_SIZE wM_ICON_NAMEwM_CLIENT_MACHINEwM_HINTS wM_COMMANDwINDOWvISUALIDsTRING rGB_RED_MAP rGB_GREEN_MAP rGB_GRAY_MAPrGB_DEFAULT_MAP rGB_BLUE_MAP rGB_BEST_MAP rGB_COLOR_MAPrESOURCE_MANAGER rECTANGLEpOINTpIXMAPiNTEGERfONTdRAWABLE cUT_BUFFER7 cUT_BUFFER6 cUT_BUFFER5 cUT_BUFFER4 cUT_BUFFER3 cUT_BUFFER2 cUT_BUFFER1 cUT_BUFFER0cURSORcOLORMAPcARDINALbITMAPaTOMaRC sECONDARYpRIMARY getAtomNames getAtomName internAtomGraphics.X11.Xlib.Color queryColors queryColor storeColor freeColors parseColor allocColorallocNamedColor lookupColorinstallColormapuninstallColormapcopyColormapAndFreecreateColormap freeColormapGraphics.X11.Xlib.ContextcreateGC setDashes setArcMode setBackground setForeground setFunctionsetGraphicsExposures setClipMask setClipOrigin setFillRule setFillStylesetFontsetLineAttributes setPlaneMasksetState setStipplesetSubwindowMode setTSOriginsetTilegContextFromGCfreeGCflushGCcopyGCGraphics.X11.Xlib.Event sendEventgettimeofday_in_milliseconds waitForEventget_ConfigureEventget_ExposeEventget_MotionEventget_ButtonEvent asKeyEvent get_KeyEvent get_Window get_EventType allocaXEventqueuedAfterReadingqueuedAfterFlush queuedAlreadyflushsyncpending eventsQueued nextEvent allowEvents selectInput windowEventcheckWindowEvent maskEventcheckMaskEventcheckTypedEventcheckTypedWindowEvent putBackEvent peekEvent QueuedModeXEvent XEventPtr XKeyEvent XKeyEventPtr XButtonEvent XMotionEvent XExposeEvent XMappingEventXConfigureEventGraphics.X11.Xlib.Display openDisplay serverVendor displayStringscreenResourceStringresourceManagerString allPlanes_aux blackPixel whitePixelconnectionNumberdefaultColormap defaultGC defaultDepth defaultScreendefaultScreenOfDisplay displayHeightdisplayHeightMM displayWidthdisplayWidthMMmaxRequestSizedisplayMotionBufferSizeimageByteOrderprotocolRevisionprotocolVersion screenCount defaultVisual displayCells displayPlanesscreenOfDisplaydefaultRootWindow rootWindowqLengthnoOp closeDisplayGraphics.X11.Xlib.CursorxC_xtermxC_watch xC_ur_angle xC_umbrella xC_ul_anglexC_trek xC_top_tee xC_top_sidexC_top_right_cornerxC_top_left_cornerxC_top_left_arrow xC_tcross xC_targetxC_star xC_spraycan xC_spider xC_sizing xC_shuttlexC_sb_v_double_arrowxC_sb_up_arrowxC_sb_right_arrowxC_sb_left_arrowxC_sb_h_double_arrowxC_sb_down_arrow xC_sailboat xC_rtl_logoxC_rightbutton xC_right_tee xC_right_side xC_right_ptrxC_question_arrowxC_plus xC_pirate xC_pencilxC_mousexC_man xC_lr_angle xC_ll_angle xC_leftbutton xC_left_tee xC_left_side xC_left_ptr xC_iron_crossxC_iconxC_heartxC_hand2xC_hand1xC_gumby xC_gobblerxC_fleur xC_exchange xC_draped_boxxC_draft_smallxC_draft_largexC_double_arrow xC_dotboxxC_dotxC_diamond_cross xC_crosshairxC_cross_reversexC_cross xC_coffee_mugxC_clock xC_circle xC_center_ptr xC_box_spiral xC_bottom_teexC_bottom_sidexC_bottom_right_cornerxC_bottom_left_corner xC_bogosityxC_boatxC_based_arrow_upxC_based_arrow_downxC_arrow xC_X_cursorGraphics.X11.Xlib.Font textWidth textExtentsdescentFromFontStructascentFromFontStructfontFromFontStruct loadQueryFont fontFromGC queryFontfreeFontGlyph FontStruct CharStructGraphics.X11.Xlib.ImagegetPixelgetImage createImageputImage destroyImage xGetPixelGraphics.X11.Xlib.Region setRegion shrinkRegion offsetRegionclipBox rectInRegion pointInRegion equalRegion emptyRegion xorRegion unionRegionunionRectWithRegionsubtractRegionintersectRegion polygonRegion createRegion rectanglePart rectangleIn rectangleOutRegionRectInRegionResultGraphics.X11.Xlib.ScreenblackPixelOfScreenwhitePixelOfScreen cellsOfScreendefaultColormapOfScreendefaultDepthOfScreendefaultGCOfScreendefaultVisualOfScreendoesBackingStoredoesSaveUndersdisplayOfScreeneventMaskOfScreenminCmapsOfScreenmaxCmapsOfScreenrootWindowOfScreen widthOfScreenwidthMMOfScreenheightOfScreenheightMMOfScreenplanesOfScreenscreenNumberOfScreenGraphics.X11.Xlib.TypesDisplayScreenVisualGCSetWindowAttributesvisualInfo_bitsPerRGBvisualInfo_colormapSizevisualInfo_blueMaskvisualInfo_greenMaskvisualInfo_redMaskvisualInfo_classvisualInfo_depthvisualInfo_screenvisualInfo_visualIDvisualInfo_visual VisualInfoImagePixelPosition DimensionAngle ScreenNumberBufferpt_ypt_xPoint rect_height rect_widthrect_yrect_x Rectangle arc_angle2 arc_angle1 arc_height arc_widtharc_yarc_xArcseg_y2seg_x2seg_y1seg_x1Segment color_flags color_blue color_green color_red color_pixelColorGraphics.X11.Xlib.InternalxFreeGraphics.X11.TypesxRR_UnknownConnectionxRR_Disconnected xRR_Connected xRR_Reflect_Y xRR_Reflect_XxRR_Rotate_270xRR_Rotate_180 xRR_Rotate_90 xRR_Rotate_0zPixmapxyPixmapxyBitmapfontRightToLeftfontLeftToRightdoBluedoGreendoRedalways whenMapped notUseful unmapGravity staticGravitysouthEastGravity southGravitysouthWestGravity eastGravity centerGravity westGravitynorthEastGravity northGravitynorthWestGravity forgetGravity setModeDelete setModeInsertmappingPointermappingKeyboardmappingModifierallocAll allocNonemSBFirstlSBFirst lowerHighest raiseLowest gCLastBit gCArcMode gCDashList gCDashOffset gCClipMask gCClipYOrigin gCClipXOrigingCGraphicsExposuresgCSubwindowModegCFontgCTileStipYOrigingCTileStipXOrigin gCStipplegCTile gCFillRule gCFillStyle gCJoinStyle gCCapStyle gCLineStyle gCLineWidth gCBackground gCForeground gCPlaneMask gCFunction arcPieSlicearcChordconvex nonconvexcomplexcoordModePreviouscoordModeOriginincludeInferiorsclipByChildren windingRule evenOddRulefillOpaqueStippled fillStippled fillTiled fillSolid joinBevel joinRound joinMiter capProjectingcapRoundcapButt capNotLastlineDoubleDash lineOnOffDash lineSolidgXsetgXnand gXorInvertedgXcopyInverted gXorReversegXinvertgXequivgXnorgXorgXxorgXnoop gXandInvertedgXcopy gXandReversegXandgXclear stippleShape tileShape cursorShaperetainTemporaryretainPermanent destroyAllcWCursor cWColormapcWDontPropagate cWEventMask cWSaveUndercWOverrideRedirectcWBackingPixelcWBackingPlanescWBackingStore cWWinGravity cWBitGravity cWBorderPixelcWBorderPixmap cWBackPixel cWBackPixmap inputOnly inputOutputcopyFromParent throwIfZerolastExtensionErrorfirstExtensionErrorbadImplementation badLengthbadName badIDChoicebadGCbadColorbadAlloc badAccess badDrawablebadMatchbadFont badCursorbadAtom badPixmap badWindowbadValue badRequestsuccessrevertToParentrevertToPointerRoot revertToNonesyncBoth asyncBothreplayKeyboard syncKeyboard asyncKeyboard replayPointer syncPointer asyncPointer grabFrozengrabNotViewablegrabInvalidTimealreadyGrabbed grabSuccess grabModeAsync grabModeSynccolormapInstalledcolormapUninstalledpropertyDeletepropertyNewValue familyChaos familyDECnetfamilyInternet placeOnBottom placeOnTopvisibilityFullyObscuredvisibilityPartiallyObscuredvisibilityUnobscurednotifyDetailNonenotifyPointerRoot notifyPointernotifyNonlinearVirtualnotifyNonlinearnotifyInferior notifyVirtualnotifyAncestor notifyHintnotifyWhileGrabbed notifyUngrab notifyGrab notifyNormalbutton5button4button3button2button1 button5Mask button4Mask button3Mask button2Mask button1Maskmod5Maskmod4Maskmod3Maskmod2Maskmod1Mask controlMasklockMask shiftMask noModMask anyModifier mod5MapIndex mod4MapIndex mod3MapIndex mod2MapIndex mod1MapIndexcontrolMapIndex lockMapIndex shiftMapIndexscreenSaverNotify lASTEventrrNotifyOutputPropertyrrNotifyOutputChangerrNotifyCrtcChangerrNotifyrrScreenChangeNotify mappingNotify clientMessagecolormapNotifyselectionNotifyselectionRequestselectionClearpropertyNotifycirculateRequestcirculateNotify resizeRequest gravityNotifyconfigureRequestconfigureNotifyreparentNotify mapRequest mapNotify unmapNotify destroyNotify createNotifyvisibilityNotifynoExposegraphicsExposeexpose keymapNotifyfocusOutfocusIn leaveNotify enterNotify motionNotify buttonRelease buttonPress keyReleasekeyPressscreenSaverNotifyMaskscreenSaverCycleMaskrrOutputPropertyNotifyMaskrrOutputChangeNotifyMaskrrCrtcChangeNotifyMaskrrScreenChangeNotifyMaskownerGrabButtonMaskcolormapChangeMaskpropertyChangeMaskfocusChangeMasksubstructureRedirectMasksubstructureNotifyMaskresizeRedirectMaskstructureNotifyMaskvisibilityChangeMask exposureMaskkeymapStateMaskbuttonMotionMaskbutton5MotionMaskbutton4MotionMaskbutton3MotionMaskbutton2MotionMaskbutton1MotionMaskpointerMotionHintMaskpointerMotionMaskleaveWindowMaskenterWindowMaskbuttonReleaseMaskbuttonPressMaskkeyReleaseMask keyPressMask noEventMask xK_ydiaeresisxK_thorn xK_yacute xK_udiaeresisxK_ucircumflex xK_uacute xK_ugrave xK_oslash xK_division xK_odiaeresis xK_otildexK_ocircumflex xK_oacute xK_ograve xK_ntildexK_eth xK_idiaeresisxK_icircumflex xK_iacute xK_igrave xK_ediaeresisxK_ecircumflex xK_eacute xK_egrave xK_ccedillaxK_aexK_aring xK_adiaeresis xK_atildexK_acircumflex xK_aacute xK_agrave xK_ssharpxK_ThornxK_THORN xK_Yacute xK_UdiaeresisxK_Ucircumflex xK_Uacute xK_Ugrave xK_Ooblique xK_multiply xK_Odiaeresis xK_OtildexK_Ocircumflex xK_Oacute xK_Ograve xK_NtildexK_EthxK_ETH xK_IdiaeresisxK_Icircumflex xK_Iacute xK_Igrave xK_EdiaeresisxK_Ecircumflex xK_Eacute xK_Egrave xK_CcedillaxK_AExK_Aring xK_Adiaeresis xK_AtildexK_Acircumflex xK_Aacute xK_AgravexK_questiondownxK_threequarters xK_onehalf xK_onequarterxK_guillemotright xK_masculinexK_onesuperior xK_cedillaxK_periodcentered xK_paragraphxK_muxK_acutexK_threesuperiorxK_twosuperior xK_plusminus xK_degree xK_macron xK_registered xK_hyphen xK_notsignxK_guillemotleftxK_ordfeminine xK_copyright xK_diaeresis xK_section xK_brokenbarxK_yen xK_currency xK_sterlingxK_cent xK_exclamdownxK_nobreakspace xK_asciitilde xK_bracerightxK_bar xK_braceleftxK_zxK_yxK_xxK_wxK_vxK_uxK_txK_sxK_rxK_qxK_pxK_oxK_nxK_mxK_lxK_kxK_jxK_ixK_hxK_gxK_fxK_exK_dxK_cxK_bxK_a xK_quoteleftxK_grave xK_underscorexK_asciicircumxK_bracketright xK_backslashxK_bracketleftxK_ZxK_YxK_XxK_WxK_VxK_UxK_TxK_SxK_RxK_QxK_PxK_OxK_NxK_MxK_LxK_KxK_JxK_IxK_HxK_GxK_FxK_ExK_DxK_CxK_BxK_AxK_at xK_question xK_greaterxK_equalxK_less xK_semicolonxK_colonxK_9xK_8xK_7xK_6xK_5xK_4xK_3xK_2xK_1xK_0xK_slash xK_periodxK_minusxK_commaxK_plus xK_asterisk xK_parenright xK_parenleft xK_quoteright xK_apostrophe xK_ampersand xK_percent xK_dollar xK_numbersign xK_quotedbl xK_exclamxK_space xK_Hyper_R xK_Hyper_L xK_Super_R xK_Super_LxK_Alt_RxK_Alt_L xK_Meta_R xK_Meta_L xK_Shift_Lock xK_Caps_Lock xK_Control_R xK_Control_L xK_Shift_R xK_Shift_LxK_R15xK_F35xK_R14xK_F34xK_R13xK_F33xK_R12xK_F32xK_R11xK_F31xK_R10xK_F30xK_R9xK_F29xK_R8xK_F28xK_R7xK_F27xK_R6xK_F26xK_R5xK_F25xK_R4xK_F24xK_R3xK_F23xK_R2xK_F22xK_R1xK_F21xK_L10xK_F20xK_L9xK_F19xK_L8xK_F18xK_L7xK_F17xK_L6xK_F16xK_L5xK_F15xK_L4xK_F14xK_L3xK_F13xK_L2xK_F12xK_L1xK_F11xK_F10xK_F9xK_F8xK_F7xK_F6xK_F5xK_F4xK_F3xK_F2xK_F1xK_KP_9xK_KP_8xK_KP_7xK_KP_6xK_KP_5xK_KP_4xK_KP_3xK_KP_2xK_KP_1xK_KP_0 xK_KP_Divide xK_KP_DecimalxK_KP_SubtractxK_KP_Separator xK_KP_AddxK_KP_Multiply xK_KP_Equal xK_KP_Delete xK_KP_Insert xK_KP_Begin xK_KP_EndxK_KP_Page_Down xK_KP_Next xK_KP_Page_Up xK_KP_Prior xK_KP_Down xK_KP_RightxK_KP_Up xK_KP_Left xK_KP_HomexK_KP_F4xK_KP_F3xK_KP_F2xK_KP_F1 xK_KP_Enter xK_KP_Tab xK_KP_Space xK_Num_LockxK_script_switchxK_Mode_switchxK_BreakxK_Help xK_CancelxK_FindxK_MenuxK_RedoxK_Undo xK_Insert xK_ExecutexK_Print xK_SelectxK_BeginxK_End xK_Page_DownxK_Next xK_Page_UpxK_PriorxK_DownxK_RightxK_UpxK_LeftxK_HomexK_PreviousCandidatexK_MultipleCandidatexK_SingleCandidate xK_Codeinput xK_Multi_key xK_Delete xK_Escape xK_Sys_ReqxK_Scroll_LockxK_Pause xK_ReturnxK_Clear xK_LinefeedxK_Tab xK_BackSpace xK_VoidSymbolXIDMaskAtomVisualIDTimeWindowDrawableFontPixmapCursorColormapGContextKeyCodeKeySym EventMask EventTypeModifierKeyMask ButtonMaskButton NotifyMode NotifyDetail VisibilityPlaceProtocolPropertyNotificationColormapNotificationGrabMode GrabStatus AllowEvents FocusMode ErrorCodeStatus WindowClass AttributeMask CloseDownModeQueryBestSizeClass GXFunction LineStyleCapStyle JoinStyle FillStyleFillRule SubWindowModeCoordinateMode PolygonShapeArcModeGCMaskCirculationDirection ByteOrder ColormapAllocMappingRequestChangeSaveSetMode BitGravity WindowGravity BackingStore FontDirection ImageFormatRotation ReflectionSizeID SubpixelOrder ConnectionRROutputRRCrtcRRMode XRRModeFlagsControl.Monad.IO.ClassliftIOMonadIO Control.Monad>=>sequencemapM sequenceAtraversereadIOreadLn appendFile writeFilereadFileinteract getContentsgetLinegetCharputStrLnputStrputCharGHC.IO.Handle.Text hPutStrLnhPutStrGHC.IO.ExceptionioErrorGHC.IOFilePath userErrorIOErrornotElemallanyorand concatMapconcat sequence_mapM_productsumminimummaximumlengthnulltoListfoldl1foldr1foldlfoldrfoldMap Data.OldListunwordswordsunlineslines isPrefixOf Text.Readreadreadseitherlex readParenreadList readsPrecText.ParserCombinators.ReadPReadSatanhacoshasinhtanhcoshsinhatanacosasintancossinlogBase**sqrtlogexppiatan2isIEEEisNegativeZeroisDenormalized isInfiniteisNaN scaleFloat significandexponent encodeFloat decodeFloat floatRange floatDigits floatRadix Data.Bits.|. Data.Functor<$>lcmgcd^^^oddevendivModquotRemdivremquotrecip/floorceilingroundtruncateproperFractionmaxBoundminBoundfromEnumtoEnumpredsucc showParen showStringshowCharshowsShowSshowListshow showsPrecunzip3unzipzipWith3zipWithzip3!!lookupreversebreakspansplitAtdroptake dropWhile takeWhilecycle replicaterepeatiteratescanr1scanrscanl1scanlinitlasttailhead Data.Maybemaybeuncurrycurrysubtractsignumabs*+asTypeOfuntil$!flip.constid=<<<$<*StringGHC.Err undefinederrorWithoutStackTraceerror/=<=compare&&||not<>maxmin1data-default-class-0.1.2.0-FeIQ5tLoVZBHMSgrT9zptQData.Default.ClassDefault mtl-2.2.2Control.Monad.State.Classgetsmodifystateputget MonadStateControl.Monad.Reader.Classasksreaderlocalask MonadReader"xmonad-0.15-2AhOhgiK0QV7ilJLfRNOq9 XMonad.Mainlaunch defaultConfigXMonad.ManageHookdoShiftdoIgnoredoFloatdoFgetStringPropertystringProperty classNameresourceappNametitle<||><&&>=?--> composeAll<+>idHookliftXapplyMaxSizeHintapplyResizeIncHintapplyAspectHintapplySizeHints'applySizeHintsContentsapplySizeHintsmkAdjustmouseResizeWindowmouseMoveWindow mouseDragfloat pointWithin pointScreen floatLocationrestart migrateState readStateFilewriteStateToFile initColor cleanMaskextraModifiersisClient withFocusedscreenWorkspace setLayout updateLayoutbroadcastMessage setFocusXfocus setTopFocus setButtonGrabrescreengetCleanedScreenInfo nubScreens containedIn tileWindow clearEventsrefreshsetInitialPropertiesrevealhidesetWindowBorderWithFallback setWMStatescaleRationalRectwindowBracket_ windowBracketmodifyWindowSetwindowskill killWindowunmanagemanagesfExtsfWins StateFileD XMonad.Layout||| mirrorRectsplitVerticallyBysplitHorizontallyBysplitHorizontallysplitVerticallytileExpandShrinkResize IncMasterNFull tallRatiotallRatioIncrement tallNMasterTallMirror NextLayout FirstLayout ChangeLayoutChoose XMonad.CoreuninstallSignalHandlersinstallSignalHandlerstracewhenXwhenJust recompile stateFileNamegetXMonadDataDirgetXMonadCacheDir getXMonadDirrunOnWorkspacesxforkspawnPIDspawncatchIOio fromMessage readsLayoutatom_WM_TAKE_FOCUS atom_WM_STATEatom_WM_DELETE_WINDOWatom_WM_PROTOCOLSgetAtomisRootwithWindowAttributes withWindowSet withDisplay userCodeDefuserCodecatchXrunXrunQueryextensibleStatenumberlockMaskdragging waitingUnmapmapped windowsetXState currentEvent mousePosition mouseFocused buttonActions keyActions focusedBorder normalBordertheRootconfigdisplayXConfXConfig WindowSet WindowSpace WorkspaceIdSScreenId screenRectSD ScreenDetailX ManageHookQueryLayout description pureMessage handleMessage emptyLayout pureLayoutdoLayout runLayout LayoutClassMessage SomeMessageReleaseResourcesHideLayoutMessages extensionType initialValueExtensionClassPersistentExtensionStateExtension afterDragifClickifClick' cycleRecentWScycleWindowSetsdemanage dwmpromoteviewEmptyWorkspacetagToEmptyWorkspacesendToEmptyWorkspacediscretelinearresizeposition mouseWindowPGkeysMoveWindowkeysMoveWindowTokeysResizeWindowkeysAbsResizeWindowfocusNth focusNth'swapNthswapNth'sendSomeMessageBsendSomeMessagesendSomeMessageWithNoRefreshBsendSomeMessageWithNoRefresh&sendSomeMessageWithNoRefreshToCurrentB%sendSomeMessageWithNoRefreshToCurrent sendMessageBsendMessageWithNoRefreshB"sendMessageWithNoRefreshToCurrentB!sendMessageWithNoRefreshToCurrentsendSomeMessagesBsendSomeMessages sendMessagesB sendMessages tryInOrderB!tryInOrderWithNoRefreshToCurrentB tryInOrderWithNoRefreshToCurrent tryMessageB!tryMessageWithNoRefreshToCurrentB tryMessageWithNoRefreshToCurrentsmsendsendSMsendSM_ tryInOrder tryInOrder_ tryMessage tryMessage_ toggleBorderFocusFocusNew FocusCurrentFocusTagFocusTagVisibleonScreen onScreen' viewOnScreengreedyViewOnScreen onlyOnScreentoggleOnScreentoggleGreedyOnScreen chooseActionbindOnScreenComparatorPhysicalScreengetScreenIdAndRectangle getScreen viewScreen sendToScreenscreenComparatorByRectanglescreenComparatorByIdverticalScreenOrdererhorizontalScreenOrdereronNextNeighbouronPrevNeighbour$fDefaultScreenComparator$fEqPhysicalScreen$fOrdPhysicalScreen$fShowPhysicalScreen$fReadPhysicalScreen$fEnumPhysicalScreen$fNumPhysicalScreen$fIntegralPhysicalScreen$fRealPhysicalScreenpromote RandomColorRGBHSV randomBg'randomBg rotSlavesUp rotSlavesDown rotSlaves'rotAllUp rotAllDownrotAll'cycleRecentWindows cycleStacks' shiftToFocus' rotOpposite rotOpposite' rotFocusedUprotFocusedDown rotFocused'rotUnfocusedUprotUnfocusedDown rotUnfocused'rotUprotDownsubmap submapDefaultsubmapDefaultWithKeyfocusOnMouseMoveadjustEventInputCorner UpperLeft UpperRight LowerLeft LowerRightbanish banishScreen warpToWindow warpToScreensinkAllwithAll'withAllkillAll azertyConfig belgianConfig azertyKeys belgianKeys bepoConfigbepoKeysdebugKeyEventsdynamicPropertyChange dynamicTitle setOpacityfadeOutfadeInfadeIffadeInactiveLogHookfadeInactiveCurrentWSLogHook isUnfocusedisUnfocusedOnCurrentWSfadeOutLogHookFadeHookOpacityopaque transparent transparencyopacityfadeTo translucencefadeBy invisiblesoliddoS idFadeHook isFloatingfadeWindowsLogHookfadeWindowsEventHook$fSemigroupOpacity$fMonoidOpacityNewerOlderMasterEndAboveBelowinsertPositionRestoreMinimizedrestoreMinimizedEventHook$fShowRestoreMinimized$fReadRestoreMinimizedexecScriptHook setWMName takeFocusX takeTopFocus XPropMatchpmXpmPxPropManageHook$fLayoutClassAccordionWord64$fReadAccordion$fShowAccordion BinaryColumn$fLayoutClassBinaryColumna$fReadBinaryColumn$fShowBinaryColumnCircle$fLayoutClassCircleWord64 $fReadCircle $fShowCircleColumn$fLayoutClassColumna $fReadColumn $fShowColumnCross crossPropcrossInc simpleCross$fLayoutClassCrossa $fShowCross $fReadCrossDishes$fLayoutClassDishesa $fShowDishes $fReadDishes FixedColumn$fLayoutClassFixedColumnWord64$fReadFixedColumn$fShowFixedColumnGrid GridRatio defaultRatioarrange$fLayoutClassGrida $fReadGrid $fShowGridTallGridChangeMasterGridGeom IncMasterRows IncMasterCols SetMasterRows SetMasterColsSetMasterFraction OrientationTBLR SplitGridChangeGridGeom SetGridAspectChangeGridAspect$fMessageChangeGridGeom$fLayoutClassSplitGrida$fMessageChangeMasterGridGeom$fLayoutClassTallGrida$fEqOrientation$fReadOrientation$fShowOrientation$fReadSplitGrid$fShowSplitGrid$fReadTallGrid$fShowTallGrid$fLayoutClassGridWord64 AlignmentTopLeftCenter BottomRightWide HintedTilenmasterdeltafrac alignment orientation$fLayoutClassHintedTileWord64$fOrdOrientation$fShowAlignment$fReadAlignment $fEqAlignment$fOrdAlignment$fShowHintedTile$fReadHintedTileIfMaxifMax$fLayoutClassIfMaxWord64 $fReadIfMax $fShowIfMaxModifiedLayoutLayoutModifier modifyLayoutmodifyLayoutWithUpdate handleMesshandleMessOrMaybeModifyItpureMess redoLayout pureModifierhookunhookmodifierDescriptionmodifyDescription$fLayoutClassModifiedLayouta$fReadModifiedLayout$fShowModifiedLayout HiddenMsg HideWindowPopNewestHiddenWindowPopOldestHiddenWindow hiddenWindows hideWindowpopOldestHiddenWindowpopNewestHiddenWindow#$fLayoutModifierHiddenWindowsWord64$fMessageHiddenMsg$fShowHiddenWindows$fReadHiddenWindows $fEqHiddenMsgDraggingVisualizerMsgDraggingWindowDraggingStoppedDraggingVisualizerdraggingVisualizer($fLayoutModifierDraggingVisualizerWord64$fMessageDraggingVisualizerMsg$fReadDraggingVisualizer$fShowDraggingVisualizer$fEqDraggingVisualizerMsgTopRightMasterCenteredMaster centerMastertopRightMaster$$fLayoutModifierCenteredMasterWord64$$fLayoutModifierTopRightMasterWord64$fReadCenteredMaster$fShowCenteredMaster$fReadTopRightMaster$fShowTopRightMaster BoringWindows UpdateBoring BoringMessageReplaceMerge markBoring clearBoring focusMaster boringWindows boringAuto$fMessageBoringMessage$fMessageUpdateBoring#$fLayoutModifierBoringWindowsWord64$fReadBoringMessage$fShowBoringMessage$fShowBoringWindows$fReadBoringWindowsAvoidFloatItemMsgAvoidFloatAddItemAvoidFloatRemoveItemAvoidFloatToggleItem AvoidFloatMsgAvoidFloatToggle AvoidFloatSetAvoidFloatClearItems avoidFloats avoidFloats'$fMessageAvoidFloatMsg!$fLayoutModifierAvoidFloatsWord64$fMessageAvoidFloatItemMsg$fReadAvoidFloats$fShowAvoidFloats AutoMaster autoMaster$fLayoutModifierAutoMasterw$fReadAutoMaster$fShowAutoMasterWorkspaceCursorsCursors makeCursorsgetFocusnoWrapUp noWrapDown focusDepth modifyLayershiftModifyLayer shiftLayer modifyLayer'workspaceCursors$fFunctorCursors$fFoldableCursors!$fLayoutModifierWorkspaceCursorsa$fMessageChangeCursors $fEqCursors $fShowCursors $fReadCursors$fReadWorkspaceCursors$fShowWorkspaceCursors FixedLayout layoutScreenslayoutSplitScreen fixedLayout$fLayoutClassFixedLayouta$fReadFixedLayout$fShowFixedLayout Selection LimitWindows increaseLimit decreaseLimitsetLimit limitWindows limitSlice limitSelect$fLayoutModifierLimitWindowsa$fMessageLimitChange$fLayoutModifierSelectiona$fReadSliceStyle$fShowSliceStyle$fReadLimitWindows$fShowLimitWindows$fReadSelection$fShowSelection $fEqSelection AddMaster multimasteredmastered fixMastered$fLayoutModifierAddMasterWord64$fLayoutModifierFixMasterWord64$fShowAddMaster$fReadAddMaster$fShowFixMaster$fReadFixMasterMaximizeRestoreMaximizemaximizemaximizeWithPaddingmaximizeRestore$fLayoutModifierMaximizeWord64$fMessageMaximizeRestore$fReadMaximize$fShowMaximize$fEqMaximizeRestoreEscapedMessageEscapeUnEscapeIgnoreescapeunEscapeignore$fLayoutClassIgnorew$fMessageEscapedMessage$fLayoutModifierUnEscapea $fShowIgnore $fReadIgnore$fShowUnEscape$fReadUnEscapeMosaicAspectTallerWiderResetSlopeModmosaic changeMaster changeFocused$fMessageAspect$fLayoutClassMosaica$fSemigroupTree $fMonoidTree $fFunctorTree$fFoldableTree $fReadMosaic $fShowMosaic MosaicAltParamsParamHandleWindowAltshrinkWindowAltexpandWindowAlt tallWindowAlt wideWindowAltresetAlt$fMessageHandleWindowAlt$fLayoutClassMosaicAltWord64$fEqHandleWindowAlt $fShowParam $fReadParam$fShowMosaicAlt$fReadMosaicAltMultiColmultiCol$fLayoutClassMultiCola$fShowMultiCol$fReadMultiCol $fEqMultiCol MultiDishes$fLayoutClassMultiDishesa$fShowMultiDishes$fReadMultiDishesHListHConsEOT MultiToggleToggle Transformer transformmkToggle mkToggle1??single$fMessageToggle$fShowMultiToggle$fLayoutClassMultiTogglea $fHListHConsw $fHListEOTw$fReadMultiToggle$fReadMultiToggleS$fShowMultiToggleS $fReadEOT $fShowEOT $fReadHCons $fShowHConsOnHostonHostonHostsmodHostmodHosts$fLayoutClassOnHosta $fReadOnHost $fShowOnHostOneBig$fLayoutClassOneBiga $fReadOneBig $fShowOneBig PerScreenifWider$fLayoutClassPerScreena$fReadPerScreen$fShowPerScreen PerWorkspace onWorkspace onWorkspaces modWorkspace modWorkspaces$fLayoutClassPerWorkspacea$fReadPerWorkspace$fShowPerWorkspaceRenameCutLeftCutRightAppendPrepend CutWordsLeft CutWordsRight AppendWords PrependWordsChainrenamed$fLayoutModifierRenamea $fShowRename $fReadRename $fEqRenamenamednameTail ResizableTall_nmaster_delta_frac_slaves MirrorResize MirrorShrink MirrorExpand$fMessageMirrorResize$fLayoutClassResizableTalla$fShowResizableTall$fReadResizableTallRoledex$fLayoutClassRoledexWord64 $fShowRoledex $fReadRoledexSimplest$fLayoutClassSimplesta$fShowSimplest$fReadSimplest SpiralWithDir DirectionEastSouthWestNorthCWCCWspiral spiralWithDir$fLayoutClassSpiralWithDira$fReadRotation$fShowRotation $fEqDirection$fEnumDirection$fReadDirection$fShowDirection$fReadSpiralWithDir$fShowSpiralWithDirSquare$fLayoutClassSquarea $fReadSquare $fShowSquare StackTile$fLayoutClassStackTilea$fShowStackTile$fReadStackTileThreeCol ThreeColMidthreeColNMaster threeColDelta threeColFrac$fLayoutClassThreeCola$fShowThreeCol$fReadThreeCol ToggleLayout ToggleLayouts toggleLayouts$fLayoutClassToggleLayoutsa$fMessageToggleLayout$fReadToggleLayouts$fShowToggleLayouts$fReadToggleLayout$fShowToggleLayoutUseTransientFor TrackFloatinguseTransientFor trackFloating#$fLayoutModifierTrackFloatingWord64%$fLayoutModifierUseTransientForWord64$fReadTrackFloating$fShowTrackFloating$fEqTrackFloating$fReadUseTransientFor$fShowUseTransientFor$fEqUseTransientForTwoPane$fLayoutClassTwoPanea $fShowTwoPane $fReadTwoPaneTwoPanePersistentslaveWindFracmFrac$fLayoutClassTwoPanePersistenta$fShowTwoPanePersistent$fReadTwoPanePersistent fuzzyMatch fuzzySortsetDefaultCursor customKeyscustomKeysFrom debugWindow debugStackdebugStackFulldebugStackLogHookdebugStackFullLogHookdebugStackEventHookdebugStackFullEventHookdebugStackStringdebugStackFullStringdebugEventsHook$fFunctorDecoder$fApplicativeDecoder$fMonadDecoder$fMonadIODecoder$fMonadStateDecoder$fMonadReaderDecoderAlign AlignCenter AlignRight AlignLeftAlignRightOffset XMonadFontCoreUtf8Xft stringToPixel pixelToString initCoreFontreleaseCoreFont initUtf8FontreleaseUtf8FontinitXMF releaseXMF textWidthXMFtextExtentsXMFstringPositionprintStringXMFfi $fShowAlign $fReadAlign Placement OffsetLeft OffsetRight CenterLeft CenterRight iconPositiondrawIcon$fShowPlacement$fReadPlacement InvisibleI whenIJust fromIMaybe$fShowInvisible$fReadInvisible$fMonadInvisible$fMonadFailInvisible$fApplicativeInvisible$fFunctorInvisible MinimizedrectMapminimizedStackRectMap$fExtensionClassMinimized $fEqMinimized$fReadMinimized$fShowMinimized NamedActionHasName sendMessage'spawn' submapName^++^ showKmSimpleshowKmxMessage addDescrKeys addDescrKeys'defaultKeysDescr separatorsubtitlenoNameoneNameaddName $fHasName(,) $fHasName(,)0 $fHasName[] $fHasNameIO $fHasNameX$fHasNameNamedAction $fHasName(,)1$fShowIncMasterN $fShowResizeadditionalKeysadditionalKeysP removeKeys removeKeysPadditionalMouseBindingsremoveMouseBindings mkNamedKeymapparseKey checkKeymapRemovableClass=- SummableClass=+ SettableClass=:UpdateableClass=.ArrPrime>> ifThenElsexmonadnothingnormalBorderColorfocusedBorderColorterminalmodMask borderWidthfocusFollowsMouseclickJustFocuses manageHookhandleEventHook workspaceslogHook startupHook clientMaskrootMaskkeys mouseBindingswithWorkspaceswsNameswsKeys wsActions wsSetName withScreenssKeyssActions onScreens addLayout resetLayout startWithapplyapplyIO$fSettableClasssxy$fUpdateableClassSettablexx$fSummableClassSummabley$fUpdateableClassSummablexx$fRemovableClassKeys[]$fSummableClassKeys[]$fRemovableClassMouseBindings[]$fSummableClassMouseBindings[]$fDefaultWorkspaceConfig$fDefaultScreenConfig NamedWindowgetNameunNamewithNamedWindow$fShowNamedWindow$fOrdNamedWindow$fEqNamedWindow noTaskbar markNoTaskbarXLiketoXPureXrunPureXtoXLikewindowBracket'defilehandlingRefreshwhen'whenM' whenJust'withWindowSet' withFociimodifyWindowSet'modify''getStackputStackpeek curScreen curWorkspacecurTag curScreenIdview greedyView invisiViewshift $fMonoidPureX$fSemigroupPureX $fXLikePureX$fXLikeX$fFunctorPureX$fApplicativePureX $fMonadPureX$fMonadReaderPureX$fMonadStatePureXremovemodified PositionStore getPosStoremodifyPosStoreposStoreInsertposStoreRemove posStoreQuery posStoreMove$fExtensionClassPositionStore$fReadPosStoreRectangle$fShowPosStoreRectangle$fReadPositionStore$fShowPositionStoreminimize$fLayoutModifierMinimizeWord64$fReadMinimize$fShowMinimizeworkspaceHistoryHookworkspaceHistoryWithScreenworkspaceHistoryByScreenworkspaceHistoryworkspaceHistoryTransaction $fExtensionClassWorkspaceHistory$fReadWorkspaceHistory$fShowWorkspaceHistoryrepeatableActionhandleKeyEventcycleWorkspaceOnScreencycleWorkspaceOnCurrentScreen WallpaperConfwallpaperBaseDir wallpapers WallpaperList Wallpaper WallpaperFix WallpaperDirdefWallpaperConf defWPNameswallpaperSetter$fExtensionClassWCState$fSemigroupWallpaperList$fMonoidWallpaperList$fDefaultWallpaperConf $fEqWallpaper$fShowWallpaper$fReadWallpaper$fShowWallpaperList$fReadWallpaperList$fShowWallpaperConf$fReadWallpaperConf toggleHook toggleHook'hookNexttoggleHookNext hookAllNewtoggleHookAllNewwillHook willHookNextwillHookAllNewwillHookNextPPwillHookAllNewPP runLogHook$fExtensionClassHookState$fReadHookState$fShowHookState floatNextHook floatNexttoggleFloatNext floatAllNewtoggleFloatAllNew willFloatNextwillFloatAllNewwillFloatNextPPwillFloatAllNewPPdebugManageHookdebugManageHookOn manageDebugmaybeManageDebugmanageDebugLogHookdebugNextManagedWindow $fExtensionClassManageStackDebugdynamicMasterHookaddDynamicHookupdateDynamicHook oneShotHook$fExtensionClassDynamicHookscurrentWorkspaceOnTop$fExtensionClassCWOTState WorkscreenId Workscreen workscreenIdexpandWorkspace fromWorkspaceconfigWorkscreenviewWorkscreenshiftToWorkscreen!$fExtensionClassWorkscreenStorage$fShowWorkscreen$fShowWorkscreenStorage MasterHistorygetMasterHistorygetMasterHistoryMapgetMasterHistoryFromTaggetMasterHistoryCurrentgetMasterHistoryFromWindowmodifyMasterHistoryFromTagmodifyMasterHistoryCurrentmasterHistoryHookmasterHistoryHook'updateMasterHistory swapPromote swapPromote'swapInswapIn' swapHybrid swapHybrid' swapApplyswapPromoteStack swapInStackswapHybridStackcycleNsplitsplit'mergemerge' stackSplit stackMerge$fExtensionClassMasterHistory$fReadMasterHistory$fShowMasterHistoryForwardBackwardHistorynextMatchWithThis nextMatch nextMatchOrDo historyHookisOnAnyVisibleWS$fExtensionClassHistoryDB$fReadHistoryDB$fShowHistoryDBPointRectanglepoint_x1point_y1point_x2point_y2pixelsToIndicespixelsToCoordinatesindicesToRectanglecoordinatesToRectangleempty intersects supersetOf differencecentertoRatio$fEqPointRectangle$fReadPointRectangle$fShowPointRectangle ModifySpacingSmartSpacingWithEdge SmartSpacingSpacingWithEdgeSpacingModifierModifySmartBorderModifyScreenBorderModifyScreenBorderEnabledModifyWindowBorderModifyWindowBorderEnabledSpacing smartBorder screenBorderscreenBorderEnabled windowBorderwindowBorderEnabledBordertopbottomrightleft spacingRawsetSmartSpacingsetScreenSpacingsetScreenSpacingEnabledsetWindowSpacingsetWindowSpacingEnabledtoggleSmartSpacingtoggleScreenSpacingEnabledtoggleWindowSpacingEnabledsetScreenWindowSpacingincWindowSpacingincScreenSpacingdecWindowSpacingdecScreenSpacingincScreenWindowSpacingdecScreenWindowSpacing borderMapborderIncrementByspacingspacingWithEdge smartSpacingsmartSpacingWithEdge setSpacing incSpacing$fMessageSpacingModifier$fMessageModifySpacing$fLayoutModifierSpacinga $fShowBorder $fReadBorder $fShowSpacing $fReadSpacingWithUnion Difference Intersection AmbiguityCombineOnlyScreenFloatOnlyLayoutFloatBelowOnlyLayoutFloatNever EmptyScreenOtherIndicated SetsAmbiguoushiddensConfigurableBorder BorderMessage HasBorder ResetBorder SmartBorder WithBorder noBorders smartBorders lessBorders hasBorderborderEventHook $fLayoutModifierWithBorderWord64$fMessageBorderMessage($fLayoutModifierConfigurableBorderWord64$fSetsAmbiguousAmbiguity$fReadWithBorder$fShowWithBorder$fReadConfigurableBorder$fShowConfigurableBorder $fReadWith $fShowWith$fReadAmbiguity$fShowAmbiguityStdTransformersFULLNBFULLMIRROR NOBORDERS SMARTBORDERS"$fTransformerStdTransformersWord64$fReadStdTransformers$fShowStdTransformers$fEqStdTransformersreplacerunProcessWithInputrunProcessWithInputAndWaitseconds safeSpawn safeSpawnProg unsafeSpawn runInTerm safeRunInTerm spawnPipe DzenConfig dzenConfigchomptimeoutaddArgsxScreenonCurrxyfgColorbgColoralign slaveAlignfontvCenterhCenter lineCountdzen dzenWithArgs dzenScreen dmenuXineramadmenumenumenuArgsmenuMap menuMapArgsdmenuMapWindowBringerConfig menuCommand windowTitlergotoMenugotoMenuConfig gotoMenuArgs gotoMenu' gotoMenuArgs' bringMenubringMenuConfig bringMenuArgs bringMenu'bringMenuArgs' bringWindow actionMenu windowMap windowMap'$fDefaultWindowBringerConfig commandMapworkspaceCommandsscreenCommandsdefaultCommands runCommandrunCommandConfig runCommand'serverModeEventHookserverModeEventHook'serverModeEventHookCmdserverModeEventHookCmd'serverModeEventHookFdateLinesGConfLimitsFiniteCircularLinearToLeftToUpToRightToDown planeKeys planeShift planeMove $fEqLimitsdoOnceisSessionStartsetSessionStarted$fExtensionClassSessionStart$fReadSessionStart$fShowSessionStartspawnNamedPipe getNamedPipe$fExtensionClassNamedPipes$fShowNamedPipesZipperemptyZ singletonZ fromIndextoIndexfromTagstoTags insertUpZ insertDownZswapUpZ swapDownZ swapMasterZfocusUpZ focusDownZ focusMasterZfindSfindZ getFocusZgetIZsortZsortByZmapZmapZ_mapZMmapZM_ onFocusedZ onFocusedZMonIndexZ onIndexZMfilterZfilterZ_deleteFocusedZ deleteIndexZfoldrZfoldlZfoldrZ_foldlZ_elemZgetImapEmapE_mapEMmapEM_fromEtagByreverseSreverseZ StateFull FocusTracking focusTracking $fLayoutClassFocusTrackingWord64$fShowFocusTracking$fReadFocusTracking ModifySpecX ModifySpec GroupsMessage ToEnclosingToGroup ToFocusedToAllRefocusModifyModifyXGroupsGroupgLayoutgZipperWithIDgroupsameIDonLayoutonZipperswapUpswapDown swapMaster swapGroupUp swapGroupDownswapGroupMaster focusGroupUpfocusGroupDownfocusGroupMastermoveToNewGroupUpmoveToNewGroupDown moveToGroupUpmoveToGroupDown splitGroup$fLayoutClassWithIDa $fEqWithID$fLayoutClassGroupsWord64$fMessageGroupsMessage$fShowGroupsMessage$fEqUniq $fShowUniq $fReadUniq $fShowWithID $fReadWithID $fShowGroup $fReadGroup $fEqGroup $fReadGroups $fShowGroupstoggleFocusFloatRefocusLastToggle refocusingRefocusLastLayoutHook RecentsMap RecentWinsRecentpreviouscurrentrefocusLastLogHookrefocusLastLayoutHookrefocusLastWhenrefocusingIsActiveisFloattoggleRefocusing toggleFocus swapWithLast refocusWhen shiftRLWhenupdateRecentsOn$fExtensionClassRecentsMap&$fLayoutModifierRefocusLastLayoutHooka!$fExtensionClassRefocusLastToggle$fShowRecentWins$fReadRecentWins$fEqRecentWins$fShowRecentsMap$fReadRecentsMap$fEqRecentsMap$fShowRefocusLastLayoutHook$fReadRefocusLastLayoutHook$fShowRefocusLastToggle$fReadRefocusLastToggle$fEqRefocusLastToggle StringProp setStringProp getStringPropgetStringListPropsetStringListPropTimerId startTimer handleTimer TreeZipper tz_current tz_beforetz_after tz_parentscursor fromForesttoForest getSubForestrootNodeparentchildren nextChild previousChild nodeDepth nodeIndex followPath findChildisLeafisLastisFirstTSNodetsn_name tsn_extra tsn_valueTSConfigts_hidechildren ts_backgroundts_fontts_node ts_nodealt ts_highlightts_extra ts_node_widthts_node_height ts_originX ts_originY ts_indent ts_navigatedefaultNavigationtsDefaultConfig treeselect treeselectAttreeselectWorkspace toWorkspacestreeselectActionselectcancel moveParent moveChildmoveNextmovePrev moveHistBackmoveHistForwardmoveTo$fDefaultTSConfig$fMonadTreeSelect$fApplicativeTreeSelect$fFunctorTreeSelect$fMonadStateTreeSelect$fMonadReaderTreeSelect$fMonadIOTreeSelect Direction2DU Direction1DNextPrev$fEqDirection1D$fReadDirection1D$fShowDirection1D$fEqDirection2D$fReadDirection2D$fShowDirection2D$fOrdDirection2D$fEnumDirection2D$fBoundedDirection2D ChiralityDwindleSpiralSqueeze$fLayoutClassDwindlea$fReadChirality$fShowChirality $fReadDwindle $fShowDwindleWNStateWNActionWNGoWNSwapwithWindowNavigationwithWindowNavigationKeysgoswapNavigation2DConfigdefaultTiledNavigationfloatNavigationscreenNavigationlayoutNavigationunmappedWindowRect Navigation2DlineNavigationcenterNavigationsideNavigationsideNavigationWithBiashybridOfhybridNavigation navigation2D navigation2DPadditionalNav2DKeysadditionalNav2DKeysPwithNavigation2DConfigdefaultNavigation2DConfig switchLayerwindowGo windowSwapwindowToScreenscreenGo screenSwapfullScreenRectsingleWindowRect$fOrdNavigation2D$fEqNavigation2D$fDefaultNavigation2DConfig"$fExtensionClassNavigation2DConfig$fShowSideRect mouseGestureH mouseGesture mkCollectunGrab StateQuerygetQuery runStateQuery catchQuery$fMonadStateMaybeStateQuery$fMonadStateQuery$fMonadIOStateQuery$fApplicativeStateQuery$fFunctorStateQuery WorkspaceSortWorkspaceCompare getWsIndex getWsComparegetWsCompareByTaggetXineramaWsComparegetXineramaPhysicalWsComparemkWsSortgetSortByIndex getSortByTaggetSortByXineramaRulegetSortByXineramaPhysicalRuleWSTypeEmptyWS NonEmptyWSHiddenWSHiddenNonEmptyWS HiddenEmptyWSAnyWS WSTagGroupWSIsnextWSprevWS shiftToNext shiftToPrevtoggleWS toggleWS' toggleOrViewtoggleOrDoSkipskipTagsshiftTodoTo findWorkspace nextScreen prevScreenscreenByswapNextScreenswapPrevScreenshiftNextScreenshiftPrevScreenswapWorkspacesgetWsCompareByOrdergetSortByOrderswapWith updateName removeName moveToGreedywithNthWorkspace'withNthWorkspace$fExtensionClassWSOrderStorage$fReadWSOrderStorage$fShowWSOrderStorage getSelectionpromptSelectionsafePromptSelectiontransformPromptSelectiontransformSafePromptSelectionpasteSelection pasteString pasteCharsendKey sendKeyWindow KeymapTable setKeyRemapsetDefaultKeyRemapbuildKeyRemapBindings emptyKeyRemapdvorakProgrammerKeyRemap$fExtensionClassKeymapTable$fShowKeymapTableHistoryMatchesXPColorbgNormalfgNormal bgHighlight fgHighlightborder XPPositionTopBottom CenteredAt xpCenterYxpWidthXPrompt showXPromptnextCompletioncommandToCompletecompletionToCommandcompletionFunction modeActionXPMode ComplFunctionXPTypeXPTXPConfigXPCbgHLightfgHLight borderColorpromptBorderWidthalwaysHighlightheight maxComplRows historySize historyFilter promptKeymap completionKey changeModeKey defaultText autoCompleteshowCompletionOnTabsearchPredicatedefaultPromptersorterXPStateXPdefaultXPConfig greenXPConfig amberXPConfigsetInputgetInput getOffset defaultColor modifyColorsetColor resetColorsetBorderColormodifyPrompter setPrompter resetPromptermkXPromptWithReturn mkXPromptmkXPromptWithModes promptSubmap promptBuffer bufferOnedefaultXPKeymapdefaultXPKeymap'emacsLikeXPKeymapemacsLikeXPKeymap'vimLikeXPKeymapvimLikeXPKeymap' setSuccesssetDone setModeDonequit killBefore killAfterkillWord killWord' changeWord endOfLine startOfLine insertString pasteString' deleteString clipCursor moveCursormoveCursorClipmoveWord moveWord' moveHistory toHeadChar fillDrawablemkUnmanagedWindowmkComplFunFromListmkComplFunFromList'getNextOfLastWordgetNextCompletionsplitInSubListsAt getLastWord skipLastWord breakAtSpacehistoryCompletionhistoryCompletionPuniqSortdeleteAllDuplicatesdeleteConsecutive initMatcheshistoryUpMatchinghistoryDownMatching$fXPromptXPType $fShowXPType$fDefaultXPColor$fDefaultXPConfig$fShowXPPosition$fReadXPPosition xmonadPrompt xmonadPromptC$fXPromptXMonadWor $fXPromptWormkUnicodePrompt unicodePrompttypeUnicodePrompt$fXPromptUnicode$fExtensionClassUnicodeData$fReadUnicodeData$fShowUnicodeDataSsh sshPrompt $fXPromptSshShell shellPromptprompt safePrompt unsafePrompt getShellCompl getCommands getBrowser getEditor$fXPromptShell ifWindowsifWindow runOrRaiseraise raiseMaybe raiseHookrunOrRaiseNext raiseNextraiseNextMayberaiseNextMaybeCustomFocus raiseBrowser raiseEditor raiseAndDorunOrRaiseAndDo raiseMasterrunOrRaiseMastercopy copyToAll copyWindow runOrCopykill1killAllOtherCopieswsContainingCopies XWindowMap WindowPromptGotoBring BringCopy BringToMasterwindowPromptGotowindowPromptBringwindowPromptBringCopy allWindows wsWindows windowPromptwindowMultiPrompt$fXPromptWindowPrompt$fXPromptWindowModePromptRunOrRaisePromptrunOrRaisePrompt$fXPromptRunOrRaisePrompt passPrompt passOTPPromptpassGeneratePromptpassGenerateAndCopyPromptpassRemovePromptpassTypePromptpassEditPrompt $fXPromptPassMan manPromptgetCommandOutput $fXPromptMan InputPrompt inputPromptinputPromptWithCompl?+$fXPromptInputPrompt emailPromptDirdirectoryPromptdirectoryMultipleModes $fXPromptDirDirExec dirExecPromptdirExecPromptNamed$fXPromptDirExec EnterPrompt confirmPrompt$fXPromptEnterPrompt AppendFileappendFilePromptappendFilePrompt'$fXPromptAppendFile Application AppPrompt launchApp$fXPromptAppPrompt WorkspaceDir workspaceDir changeDir$fMessageChdir"$fLayoutModifierWorkspaceDirWord64$fReadWorkspaceDir$fShowWorkspaceDir TagPromptsetTagsgetTagshasTagaddTagdelTagunTag focusUpTaggedfocusDownTaggedfocusUpTaggedGlobalfocusDownTaggedGlobal withTaggedPwithTaggedGlobalP withTaggedwithTaggedGlobal withFocusedP shiftHere shiftToScreen tagPrompt tagDelPrompt$fXPromptTagPromptPropertyTitle ClassNameResourceRoleMachineAndOrNotConstTagged hasPropertyfocusedHasPropertyallWithPropertypropertyToQuery getProp32 getProp32s$fReadProperty$fShowProperty isLocalWindow manageRemote manageRemoteG Stoppablemarkdelaytimer stoppable$fLayoutModifierStoppableWord64$fShowStoppable$fReadStoppablesorted$fOrdWindowDescriptor$fEqWindowDescriptor"$fLayoutModifierSortedLayoutWord64$fShowWindowDescriptor$fReadWindowDescriptor$fShowSortedLayout$fReadSortedLayoutSubBox SubMeasureAbsRel IncLayoutNLayoutNLayoutBProxy Predicate alwaysTruecheckPredicatelayoutNlayoutRlayoutP layoutAllabsBoxrelBox$fPredicatePropertyWord64$fPredicate()a$fMessageIncLayoutN$fLayoutClassLayoutBa $fShowLimit $fReadLimit$fShowSubMeasure$fReadSubMeasure $fShowSubBox $fReadSubBox $fShowLayoutB $fReadLayoutBLayoutP$fLayoutClassLayoutPw $fShowLayoutP $fReadLayoutPIM AddRosterwithIMgridIM$fLayoutModifierAddRosterWord64$fLayoutClassIMWord64$fReadAddRoster$fShowAddRoster$fReadIM$fShowIMStdoutUrgencyHookSpawnUrgencyHookBorderUrgencyHookurgencyBorderColor FocusHookDzenUrgencyHookdurationargs NoUrgencyHook UrgencyHook urgencyHookInterval RemindWhenDont RepeatedlyEvery SuppressWhenVisibleOnScreenFocused UrgencyConfig suppressWhen remindWhenwithUrgencyHookwithUrgencyHookCminutes urgencyConfig focusUrgent clearUrgents readUrgents withUrgents focusHookborderUrgencyHookdzenUrgencyHookspawnUrgencyHookstdoutUrgencyHookfilterUrgencyHook$fExtensionClassUrgents$fExtensionClass[]$fUrgencyHook->$fUrgencyHookNoUrgencyHook$fUrgencyHookDzenUrgencyHook$fUrgencyHookFocusHook$fUrgencyHookBorderUrgencyHook$fUrgencyHookSpawnUrgencyHook$fUrgencyHookStdoutUrgencyHook $fReadUrgents $fShowUrgents$fReadSuppressWhen$fShowSuppressWhen$fReadRemindWhen$fShowRemindWhen$fReadUrgencyConfig$fShowUrgencyConfig$fShowReminder$fReadReminder $fEqReminder$fReadWithUrgencyHook$fShowWithUrgencyHook$fReadNoUrgencyHook$fShowNoUrgencyHook$fReadDzenUrgencyHook$fShowDzenUrgencyHook$fReadFocusHook$fShowFocusHook$fReadBorderUrgencyHook$fShowBorderUrgencyHook$fReadSpawnUrgencyHook$fShowSpawnUrgencyHook$fReadStdoutUrgencyHook$fShowStdoutUrgencyHookMatchMaybeManageHookSideSCNCCESESWNENWC composeOne/=?<==?-->>-?>> currentWsisKDETrayWindow isInProperty isFullscreenisDialogpid transientTo transience transience'maybeToDefinite doRectFloat doFullFloat doFloatDep doFloatAt doSideFloat doCenterFloat doHideIgnore $fReadSide $fShowSide$fEqSideMonitorMessage ToggleMonitor ShowMonitor HideMonitorToggleMonitorNamedShowMonitorNamedHideMonitorNamedMonitorproprectvisiblename persistentmonitor manageMonitor$fLayoutModifierMonitorWord64$fMessageMonitorMessage $fReadMonitor $fShowMonitor$fReadMonitorMessage$fShowMonitorMessage$fEqMonitorMessageFullscreenFloatFullscreenFocusFullscreenFullFullscreenMessage AddFullscreenRemoveFullscreenFullscreenChangedfullscreenSupportfullscreenFullfullscreenFullRectfullscreenFocusfullscreenFocusRectfullscreenFloatfullscreenFloatRectfullscreenEventHookfullscreenManageHookfullscreenManageHookWith$fMessageFullscreenMessage$$fLayoutModifierFullscreenFullWord64%$fLayoutModifierFullscreenFocusWord64%$fLayoutModifierFullscreenFloatWord64$fReadFullscreenFull$fShowFullscreenFull$fReadFullscreenFocus$fShowFullscreenFocus$fReadFullscreenFloat$fShowFullscreenFloatminimizeWindowmaximizeWindowmaximizeWindowAndFocuswithFirstMinimizedwithFirstMinimized'withLastMinimizedwithLastMinimized' withMinimizedminimizeEventHookExclusiveScratchpadsExclusiveScratchpadXSPcmdquery exclusivemkXScratchpadsxScratchpadsManageHookscratchpadActionhideAllresetExclusiveSpsetNoexclusivefloatMoveNoexclusiveresizeNoexclusive nonFloatingdefaultFloatingcustomFloatingSpawner manageSpawnmanageSpawnWithGCshellPromptHere shellPromptOn spawnHerespawnOn spawnAndDo$fExtensionClassSpawner spawnOnce spawnOnOnce spawnNOnOncespawnAndDoOnce$fExtensionClassSpawnOnce$fReadSpawnOnce$fShowSpawnOnceExtensionActionsLauncherConfigbrowser pathToHooglelauncherPromptdefaultLauncherModes$fXPromptHoogleMode$fXPromptCalculatorModeWorkspaceIndexsetWorkspaceIndexwithWorkspaceIndex withWorkspacerenameWorkspacerenameWorkspaceByNametoNthWorkspaceselectWorkspace addWorkspaceappendWorkspaceaddWorkspaceAtaddWorkspacePromptappendWorkspacePromptaddHiddenWorkspaceAtaddHiddenWorkspaceremoveEmptyWorkspaceremoveWorkspaceremoveEmptyWorkspaceByTagremoveWorkspaceByTagremoveEmptyWorkspaceAfterremoveEmptyWorkspaceAfterExcept%$fExtensionClassDynamicWorkspaceState$fReadDynamicWorkspaceState$fShowDynamicWorkspaceState WSGPrompt WSGroupId addRawWSGroup addWSGroupaddCurrentWSGroup forgetWSGroup viewWSGrouppromptWSGroupViewpromptWSGroupAddpromptWSGroupForget$fExtensionClassWSGroupStorage$fXPromptWSGPrompt$fReadWSGroupStorage$fShowWSGroupStorageProject projectNameprojectDirectoryprojectStartHook ProjectNamedynamicProjects lookupProjectcurrentProject switchProjectswitchProjectPromptshiftToProjectshiftToProjectPromptrenameProjectPromptchangeProjectDirPromptactivateProject$fExtensionClassProjectState$fXPromptProjectPrompt SearchEngineNameSiteBrowserSearchusesearch searchEngine searchEngineFamazonalpha codesearchdebdebbtsdebpts dictionarygooglehackagehoogleimagesimdbisohuntluckymaps mathworld openstreetmapscholarstackage thesaurus wikipedia wiktionaryyoutubewayback vocabulary duckduckgomulti intelligent!> prefixAware namedEnginepromptSearchBrowser promptSearchselectSearchBrowser selectSearch$fXPromptSearch averagePixelscreateNewWindow showWindow showWindows hideWindows deleteWindow deleteWindows paintWindow paintAndWritepaintTextAndIconsWindowNavigationWNConfigNavigateGoSwapMoveApplyMoveWindowToWindownoNavigateBorders navigateColornavigateBrightnessdefaultWNConfigwindowNavigationconfigurableNavigation$fMessageMoveWindowToWindow$fMessageNavigate$fDefaultWNConfig&$fLayoutModifierWindowNavigationWord64$fReadMoveWindowToWindow$fShowMoveWindowToWindow$fShowWNConfig$fReadWNConfig$fReadWindowNavigation$fShowWindowNavigation CombineTwoP PartitionWins SwapWindow SwapWindowN combineTwoP$fMessageSwapWindow$fMessagePartitionWins$fLayoutClassCombineTwoPWord64$fReadSwapWindow$fShowSwapWindow$fReadPartitionWins$fShowPartitionWins$fReadCombineTwoP$fShowCombineTwoP CombineTwo combineTwo$fLayoutClassCombineTwoa$fReadCombineTwo$fShowCombineTwoWindowArrangerWindowArrangerMsg DeArrangeArrange IncreaseLeft IncreaseRight IncreaseUp IncreaseDown DecreaseLeft DecreaseRight DecreaseUp DecreaseDownMoveLeft MoveRightMoveUpMoveDown SetGeometry windowArrangewindowArrangeAll listFromListmemberFromListdiff$fMessageWindowArrangerMsg$fLayoutModifierWindowArrangera$fReadArrangedWindow$fShowArrangedWindow$fReadWindowArranger$fShowWindowArrangerPositionStoreFloatpositionStoreFloat%$fLayoutClassPositionStoreFloatWord64$fShowPositionStoreFloat$fReadPositionStoreFloat SimplestFloat simplestFloat $fLayoutClassSimplestFloatWord64$fShowSimplestFloat$fReadSimplestFloat SWNConfigSWNCswn_font swn_bgcolor swn_colorswn_fade ShowWName showWName showWName'defaultSWNConfig$fDefaultSWNConfig$fLayoutModifierShowWNamea$fReadSWNConfig$fShowSWNConfig$fReadShowWName$fShowShowWNameREFLECTYREFLECTXReflect reflectHoriz reflectVert$fLayoutModifierReflecta$fTransformerREFLECTXWord64$fTransformerREFLECTYWord64$fReadReflectDir$fShowReflectDir $fShowReflect $fReadReflect$fReadREFLECTX$fShowREFLECTX $fEqREFLECTX$fReadREFLECTY$fShowREFLECTY $fEqREFLECTY ReflectedDrawer simpleDrawerdraweronLeftonRightonToponBottom$fLayoutModifierDrawerWord64 $fReadDrawer $fShowDrawerMouseResizableTile masterFrac slaveFrac fracIncrement draggerType isMirrored DraggerType FixedDraggerBordersDraggergapWidth draggerWidth MRTMessage ShrinkSlave ExpandSlavemouseResizableTilemouseResizableTileMirrored$fMessageMRTMessage%$fLayoutClassMouseResizableTileWord64$fShowDraggerInfo$fReadDraggerInfo$fShowDraggerType$fReadDraggerType$fShowMouseResizableTile$fReadMouseResizableTile Magnifier MagnifyMsg MagnifyMore MagnifyLessToggleOn ToggleOff magnifier magnifiercz magnifier' magnifierOff magnifiercz'maximizeVertical$fMessageMagnifyMsg$fLayoutModifierMagnifierWord64 $fReadToggle $fShowToggle$fReadMagnifyMaster$fShowMagnifyMaster$fReadMagnifier$fShowMagnifier GapMessage ToggleGaps ToggleGapIncGapDecGap ModifyGapsGapsGapSpecweakModifyGaps modifyGapsetGapssetGapgapsgaps'$fLayoutModifierGapsa$fMessageGapMessage $fShowGaps $fReadGapsDragType HorizontalVerticalDragPanedragPane$fLayoutClassDragPanea$fMessageSetFrac$fShowDragType$fReadDragType$fShowDragPane$fReadDragPane $fShowSetFrac $fReadSetFrac $fEqSetFrac JumpToLayoutNextLayoutNoWrapWrap NewSelect*||***||****||*****||****||** ****||*** ***||*****||******||****||****||***//***//****//*****//****//** ****//*** ***//*****//******//****//****//***|***|****|*****|****|******|******|*****|******|****|****|***/***/****/*****/****/******/******/*****/******/****/****/**$fLayoutClassNewSelecta$fMessageJumpToLayout$fReadNewSelect$fShowNewSelect$fReadJumpToLayout$fShowJumpToLayout layoutPromptcycleThroughLayoutsbluetileCommandsDefaultShrinkerShrinkershrinkIt CustomShrinkDefaultDecorationDecorationStyle describeDecoshrinkdecorationEventHookdecorationCatchClicksHookdecorationWhileDraggingHookdecorationAfterDraggingHookpureDecorationdecorate DecorationOrigWinDecorationState DecorationMsgSetThemeTheme activeColor inactiveColor urgentColoractiveBorderColorinactiveBorderColorurgentBorderColoractiveBorderWidthinactiveBorderWidthurgentBorderWidthactiveTextColorinactiveTextColorurgentTextColorfontName decoWidth decoHeightwindowTitleAddonswindowTitleIcons decoration defaultThemefindWindowByDecoration isInStack isVisible isInvisibleisWithin shrinkWhile shrinkText$fDefaultTheme$fMessageDecorationMsg#$fDecorationStyleDefaultDecorationa$fReadCustomShrink$fShowCustomShrink $fLayoutModifierDecorationWord64$fShrinkerDefaultShrinker$fReadDefaultShrinker$fShowDefaultShrinker $fShowTheme $fReadTheme$fShowDecoration$fReadDecoration$fReadDefaultDecoration$fShowDefaultDecoration ThemeInfoTI themeName themeAuthorthemeDescriptiontheme ppThemeInfo listOfThemes xmonadTheme smallClean adwaitaThemeadwaitaDarkTheme donaldTheme robertTheme darkTheme deiflThemeoxymor00nTheme wfarrThemekavonForestThemekavonLakeThemekavonPeacockThemekavonVioGreenThemekavonBluesThemekavonChristmasThemekavonAutumnThemekavonFireTheme ThemePrompt themePrompt$fXPromptThemePrompt ZoomMessageZoomZoomToZoomFullZoomFullToggleClassEQEQFeqZoomRowzoomRow zoomRowWithzoomInzoomOut zoomReset $fEQFClassEQa$fLayoutClassZoomRowa$fMessageZoomMessage $fShowClassEQ $fReadClassEQ $fEqClassEQ $fShowElt $fReadElt$fEqElt $fShowZoomRow $fReadZoomRow $fEqZoomRow$fShowZoomMessageTabbedDecorationTabbed TabbarShown simpleTabbedsimpleTabbedAlwayssimpleTabbedBottomsimpleTabbedBottomAlwayssimpleTabbedLeftsimpleTabbedRightsimpleTabbedLeftAlwayssimpleTabbedRightAlwaystabbed tabbedAlways tabbedBottomtabbedBottomAlways tabbedLeft tabbedRighttabbedLeftAlwaystabbedRightAlwaysaddTabs addTabsAlways addTabsBottomaddTabsBottomAlways addTabsRight addTabsLeftaddTabsRightAlwaysaddTabsLeftAlways"$fDecorationStyleTabbedDecorationa$fReadTabbarShown$fShowTabbarShown$fEqTabbarShown$fReadTabbedDecoration$fShowTabbedDecoration BroadcastGroupMsgUnMerge UnMergeAllMergeAllMigrate WithGroup SubMessage Sublayout subLayout subTabbeddefaultSublMapmergeDir pullGroup pushGroup pullWindow pushWindowonGrouptoSubl$fMessageGroupMsg$fLayoutModifierSublayoutWord64$fMessageBroadcast$fReadSublayout$fShowSublayoutSimpleDecorationSimple simpleDeco"$fDecorationStyleSimpleDecorationa$fShowSimpleDecoration$fReadSimpleDecoration ResizeMode ResizeScreen WithNewScreenresizeHorizontalresizeVerticalresizeHorizontalRightresizeVerticalBottomwithNewRectangle$fLayoutModifierResizeScreena$fReadResizeMode$fShowResizeMode$fReadResizeScreen$fShowResizeScreenTabBarDecorationTabBar simpleTabBartabBar"$fDecorationStyleTabBarDecorationa$fReadTabBarDecoration$fShowTabBarDecoration SimpleTabBar SIMPLETABBAR$fTransformerSimpleTabBarWord64$fReadSimpleTabBar$fShowSimpleTabBar$fEqSimpleTabBarNoFrillsDecoration noFrillsDeco$$fDecorationStyleNoFrillsDecorationa$fShowNoFrillsDecoration$fReadNoFrillsDecorationLayoutHintsToCenter LayoutHints layoutHintslayoutHintsWithPlacementlayoutHintsToCenterhintsEventHook!$fLayoutModifierLayoutHintsWord64)$fLayoutModifierLayoutHintsToCenterWord64$fReadLayoutHints$fShowLayoutHints$fReadLayoutHintsToCenter$fShowLayoutHintsToCenterTiledTabsConfigTTCvNMastervRatio vIncrementhNMasterhRatio hIncrement tabsShrinker tabsThemeGroupEQzoomRowG rowOfColumns zoomColumnIn zoomColumnOutzoomColumnResettoggleColumnFull zoomWindowIn zoomWindowOutzoomWindowResettoggleWindowFulldefaultTiledTabsConfigfullTabstallTabsmirrorTallTabsincreaseNMasterGroupsdecreaseNMasterGroupsshrinkMasterGroupsexpandMasterGroupsnextOuterLayout$fEQFGroupEQGroup$fDefaultTiledTabsConfig $fShowGroupEQ $fReadGroupEQwmii zoomGroupIn zoomGroupOutzoomGroupResettoggleGroupFullgroupToNextLayoutgroupToFullLayoutgroupToTabbedLayoutgroupToVerticalLayoutDwmStyleDwmdwmStyle$fDecorationStyleDwmStylea$fShowDwmStyle$fReadDwmStyle RearrangerTwoD TwoDState TwoDPosition HasColorizerdefaultColorizerGSConfig gs_cellheight gs_cellwidthgs_cellpadding gs_colorizergs_font gs_navigate gs_rearrangergs_originFractXgs_originFractYgs_bordercolordefaultGSConfigmakeXEventhandlershadowWithKeymapsetPosmovetransformSearchString navNSearchsubstringSearchstringColorizer fromClassNamecolorRangeFromClassName gridselectgridselectWindowwithSelectedWindowbuildDefaultGSConfig bringSelected goToSelected spawnSelectedrunSelectedActiongridselectWorkspacegridselectWorkspace' noRearrangersearchStringRearrangerGenerator$fHasColorizera$fHasColorizer[]$fHasColorizerWord64$fApplicativeTwoD$fDefaultGSConfig $fMonadTwoD $fFunctorTwoD$fMonadStateTwoD BorderResizeBRRectWithBorders BorderInfo borderResize"$fLayoutModifierBorderResizeWord64$fShowBorderType$fReadBorderType$fEqBorderType$fShowBorderInfo$fReadBorderInfo$fShowBorderResize$fReadBorderResizeBinarySpacePartitionSplitShiftDirectional SplitShiftSelectMoveNode SelectNodeMoveNode FocusParentRotateResizeDirectional ExpandTowards ShrinkFrom MoveSplit TreeBalanceBalanceEqualize TreeRotateRotateLRotateRemptyBSP$fMessageTreeRotate$fMessageTreeBalance$fMessageResizeDirectional$fMessageRotate $fMessageSwap$fMessageFocusParent$fMessageSelectMoveNode$fMessageSplitShiftDirectional'$fLayoutClassBinarySpacePartitionWord64 $fShowAxis $fReadAxis$fEqAxis $fShowSplit $fReadSplit $fEqSplit $fShowTree $fReadTree$fEqTree $fShowCrumb $fReadCrumb $fEqCrumb $fShowNodeRef $fReadNodeRef $fEqNodeRef$fShowBinarySpacePartition$fReadBinarySpacePartition$fEqBinarySpacePartitionworkspaceByPos ScreenCorner SCUpperLeft SCUpperRight SCLowerLeft SCLowerRightaddScreenCorneraddScreenCornersscreenCornerEventHookscreenCornerLayoutHook!$fExtensionClassScreenCornerState#$fLayoutModifierScreenCornerLayouta$fEqScreenCorner$fOrdScreenCorner$fShowScreenCorner$fReadScreenCornerLayout$fShowScreenCornerLayoutsmart simpleSmartfixed underMouseinBoundswithGaps placeFocused placeHookpurePlaceWindow $fEqPlacement$fShowSmartRectangle$fEqSmartRectangle SetStruts addedStruts removedStruts ToggleStruts ToggleStrut AvoidStrutsdocks manageDocks checkDockdocksEventHookdocksStartupHookcalcGap avoidStruts avoidStrutsOn$fMessageUpdateDocks$fMessageToggleStruts$fLayoutModifierAvoidStrutsa$fMessageSetStruts$fExtensionClassStrutCache$fReadAvoidStruts$fShowAvoidStruts$fReadToggleStruts$fShowToggleStruts$fReadSetStruts$fShowSetStruts$fEqStrutCache $fEqRectC $fShowRectCpositionStoreManageHookpositionStoreEventHookPP ppCurrent ppVisibleppHiddenppHiddenNoWindowsppVisibleNoWindowsppUrgentppSepppWsSepppTitleppTitleSanitizeppLayoutppOrderppSortppExtrasppOutput dzenWithFlagsxmobar statusBarxmonadPropLog' xmonadPropLog dynamicLogdynamicLogWithPPdynamicLogString pprWindowSetdynamicLogXineramawrappadtrimshorten dzenColor dzenEscape dzenStrip xmobarColor xmobarAction xmobarRaw xmobarStripxmobarStripTags defaultPPdzenPPxmobarPP sjanssenPP byorgeyPP $fDefaultPPNamedScratchpadsNamedScratchpadNSnamedScratchpadActionallNamedScratchpadActionnamedScratchpadManageHook!namedScratchpadFilterOutWorkspace#namedScratchpadFilterOutWorkspacePPscratchpadSpawnActionscratchpadSpawnActionTerminalscratchpadSpawnActionCustomscratchpadManageHookDefaultscratchpadManageHookscratchpadFilterOutWorkspaceLogger aumixVolumebatteryloadAvglogCmd logFileCount maildirUnread maildirNewlogTitle logLayout logCurrentonLoggerwrapL fixedWidthLlogSppadLshortenL dzenColorL xmobarColorLnspTrackStartup nspTrackHook nspActiveIcon nspActive nspActive'$fExtensionClassNSPTrackPhysicalWorkspaceVirtualWorkspacemarshall unmarshall unmarshallS unmarshallW workspaces'onCurrentScreen countScreens marshallPP whenCurrentOn marshallSortmarshallWindowSpaceunmarshallWindowSpace MessageConfigmessageFunction foregroundalertedForeground backgrounddefaultMessageConfswitchWSremoveAllMatchingsunMatchtoggleLinkWorkspaces$fExtensionClassWorkspaceMap$fReadWorkspaceMap$fShowWorkspaceMapDynamicStatusBarPartialCleanupDynamicStatusBarCleanupDynamicStatusBardynStatusBarStartupdynStatusBarStartup'dynStatusBarEventHookdynStatusBarEventHook'multiPP multiPPFormat $fExtensionClassDynStatusBarInfogetWorkspaceNames'getWorkspaceNamesgetWorkspaceNamegetCurrentWorkspaceNamesetWorkspaceNamesetCurrentWorkspaceNameworkspaceNamesPPswapTo'workspaceNamePrompt$fExtensionClassWorkspaceNames$fReadWorkspaceNames$fShowWorkspaceNames TopicConfig topicDirs topicActionsdefaultTopicAction defaultTopicmaxTopicHistoryTopic>*>defaultTopicConfiggetLastFocusedTopicssetLastFocusedTopicreverseLastFocusedTopicstopicActionWithPrompt topicActioncurrentTopicAction switchTopicswitchNthLastFocusedshiftNthLastFocusedcurrentTopicDircheckTopicConfig$fDefaultTopicConfig$fExtensionClassPrevTopics$fReadPrevTopics$fShowPrevTopics PPrintablePPrintpprintoutputOfgeomMean arithMean namedNumbers splitColonparse modVolume centerMousestatusBarMouse withScreen makeLauncherlauncher termLauncher viewShiftfloatAll sinkFocusshowMod volumeDzenaltMaskbrightdarkfullscreen43on169fullscreenMPlayer operationOn viewFullOn centerWineOnrecord dmwitConfigmain keyBindingsatSchoolanyMaskpipeName xmobarCommandallPPscolorppFocus ppWorkspaces $fPPrintMap$fPPrintScreenId$fPPrintWord64 $fPPrintChar$fPPrintWord32 $fPPrintInt32$fPPrintInteger$fPPrintScreen $fPPrintInt$fPPrintLayout $fPPrint[] $fPPrintMaybe$fPPrintStackSet$fPPrintScreen0$fPPrintScreenDetail$fPPrintWorkspace $fPPrintStack$fPPrintRectangle$fPPrintPPrintable$fShowPPrintablesnapMagicMouseResizesnapMagicResize snapMagicMovesnapMovesnapGrow snapShrinkewmhewmhDesktopsStartupewmhDesktopsLogHookewmhDesktopsLogHookCustomewmhDesktopsEventHookewmhDesktopsEventHookCustom$fExtensionClassDesktopNames$fExtensionClassClientList$fExtensionClassCurrentDesktop$fExtensionClassWindowDesktops$fExtensionClassActiveWindow$fEqDesktopNames$fEqClientList$fEqCurrentDesktop$fEqWindowDesktops$fEqActiveWindowsjanssenConfigmytab$fShrinkerCustomShrink desktopConfigdesktopLayoutModifiers xfceConfig mateConfigmateRun mateRegister kdeConfig kde4Config gnomeConfiggnomeRun gnomeRegister windowMenutitleBarButtonHandlerdefaultThemeWithButtonshandleScreenCrossingImageButtonDecorationimageTitleBarButtonHandlerdefaultThemeWithImageButtonsimageButtonDeco'$fDecorationStyleImageButtonDecorationa$fShowImageButtonDecoration$fReadImageButtonDecorationImageWindowSwitcherDecorationWindowSwitcherDecorationwindowSwitcherDecoration#windowSwitcherDecorationWithButtons(windowSwitcherDecorationWithImageButtons*$fDecorationStyleWindowSwitcherDecorationa/$fDecorationStyleImageWindowSwitcherDecorationa$fShowWindowSwitcherDecoration$fReadWindowSwitcherDecoration#$fShowImageWindowSwitcherDecoration#$fReadImageWindowSwitcherDecorationButtonDecoration buttonDeco"$fDecorationStyleButtonDecorationa$fShowButtonDecoration$fReadButtonDecorationbluetileConfig updatePointer MagicFocus magicFocus promoteWarp promoteWarp' followOnlyIfdisableFollowOnWS $fLayoutModifierMagicFocusWord64$fShowMagicFocus$fReadMagicFocusShowTextConfigSTCst_fontst_bgst_fgdefaultSTConfighandleTimerEvent flashText$fExtensionClassShowText$fDefaultShowTextConfig$fReadShowText$fShowShowText MouseResizeMR mouseResize!$fLayoutModifierMouseResizeWord64$fReadMouseResize$fShowMouseResize SimpleFloatSF simpleFloat simpleFloat'$fLayoutClassSimpleFloatWord64$fShowSimpleFloat$fReadSimpleFloatarossatoConfigcircleSimpleDefault circleDefaultcircleSimpleDeco circleDecocircleSimpleDefaultResizablecircleDefaultResizablecircleSimpleDecoResizablecircleDecoResizablecircleSimpleDwmStylecircleDwmStylecircleSimpleTabbed circleTabbedaccordionSimpleDefaultaccordionDefaultaccordionSimpleDeco accordionDecoaccordionSimpleDefaultResizableaccordionDefaultResizableaccordionSimpleDecoResizableaccordionDecoResizableaccordionSimpleDwmStyleaccordionDwmStyleaccordionSimpleTabbedaccordionTabbedtallSimpleDefault tallDefaulttallSimpleDecotallDecotallSimpleDefaultResizabletallDefaultResizabletallSimpleDecoResizabletallDecoResizabletallSimpleDwmStyle tallDwmStyletallSimpleTabbed tallTabbedmirrorTallSimpleDefaultmirrorTallDefaultmirrorTallSimpleDecomirrorTallDeco mirrorTallSimpleDefaultResizablemirrorTallDefaultResizablemirrorTallSimpleDecoResizablemirrorTallDecoResizablemirrorTallSimpleDwmStylemirrorTallDwmStylemirrorTallSimpleTabbedmirrorTallTabbedfloatSimpleSimple floatSimplefloatSimpleDefault floatDefaultfloatSimpleDwmStyle floatDwmStylefloatSimpleTabbed floatTabbedmouseResizeEdgeWindowfindEmptyWorkspacesetFocus toggleOrView' getNeighbourhexvmaskrationalToOpacityData.Semigroup.InternalEndo viewingWs insertDown widthCols Positioner applyPositionplacetopRight namedBoring chosenBoring hiddenBoring focusMaster'maxEmptyRectanglessplitContainersfindGaps everyUpperautoMess autoLayout masterHeight masterRect slaveRect divideRowshiftRfocusUp' focusDown'slice applyMastershiftD divideColgetCol mkNewOnHostTelemFQDNeqFQDN oneBigMessage oneBigLayout calcBottomWscmastercbottomcright divideBottom divideRightshiftBmkNewPerScreenTmkNewPerWorkspaceTtile3 debugStackWsdebugEventsHook'atomName atomEventsay splitCIntForeign.C.TypesCIntclientMessages dumpProperty dumpProperty' quickFormat runDecodedumpProptransformers-0.5.6.2Control.Monad.Trans.ReaderReaderT imageDims iconToPoints movePoint movePoints modToStringmkNamedSubmaps readKeymapreadKeySequenceparseKeySequence parseKeyCombo parseModifier parseRegular parseSpecialkeyNames functionKeys specialKeysmultimediaKeys doKeymapCheckwhenviewWithmodifyStateExtshistoryupdateLastActiveOnEachScreenWCStatepickFrom getPicPath getPicRescompleteWPConfapplyWallpaper restrictKeyscontainers-0.6.0.1Data.Map.Internal uniformBorderborderClampGTZero withBorder'toBorder orderSelectunion\\ intersect_generateHidden alwaysHidden neverHidden currentHiddenunsafeRunInTerm timeoutMicro decorateName baseLayout partitionergroupsseedgenreadapt removeDeletedfindNewWindows addWindows focusGroup focusWindow applySpec onFocused_removeFocused focusHelpertryFocus tryFocusIn getRecentsMap withRecentsIn withRecents Data.TreeTreeForest TreeSelectTSStatetss_size tss_historymoveWithnavigateredrawdrawNode drawWinBox drawStringXMFfromARGB$X11-xft-0.3.1-9lrDY5ILbks6yx7EFpXBJ6Graphics.X11.Xrender XRenderColor drawLayers GeneralityWSRectWinRectRect actOnLayernavigableWindows windowRect actOnScreensisMappeddoFocusClosestWindowdoTiledNavigationdoFloatNavigationdoScreenNavigationdoLineNavigationdoCenterNavigationcenterOf thisLayer otherLayervisibleWorkspaces addWrapping wrapOffsets sortedScreenslDist indexComparelastViewedHiddenExcept wsTypeToPredWSOrderStoragewithWSO updateOrder swapOrder changeKeyunsafePromptSelection complWinRefsetCurrentCompletionsgetCurrentCompletions utf8Decode eventLoop evDefaultStop handleOther handleMainhandleInputMainhandleCompletionMain GHC.UnicodeisSpace flushStringenvallWindowsSortedraiseVar copyMaybe taggedWindows copiesOfOnWindowModePromptbringCopyWindowpasswordStoreFolderDefaultpasswordStoreFolder mkPassPromptselectPassword selectOTPgeneratePasswordgenerateAndCopyPasswordremovePassword editPassword typePassword getPasswordsdoAppendsetTagsubFocus nextFocuslimitboxmboxsubnextLimitLimitNLimitRLimitP incLayoutNisFocussplitBy splitStackapplyIMfindMReminder readReminderschangeNetWMState addNetWMStateremoveNetWMState getNetWMState RationalRectorPmaximizeWindowAndChangeWSet hideOthersmapWithCurrentScreencurrentWindows isScratchpad joinQueries isExclusive isMaximized modifySpawnercompletionFunctionWithDynamicWorkspaceStateremoveWorkspace'viewWS findScreenWS ProjectStatedynamicProjectsLogHookdynamicProjectsStartupHook modifyProject projectPrompt defProjectremoveColonPrefix paintWindow'mkWindow reflectRect partitionM weakToStrong continuation handleEventhandleMouseFocusDraglookFor initStatereleaseResources createDecos updateDecoElteltratiofullzoomEq zoomRatios delayMesssubls updateGroupupdateWs focusWindow' fromGroupsplaceRectanglegrowadjacenttouchingcorners hintsMismatchorderElementmapmix stringToRatioSmartRectanglesr_x0sr_y0sr_x1sr_y1 placeRatio checkBoundsgetNecessaryData placeSmart findSpace subtractRectscleanup placeWindowRectCStrutgetStrutr2cc2roverlapstoggleStrutsKeysepBy findByNamerunApplication WorkspaceMap switchWS'switchToMatchingtoggleMatching setMatchingWorkspaceNames swapNamesxmessage ActiveWindowWindowDesktopsCurrentDesktop ClientList DesktopNames whenChangedShowText modShowText