Steve Quezadas | 17 Apr 17:53 2015
Picon

Re: xmonad with emacs

Ok, I found out the conflict that I thought was attributable to xmonad. 
As a reminder, "control-space" is a keybinding under emacs for the 
set-mark-command feature which allows a user to select text. For some 
reason, control-space wasn't working when emacs was under x-monad, but 
was working when it was using Ubuntu unity.

Actually, the conflict over the keybinding happened with ibus. ibus 
somehow maps control-space and prevents emacs from using that key 
command. When I disabled ibus, the problem stopped. so it wasn't 
xmonad's fault.

I am putting this on the maillist just in case other people have this 
problem, they can look it up through keywords or whatever.

- Steve

PS I really LOVE x-monad. It's so much more efficient with larger 
monitors. Keep up the good work guys!

> Yes; I was looking for what you just told me, that you were using Unity
> which presumably loads a keymap. (I have no idea which one, though.)
> xmonad will be using the server default.
>
> Unfortunately, control expansions are special-cased in both xkb and
> xmodmap and can't be specified --- which makes me wonder how you managed
> to lose it, unless the real problem is whatever terminal emulator you're
> getting (given gnomeConfig, presumably gnome-terminal) was handling it
> itself, and has different settings when not running in a Gnome 3
> session. (You cannot use xmonad, or any window manager that is not a
> Gnome Shell derivative (gnome-shell, or the Unity or Cinnamon forks
(Continue reading)

codesite | 16 Apr 15:11 2015
Picon

Issue 602 in xmonad: xmonad hangs when clickJustFocuses = False and the user clicks outside of the focused window while a submap is active.

Status: New
Owner: ----

New issue 602 by untfu...@...: xmonad hangs when
clickJustFocuses =  
False and the user clicks outside of the focused window while a submap is  
active.
https://code.google.com/p/xmonad/issues/detail?id=602

What steps will reproduce the problem?
1. Set clickJustFocuses = False
2. Activate a submap or submapDefault (XMonad.Actions.Submap)
3. Click outside of the currently focused window.

What is the expected output?

I'm not sure if expected output is defined, but when clickJustFocuses =  
True, any clicks are ignored until after the submap is exited, after which  
the focus is brought to the most recently clicked window.

Ideally, one might be able to specify that a click aborts the submap,  
instead, or to specify a submap action resulting from a click.

What do you see instead?

XMonad hangs irrecoverably.  Keybindings and clicks have no effect  
whatsoever.  Any programs active in the background (e.g. music) continue as  
without user input.

Please use labels and text to provide additional information.
(Continue reading)

Brent Yorgey | 15 Apr 15:18 2015
Picon

Re: Two patches related to XMonad.Prompt

OK, I've made some progress figuring out what is going on.  In short: the searchPredicate field is never used in XMonad.Prompt!  The only place the searchPredicate is used is in XMonad.Prompt.Window, in the definition of the doPrompt function.  So this will work if you happen to be using a prompt to pick a window, but not for any other sort of prompt.

This actually seems like a bug in XMonad.Prompt.  At some point someone added a searchPredicate field to the XPConfig, but forgot to actually use it to filter completion results.

Norbert, is this something you could look into?  I've looked through XMonad.Prompt briefly but not sure where the right place is for this to go.  I'll probably get around to it eventually if no one else does.

-Brent

On Fri, Apr 3, 2015 at 6:08 PM Brent Yorgey <byorgey-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
Hmm, I tried it out but can't seem to get it to work.  Mysterious.  The patches are definitely applied, my xmonad.hs includes definitions for sorter and searchPredicate, it compiles cleanly, but when I open a prompt it has the same behavior as before.

I'll try to spend some more time tracking down what is going on but just wanted to briefly report.

-Brent

On Mon, Mar 23, 2015 at 2:39 PM Brent Yorgey <byorgey-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:



---------- Forwarded message ---------
From: Norbert Zeh <nzeh <at> cs.dal.ca>
Date: 12:59pm, Sat, Mar 14, 2015
Subject: [xmonad] Two patches related to XMonad.Prompt
To: xmonad-HC+Z4NTRIlBAfugRpC6u6w@public.gmane.org <xmonad-HC+Z4NTRIlBAfugRpC6u6w@public.gmane.org>


Hi folks,

I really got used to using emacs ido mode, which offers a pretty powerful and intuitive fuzzy matching of completions, so I wanted to port the same to XMonad.Prompt.  This required two patches, included in the attached patch bundles:

(1)  Completions should be sortable by how well they match the current query string.  This turned out to be a very easy addition of a 'sorter' function to XPConfig, which is parameterized by the current query string.  The default is 'const id', that is, no sorting is done, which is exactly the old behaviour of XMonad.Prompt.

(2)  A new module XMonad.Prompt.FuzzyMatch that implements the fuzzy matching.  The exact rules for matching and sorting of matches are explained in its documentation.

As usual, let me know if anything needs to straightened out before these patches can be applied.

Cheers,
Norbert
_______________________________________________
xmonad mailing list
xmonad-HC+Z4NTRIlBAfugRpC6u6w@public.gmane.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
<div><div dir="ltr">
<div>
<div>
<div>OK, I've made some progress figuring out what is going on.&nbsp; In short: the searchPredicate field is never used in XMonad.Prompt!&nbsp; The only place the searchPredicate is used is in XMonad.Prompt.Window, in the definition of the doPrompt function.&nbsp; So this will work if you happen to be using a prompt to pick a window, but not for any other sort of prompt.<br><br>
</div>This actually seems like a bug in XMonad.Prompt.&nbsp; At some point someone added a searchPredicate field to the XPConfig, but forgot to actually use it to filter completion results.<br><br>
</div>Norbert, is this something you could look into?&nbsp; I've looked through XMonad.Prompt briefly but not sure where the right place is for this to go.&nbsp; I'll probably get around to it eventually if no one else does.<br><br>
</div>-Brent<br><div><div><div>
<br><div class="gmail_quote">On Fri, Apr 3, 2015 at 6:08 PM Brent Yorgey &lt;<a href="mailto:byorgey@..." target="_blank">byorgey@...</a>&gt; wrote:<br><blockquote class="gmail_quote">
<div dir="ltr"><div>
<div>Hmm, I tried it out but can't seem to get it to work.&nbsp; Mysterious.&nbsp; The patches are definitely applied, my xmonad.hs includes definitions for sorter and searchPredicate, it compiles cleanly, but when I open a prompt it has the same behavior as before.<br><br>
</div>I'll try to spend some more time tracking down what is going on but just wanted to briefly report.<br><br>
</div></div>
<div dir="ltr">-Brent<br>
</div>
<br><div class="gmail_quote">On Mon, Mar 23, 2015 at 2:39 PM Brent Yorgey &lt;<a href="mailto:byorgey <at> gmail.com" target="_blank">byorgey@...</a>&gt; wrote:<br><blockquote class="gmail_quote">
<p dir="ltr"><br></p>
<br><div class="gmail_quote">---------- Forwarded message ---------<br>From: Norbert Zeh &lt;<a href="mailto:nzeh@..." target="_blank">nzeh <at> cs.dal.ca</a>&gt;<br>Date: 12:59pm, Sat, Mar 14, 2015<br>Subject: [xmonad] Two patches related to XMonad.Prompt<br>To: <a href="mailto:xmonad <at> haskell.org" target="_blank">xmonad@...</a> &lt;<a href="mailto:xmonad@..." target="_blank">xmonad@...</a>&gt;<br><br><br><div dir="ltr">Hi folks,<div><br></div>
<div>I really got used to using emacs ido mode, which offers a pretty powerful and intuitive fuzzy matching of completions, so I wanted to port the same to XMonad.Prompt.&nbsp; This required two patches, included in the attached patch bundles:</div>
<div><br></div>
<div>(1) &nbsp;Completions should be sortable by how well they match the current query string.&nbsp; This turned out to be a very easy addition of a 'sorter' function to XPConfig, which is parameterized by the current query string.&nbsp; The default is 'const id', that is, no sorting is done, which is exactly the old behaviour of XMonad.Prompt.</div>
<div><br></div>
<div>(2) &nbsp;A new module XMonad.Prompt.FuzzyMatch that implements the fuzzy matching.&nbsp; The exact rules for matching and sorting of matches are explained in its documentation.</div>
<div><br></div>
<div>As usual, let me know if anything needs to straightened out before these patches can be applied.</div>
<div><br></div>
<div>Cheers,</div>
<div>Norbert</div>
</div>
_______________________________________________<br>
xmonad mailing list<br><a href="mailto:xmonad@..." target="_blank">xmonad@...</a><br><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad</a><br>
</div>
</blockquote>
</div>
</blockquote>
</div>
</div></div></div>
</div></div>
Steve Quezadas | 14 Apr 21:24 2015
Picon

Re: xmonad with emacs

Oh, sorry, I meant to reply to the list, not you individually! The 
"reply to" command is not working right for some reason. I will check 
when I get home to see if my windows manager is somehow mucking things up.

- Steve

On 4/14/2015 11:50 AM, Tikhon Jelvis wrote:
> Oh, I'm sorry, I assumed the `-- more changes' comment was a placeholder
> for, well, more changes! If that's all you have, it's probably an issue
> with something besides XMonad itself—Brandon's suggestion sounds
> plausible. I'm not sure how to check that myself, I'm afraid.
>
> Also, I don't know if you did this on purpose, but you only sent this
> message to me, not to the whole list. Keeping the conversation on the
> list proper could be useful because other people might be able to help.
> (It's something it took me a while to get used to myself, and I'm still
> not too certain on good list etiquette :P.)
>
> On Tue, Apr 14, 2015 at 11:44 AM, Steve Quezadas <steve <at> thestever.net
> <mailto:steve <at> thestever.net>> wrote:
>
>         Interesting. I've used Emacs with XMonad and never had this problem.
>
>         Are you running Emacs in X mode or in a terminal emulator? Also,
>         what
>         happens if you try this with as close to a stock XMonad as possible:
>         comment out all the parts of your config except for the modMask
>         setting.
>
>
>     I am using xmonad is x mode (I think, I'm basically using a
>     graphical user interface). My config is as stock as they come. This
>     is the whole thing:
>
>              import XMonad
>              import XMonad.Config.Gnome
>
>              main = xmonad gnomeConfig
>                       { modMask = mod4Mask -- Use Super instead of Alt
>                       -- more changes
>                       }
>
>
>     The only one line that's differnt is the modMask line which remaps
>     the "alt" key to "super" key for xmonad stuff.
>
>     - Steve
>
>
_______________________________________________
xmonad mailing list
xmonad <at> haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Brandon Allbery | 14 Apr 20:41 2015
Picon

trying again: Dynamic properties patch

As an attachment this time, apparently gmail mangled the previous attempt(s).
This patch somewhat hackily enables matching things such as browser windows where the title isn't set properly until "long" after the window is mapped, because of the way HTML+DOM allows it to be set dynamically by scripts or etc.

--
brandon s allbery kf8nh                               sine nomine associates
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
Attachment (dynamicproperty.dpatch): application/octet-stream, 50 KiB
<div><div dir="ltr">As an attachment this time, apparently gmail mangled the previous attempt(s).<div>This patch somewhat hackily enables matching things such as browser windows where the title isn't set properly until "long" after the window is mapped, because of the way HTML+DOM allows it to be set dynamically by scripts or etc.<br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">
<div>brandon s allbery kf8nh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sine nomine associates</div>
<div>
<a href="mailto:allbery.b@..." target="_blank">allbery.b@...m</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="mailto:ballbery <at> sinenomine.net" target="_blank">ballbery@...</a>
</div>
<div>unix, openafs, kerberos, infrastructure, xmonad &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a>
</div>
</div></div>
</div>
</div></div>
codesite | 14 Apr 20:26 2015
Picon

Re: Issue 596 in xmonad: xmonad-extras do not compile with GHC 7.10

Updates:
	Status: Fixed

Comment #2 on issue 596 by vogt.a...@...: xmonad-extras do not  
compile with GHC 7.10
https://code.google.com/p/xmonad/issues/detail?id=596

I've done the xmonad-extras release

--

-- 
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
Steve Quezadas | 14 Apr 19:31 2015
Picon

xmonad with emacs

Hello,

I am using xmonad and so far I love it! However, there seems to be a
keybinding conflict (I think) with emacs. Control-space is the
"set-mark-command" option in emacs and it does not seem to work when
xmonad is present. The alternative keybind (Control- <at> ) seems to work
though. When I take xmonad off, the keybind works again.

Not sure what is going on, I checked the FAQ and the maillist history
and no one seems to be having this problem which is strange since
emacs is a fairly common program

My config file is fairly straightforward:
import XMonad
import XMonad.Config.Gnome

main = xmonad gnomeConfig
         { modMask = mod4Mask -- Use Super instead of Alt
         -- more changes
         }

I am using Ubuntu 14.04.2 with xmonad version 0.11

Has anyone used xmonad with emacs before? I remapped the meta key to
the super key, thinking that this may cause the conflict but it didn't
fix it.

- Steve

Brandon Allbery | 14 Apr 17:38 2015
Picon

Amended dynamic property patch

Whoops! Year (what I get for copying the header), and I managed to miss the common case where the event isn't the one we care about.


Tue Apr 14 11:36:57 EDT 2015  allbery.b <at> gmail.com
  * dynamicproperty
  Run a ManageHook from handleEventHook when a window property changes.
  You would use this to match e.g. browser windows whose title is not
  "final" until after the on-load hooks of the loaded document complete.


New patches:

[dynamicproperty
 Ignore-this: b15d78f8970d08b252ead72a19709b06
 Run a ManageHook from handleEventHook when a window property changes.
 You would use this to match e.g. browser windows whose title is not
 "final" until after the on-load hooks of the loaded document complete.
] {
addfile ./XMonad/Hooks/DynamicProperty.hs
hunk ./XMonad/Hooks/DynamicProperty.hs 1
+-----------------------------------------------------------------------------
+-- |
+-- Module      :  XMonad.Hooks.DynamicProperty
+-- Copyright   :  (c) Brandon S Allbery, 2015
+-- License     :  BSD3-style (see LICENSE)
+--
+-- Stability   :  unstable
+-- Portability :  not portable
+--
+-- Module to apply a ManageHook to an already-mapped window when a property
+-- changes. This would commonly be used to match browser windows by title,
+-- since the final title will only be set after (a) the window is mapped,
+-- (b) its document has been loaded, (c) all load-time scripts have run.
+-- (Don't blame browsers for this; it's inherent in HTML and the DOM. And
+-- changing title dynamically is explicitly permitted by ICCCM and EWMH;
+-- you don't really want to have your editor window umapped/remapped to
+-- show the current document and modified state in the titlebar, do you?)
+--
+-- This is a handleEventHook that triggers on a PropertyChange event. It
+-- currently ignores properties being removed, in part because you can't
+-- do anything useful in a ManageHook involving nonexistence of a property.
+--
+-----------------------------------------------------------------------------
+
+module XMonad.Hooks.DynamicProperty where
+
+import XMonad
+import Data.Monoid
+import Control.Applicative
+import Control.Monad (when)
+
+-- |
+-- Run a 'ManageHook' 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")
+-- 
+-- Note that the fixity of (-->) won't allow it to be mixed with ($), so you
+-- can't use the obvious $ shorthand.
+--
+-- > dynamicPropertyChange "WM_NAME" $ title =? "Foo" --> doFloat -- won't work!
+--
+-- Consider instead phrasing it like any
+-- other 'ManageHook':
+--
+-- >      , handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook <+> handleEventHook baseConfig
+-- > 
+-- >    {- ... -}
+-- > 
+-- >    myDynHook = composeAll [...]
+--
+dynamicPropertyChange :: String -> ManageHook -> Event -> X All
+dynamicPropertyChange prop hook PropertyEvent { ev_window = w, ev_atom = a, ev_propstate = ps } = do
+  pa <- getAtom prop
+  when (ps == propertyNewValue && a == pa) $ do
+    g <- appEndo <$> userCodeDef (Endo id) (runQuery hook w)
+    windows g
+  return (All False) -- so anything else also processes it
+dynamicPropertyChange _ _ _ = return (All False)
+
+-- | A shorthand for the most common case, dynamic titles
+dynamicTitle :: ManageHook -> Event -> X All
+-- strictly, this should also check _NET_WM_NAME. practically, both will
+-- change and each gets its own PropertyEvent, so we'd need to record that
+-- we saw the event for that window and ignore the second one. Instead, just
+-- trust that nobody sets only _NET_WM_NAME. (I'm sure this will prove false,
+-- since there's always someone who can't bother being compliant.)
+dynamicTitle = dynamicPropertyChange "WM_NAME"
hunk ./xmonad-contrib.cabal 167
                         XMonad.Hooks.DynamicBars
                         XMonad.Hooks.DynamicHooks
                         XMonad.Hooks.DynamicLog
+                        XMonad.Hooks.DynamicProperty
                         XMonad.Hooks.DebugStack
                         XMonad.Hooks.EwmhDesktops
                         XMonad.Hooks.FadeInactive
}

Context:

[minor doc fixes to X.C.Mate
Daniel Wagner <me-4ijn+DaKYfYAvxtiuMwx3w@public.gmane.org>**20150330180752
 Ignore-this: f35c2e5068adcf5a04727557078c8a6f
[mate-comment-fixup
 Ignore-this: 687b5edc9220469f3e58abcfd4f6449c
 Correct the docstrings / comments in X.C.Mate, which still referenced
 gnomeConfig. Also update the session manager configuration to use
 dconf and a current (on Mint at least) path for the session config.
[Add the ability to specify padding used with Maximize
 Ignore-this: 71ac5db4513da0b7a45eb82ec184f4e3
[Don't restore windows when changing workspaces
 Ignore-this: 5333205aa1a9fbc5c7844fad69561517
[New layout modifier: Hidden
 Ignore-this: 5534fe18e642d1691a9b3f99341e082d
 
 A layout modifer that is meant to work with the BinarySpacePartition
 layout.  By removing windows from the window set and adding them back
 at a later time, you can move windows to a different branch of the BSP
 tree.
 
[Fixes to warnings with BSP layout
 Ignore-this: 7642710fdb2a866150875f2d521d19fd
[Improved BinarySpacePartition, added Equalize,Balance and FocusParent and mouse resize support
 Ignore-this: 31b5d7bf38e5b391df266906deb5e382
[New layout module X.L.Dwindle
 Ignore-this: a1507e9eda6e6cabd679c2c3b50d9a38
 
 This adds three layouts:  Spiral is a reimplementation of X.L.Spiral.spiral
 with a (to me) more intuitive splitting policy.  Dwindle is similar but pushes
 the smaller windows into a corner rather than into the center.  Squeeze just
 stacks windows vertically or horizontally using geometrically decreasing sizes.
[address warnings in P.Pass
 Ignore-this: 52e03c09c4d5339085e0306044de8977
[X.L.AvoidFloats more useful default settings
 Ignore-this: af6535bace9219619858751eeeff6520
 Changed default settings with the simple layout modifier. Instead of asking for a bool indicating if all windows should be avoided, no such bool is asked for. No windows are avoided by default. I think this will be a more useful default setting since it would be annoying if dialogue windows are avoided. The same functionality is possible with the advanced constructor. This will be easier for new users.
 
 This will break configurations using the old module, but this will not be much of an issue since the module has not been added to the repo as of this writing.
[Resolve minor conflict in xmonad-contrib.cabal
 Ignore-this: 24ae68c08107a574199b055989d38347
[X.L.AvoidFloats, like avoidStruts but for floats
 Ignore-this: 3722d7787dd2429313f92f85f3ae1251
 Checks for floating windows within the layout area and finds a maximum area
 rectangle within that does not overlap with any of the floating windows.
 This rectangle is used for all non-floating windows.
 
 This new functionality introduced problems with the recommended configuration
 of one of my other modules (X.A.FloatSnap.) A new and more reliable method of
 distinguishing between clicks and drags where therefore introduced in the new
 module X.A.AfterDrag.
 
 This does not break any prior use of FloatSnap, but will require changes in
 configuration if used together with AvoidFloats. (This is mentioned in the
 docs for AvoidFloats and I recommend using the new configuration method even if
 AvoidFloats is not in use.)
[X.L.LayoutBuilder place active on top
 Ignore-this: 69d718d0d044ee59a877fa0e63edc474
 Make sure that the active layout area is placed on top of all other areas when placing windows. This makes overlapping areas usable.
[Add rearrangers to X.A.GridSelect
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20130123044038
 Ignore-this: ef0dc68e9b725953e69e7b039fe06e9a
[Avoid repainting elements in X.A.GridSelect
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20130123043850
 Ignore-this: 8e926cebc8d458a06a05f7457ae40b68
[Give a name to the initial state in X.A.GridSelect
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20130121061324
 Ignore-this: 989ae20ccc3d5b1392f0694d5c62e759
[Add XMonad.Config.Bepo (Yorick Laupa)
 Ignore-this: 71dcf03f9ff80b645531004f95e9c600
[add instance Default WallpaperConf
 Ignore-this: 18e74f249b35726acd4b923ecce3085
[XMonad.Prompt.Pass: Handle hierachical password stores
Joachim Breitner <mail <at> joachim-breitner.de>**20150218091816
 Ignore-this: 2f0a02613780067d324b04a8cdb9c0ed
 
 pass stores its passwords in directories, so the contents of the directory
 store needs to be enumerated recursively. Alexander Sulfrian provided this
 patch on the mailinglist, which I tested (it works) and cleaned up slightly.
 
[remove warnings and text dependency from H.WallpaperSetter
 Ignore-this: e637d782c13bed48bafbc1458b3f983f
[Added the new hook WallpaperSetter
 Ignore-this: 7cbb2ab0d8f9f606f50253deebcf4163
[adjust an import to fix the build
 Ignore-this: 72f67dd2cb1cc6900269383124844c2b
[merge conflicts in X.L.Spacing
 Ignore-this: f0830d6483d30d643e7e182e310ec042
 
 I should have just applied Anton Pirogov March 4 patch.
[Added messages to adjust the gap dynamically
 Ignore-this: 52b590c820db765796de41f38fffdf3c
[X.L.Spacing needs -XPatternGuards now
Adam Vogt <vogt.adam <at> gmail.com>**20150310181248
 Ignore-this: d6b2b76fddbd9ad066e7cb39933f055a
[add ConfirmPrompt (Antoine Beaupré)
 Ignore-this: 65d74f05e82c66a3ff4f021d19ceb626
[Added messages to adjust the gap dynamically
 Ignore-this: 891ca1ccca183d6af8e4aa4bf6d843fb
[add another extension to actually fix the build with ghc-7.10-RC1
 Ignore-this: 26d6f1b4cb6d573ccf49e6baeca853e4
[BinarySpacePartition downstream changes 
 Ignore-this: 42ecc2b07388ba0c7b3eac980256c17b
 Pulled in changes from my repo for this layout on github (https://github.com/benweitzman/BinarySpacePartition)
 Includes a new mode for resizing windows in a more intuitive way, also contains a bug fix that was preventing users from
 resiving a window up.
 
 Includes changes from github users egasimus (Adam Avramov) and SolitaryCipher (Nick)
 
[add XF86AudioMicMute to EZConfig (#582)
 Ignore-this: 1c91505b303e53b94da624230b3c893c
[Generalize new workspace addition functions to support arbitrary insertion.
 Ignore-this: 9f8c14b5aa9d398b3f167da0af1a8650
 
 The current DynamicWorkspaces module only supports adding new workspaces
 at the start of the list of workspaces. This means when binding workspaces
 to keys based on the position in the list, key bindings can change 
 as workspaces are added in removed in a far more destructive way than
 necessary. Instead, supporting appending and arbitrary insertion allows
 the user to determine where the new workspace should be added.
 
 This patch is a straight generalization of the addHiddenWorkspace' function.
 Rather than always using `(:)` to insert the new workspace into the list
 of workspaces, this patches causes it to use an arbitrary list insertion
 function instead. A few new functions are added to prevent breakage of
 external code while exported functions are left unchanged.
 
 List of new functions:
   appendWorkspace
   appendWorkspacePrompt
   addWorkspaceAt
   addHiddenWorkspaceAt
 
 Existing functions were modified to call their generalized brethren where possible
 without changing functionality. This patch should not change behavior for any
 existing users of this module.
 
[address another bitSize/finiteBitSize warning
 Ignore-this: 549e519d25080c77e605dc983f0d239e
[X.L.Master: Add FixMaster layout modifier
Anton Vorontsov <anton <at> enomsg.org>**20141220011339
 Ignore-this: 82e9736853287f753248af41843ceb6b
 
 This layout modifier is useful for the case if you desire to add a master
 pane that has fixed width (it's fixed even if there is just one window
 opened). Especially nice feature if you don't want to have too wide
 terminal in a master pane.
 
 The layout is implemented as an addition to Master layout, so it reuses
 most of the code.
[filepath dependency for P.Pass was left out
 Ignore-this: 98e63d7b17ac6ebabd8a6b081f5194a1
[remove unused imports
 Ignore-this: b2e5be31b70e6d31827e76bd8c00d200
[fix build with ghc-6.12
 Ignore-this: d4c4da527db6c8affc151dc210631b85
[use FiniteBitSize with ghc >= 7.8
 Ignore-this: 90f855fd72406fb3d2640a133d499188
[Layout.Spacing: Outer window edges now get as much spacing as inner ones
 Ignore-this: 61363e97939fe857876c8252ac5f0302
 
 Layout.Spacing applies a customizable amount of space around the outside of each
 window. At window edges where two windows meet, the total distance between them
 is therefore twice the customized value (one space value from each window). At
 the edge of the screen, however, the spacing is only applied once. This results
 in uneven amounts of spacing and differently-sized gaps on the screen.
 
 This patch extends the Spacing layout to include a further gap all around the
 edge of the screen, thus making all spaces around windows equal in size.
 
[add filepath package dependency needed by Prompt.Pass
 Ignore-this: 588ec76e7fccb4219361da7024c98db4
 
 filepath comes with ghc, and it's used by xmonad-core anyways
[X.C.Prime: doc tweaks
Devin Mullins <devin.mullins <at> gmail.com>**20141002075939
 Ignore-this: 20d6b829b810f48b5e4b4c161b39b312
[X.A.Navigation2D: add convenience functions for setting config & keybindings
 Ignore-this: ed01137f03a531f73315ed503d1eb6ef
 1. Added 'additionalNav2DKeys' which adds keybindings for the cartesian product
    of direction keys and (modifier, action) pairs given.
 2. Added 'navigation2D' which combines that with 'withNavigation2DConfig'.
 3. Added 'additionalNav2DKeysP' and 'navigation2DP' which do the same, but use
    the 'additionalKeysP' syntax.
[X.C.Prime: doc fixes
 Ignore-this: dbbe00791b04df61dcd595c50333fba
[X.C.Prime: add 'withScreens' and friends
 Ignore-this: eba37b1ff3da265a4dcc509f538fce4d
 The screen equivalent of 'withWorkspaces' lets you more easily define keys that
 move/swap between screens.
 
 Also, rename wsKeyspecs to wsKeys, and make a couple of doc tweaks.
[Implement proper handling of dynamically changing hostname
Anton Vorontsov <anton-9xeibp6oKSgdnm+yROfE0A@public.gmane.org>**20140901072158
 Ignore-this: 2aeac6d2161e666d40cda6a09f78b208
 
 The module implements a proper way of finding out whether the window is
 remote or local.
 
 Just checking for a hostname and WM_CLIENT_MACHINE being equal is often
 not enough because the hostname is a changing subject (without any
 established notification mechanisms), and thus WM_CLIENT_MACHINE and the
 hostname can diverge even for a local window.
 
 This module solves the problem. As soon as there is a new window created,
 we check the hostname and WM_CLIENT_MACHINE, and then we cache the result
 into the XMONAD_REMOTE property.
 
 Notice that XMonad itself does not know anything about hostnames, nor does
 it have any dependency on Network.* modules. For this module it is not a
 problem: you can provide a mean to get the hostname through your config
 file (see usage). Or, if you don't like the hassle of handling dynamic
 hostnames (suppose your hostname never changes), it is also fine: this
 module will fallback to using environment variables.
[Add Stoppable layout for power saving
Anton Vorontsov <anton-9xeibp6oKSgdnm+yROfE0A@public.gmane.org>**20140901072141
 Ignore-this: a52805d9f3095cd7af48507847ed2fe3
 
 This module implements a special kind of layout modifier, which when
 applied to a layout, causes xmonad to stop all non-visible processes. In a
 way, this is a sledge-hammer for applications that drain power. For
 example, given a web browser on a stoppable workspace, once the workspace
 is hidden the web browser will be stopped.
 
 Note that the stopped application won't be able to communicate with X11
 clipboard. For this, the module actually stops applications after a
 certain delay, giving a chance for a user to complete copy-paste sequence.
 By default, the delay equals to 15 seconds, it is configurable via
 'Stoppable' constructor.
 
 The stoppable modifier prepends a mark (by default equals to "Stoppable")
 to the layout description (alternatively, you can choose your own mark and
 use it with 'Stoppable' constructor). The stoppable layout (identified by
 a mark) spans to multiple workspaces, letting you to create groups of
 stoppable workspaces that only stop processes when none of the workspaces
 are visible, and conversely, unfreezing all processes even if one of the
 stoppable workspaces are visible.
 
 To stop the process we use signals, which works for most cases. For
 processes that tinker with signal handling (debuggers), another
 (Linux-centric) approach may be used. See
[X.C.Prime: doc changes
 Ignore-this: 51204c1a9f2e6ed21228d2910417fd21
[X.C.Prime: add withWorkspaces et al.
Devin Mullins <devinmullins <at> gmail.com>**20140925203034
 Ignore-this: 65f691270110cc5de13c950d9dcb0c17
 This allows easier configuration of workspaces and their keybindings. Required
 generalizing the 'Prime' type, so lots of other lines changed in rather trivial
 ways.
[X.C.Prime: add ifThenElse binding
 Ignore-this: ae775c418c27301b9c12d2a233502cec
 This is necessary for if-then-else support in the user's config.
[X.C.Prime: doc fixes
 Ignore-this: 15e3c445a99d3b2d3a235aa76119797
[X.C.Prime: fix 'def' hyperlink in doc
 Ignore-this: a1de1d81a5f140ab7d90edbf393e9bda
[XMonad.Config.Prime, a do-notation for config
 Ignore-this: f7397aa6e6efe5d76acebfa22c567baa
 Note that the use of RebindableSyntax is because of the need to vary the
 layoutHook type throughout the config. The alternative, using the existential
 Layout type, was rejected because it required TemplateHaskell in order to look
 nice, and TemplateHaskell is not portable.
 
 I've tried to make a version of (>>) that also worked on normal monads, but
 have had no luck as of yet. Maybe some intrepid soul can add it later.
[X.P.Shell: fix doc typo
 Ignore-this: bdd385a9142ed039a917d135e76293fe
[reverse workspaces, so that switching to a dynamic workspace group restores the focus to the screen that was focused at group creation time
 Ignore-this: b74c02b1892159694827e35122c2d517
[add filepath dependency, needed by new X.P.Pass module
 Ignore-this: fec97086c1e66cf8a036265bd1a970a8
[add-new-xmonad-prompt-pass
 Ignore-this: 11e85dfe3d24cef88d8d89f4e7b1ec0b
 This module provides 3 <XMonad.Prompt> to ease passwords manipulation (generate, read, remove):
 
 - one to lookup passwords in the password-storage.
 
 - one to generate a password for a given password label that the user inputs.
 
 - one to delete a stored password for a given password label that the user inputs.
 
 All those prompts benefit from the completion system provided by the module <XMonad.Prompt>.
 
 The password store is setuped through an environment variable PASSWORD_STORE_DIR.
 If this is set, use the content of the variable.
 Otherwise, the password store is located on user's home <at> $HOME\/.password-store <at> .
 
 
 Source:
 
 - The password storage implementation is <http://git.zx2c4.com/password-store the password-store cli>.
 
[use Data.Map instead of Data.Map.Strict to support containers < 0.5
Adam Vogt <vogt.adam <at> gmail.com>**20140815043141
 Ignore-this: 436d18657d8499f4ce57311e84503d9f
[config-mate
 Ignore-this: d5de258c0a28cd5ba64a59cf37cd480a
 Initial support for the Mate desktop environment (http://mate-desktop.org).
 Based on existing Gnome 2 support, since Mate is a maintained fork of
 Gnome 2.
[debug-managehook
 Ignore-this: 51f9255b496cca79e4a53e274c400ecc
 A set of hooks, and convenience combinators, to help with ManageHook debugging.
 Ordinary users may well want to use debugManageHookOn in normal configs,
 specifying a key sequence which can be pressed before running a command in
 order to capture debug information just for that command's main window.
 
 This is especially useful when trying to diagnose issues such as programs
 that do not play well with SpawnOn, or ManageHook matching on 'title' when
 the program does not set the window title until after it is mapped.
[debug-debug
allbery.b <at> gmail.com**20140803020530
 Ignore-this: cbb2b1d99293e3a4d02a256c2733aeb0
 Various fixes and enhancements to DebugWindow and DebugStack. ManageDebug
 requires these fixes, but some of them are significant even if not using
 ManageDebug.
[derive Applicative instances to suppress AMP warning
 Ignore-this: c2110d07bccc61462c3fbf73c900aaa1
[clean up cabal file and drop support for base < 3
 Ignore-this: 76b142e2b114604feac9b8e41cf71ab
[add-duck-duck-go-search-engine
 Ignore-this: 29bbfb2d07d9ddf36bf0268a4e255f81
[XSelection: getSelection: fix connection exhaustion bug (issue #573); include warning
 Ignore-this: add21190fc07338b243c2241cc746119
[Fix dbus-send call in XMonad.Config.Gnome
md143rbh7f <at> gmail.com**20140129032114
 Ignore-this: ed62458b55c8b34b77f73027eeee1a73
 dbus-send --print-reply=string is invalid, but it was silently ignored until recently:
 I've changed XMonad.Config.Gnome to run --print-reply=literal, since that's what the old behavior was.
[warning police (unused variables)
 Ignore-this: a15b4d844b1da4f1f1f9b6095c968705
[This patch makes the Ssh extension works with **user** arguments in ssh, .e.g ssh admin <at> localhost.
 Ignore-this: 297673e11d3049c4f127aac3e172d361
[remove trailing whitespace in L.BinarySpacePartition
Adam Vogt <vogt.adam <at> gmail.com>**20140501011943
 Ignore-this: 8dd677978992e0854801b8f254463dc2
[replace Bound with the equivalent Direction2D
 Ignore-this: b1f1c256aba07f70918fe1d693c8087b
[remove unused extension in BSP
Adam Vogt <vogt.adam <at> gmail.com>**20140501011455
 Ignore-this: a4962486b2aa3980536bff19a537451e
[Add BinarySpacePartition layout 
 Ignore-this: a85d1dc51bf54c59ae2bd9d948cc1088
[X.Actions.DynamicWorkspaceGroups: export new function addRawWSGroup
 Ignore-this: a487882c9571bf91ff921d6561bb4cc6
[Remove unneeded context with the IfMax layout instance
 Ignore-this: 3b8ac316f56df6a84420754db769fb0
 
 Extra constraints on instances are about as useful as -XDataTypeContexts
[Adding side tabs and replacing TabbarLocation with Direction2D.
 Ignore-this: edabeec973b4e0d61515818367689843
[warning police
Daniel Wagner <daniel <at> wagner-home.com>**20140316183747
 Ignore-this: fd16435ccdd3fee8924723cc690cc239
[New module: XMonad.Util.WindowState
Dmitry Bogatov <KAction-mXXj517/zsQ@public.gmane.org>**20140218100229
 Ignore-this: 14a6fa263c423cd8cca3b2645b3930d7
 
 Save almost arbitary data per window 
[Add side tabs to the tabbed layout.
 Ignore-this: f81bafe9cb75a30ed6bbbe68cf5d66c0
[SpawnNamedPipe hlint cleanup
 Ignore-this: dbb68c4c5522026bd108d0158e747b48
[document and cleanup SpawnNamedPipe
 Ignore-this: b264278f1f1ab1f18b37245a5ff33136
[Added SpawnNamedPipe
 Ignore-this: 87797ffffc8d0fd088482bd0c5baf0e
[Make commandToComplete in XMonad.Prompt.Shell complete last word
 Ignore-this: b0fe22fdd7b9409835fd0ca069f2e01a
 
 The following change from 2013-02-09 breaks shell completion for me:
     hunk ./XMonad/Prompt/Shell.hs 65
     +    commandToComplete _ c = c
 
 It seems to be passing the entire string into compgen in order to get the file completions, but it should only pass the last word. I propose reverting this change. Comments are appreciated.
[expose and document X.L.IndependentScreens.marshallSort
Daniel Wagner <daniel <at> wagner-home.com>**20140128212844
 Ignore-this: 90c1437c6ffe1dbd8f4a4ed192097ec
[ServerMode properly indent
 Ignore-this: 761b39c3e3c90b6123f068e8b1d34e5d
[remove ServerMode tabs
 Ignore-this: f21448c248ec0ac289c309ed964ebcff
[fix -Wall ServerMode
 Ignore-this: 708dd5fc60f43dee3d1da085002052f
[documentation note that ServerMode is similar to wmctrl
 Ignore-this: 3215bdf1c698c798eca8ed7f62a0f591
[Generalized XMonad.Hooks.ServerMode
 Ignore-this: e58da3b168a1058f32982833ea25a739
[IfMax-Layout
 Ignore-this: dac53f2a0505e740f05fdf03f1db0c21
 This adds a new ("conditional") layout, IfMax, which simply runs one layout, if there are <= N windows, and else runs another layout.
[fix UrgencyHook and add filterUrgencyHook
 Ignore-this: 3b7c62275701e6758397977c5c09b744
[export XMonad.Hooks.UrgencyHook.clearUrgency (issue 533)
 Ignore-this: dafe5763d9abcfa606f5c1a8cf5c57d6
[minor documentation fix: manageDocks doesn't do anything with struts, so don't claim it does
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130814125106
 Ignore-this: a2610d6c1318ac0977abfc21d1b91632
[don't pretend to be LG3D in X.C.Dmwit because this confuses modern GTK
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130813211636
 Ignore-this: 8f728dc1b4bf5e472d99419cc5920e51
[XMonad.Actions.UpdatePointer: generalise updatePointer
 Ignore-this: 3374a62b6c63dcc152dbf843cd0577f0
 
[XMonad.Actions.UpdatePointer: document TowardsCentre
 Ignore-this: 2d684b12e4fff0ebec254bea4a4546a3
 
[Haddock formatting in H.Minimize
 Ignore-this: 5db3186a51dec58f78954466ded339cb
[Bump version (and xmonad dependency) to 0.12
 Ignore-this: ce165178ca916223501f266339f1de39
 
 This makes a breakage due to missing patches in core a bit more obvious.
 Previously you would have a build failure regarding some missing identifiers
 (def re-exported by XMonad from Data.Default), while after applying this patch
 it will be clear that xmonad-core needs to be updated.
[Fix issue 551 by also getting manpath without -g flag.
 Ignore-this: ded2d51eb7b7697c0fdfaa8158d612df
 
 Instead of taking Ondrej's approach of figuring out which man (man-db or
 http://primates.ximian.com/~flucifredi/man/) is used by the system, just try
 both sets of flags.
[Escape dzen markup and remove xmobar tags from window titles by default.
 Ignore-this: cf56bff752fbf78ea06d5c0cb755f615
 
 The issue was that window titles, such as those set by, for example a browser,
 could set the window title to display something like
 
    <action=malicious shell command>normal title</action>
 
 Which could be executed by xmobar (or dzen).
 
 This adds a ppTitleSanitize which does the above functions. This way when users
 override ppTitle, the benefits are not lost.
 
 Thanks to Raúl Benencia and Joachim Breitner for bringing this to my attention.
[DynamicBars-use-ExtensibleState
 Ignore-this: afacba51af2be8ede65b9bcf9b002a7
 
 Hooks.DynamicBars was previously using an MVar and the unsafePerformIO hack (
 state. Since ExtensibleState exists to solve these sorts of problems, I've
 switched the file over to use unsafePerformIO instead.
 
 Some functions' types had to be changed to allow access to XState, but the
 public API is unchanged.
 
[Catch exceptions when finding commands on PATH in Prompt.Shell
Thomas Tuegel <ttuegel-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20130616230219
 Ignore-this: 5a4d08c80301864bc14ed784f1054c3f
[Fix haddock parse error in X.A.LinkWorkspaces
Adam Vogt <vogt.adam <at> gmail.com>**20130528133448
 Ignore-this: 42f05cf8ca9e6d1ffae3bd20666d87ab
[use Data.Default wherever possible, and deprecate the things it replaces
Daniel Wagner <daniel <at> wagner-home.com>**20130528013909
 Ignore-this: 898458b1d2868a70dfb09faf473dc7aa
[eliminate references to defaultConfig
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130528005825
 Ignore-this: 37ae613e4b943e99c5200915b9d95e58
[minimal change needed to get xmonad-contrib to build with xmonad's data-default patch
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130528001040
 Ignore-this: 291e4f6cd74fc2b808062e0369665170
[Remove unneeded XSync call in Layout.ShowWName
Francesco Ariis <fa-ml-bPQ0uVb+O80@public.gmane.org>**20130517153341
 Ignore-this: 4d107c680572eff464c8f6ed9fabdd41
[Remove misleading comment: we definitely don't support ghc-6.6 anymore
 Ignore-this: 2d071cb05709a16763d039222264b426
[Fix module name in comment of X.L.Fullscreen
 Ignore-this: cb5cf18c301c5daf5e1a2527da1ef6bf
[Minor update to cabal file (adding modules & maintainership)
 Ignore-this: 82785e02e544e1f797799bed5b5d9be2
[Remove trailing whitespace in X.A.LinkWorkspaces
 Ignore-this: 5015ab4468e7931876eb66b019af804c
[Update documentation of LinkWorkspaces Module
 Ignore-this: da863534931181f551c9c54bc4076c05
[Added a module for linking workspaces
 Ignore-this: 1dba2164cc3387409873d33099596d91
 
 This module provides a way to link certain workspaces in a multihead setup.
 That way, when switching to the first one the other heads display the linked
 workspaces.
[Cache results from calcGap in ManageDocks
 Ignore-this: e5076fdbdfc68bc159424dd4e0f14456
 
[Remove unnecessary contexts from L.MultiToggle
 Ignore-this: 6b0e413d8c3a58f62088c32a96c57c51
[Generalises modWorkspace to take any layout-transforming function
 Ignore-this: 28c7dc1f6216bb1ebdffef5434ccbcbd
 
 modWorkspace already was capable of modifying the layout with an arbitrary
 layout -> layout function, but its original type restricted it such that it
 could only apply a single LayoutModifier; this was often inconvenient, as for
 example it was not possible simply to compose LayoutModifiers for use with
 modWorkspace.
 
 This patch also reimplements onWorkspaces in terms of modWorkspaces, since with
 the latter's less restrictive type this is now possible.
[since XMonad.Config.Dmwit mentions xmobar, we should include the associated .xmobarrc file
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130503194055
 Ignore-this: 2f6d7536df81eb767262b79b60eb1b86
[warning police
Daniel Wagner <daniel <at> wagner-home.com>**20130502012700
 Ignore-this: ae7412ac77c57492a7ad6c5f8f50b9eb
[XMonad.Config.Dmwit
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130502012132
 Ignore-this: 7402161579fd2e191b60a057d955e5ea
[minor fixes to the haddock markup in X.L.IndependentScreens
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130411193849
 Ignore-this: b6a139aa43fdb39fc1b86566c0c34c7a
[add whenCurrentOn to X.L.IndependentScreens
Daniel Wagner <daniel <at> wagner-home.com>**20130408225251
 Ignore-this: ceea3d391f270abc9ed8e52ce19fb1ac
[Allow to specify the initial gaps' states in X.L.Gaps
 Ignore-this: 31596d918d0050e36ce3f64f56205a64
[should bump X11 dependency, too, to make sure we have getAtomName
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130225180527
 Ignore-this: 260711f27551f18cc66afeb7b4846b9f
[getAtomName is now defined in the X11 library
Daniel Wagner <daniel-rujWp005NYtRDw6lWsmqqA@public.gmane.org>**20130225180323
 Ignore-this: 3b9e17c234679e98752a47c37132ee4e
[Allow to limit maximum row count in X.Prompt completion window
 Ignore-this: 923656f02996f2de2b1336275392c5f9
 
 On a keyboard-less device (such as a smartphone), where one has to use
 an on-screen keyboard, the maximum completion window height must be
 limited to avoid overlapping the keyboard.
[Note in U.NameActions that xmonad core can list default keys now
 Ignore-this: 937bff636fa88171932d5192fe8e290b
[Export U.NamedActions.addDescrKeys per evaryont's request.
 Ignore-this: a694a0a3ece70b52fba6e8f688d86344
[Add EWMH DEMANDS_ATTENTION support to UrgencyHook.
Maarten de Vries <maarten-DcPpuyh1PYf1P9xLtpHBDw@public.gmane.org>**20130212181229
 Ignore-this: 5a4b314d137676758fad9ec8f85ce422
 
 Add support for the _NET_WM_STATE_DEMANDS_ATTENTION atom
 by treating it the same way as the WM_HINTS urgency flag.
 
[Unconditionally set _NET_WORKAREA in ManageDocks
 Ignore-this: 9f57e53fba9573d8a92cf153beb7fe7a
[spawn command when no completion is available (if alwaysHighlight is True); changes commandToComplete in Prompt/Shell to complete the whole word instead of using getLastWord
 Ignore-this: ca7d354bb301b555b64d5e76e31d10e8
[order-unindexed-ws-last
 Ignore-this: 4af8162ee8b16a60e8fd62fbc915d3c0
 
 Changes the WorkspaceCompare module's comparison by index to put workspaces without an index last (rather than first).
[SpawnOn modification for issue 523
 Ignore-this: 703f7dc0f800366b752f0ec1cecb52e5
 
 This moves the function to help clean up the `Spawner' to the ManageHook
 rather than in functions like spawnOn. Probably it makes no difference, the
 reason is because there's one manageSpawn function but many different so this
 way there are less functions to write.
[Update L.TrackFloating.useTransient example code
 Ignore-this: e4e31cf1db742778c1d59d52fdbeed7a
 
 Suggest useTransient goes to the right of trackFloating which is the
 configuration actually tested.
[Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating
 Ignore-this: d54d27b71b97144ef0660f910fd464aa
[Make X.A.CycleWS not rely on hidden WS order
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20130109023328
 Ignore-this: 8717a154b33253c5df4e9a0ada4c2c3e
[Add X.H.WorkspaceHistory
Dmitri Iouchtchenko <johnnyspoon <at> gmail.com>**20130109023307
 Ignore-this: c9e7ce33a944facc27481dde52c7cc80
[Allow removing arbitrary workspaces
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20121231214343
 Ignore-this: 6fce4bd3d0c5337e5122158583138e74
[Remove first-hidden restriction from X.A.DynamicWorkspaces.removeWorkspace'
Dmitri Iouchtchenko <johnnyspoon-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>**20121231214148
 Ignore-this: 55fb0859e9a5f476a834ecbdb774aac8
[Add authorspellings file for `darcs show authors'.
 Ignore-this: c3198072ebc6a71d635bec4d8e2c78fd
 
 This authorspellings file includes a couple people who've contributed to xmonad
 (not XMonadContrib). When people have multiple addresses, the most recent one
 has been picked.
[TAG 0.11
 Ignore-this: 57cf32412fd1ce912811cb7fafe930f5
Patch bundle hash:
a028a7816d7ae8b3965477f94af4d3a1f7f92a13


--
brandon s allbery kf8nh                               sine nomine associates
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net
<div><div dir="ltr">Whoops! Year (what I get for copying the header), and I managed to miss the common case where the event isn't the one we care about.<div><br></div>
<div>
<div>1 patch for repository <a href="http://code.haskell.org/XMonadContrib">http://code.haskell.org/XMonadContrib</a>:</div>
<div><br></div>
<div>Tue Apr 14 11:36:57 EDT 2015 &nbsp;<a href="mailto:allbery.b@...">allbery.b <at> gmail.com</a>
</div>
<div>&nbsp; * dynamicproperty</div>
<div>&nbsp; Run a ManageHook from handleEventHook when a window property changes.</div>
<div>&nbsp; You would use this to match e.g. browser windows whose title is not</div>
<div>&nbsp; "final" until after the on-load hooks of the loaded document complete.</div>
<div><br></div>
<div><br></div>
<div>New patches:</div>
<div><br></div>
<div>[dynamicproperty</div>
<div>
<a href="mailto:allbery.b@...">allbery.b@...</a>**20150414153657</div>
<div>&nbsp;Ignore-this: b15d78f8970d08b252ead72a19709b06</div>
<div>&nbsp;Run a ManageHook from handleEventHook when a window property changes.</div>
<div>&nbsp;You would use this to match e.g. browser windows whose title is not</div>
<div>&nbsp;"final" until after the on-load hooks of the loaded document complete.</div>
<div>] {</div>
<div>addfile ./XMonad/Hooks/DynamicProperty.hs</div>
<div>hunk ./XMonad/Hooks/DynamicProperty.hs 1</div>
<div>+-----------------------------------------------------------------------------</div>
<div>+-- |</div>
<div>+-- Module &nbsp; &nbsp; &nbsp;: &nbsp;XMonad.Hooks.DynamicProperty</div>
<div>+-- Copyright &nbsp; : &nbsp;(c) Brandon S Allbery, 2015</div>
<div>+-- License &nbsp; &nbsp; : &nbsp;BSD3-style (see LICENSE)</div>
<div>+--</div>
<div>+-- Maintainer &nbsp;: &nbsp;<a href="mailto:allbery.b@...">allbery.b@...</a>
</div>
<div>+-- Stability &nbsp; : &nbsp;unstable</div>
<div>+-- Portability : &nbsp;not portable</div>
<div>+--</div>
<div>+-- Module to apply a ManageHook to an already-mapped window when a property</div>
<div>+-- changes. This would commonly be used to match browser windows by title,</div>
<div>+-- since the final title will only be set after (a) the window is mapped,</div>
<div>+-- (b) its document has been loaded, (c) all load-time scripts have run.</div>
<div>+-- (Don't blame browsers for this; it's inherent in HTML and the DOM. And</div>
<div>+-- changing title dynamically is explicitly permitted by ICCCM and EWMH;</div>
<div>+-- you don't really want to have your editor window umapped/remapped to</div>
<div>+-- show the current document and modified state in the titlebar, do you?)</div>
<div>+--</div>
<div>+-- This is a handleEventHook that triggers on a PropertyChange event. It</div>
<div>+-- currently ignores properties being removed, in part because you can't</div>
<div>+-- do anything useful in a ManageHook involving nonexistence of a property.</div>
<div>+--</div>
<div>+-----------------------------------------------------------------------------</div>
<div>+</div>
<div>+module XMonad.Hooks.DynamicProperty where</div>
<div>+</div>
<div>+import XMonad</div>
<div>+import Data.Monoid</div>
<div>+import Control.Applicative</div>
<div>+import Control.Monad (when)</div>
<div>+</div>
<div>+-- |</div>
<div>+-- Run a 'ManageHook' when a specific property is changed on a window. Note</div>
<div>+-- that this will run on any window which changes the property, so you should</div>
<div>+-- be very specific in your 'MansgeHook' matching (lots of windows change</div>
<div>+-- their titles on the fly!):</div>
<div>+--</div>
<div>+-- dynamicPropertyChange "WM_NAME" (className =? "Iceweasel" &lt;&amp;&amp;&gt; title =? "whatever" --&gt; doShift "2")</div>
<div>+--&nbsp;</div>
<div>+-- Note that the fixity of (--&gt;) won't allow it to be mixed with ($), so you</div>
<div>+-- can't use the obvious $ shorthand.</div>
<div>+--</div>
<div>+-- &gt; dynamicPropertyChange "WM_NAME" $ title =? "Foo" --&gt; doFloat -- won't work!</div>
<div>+--</div>
<div>+-- Consider instead phrasing it like any</div>
<div>+-- other 'ManageHook':</div>
<div>+--</div>
<div>+-- &gt; &nbsp; &nbsp; &nbsp;, handleEventHook = dynamicPropertyChange "WM_NAME" myDynHook &lt;+&gt; handleEventHook baseConfig</div>
<div>+-- &gt;&nbsp;</div>
<div>+-- &gt; &nbsp; &nbsp;{- ... -}</div>
<div>+-- &gt;&nbsp;</div>
<div>+-- &gt; &nbsp; &nbsp;myDynHook = composeAll [...]</div>
<div>+--</div>
<div>+dynamicPropertyChange :: String -&gt; ManageHook -&gt; Event -&gt; X All</div>
<div>+dynamicPropertyChange prop hook PropertyEvent { ev_window = w, ev_atom = a, ev_propstate = ps } = do</div>
<div>+ &nbsp;pa &lt;- getAtom prop</div>
<div>+ &nbsp;when (ps == propertyNewValue &amp;&amp; a == pa) $ do</div>
<div>+ &nbsp; &nbsp;g &lt;- appEndo &lt;$&gt; userCodeDef (Endo id) (runQuery hook w)</div>
<div>+ &nbsp; &nbsp;windows g</div>
<div>+ &nbsp;return (All False) -- so anything else also processes it</div>
<div>+dynamicPropertyChange _ _ _ = return (All False)</div>
<div>+</div>
<div>+-- | A shorthand for the most common case, dynamic titles</div>
<div>+dynamicTitle :: ManageHook -&gt; Event -&gt; X All</div>
<div>+-- strictly, this should also check _NET_WM_NAME. practically, both will</div>
<div>+-- change and each gets its own PropertyEvent, so we'd need to record that</div>
<div>+-- we saw the event for that window and ignore the second one. Instead, just</div>
<div>+-- trust that nobody sets only _NET_WM_NAME. (I'm sure this will prove false,</div>
<div>+-- since there's always someone who can't bother being compliant.)</div>
<div>+dynamicTitle = dynamicPropertyChange "WM_NAME"</div>
<div>hunk ./xmonad-contrib.cabal 167</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.DynamicBars</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.DynamicHooks</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.DynamicLog</div>
<div>+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.DynamicProperty</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.DebugStack</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.EwmhDesktops</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;XMonad.Hooks.FadeInactive</div>
<div>}</div>
<div><br></div>
<div>Context:</div>
<div><br></div>
<div>[minor doc fixes to X.C.Mate</div>
<div>Daniel Wagner &lt;<a href="mailto:me@...">me@...</a>&gt;**20150330180752</div>
<div>&nbsp;Ignore-this: f35c2e5068adcf5a04727557078c8a6f</div>
<div>]&nbsp;</div>
<div>[mate-comment-fixup</div>
<div>
<a href="mailto:allbery.b@...">allbery.b@...</a>**20150330160523</div>
<div>&nbsp;Ignore-this: 687b5edc9220469f3e58abcfd4f6449c</div>
<div>&nbsp;Correct the docstrings / comments in X.C.Mate, which still referenced</div>
<div>&nbsp;gnomeConfig. Also update the session manager configuration to use</div>
<div>&nbsp;dconf and a current (on Mint at least) path for the session config.</div>
<div>]&nbsp;</div>
<div>[Add the ability to specify padding used with Maximize</div>
<div>Peter Jones &lt;<a href="mailto:pjones@...">pjones@...</a>&gt;**20150309232939</div>
<div>&nbsp;Ignore-this: 71ac5db4513da0b7a45eb82ec184f4e3</div>
<div>]&nbsp;</div>
<div>[Don't restore windows when changing workspaces</div>
<div>Peter Jones &lt;<a href="mailto:pjones@...">pjones@...</a>&gt;**20150310201709</div>
<div>&nbsp;Ignore-this: 5333205aa1a9fbc5c7844fad69561517</div>
<div>]&nbsp;</div>
<div>[New layout modifier: Hidden</div>
<div>Peter Jones &lt;<a href="mailto:pjones@...">pjones@...</a>&gt;**20150309223036</div>
<div>&nbsp;Ignore-this: 5534fe18e642d1691a9b3f99341e082d</div>
<div>&nbsp;</div>
<div>&nbsp;A layout modifer that is meant to work with the BinarySpacePartition</div>
<div>&nbsp;layout.&nbsp; By removing windows from the window set and adding them back</div>
<div>&nbsp;at a later time, you can move windows to a different branch of the BSP</div>
<div>&nbsp;tree.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[Fixes to warnings with BSP layout</div>
<div>
<a href="mailto:anton.pirogov@...">anton.pirogov@...</a>**20150315100041</div>
<div>&nbsp;Ignore-this: 7642710fdb2a866150875f2d521d19fd</div>
<div>]&nbsp;</div>
<div>[Improved BinarySpacePartition, added Equalize,Balance and FocusParent and mouse resize support</div>
<div>
<a href="mailto:anton.pirogov@...">anton.pirogov@...</a>**20150312145220</div>
<div>&nbsp;Ignore-this: 31b5d7bf38e5b391df266906deb5e382</div>
<div>]&nbsp;</div>
<div>[New layout module X.L.Dwindle</div>
<div>
<a href="mailto:nzeh@...">nzeh@...</a>**20150315130913</div>
<div>&nbsp;Ignore-this: a1507e9eda6e6cabd679c2c3b50d9a38</div>
<div>&nbsp;</div>
<div>&nbsp;This adds three layouts: &nbsp;Spiral is a reimplementation of X.L.Spiral.spiral</div>
<div>&nbsp;with a (to me) more intuitive splitting policy.&nbsp; Dwindle is similar but pushes</div>
<div>&nbsp;the smaller windows into a corner rather than into the center.&nbsp; Squeeze just</div>
<div>&nbsp;stacks windows vertically or horizontally using geometrically decreasing sizes.</div>
<div>]&nbsp;</div>
<div>[address warnings in P.Pass</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150313015636</div>
<div>&nbsp;Ignore-this: 52e03c09c4d5339085e0306044de8977</div>
<div>]&nbsp;</div>
<div>[X.L.AvoidFloats more useful default settings</div>
<div>
<a href="mailto:ankaan@...">ankaan@...</a>**20150310212022</div>
<div>&nbsp;Ignore-this: af6535bace9219619858751eeeff6520</div>
<div>&nbsp;Changed default settings with the simple layout modifier. Instead of asking for a bool indicating if all windows should be avoided, no such bool is asked for. No windows are avoided by default. I think this will be a more useful default setting since it would be annoying if dialogue windows are avoided. The same functionality is possible with the advanced constructor. This will be easier for new users.</div>
<div>&nbsp;</div>
<div>&nbsp;This will break configurations using the old module, but this will not be much of an issue since the module has not been added to the repo as of this writing.</div>
<div>]&nbsp;</div>
<div>[Resolve minor conflict in xmonad-contrib.cabal</div>
<div>
<a href="mailto:ankaan@...">ankaan@...</a>**20150306175436</div>
<div>&nbsp;Ignore-this: 24ae68c08107a574199b055989d38347</div>
<div>]&nbsp;</div>
<div>[X.L.AvoidFloats, like avoidStruts but for floats</div>
<div>
<a href="mailto:ankaan@...">ankaan@...</a>**20150306171702</div>
<div>&nbsp;Ignore-this: 3722d7787dd2429313f92f85f3ae1251</div>
<div>&nbsp;Checks for floating windows within the layout area and finds a maximum area</div>
<div>&nbsp;rectangle within that does not overlap with any of the floating windows.</div>
<div>&nbsp;This rectangle is used for all non-floating windows.</div>
<div>&nbsp;</div>
<div>&nbsp;This new functionality introduced problems with the recommended configuration</div>
<div>&nbsp;of one of my other modules (X.A.FloatSnap.) A new and more reliable method of</div>
<div>&nbsp;distinguishing between clicks and drags where therefore introduced in the new</div>
<div>&nbsp;module X.A.AfterDrag.</div>
<div>&nbsp;</div>
<div>&nbsp;This does not break any prior use of FloatSnap, but will require changes in</div>
<div>&nbsp;configuration if used together with AvoidFloats. (This is mentioned in the</div>
<div>&nbsp;docs for AvoidFloats and I recommend using the new configuration method even if</div>
<div>&nbsp;AvoidFloats is not in use.)</div>
<div>]&nbsp;</div>
<div>[X.L.LayoutBuilder place active on top</div>
<div>
<a href="mailto:ankaan@...">ankaan@...</a>**20150306164200</div>
<div>&nbsp;Ignore-this: 69d718d0d044ee59a877fa0e63edc474</div>
<div>&nbsp;Make sure that the active layout area is placed on top of all other areas when placing windows. This makes overlapping areas usable.</div>
<div>]&nbsp;</div>
<div>[Add rearrangers to X.A.GridSelect</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20130123044038</div>
<div>&nbsp;Ignore-this: ef0dc68e9b725953e69e7b039fe06e9a</div>
<div>]&nbsp;</div>
<div>[Avoid repainting elements in X.A.GridSelect</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20130123043850</div>
<div>&nbsp;Ignore-this: 8e926cebc8d458a06a05f7457ae40b68</div>
<div>]&nbsp;</div>
<div>[Give a name to the initial state in X.A.GridSelect</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20130121061324</div>
<div>&nbsp;Ignore-this: 989ae20ccc3d5b1392f0694d5c62e759</div>
<div>]&nbsp;</div>
<div>[Add XMonad.Config.Bepo (Yorick Laupa)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150310214314</div>
<div>&nbsp;Ignore-this: 71dcf03f9ff80b645531004f95e9c600</div>
<div>]&nbsp;</div>
<div>[add instance Default WallpaperConf</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam <at> gmail.com">vogt.adam@...</a>&gt;**20150310214246</div>
<div>&nbsp;Ignore-this: 18e74f249b35726acd4b923ecce3085</div>
<div>]&nbsp;</div>
<div>[XMonad.Prompt.Pass: Handle hierachical password stores</div>
<div>Joachim Breitner &lt;<a href="mailto:mail@...">mail <at> joachim-breitner.de</a>&gt;**20150218091816</div>
<div>&nbsp;Ignore-this: 2f0a02613780067d324b04a8cdb9c0ed</div>
<div>&nbsp;</div>
<div>&nbsp;pass stores its passwords in directories, so the contents of the directory</div>
<div>&nbsp;store needs to be enumerated recursively. Alexander Sulfrian provided this</div>
<div>&nbsp;patch on the mailinglist, which I tested (it works) and cleaned up slightly.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[remove warnings and text dependency from H.WallpaperSetter</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150310192933</div>
<div>&nbsp;Ignore-this: e637d782c13bed48bafbc1458b3f983f</div>
<div>]&nbsp;</div>
<div>[Added the new hook WallpaperSetter</div>
<div>
<a href="mailto:anton.pirogov@...">anton.pirogov@...</a>**20150228162335</div>
<div>&nbsp;Ignore-this: 7cbb2ab0d8f9f606f50253deebcf4163</div>
<div>]&nbsp;</div>
<div>[adjust an import to fix the build</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150310182403</div>
<div>&nbsp;Ignore-this: 72f67dd2cb1cc6900269383124844c2b</div>
<div>]&nbsp;</div>
<div>[merge conflicts in X.L.Spacing</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150310182046</div>
<div>&nbsp;Ignore-this: f0830d6483d30d643e7e182e310ec042</div>
<div>&nbsp;</div>
<div>&nbsp;I should have just applied Anton Pirogov March 4 patch.</div>
<div>]&nbsp;</div>
<div>[Added messages to adjust the gap dynamically</div>
<div>
<a href="mailto:anton.pirogov@...">anton.pirogov@...</a>**20150304082520</div>
<div>&nbsp;Ignore-this: 52b590c820db765796de41f38fffdf3c</div>
<div>]&nbsp;</div>
<div>[X.L.Spacing needs -XPatternGuards now</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam <at> gmail.com</a>&gt;**20150310181248</div>
<div>&nbsp;Ignore-this: d6b2b76fddbd9ad066e7cb39933f055a</div>
<div>]&nbsp;</div>
<div>[add ConfirmPrompt (Antoine Beaupr&eacute;)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150310181036</div>
<div>&nbsp;Ignore-this: 65d74f05e82c66a3ff4f021d19ceb626</div>
<div>]&nbsp;</div>
<div>[Added messages to adjust the gap dynamically</div>
<div>
<a href="mailto:anton.pirogov@...">anton.pirogov <at> gmail.com</a>**20150303210143</div>
<div>&nbsp;Ignore-this: 891ca1ccca183d6af8e4aa4bf6d843fb</div>
<div>]&nbsp;</div>
<div>[add another extension to actually fix the build with ghc-7.10-RC1</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20150124111939</div>
<div>&nbsp;Ignore-this: 26d6f1b4cb6d573ccf49e6baeca853e4</div>
<div>]&nbsp;</div>
<div>[BinarySpacePartition downstream changes&nbsp;</div>
<div>
<a href="mailto:benweitzman@...">benweitzman@...</a>**20141110202259</div>
<div>&nbsp;Ignore-this: 42ecc2b07388ba0c7b3eac980256c17b</div>
<div>&nbsp;Pulled in changes from my repo for this layout on github (<a href="https://github.com/benweitzman/BinarySpacePartition">https://github.com/benweitzman/BinarySpacePartition</a>)</div>
<div>&nbsp;Includes a new mode for resizing windows in a more intuitive way, also contains a bug fix that was preventing users from</div>
<div>&nbsp;resiving a window up.</div>
<div>&nbsp;</div>
<div>&nbsp;Includes changes from github users egasimus (Adam Avramov) and SolitaryCipher (Nick)</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[add XF86AudioMicMute to EZConfig (#582)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20141222045306</div>
<div>&nbsp;Ignore-this: 1c91505b303e53b94da624230b3c893c</div>
<div>]&nbsp;</div>
<div>[Generalize new workspace addition functions to support arbitrary insertion.</div>
<div>
<a href="mailto:nrujac@...">nrujac@...</a>**20141219002309</div>
<div>&nbsp;Ignore-this: 9f8c14b5aa9d398b3f167da0af1a8650</div>
<div>&nbsp;</div>
<div>&nbsp;The current DynamicWorkspaces module only supports adding new workspaces</div>
<div>&nbsp;at the start of the list of workspaces. This means when binding workspaces</div>
<div>&nbsp;to keys based on the position in the list, key bindings can change&nbsp;</div>
<div>&nbsp;as workspaces are added in removed in a far more destructive way than</div>
<div>&nbsp;necessary. Instead, supporting appending and arbitrary insertion allows</div>
<div>&nbsp;the user to determine where the new workspace should be added.</div>
<div>&nbsp;</div>
<div>&nbsp;This patch is a straight generalization of the addHiddenWorkspace' function.</div>
<div>&nbsp;Rather than always using `(:)` to insert the new workspace into the list</div>
<div>&nbsp;of workspaces, this patches causes it to use an arbitrary list insertion</div>
<div>&nbsp;function instead. A few new functions are added to prevent breakage of</div>
<div>&nbsp;external code while exported functions are left unchanged.</div>
<div>&nbsp;</div>
<div>&nbsp;List of new functions:</div>
<div>&nbsp; &nbsp;appendWorkspace</div>
<div>&nbsp; &nbsp;appendWorkspacePrompt</div>
<div>&nbsp; &nbsp;addWorkspaceAt</div>
<div>&nbsp; &nbsp;addHiddenWorkspaceAt</div>
<div>&nbsp;</div>
<div>&nbsp;Existing functions were modified to call their generalized brethren where possible</div>
<div>&nbsp;without changing functionality. This patch should not change behavior for any</div>
<div>&nbsp;existing users of this module.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[address another bitSize/finiteBitSize warning</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20141222033300</div>
<div>&nbsp;Ignore-this: 549e519d25080c77e605dc983f0d239e</div>
<div>]&nbsp;</div>
<div>[X.L.Master: Add FixMaster layout modifier</div>
<div>Anton Vorontsov &lt;<a href="mailto:anton@...">anton <at> enomsg.org</a>&gt;**20141220011339</div>
<div>&nbsp;Ignore-this: 82e9736853287f753248af41843ceb6b</div>
<div>&nbsp;</div>
<div>&nbsp;This layout modifier is useful for the case if you desire to add a master</div>
<div>&nbsp;pane that has fixed width (it's fixed even if there is just one window</div>
<div>&nbsp;opened). Especially nice feature if you don't want to have too wide</div>
<div>&nbsp;terminal in a master pane.</div>
<div>&nbsp;</div>
<div>&nbsp;The layout is implemented as an addition to Master layout, so it reuses</div>
<div>&nbsp;most of the code.</div>
<div>]&nbsp;</div>
<div>[filepath dependency for P.Pass was left out</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20141221214129</div>
<div>&nbsp;Ignore-this: 98e63d7b17ac6ebabd8a6b081f5194a1</div>
<div>]&nbsp;</div>
<div>[remove unused imports</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140815051234</div>
<div>&nbsp;Ignore-this: b2e5be31b70e6d31827e76bd8c00d200</div>
<div>]&nbsp;</div>
<div>[fix build with ghc-6.12</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140815051214</div>
<div>&nbsp;Ignore-this: d4c4da527db6c8affc151dc210631b85</div>
<div>]&nbsp;</div>
<div>[use FiniteBitSize with ghc &gt;= 7.8</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140815051136</div>
<div>&nbsp;Ignore-this: 90f855fd72406fb3d2640a133d499188</div>
<div>]&nbsp;</div>
<div>[Layout.Spacing: Outer window edges now get as much spacing as inner ones</div>
<div>Felix Crux &lt;<a href="mailto:felixc <at> felixcrux.com">felixc@...</a>&gt;**20141219223646</div>
<div>&nbsp;Ignore-this: 61363e97939fe857876c8252ac5f0302</div>
<div>&nbsp;</div>
<div>&nbsp;Layout.Spacing applies a customizable amount of space around the outside of each</div>
<div>&nbsp;window. At window edges where two windows meet, the total distance between them</div>
<div>&nbsp;is therefore twice the customized value (one space value from each window). At</div>
<div>&nbsp;the edge of the screen, however, the spacing is only applied once. This results</div>
<div>&nbsp;in uneven amounts of spacing and differently-sized gaps on the screen.</div>
<div>&nbsp;</div>
<div>&nbsp;This patch extends the Spacing layout to include a further gap all around the</div>
<div>&nbsp;edge of the screen, thus making all spaces around windows equal in size.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[add filepath package dependency needed by Prompt.Pass</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140909145216</div>
<div>&nbsp;Ignore-this: 588ec76e7fccb4219361da7024c98db4</div>
<div>&nbsp;</div>
<div>&nbsp;filepath comes with ghc, and it's used by xmonad-core anyways</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: doc tweaks</div>
<div>Devin Mullins &lt;<a href="mailto:devin.mullins@...">devin.mullins <at> gmail.com</a>&gt;**20141002075939</div>
<div>&nbsp;Ignore-this: 20d6b829b810f48b5e4b4c161b39b312</div>
<div>]&nbsp;</div>
<div>[X.A.Navigation2D: add convenience functions for setting config &amp; keybindings</div>
<div>Devin Mullins &lt;<a href="mailto:devin.mullins@...">devin.mullins@...</a>&gt;**20141002075757</div>
<div>&nbsp;Ignore-this: ed01137f03a531f73315ed503d1eb6ef</div>
<div>&nbsp;1. Added 'additionalNav2DKeys' which adds keybindings for the cartesian product</div>
<div>&nbsp; &nbsp; of direction keys and (modifier, action) pairs given.</div>
<div>&nbsp;2. Added 'navigation2D' which combines that with 'withNavigation2DConfig'.</div>
<div>&nbsp;3. Added 'additionalNav2DKeysP' and 'navigation2DP' which do the same, but use</div>
<div>&nbsp; &nbsp; the 'additionalKeysP' syntax.</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: doc fixes</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20141001075855</div>
<div>&nbsp;Ignore-this: dbbe00791b04df61dcd595c50333fba</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: add 'withScreens' and friends</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20141001075250</div>
<div>&nbsp;Ignore-this: eba37b1ff3da265a4dcc509f538fce4d</div>
<div>&nbsp;The screen equivalent of 'withWorkspaces' lets you more easily define keys that</div>
<div>&nbsp;move/swap between screens.</div>
<div>&nbsp;</div>
<div>&nbsp;Also, rename wsKeyspecs to wsKeys, and make a couple of doc tweaks.</div>
<div>]&nbsp;</div>
<div>[Implement proper handling of dynamically changing hostname</div>
<div>Anton Vorontsov &lt;<a href="mailto:anton@...">anton@...</a>&gt;**20140901072158</div>
<div>&nbsp;Ignore-this: 2aeac6d2161e666d40cda6a09f78b208</div>
<div>&nbsp;</div>
<div>&nbsp;The module implements a proper way of finding out whether the window is</div>
<div>&nbsp;remote or local.</div>
<div>&nbsp;</div>
<div>&nbsp;Just checking for a hostname and WM_CLIENT_MACHINE being equal is often</div>
<div>&nbsp;not enough because the hostname is a changing subject (without any</div>
<div>&nbsp;established notification mechanisms), and thus WM_CLIENT_MACHINE and the</div>
<div>&nbsp;hostname can diverge even for a local window.</div>
<div>&nbsp;</div>
<div>&nbsp;This module solves the problem. As soon as there is a new window created,</div>
<div>&nbsp;we check the hostname and WM_CLIENT_MACHINE, and then we cache the result</div>
<div>&nbsp;into the XMONAD_REMOTE property.</div>
<div>&nbsp;</div>
<div>&nbsp;Notice that XMonad itself does not know anything about hostnames, nor does</div>
<div>&nbsp;it have any dependency on Network.* modules. For this module it is not a</div>
<div>&nbsp;problem: you can provide a mean to get the hostname through your config</div>
<div>&nbsp;file (see usage). Or, if you don't like the hassle of handling dynamic</div>
<div>&nbsp;hostnames (suppose your hostname never changes), it is also fine: this</div>
<div>&nbsp;module will fallback to using environment variables.</div>
<div>]&nbsp;</div>
<div>[Add Stoppable layout for power saving</div>
<div>Anton Vorontsov &lt;<a href="mailto:anton@...">anton@...</a>&gt;**20140901072141</div>
<div>&nbsp;Ignore-this: a52805d9f3095cd7af48507847ed2fe3</div>
<div>&nbsp;</div>
<div>&nbsp;This module implements a special kind of layout modifier, which when</div>
<div>&nbsp;applied to a layout, causes xmonad to stop all non-visible processes. In a</div>
<div>&nbsp;way, this is a sledge-hammer for applications that drain power. For</div>
<div>&nbsp;example, given a web browser on a stoppable workspace, once the workspace</div>
<div>&nbsp;is hidden the web browser will be stopped.</div>
<div>&nbsp;</div>
<div>&nbsp;Note that the stopped application won't be able to communicate with X11</div>
<div>&nbsp;clipboard. For this, the module actually stops applications after a</div>
<div>&nbsp;certain delay, giving a chance for a user to complete copy-paste sequence.</div>
<div>&nbsp;By default, the delay equals to 15 seconds, it is configurable via</div>
<div>&nbsp;'Stoppable' constructor.</div>
<div>&nbsp;</div>
<div>&nbsp;The stoppable modifier prepends a mark (by default equals to "Stoppable")</div>
<div>&nbsp;to the layout description (alternatively, you can choose your own mark and</div>
<div>&nbsp;use it with 'Stoppable' constructor). The stoppable layout (identified by</div>
<div>&nbsp;a mark) spans to multiple workspaces, letting you to create groups of</div>
<div>&nbsp;stoppable workspaces that only stop processes when none of the workspaces</div>
<div>&nbsp;are visible, and conversely, unfreezing all processes even if one of the</div>
<div>&nbsp;stoppable workspaces are visible.</div>
<div>&nbsp;</div>
<div>&nbsp;To stop the process we use signals, which works for most cases. For</div>
<div>&nbsp;processes that tinker with signal handling (debuggers), another</div>
<div>&nbsp;(Linux-centric) approach may be used. See</div>
<div>&nbsp;<a href="https://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt">https://www.kernel.org/doc/Documentation/cgroups/freezer-subsystem.txt</a>
</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: doc changes</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins <at> gmail.com">devinmullins@...</a>&gt;**20140925203037</div>
<div>&nbsp;Ignore-this: 51204c1a9f2e6ed21228d2910417fd21</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: add withWorkspaces et al.</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins <at> gmail.com</a>&gt;**20140925203034</div>
<div>&nbsp;Ignore-this: 65f691270110cc5de13c950d9dcb0c17</div>
<div>&nbsp;This allows easier configuration of workspaces and their keybindings. Required</div>
<div>&nbsp;generalizing the 'Prime' type, so lots of other lines changed in rather trivial</div>
<div>&nbsp;ways.</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: add ifThenElse binding</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20140924191509</div>
<div>&nbsp;Ignore-this: ae775c418c27301b9c12d2a233502cec</div>
<div>&nbsp;This is necessary for if-then-else support in the user's config.</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: doc fixes</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20140915080601</div>
<div>&nbsp;Ignore-this: 15e3c445a99d3b2d3a235aa76119797</div>
<div>]&nbsp;</div>
<div>[X.C.Prime: fix 'def' hyperlink in doc</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20140914075352</div>
<div>&nbsp;Ignore-this: a1de1d81a5f140ab7d90edbf393e9bda</div>
<div>]&nbsp;</div>
<div>[XMonad.Config.Prime, a do-notation for config</div>
<div>Devin Mullins &lt;<a href="mailto:devinmullins@...">devinmullins@...</a>&gt;**20140914064828</div>
<div>&nbsp;Ignore-this: f7397aa6e6efe5d76acebfa22c567baa</div>
<div>&nbsp;Note that the use of RebindableSyntax is because of the need to vary the</div>
<div>&nbsp;layoutHook type throughout the config. The alternative, using the existential</div>
<div>&nbsp;Layout type, was rejected because it required TemplateHaskell in order to look</div>
<div>&nbsp;nice, and TemplateHaskell is not portable.</div>
<div>&nbsp;</div>
<div>&nbsp;I've tried to make a version of (&gt;&gt;) that also worked on normal monads, but</div>
<div>&nbsp;have had no luck as of yet. Maybe some intrepid soul can add it later.</div>
<div>]&nbsp;</div>
<div>[X.P.Shell: fix doc typo</div>
<div>
<a href="mailto:me@...">me@...</a>**20130317115516</div>
<div>&nbsp;Ignore-this: bdd385a9142ed039a917d135e76293fe</div>
<div>]&nbsp;</div>
<div>[reverse workspaces, so that switching to a dynamic workspace group restores the focus to the screen that was focused at group creation time</div>
<div>
<a href="mailto:nwfilardo <at> gmail.com">nwfilardo@...</a>**20140913174118</div>
<div>&nbsp;Ignore-this: b74c02b1892159694827e35122c2d517</div>
<div>]&nbsp;</div>
<div>[add filepath dependency, needed by new X.P.Pass module</div>
<div>
<a href="mailto:me@...">me@...</a>**20140913070926</div>
<div>&nbsp;Ignore-this: fec97086c1e66cf8a036265bd1a970a8</div>
<div>]&nbsp;</div>
<div>[add-new-xmonad-prompt-pass</div>
<div>
<a href="mailto:eniotna.t@...">eniotna.t@...</a>**20140829131928</div>
<div>&nbsp;Ignore-this: 11e85dfe3d24cef88d8d89f4e7b1ec0b</div>
<div>&nbsp;This module provides 3 &lt;XMonad.Prompt&gt; to ease passwords manipulation (generate, read, remove):</div>
<div>&nbsp;</div>
<div>&nbsp;- one to lookup passwords in the password-storage.</div>
<div>&nbsp;</div>
<div>&nbsp;- one to generate a password for a given password label that the user inputs.</div>
<div>&nbsp;</div>
<div>&nbsp;- one to delete a stored password for a given password label that the user inputs.</div>
<div>&nbsp;</div>
<div>&nbsp;All those prompts benefit from the completion system provided by the module &lt;XMonad.Prompt&gt;.</div>
<div>&nbsp;</div>
<div>&nbsp;The password store is setuped through an environment variable PASSWORD_STORE_DIR.</div>
<div>&nbsp;If this is set, use the content of the variable.</div>
<div>&nbsp;Otherwise, the password store is located on user's home  <at> $HOME\/.password-store <at> .</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
<div>&nbsp;Source:</div>
<div>&nbsp;</div>
<div>&nbsp;- The password storage implementation is &lt;<a href="http://git.zx2c4.com/password-store">http://git.zx2c4.com/password-store</a> the password-store cli&gt;.</div>
<div>&nbsp;</div>
<div>&nbsp;- Inspired from &lt;<a href="http://babushk.in/posts/combining-xmonad-and-pass.html">http://babushk.in/posts/combining-xmonad-and-pass.html</a>&gt;</div>
<div>]&nbsp;</div>
<div>[use Data.Map instead of Data.Map.Strict to support containers &lt; 0.5</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam <at> gmail.com</a>&gt;**20140815043141</div>
<div>&nbsp;Ignore-this: 436d18657d8499f4ce57311e84503d9f</div>
<div>]&nbsp;</div>
<div>[config-mate</div>
<div>
<a href="mailto:allbery.b@...">allbery.b@...m</a>**20140803020659</div>
<div>&nbsp;Ignore-this: d5de258c0a28cd5ba64a59cf37cd480a</div>
<div>&nbsp;Initial support for the Mate desktop environment (<a href="http://mate-desktop.org">http://mate-desktop.org</a>).</div>
<div>&nbsp;Based on existing Gnome 2 support, since Mate is a maintained fork of</div>
<div>&nbsp;Gnome 2.</div>
<div>]&nbsp;</div>
<div>[debug-managehook</div>
<div>
<a href="mailto:allbery.b@...">allbery.b@...</a>**20140803020601</div>
<div>&nbsp;Ignore-this: 51f9255b496cca79e4a53e274c400ecc</div>
<div>&nbsp;A set of hooks, and convenience combinators, to help with ManageHook debugging.</div>
<div>&nbsp;Ordinary users may well want to use debugManageHookOn in normal configs,</div>
<div>&nbsp;specifying a key sequence which can be pressed before running a command in</div>
<div>&nbsp;order to capture debug information just for that command's main window.</div>
<div>&nbsp;</div>
<div>&nbsp;This is especially useful when trying to diagnose issues such as programs</div>
<div>&nbsp;that do not play well with SpawnOn, or ManageHook matching on 'title' when</div>
<div>&nbsp;the program does not set the window title until after it is mapped.</div>
<div>]&nbsp;</div>
<div>[debug-debug</div>
<div>
<a href="mailto:allbery.b@...">allbery.b <at> gmail.com</a>**20140803020530</div>
<div>&nbsp;Ignore-this: cbb2b1d99293e3a4d02a256c2733aeb0</div>
<div>&nbsp;Various fixes and enhancements to DebugWindow and DebugStack. ManageDebug</div>
<div>&nbsp;requires these fixes, but some of them are significant even if not using</div>
<div>&nbsp;ManageDebug.</div>
<div>]&nbsp;</div>
<div>[derive Applicative instances to suppress AMP warning</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140710163950</div>
<div>&nbsp;Ignore-this: c2110d07bccc61462c3fbf73c900aaa1</div>
<div>]&nbsp;</div>
<div>[clean up cabal file and drop support for base &lt; 3</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140710013255</div>
<div>&nbsp;Ignore-this: 76b142e2b114604feac9b8e41cf71ab</div>
<div>]&nbsp;</div>
<div>[add-duck-duck-go-search-engine</div>
<div>
<a href="mailto:eniotna.t@...">eniotna.t@...</a>**20140617174246</div>
<div>&nbsp;Ignore-this: 29bbfb2d07d9ddf36bf0268a4e255f81</div>
<div>]&nbsp;</div>
<div>[XSelection: getSelection: fix connection exhaustion bug (issue #573); include warning</div>
<div>
<a href="mailto:gwern@...">gwern@...</a>**20140601025019</div>
<div>&nbsp;Ignore-this: add21190fc07338b243c2241cc746119</div>
<div>]&nbsp;</div>
<div>[Fix dbus-send call in XMonad.Config.Gnome</div>
<div>
<a href="mailto:md143rbh7f@...">md143rbh7f <at> gmail.com</a>**20140129032114</div>
<div>&nbsp;Ignore-this: ed62458b55c8b34b77f73027eeee1a73</div>
<div>&nbsp;dbus-send --print-reply=string is invalid, but it was silently ignored until recently:</div>
<div>&nbsp;<a href="http://cgit.freedesktop.org/dbus/dbus/commit/tools/dbus-send.c?id=c690ee4351f99ed5e629ffcf5f4a2edcd418d103">http://cgit.freedesktop.org/dbus/dbus/commit/tools/dbus-send.c?id=c690ee4351f99ed5e629ffcf5f4a2edcd418d103</a>
</div>
<div>&nbsp;I've changed XMonad.Config.Gnome to run --print-reply=literal, since that's what the old behavior was.</div>
<div>]&nbsp;</div>
<div>[warning police (unused variables)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140505001242</div>
<div>&nbsp;Ignore-this: a15b4d844b1da4f1f1f9b6095c968705</div>
<div>]&nbsp;</div>
<div>[This patch makes the Ssh extension works with **user** arguments in ssh, .e.g ssh admin <at> localhost.</div>
<div>
<a href="mailto:linxray@...">linxray@...</a>**20140504091120</div>
<div>&nbsp;Ignore-this: 297673e11d3049c4f127aac3e172d361</div>
<div>]&nbsp;</div>
<div>[remove trailing whitespace in L.BinarySpacePartition</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam <at> gmail.com</a>&gt;**20140501011943</div>
<div>&nbsp;Ignore-this: 8dd677978992e0854801b8f254463dc2</div>
<div>]&nbsp;</div>
<div>[replace Bound with the equivalent Direction2D</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140501011540</div>
<div>&nbsp;Ignore-this: b1f1c256aba07f70918fe1d693c8087b</div>
<div>]&nbsp;</div>
<div>[remove unused extension in BSP</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam <at> gmail.com</a>&gt;**20140501011455</div>
<div>&nbsp;Ignore-this: a4962486b2aa3980536bff19a537451e</div>
<div>]&nbsp;</div>
<div>[Add BinarySpacePartition layout&nbsp;</div>
<div>
<a href="mailto:benweitzman <at> gmail.com">benweitzman@...</a>**20140430205848</div>
<div>&nbsp;Ignore-this: a85d1dc51bf54c59ae2bd9d948cc1088</div>
<div>]&nbsp;</div>
<div>[X.Actions.DynamicWorkspaceGroups: export new function addRawWSGroup</div>
<div>Brent Yorgey &lt;<a href="mailto:byorgey@...">byorgey@...</a>&gt;**20140428142901</div>
<div>&nbsp;Ignore-this: a487882c9571bf91ff921d6561bb4cc6</div>
<div>]&nbsp;</div>
<div>[Remove unneeded context with the IfMax layout instance</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20140422221105</div>
<div>&nbsp;Ignore-this: 3b8ac316f56df6a84420754db769fb0</div>
<div>&nbsp;</div>
<div>&nbsp;Extra constraints on instances are about as useful as -XDataTypeContexts</div>
<div>]&nbsp;</div>
<div>[Adding side tabs and replacing TabbarLocation with Direction2D.</div>
<div>
<a href="mailto:nrujac@...">nrujac@...</a>**20140219200811</div>
<div>&nbsp;Ignore-this: edabeec973b4e0d61515818367689843</div>
<div>]&nbsp;</div>
<div>[warning police</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel <at> wagner-home.com</a>&gt;**20140316183747</div>
<div>&nbsp;Ignore-this: fd16435ccdd3fee8924723cc690cc239</div>
<div>]&nbsp;</div>
<div>[New module: XMonad.Util.WindowState</div>
<div>Dmitry Bogatov &lt;<a href="mailto:KAction@...">KAction@...</a>&gt;**20140218100229</div>
<div>&nbsp;Ignore-this: 14a6fa263c423cd8cca3b2645b3930d7</div>
<div>&nbsp;</div>
<div>&nbsp;Save almost arbitary data per window&nbsp;</div>
<div>]&nbsp;</div>
<div>[Add side tabs to the tabbed layout.</div>
<div>
<a href="mailto:nrujac@...">nrujac@...</a>**20140213215247</div>
<div>&nbsp;Ignore-this: f81bafe9cb75a30ed6bbbe68cf5d66c0</div>
<div>]&nbsp;</div>
<div>[SpawnNamedPipe hlint cleanup</div>
<div>
<a href="mailto:cwills.dev@...">cwills.dev@...m</a>**20140202213613</div>
<div>&nbsp;Ignore-this: dbb68c4c5522026bd108d0158e747b48</div>
<div>]&nbsp;</div>
<div>[document and cleanup SpawnNamedPipe</div>
<div>
<a href="mailto:cwills.dev@...">cwills.dev@...</a>**20140202211000</div>
<div>&nbsp;Ignore-this: b264278f1f1ab1f18b37245a5ff33136</div>
<div>]&nbsp;</div>
<div>[Added SpawnNamedPipe</div>
<div>
<a href="mailto:cwills.dev@...">cwills.dev@...</a>**20140202143415</div>
<div>&nbsp;Ignore-this: 87797ffffc8d0fd088482bd0c5baf0e</div>
<div>]&nbsp;</div>
<div>[Make commandToComplete in XMonad.Prompt.Shell complete last word</div>
<div>
<a href="mailto:md143rbh7f@...">md143rbh7f@...</a>**20140130200050</div>
<div>&nbsp;Ignore-this: b0fe22fdd7b9409835fd0ca069f2e01a</div>
<div>&nbsp;</div>
<div>&nbsp;The following change from 2013-02-09 breaks shell completion for me:</div>
<div>&nbsp; &nbsp; &nbsp;hunk ./XMonad/Prompt/Shell.hs 65</div>
<div>&nbsp; &nbsp; &nbsp;+ &nbsp; &nbsp;commandToComplete _ c = c</div>
<div>&nbsp;</div>
<div>&nbsp;It seems to be passing the entire string into compgen in order to get the file completions, but it should only pass the last word. I propose reverting this change. Comments are appreciated.</div>
<div>]&nbsp;</div>
<div>[expose and document X.L.IndependentScreens.marshallSort</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel <at> wagner-home.com</a>&gt;**20140128212844</div>
<div>&nbsp;Ignore-this: 90c1437c6ffe1dbd8f4a4ed192097ec</div>
<div>]&nbsp;</div>
<div>[ServerMode properly indent</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20131219201440</div>
<div>&nbsp;Ignore-this: 761b39c3e3c90b6123f068e8b1d34e5d</div>
<div>]&nbsp;</div>
<div>[remove ServerMode tabs</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20131219201000</div>
<div>&nbsp;Ignore-this: f21448c248ec0ac289c309ed964ebcff</div>
<div>]&nbsp;</div>
<div>[fix -Wall ServerMode</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20131219181030</div>
<div>&nbsp;Ignore-this: 708dd5fc60f43dee3d1da085002052f</div>
<div>]&nbsp;</div>
<div>[documentation note that ServerMode is similar to wmctrl</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20131219180748</div>
<div>&nbsp;Ignore-this: 3215bdf1c698c798eca8ed7f62a0f591</div>
<div>]&nbsp;</div>
<div>[Generalized XMonad.Hooks.ServerMode</div>
<div>
<a href="mailto:polson2@...">polson2@...</a>**20131216025100</div>
<div>&nbsp;Ignore-this: e58da3b168a1058f32982833ea25a739</div>
<div>]&nbsp;</div>
<div>[IfMax-Layout</div>
<div>Ilya Portnov &lt;<a href="mailto:portnov84@...">portnov84@...</a>&gt;**20131201072634</div>
<div>&nbsp;Ignore-this: dac53f2a0505e740f05fdf03f1db0c21</div>
<div>&nbsp;This adds a new ("conditional") layout, IfMax, which simply runs one layout, if there are &lt;= N windows, and else runs another layout.</div>
<div>]&nbsp;</div>
<div>[fix UrgencyHook and add filterUrgencyHook</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130924224738</div>
<div>&nbsp;Ignore-this: 3b7c62275701e6758397977c5c09b744</div>
<div>]&nbsp;</div>
<div>[export XMonad.Hooks.UrgencyHook.clearUrgency (issue 533)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130923031349</div>
<div>&nbsp;Ignore-this: dafe5763d9abcfa606f5c1a8cf5c57d6</div>
<div>]&nbsp;</div>
<div>[minor documentation fix: manageDocks doesn't do anything with struts, so don't claim it does</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...m">daniel@...</a>&gt;**20130814125106</div>
<div>&nbsp;Ignore-this: a2610d6c1318ac0977abfc21d1b91632</div>
<div>]&nbsp;</div>
<div>[don't pretend to be LG3D in X.C.Dmwit because this confuses modern GTK</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel <at> wagner-home.com">daniel@...</a>&gt;**20130813211636</div>
<div>&nbsp;Ignore-this: 8f728dc1b4bf5e472d99419cc5920e51</div>
<div>]&nbsp;</div>
<div>[XMonad.Actions.UpdatePointer: generalise updatePointer</div>
<div>Liyang HU &lt;<a href="mailto:git@...">git@...</a>&gt;**20130730071007</div>
<div>&nbsp;Ignore-this: 3374a62b6c63dcc152dbf843cd0577f0</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[XMonad.Actions.UpdatePointer: document TowardsCentre</div>
<div>Liyang HU &lt;<a href="mailto:git@...">git@...</a>&gt;**20130730053746</div>
<div>&nbsp;Ignore-this: 2d684b12e4fff0ebec254bea4a4546a3</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[Haddock formatting in H.Minimize</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam <at> gmail.com">vogt.adam@...</a>&gt;**20130723155658</div>
<div>&nbsp;Ignore-this: 5db3186a51dec58f78954466ded339cb</div>
<div>]&nbsp;</div>
<div>[Bump version (and xmonad dependency) to 0.12</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130720205857</div>
<div>&nbsp;Ignore-this: ce165178ca916223501f266339f1de39</div>
<div>&nbsp;</div>
<div>&nbsp;This makes a breakage due to missing patches in core a bit more obvious.</div>
<div>&nbsp;Previously you would have a build failure regarding some missing identifiers</div>
<div>&nbsp;(def re-exported by XMonad from Data.Default), while after applying this patch</div>
<div>&nbsp;it will be clear that xmonad-core needs to be updated.</div>
<div>]&nbsp;</div>
<div>[Fix issue 551 by also getting manpath without -g flag.</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam <at> gmail.com">vogt.adam@...</a>&gt;**20130716030536</div>
<div>&nbsp;Ignore-this: ded2d51eb7b7697c0fdfaa8158d612df</div>
<div>&nbsp;</div>
<div>&nbsp;Instead of taking Ondrej's approach of figuring out which man (man-db or</div>
<div>&nbsp;<a href="http://primates.ximian.com/~flucifredi/man/">http://primates.ximian.com/~flucifredi/man/</a>) is used by the system, just try</div>
<div>&nbsp;both sets of flags.</div>
<div>]&nbsp;</div>
<div>[Escape dzen markup and remove xmobar tags from window titles by default.</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130708144813</div>
<div>&nbsp;Ignore-this: cf56bff752fbf78ea06d5c0cb755f615</div>
<div>&nbsp;</div>
<div>&nbsp;The issue was that window titles, such as those set by, for example a browser,</div>
<div>&nbsp;could set the window title to display something like</div>
<div>&nbsp;</div>
<div>&nbsp; &nbsp; &lt;action=malicious shell command&gt;normal title&lt;/action&gt;</div>
<div>&nbsp;</div>
<div>&nbsp;Which could be executed by xmobar (or dzen).</div>
<div>&nbsp;</div>
<div>&nbsp;This adds a ppTitleSanitize which does the above functions. This way when users</div>
<div>&nbsp;override ppTitle, the benefits are not lost.</div>
<div>&nbsp;</div>
<div>&nbsp;Thanks to Ra&uacute;l Benencia and Joachim Breitner for bringing this to my attention.</div>
<div>]&nbsp;</div>
<div>[DynamicBars-use-ExtensibleState</div>
<div>
<a href="mailto:gopsychonauts@...">gopsychonauts@...</a>**20130618074755</div>
<div>&nbsp;Ignore-this: afacba51af2be8ede65b9bcf9b002a7</div>
<div>&nbsp;</div>
<div>&nbsp;Hooks.DynamicBars was previously using an MVar and the unsafePerformIO hack (</div>
<div>&nbsp;<a href="http://www.haskell.org/haskellwiki/Top_level_mutable_state">http://www.haskell.org/haskellwiki/Top_level_mutable_state</a> ) to store bar</div>
<div>&nbsp;state. Since ExtensibleState exists to solve these sorts of problems, I've</div>
<div>&nbsp;switched the file over to use unsafePerformIO instead.</div>
<div>&nbsp;</div>
<div>&nbsp;Some functions' types had to be changed to allow access to XState, but the</div>
<div>&nbsp;public API is unchanged.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[Catch exceptions when finding commands on PATH in Prompt.Shell</div>
<div>Thomas Tuegel &lt;<a href="mailto:ttuegel@...">ttuegel@...</a>&gt;**20130616230219</div>
<div>&nbsp;Ignore-this: 5a4d08c80301864bc14ed784f1054c3f</div>
<div>]&nbsp;</div>
<div>[Fix haddock parse error in X.A.LinkWorkspaces</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam <at> gmail.com</a>&gt;**20130528133448</div>
<div>&nbsp;Ignore-this: 42f05cf8ca9e6d1ffae3bd20666d87ab</div>
<div>]&nbsp;</div>
<div>[use Data.Default wherever possible, and deprecate the things it replaces</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel <at> wagner-home.com</a>&gt;**20130528013909</div>
<div>&nbsp;Ignore-this: 898458b1d2868a70dfb09faf473dc7aa</div>
<div>]&nbsp;</div>
<div>[eliminate references to defaultConfig</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel@...</a>&gt;**20130528005825</div>
<div>&nbsp;Ignore-this: 37ae613e4b943e99c5200915b9d95e58</div>
<div>]&nbsp;</div>
<div>[minimal change needed to get xmonad-contrib to build with xmonad's data-default patch</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel@...</a>&gt;**20130528001040</div>
<div>&nbsp;Ignore-this: 291e4f6cd74fc2b808062e0369665170</div>
<div>]&nbsp;</div>
<div>[Remove unneeded XSync call in Layout.ShowWName</div>
<div>Francesco Ariis &lt;<a href="mailto:fa-ml@...">fa-ml@...</a>&gt;**20130517153341</div>
<div>&nbsp;Ignore-this: 4d107c680572eff464c8f6ed9fabdd41</div>
<div>]&nbsp;</div>
<div>[Remove misleading comment: we definitely don't support ghc-6.6 anymore</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130514215851</div>
<div>&nbsp;Ignore-this: 2d071cb05709a16763d039222264b426</div>
<div>]&nbsp;</div>
<div>[Fix module name in comment of X.L.Fullscreen</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130514215727</div>
<div>&nbsp;Ignore-this: cb5cf18c301c5daf5e1a2527da1ef6bf</div>
<div>]&nbsp;</div>
<div>[Minor update to cabal file (adding modules &amp; maintainership)</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130514215632</div>
<div>&nbsp;Ignore-this: 82785e02e544e1f797799bed5b5d9be2</div>
<div>]&nbsp;</div>
<div>[Remove trailing whitespace in X.A.LinkWorkspaces</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam <at> gmail.com">vogt.adam@...</a>&gt;**20130514215421</div>
<div>&nbsp;Ignore-this: 5015ab4468e7931876eb66b019af804c</div>
<div>]&nbsp;</div>
<div>[Update documentation of LinkWorkspaces Module</div>
<div>
<a href="mailto:quesel@...">quesel@...enburg.de</a>**20110328072813</div>
<div>&nbsp;Ignore-this: da863534931181f551c9c54bc4076c05</div>
<div>]&nbsp;</div>
<div>[Added a module for linking workspaces</div>
<div>
<a href="mailto:quesel <at> informatik.uni-oldenburg.de">quesel@...</a>**20110210165018</div>
<div>&nbsp;Ignore-this: 1dba2164cc3387409873d33099596d91</div>
<div>&nbsp;</div>
<div>&nbsp;This module provides a way to link certain workspaces in a multihead setup.</div>
<div>&nbsp;That way, when switching to the first one the other heads display the linked</div>
<div>&nbsp;workspaces.</div>
<div>]&nbsp;</div>
<div>[Cache results from calcGap in ManageDocks</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130425155811</div>
<div>&nbsp;Ignore-this: e5076fdbdfc68bc159424dd4e0f14456</div>
<div>&nbsp;</div>
<div>&nbsp;<a href="http://www.haskell.org/pipermail/xmonad/2013-April/013670.html">http://www.haskell.org/pipermail/xmonad/2013-April/013670.html</a>
</div>
<div>]&nbsp;</div>
<div>[Remove unnecessary contexts from L.MultiToggle</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130217163356</div>
<div>&nbsp;Ignore-this: 6b0e413d8c3a58f62088c32a96c57c51</div>
<div>]&nbsp;</div>
<div>[Generalises modWorkspace to take any layout-transforming function</div>
<div>
<a href="mailto:gopsychonauts <at> gmail.com">gopsychonauts@...</a>**20130501151425</div>
<div>&nbsp;Ignore-this: 28c7dc1f6216bb1ebdffef5434ccbcbd</div>
<div>&nbsp;</div>
<div>&nbsp;modWorkspace already was capable of modifying the layout with an arbitrary</div>
<div>&nbsp;layout -&gt; layout function, but its original type restricted it such that it</div>
<div>&nbsp;could only apply a single LayoutModifier; this was often inconvenient, as for</div>
<div>&nbsp;example it was not possible simply to compose LayoutModifiers for use with</div>
<div>&nbsp;modWorkspace.</div>
<div>&nbsp;</div>
<div>&nbsp;This patch also reimplements onWorkspaces in terms of modWorkspaces, since with</div>
<div>&nbsp;the latter's less restrictive type this is now possible.</div>
<div>]&nbsp;</div>
<div>[since XMonad.Config.Dmwit mentions xmobar, we should include the associated .xmobarrc file</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel@...</a>&gt;**20130503194055</div>
<div>&nbsp;Ignore-this: 2f6d7536df81eb767262b79b60eb1b86</div>
<div>]&nbsp;</div>
<div>[warning police</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel <at> wagner-home.com</a>&gt;**20130502012700</div>
<div>&nbsp;Ignore-this: ae7412ac77c57492a7ad6c5f8f50b9eb</div>
<div>]&nbsp;</div>
<div>[XMonad.Config.Dmwit</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel <at> wagner-home.com">daniel@...</a>&gt;**20130502012132</div>
<div>&nbsp;Ignore-this: 7402161579fd2e191b60a057d955e5ea</div>
<div>]&nbsp;</div>
<div>[minor fixes to the haddock markup in X.L.IndependentScreens</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel <at> wagner-home.com">daniel@...</a>&gt;**20130411193849</div>
<div>&nbsp;Ignore-this: b6a139aa43fdb39fc1b86566c0c34c7a</div>
<div>]&nbsp;</div>
<div>[add whenCurrentOn to X.L.IndependentScreens</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel <at> wagner-home.com</a>&gt;**20130408225251</div>
<div>&nbsp;Ignore-this: ceea3d391f270abc9ed8e52ce19fb1ac</div>
<div>]&nbsp;</div>
<div>[Allow to specify the initial gaps' states in X.L.Gaps</div>
<div>Paul Fertser &lt;<a href="mailto:fercerpav@...">fercerpav@...</a>&gt;**20130222072232</div>
<div>&nbsp;Ignore-this: 31596d918d0050e36ce3f64f56205a64</div>
<div>]&nbsp;</div>
<div>[should bump X11 dependency, too, to make sure we have getAtomName</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel@...">daniel@...</a>&gt;**20130225180527</div>
<div>&nbsp;Ignore-this: 260711f27551f18cc66afeb7b4846b9f</div>
<div>]&nbsp;</div>
<div>[getAtomName is now defined in the X11 library</div>
<div>Daniel Wagner &lt;<a href="mailto:daniel <at> wagner-home.com">daniel@...</a>&gt;**20130225180323</div>
<div>&nbsp;Ignore-this: 3b9e17c234679e98752a47c37132ee4e</div>
<div>]&nbsp;</div>
<div>[Allow to limit maximum row count in X.Prompt completion window</div>
<div>Paul Fertser &lt;<a href="mailto:fercerpav@...">fercerpav@...</a>&gt;**20130221122050</div>
<div>&nbsp;Ignore-this: 923656f02996f2de2b1336275392c5f9</div>
<div>&nbsp;</div>
<div>&nbsp;On a keyboard-less device (such as a smartphone), where one has to use</div>
<div>&nbsp;an on-screen keyboard, the maximum completion window height must be</div>
<div>&nbsp;limited to avoid overlapping the keyboard.</div>
<div>]&nbsp;</div>
<div>[Note in U.NameActions that xmonad core can list default keys now</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130217233026</div>
<div>&nbsp;Ignore-this: 937bff636fa88171932d5192fe8e290b</div>
<div>]&nbsp;</div>
<div>[Export U.NamedActions.addDescrKeys per evaryont's request.</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130217232619</div>
<div>&nbsp;Ignore-this: a694a0a3ece70b52fba6e8f688d86344</div>
<div>]&nbsp;</div>
<div>[Add EWMH DEMANDS_ATTENTION support to UrgencyHook.</div>
<div>Maarten de Vries &lt;<a href="mailto:maarten@...">maarten@...</a>&gt;**20130212181229</div>
<div>&nbsp;Ignore-this: 5a4b314d137676758fad9ec8f85ce422</div>
<div>&nbsp;</div>
<div>&nbsp;Add support for the _NET_WM_STATE_DEMANDS_ATTENTION atom</div>
<div>&nbsp;by treating it the same way as the WM_HINTS urgency flag.</div>
<div>&nbsp;</div>
<div>]&nbsp;</div>
<div>[Unconditionally set _NET_WORKAREA in ManageDocks</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130117180851</div>
<div>&nbsp;Ignore-this: 9f57e53fba9573d8a92cf153beb7fe7a</div>
<div>]&nbsp;</div>
<div>[spawn command when no completion is available (if alwaysHighlight is True); changes commandToComplete in Prompt/Shell to complete the whole word instead of using getLastWord</div>
<div>
<a href="mailto:c.lopez@...">c.lopez@...</a>**20130209190456</div>
<div>&nbsp;Ignore-this: ca7d354bb301b555b64d5e76e31d10e8</div>
<div>]&nbsp;</div>
<div>[order-unindexed-ws-last</div>
<div>
<a href="mailto:matthewhague@...">matthewhague@...</a>**20120703222726</div>
<div>&nbsp;Ignore-this: 4af8162ee8b16a60e8fd62fbc915d3c0</div>
<div>&nbsp;</div>
<div>&nbsp;Changes the WorkspaceCompare module's comparison by index to put workspaces without an index last (rather than first).</div>
<div>]&nbsp;</div>
<div>[SpawnOn modification for issue 523</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130114014642</div>
<div>&nbsp;Ignore-this: 703f7dc0f800366b752f0ec1cecb52e5</div>
<div>&nbsp;</div>
<div>&nbsp;This moves the function to help clean up the `Spawner' to the ManageHook</div>
<div>&nbsp;rather than in functions like spawnOn. Probably it makes no difference, the</div>
<div>&nbsp;reason is because there's one manageSpawn function but many different so this</div>
<div>&nbsp;way there are less functions to write.</div>
<div>]&nbsp;</div>
<div>[Update L.TrackFloating.useTransient example code</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam <at> gmail.com">vogt.adam@...</a>&gt;**20130112041239</div>
<div>&nbsp;Ignore-this: e4e31cf1db742778c1d59d52fdbeed7a</div>
<div>&nbsp;</div>
<div>&nbsp;Suggest useTransient goes to the right of trackFloating which is the</div>
<div>&nbsp;configuration actually tested.</div>
<div>]&nbsp;</div>
<div>[Adapt ideas of issue 306 patch to a new modifier in L.TrackFloating</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130112035701</div>
<div>&nbsp;Ignore-this: d54d27b71b97144ef0660f910fd464aa</div>
<div>]&nbsp;</div>
<div>[Make X.A.CycleWS not rely on hidden WS order</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20130109023328</div>
<div>&nbsp;Ignore-this: 8717a154b33253c5df4e9a0ada4c2c3e</div>
<div>]&nbsp;</div>
<div>[Add X.H.WorkspaceHistory</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon <at> gmail.com</a>&gt;**20130109023307</div>
<div>&nbsp;Ignore-this: c9e7ce33a944facc27481dde52c7cc80</div>
<div>]&nbsp;</div>
<div>[Allow removing arbitrary workspaces</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20121231214343</div>
<div>&nbsp;Ignore-this: 6fce4bd3d0c5337e5122158583138e74</div>
<div>]&nbsp;</div>
<div>[Remove first-hidden restriction from X.A.DynamicWorkspaces.removeWorkspace'</div>
<div>Dmitri Iouchtchenko &lt;<a href="mailto:johnnyspoon@...">johnnyspoon@...</a>&gt;**20121231214148</div>
<div>&nbsp;Ignore-this: 55fb0859e9a5f476a834ecbdb774aac8</div>
<div>]&nbsp;</div>
<div>[Add authorspellings file for `darcs show authors'.</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130101040031</div>
<div>&nbsp;Ignore-this: c3198072ebc6a71d635bec4d8e2c78fd</div>
<div>&nbsp;</div>
<div>&nbsp;This authorspellings file includes a couple people who've contributed to xmonad</div>
<div>&nbsp;(not XMonadContrib). When people have multiple addresses, the most recent one</div>
<div>&nbsp;has been picked.</div>
<div>]&nbsp;</div>
<div>[TAG 0.11</div>
<div>Adam Vogt &lt;<a href="mailto:vogt.adam@...">vogt.adam@...</a>&gt;**20130101014231</div>
<div>&nbsp;Ignore-this: 57cf32412fd1ce912811cb7fafe930f5</div>
<div>]&nbsp;</div>
<div>Patch bundle hash:</div>
<div>a028a7816d7ae8b3965477f94af4d3a1f7f92a13</div>
<div><br></div>
<div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">
<div>brandon s allbery kf8nh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sine nomine associates</div>
<div>
<a href="mailto:allbery.b@..." target="_blank">allbery.b@...</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="mailto:ballbery@..." target="_blank">ballbery@...</a>
</div>
<div>unix, openafs, kerberos, infrastructure, xmonad &nbsp; &nbsp; &nbsp; &nbsp;<a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a>
</div>
</div></div>
</div>
</div></div>
Auke Booij | 14 Apr 14:41 2015

WaylandMonad

A few weeks ago, I sent in a Google Summer of Code application for the
haskell.org organization to work on porting Xmonad to wayland. The
haskell organization has asked me to find a mentor for my application,
which is the main reason for this email.

If you are
1. an adult (sorry kids, Google's rules)
2. experienced with the Xmonad source
3. interested in wayland
4. willing to spend some time this summer on mentoring me
then please contact me or someone in the haskell community to discuss
mentoring options. The deadline for proposal matching is the 24th of
April, so please contact me within this week (or better yet, as soon
as possible).

Without a mentor, I cannot get accepted for GSoC. I am already up to
speed on wayland, so I think any Xmonad developer with some free time
would make a great mentor.

I attached my GSoC application below.

Any comment on making Xmonad work on wayland is welcome as well. My
current plan is to fork Xmonad and replace all the X bits by wayland
bits - see also my proposal below.

Greetings,
Auke.

Abstract
===
XMonad has, for a long time, been a flagship product of the Haskell
community. With the arrival of wayland, XMonad is bound to look stuck
in the past, and it's time for a port. Thanks to my previous work on
wayland-related haskell libraries, this is now a viable project.

Proposal
===

Background
---
X11 has long been the de facto standard way for applications to
display graphical user interfaces on the screen. For various reasons,
a new project called wayland has been started, that can be seen as a
successor of the X ecosystem, or at least can be seen as something
that will play a very important role. Among others, GNOME is already
working on wayland support, and plans to make it fully supported by
version 3.18. This shows the relevance of wayland.

XMonad is a flagship product of the Haskell community that is often
cited as an example of the applicability of Haskell: its real world
value. XMonad is a compositor (aka window manager) for the X11
ecosystem.

In the new wayland ecosystem, one cannot reuse X11 compositors: they
need to be partially rewritten.

Goal
---
I intend to fork XMonad and make it into a wayland compositor. Since
the general ideas behind the X11 and the wayland protocol are not too
different, this should be doable: we are still working with pointers
and windows and input and output and renderings and messages. However,
the wayland setup is technically very different from X11, since the
central X11 server has been replaced by the compositor itself, and
this means some very foundational code will need to be rewritten.

I am the author of hayland [1], the haskell bindings to the wayland C
library, as well as haskell-xkbcommon [2], the haskell bindings to the
xkbcommon C library. With these two projects in place, the time is
ripe for a wayland compositor written in haskell: the preliminaries
are mostly there.

As part of this project, I will have to invest some time in these two
bindings projects as well (since they are quite new and have had
little testing). For this reason, I intend to keep the scope of this
project limited, and focus on getting some version of XMonad running
on Wayland.

I do not intend to change the architecture of XMonad, except wherever
this would not require much more investment of time, and only as
wished by the community. In other words: if you have anything that I
should change about XMonad, and it is easy to switch to this new
thing, then I'll use it. Any serious architectural changes will need
to take place in a later stage.

Deliverables
---
- A working wayland compositor written in wayland, based on XMonad
- Documentation of the source code (i.e. a technical document), user
documentation (where this differs from XMonad)
- Roadmap for further work: how should this project be continued into
a next iteration of the XMonad project?

Roadmap
---
April/May: properly work my way through the XMonad source, and
document things that will need changing

June: Hack until it's working

June+July: More hacking, also documentation

August: Prepare a proper release, clean up code

Bio
---
I am currently studying for a Master of Logic in Amsterdam, and have a
Master of Advanced Studies in Mathematics from Cambridge, UK, a BSc in
Applied Mathematics and a BSc in Electrical Engineering (both from TU
Delft).

I have previously successfully finished GSoC (2010, with Gentoo) and
SOCIS (in 2013, with PyBRML) (SOCIS is a GSoC-like program managed by
the European Space Agency).

I am the author of hayland [1], the haskell bindings to the wayland C
library, as well as haskell-xkbcommon [2], the haskell bindings to the
xkbcommon C library.

The name of this fork is up for discussion.

[1] https://github.com/tulcod/haskell-wayland

[2] https://github.com/tulcod/haskell-xkbcommon
codesite | 11 Apr 09:59 2015
Picon

Issue 601 in xmonad: xmonad-contrib fails to build with cabal install

Status: New
Owner: ----

New issue 601 by Ian... <at> gmail.com: xmonad-contrib fails to build with cabal  
install
https://code.google.com/p/xmonad/issues/detail?id=601


What steps will reproduce the problem?
1. cabal install xmonad
2. cabal install xmonad-contrib

Building xmonad-contrib-0.11.4...
Preprocessing library xmonad-contrib-0.11.4...
[  1 of 226] Compiling XMonad.Util.StringProp ( XMonad/Util/StringProp.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Util/StringProp.o )
[  2 of 226] Compiling XMonad.Util.Replace ( XMonad/Util/Replace.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Util/Replace.o )
[  3 of 226] Compiling XMonad.Util.CustomKeys ( XMonad/Util/CustomKeys.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Util/CustomKeys.o )
[  4 of 226] Compiling XMonad.Layout.ThreeColumns (  
XMonad/Layout/ThreeColumns.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/ThreeColumns.o )
[  5 of 226] Compiling XMonad.Layout.StackTile (  
XMonad/Layout/StackTile.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/StackTile.o )
[  6 of 226] Compiling XMonad.Layout.Spiral ( XMonad/Layout/Spiral.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Spiral.o )
[  7 of 226] Compiling XMonad.Layout.Roledex ( XMonad/Layout/Roledex.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Roledex.o )
[  8 of 226] Compiling XMonad.Layout.ResizableTile (  
XMonad/Layout/ResizableTile.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/ResizableTile.o )
[  9 of 226] Compiling XMonad.Layout.OneBig ( XMonad/Layout/OneBig.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/OneBig.o )
[ 10 of 226] Compiling XMonad.Layout.MultiToggle (  
XMonad/Layout/MultiToggle.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/MultiToggle.o )
[ 11 of 226] Compiling XMonad.Layout.MultiColumns (  
XMonad/Layout/MultiColumns.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/MultiColumns.o )
[ 12 of 226] Compiling XMonad.Layout.MosaicAlt (  
XMonad/Layout/MosaicAlt.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/MosaicAlt.o )
[ 13 of 226] Compiling XMonad.Layout.Mosaic ( XMonad/Layout/Mosaic.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Mosaic.o )
[ 14 of 226] Compiling XMonad.Layout.LayoutBuilder (  
XMonad/Layout/LayoutBuilder.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/LayoutBuilder.o )
[ 15 of 226] Compiling XMonad.Layout.HintedGrid (  
XMonad/Layout/HintedGrid.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/HintedGrid.o )
[ 16 of 226] Compiling XMonad.Layout.Simplest ( XMonad/Layout/Simplest.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Simplest.o )
[ 17 of 226] Compiling XMonad.Util.Stack ( XMonad/Util/Stack.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Util/Stack.o )
[ 18 of 226] Compiling XMonad.Layout.Groups ( XMonad/Layout/Groups.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Groups.o )
[ 19 of 226] Compiling XMonad.Layout.GridVariants (  
XMonad/Layout/GridVariants.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/GridVariants.o )
[ 20 of 226] Compiling XMonad.Layout.Grid ( XMonad/Layout/Grid.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Grid.o )
[ 21 of 226] Compiling XMonad.Layout.FixedColumn (  
XMonad/Layout/FixedColumn.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/FixedColumn.o )
[ 22 of 226] Compiling XMonad.Layout.Dishes ( XMonad/Layout/Dishes.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Layout/Dishes.o )
[ 23 of 226] Compiling XMonad.Util.Invisible ( XMonad/Util/Invisible.hs,  
dist/dist-sandbox-bce91598/build/XMonad/Util/Invisible.o )

XMonad/Util/Invisible.hs:31:59:
     Not in scope: type constructor or class ‘Applicative’
cabal: Error: some packages failed to install:
xmonad-contrib-0.11.4 failed during the building phase. The exception was:
ExitFailure 1


tried with ghc 7.8.3 and 7.8.4
cabal-install version 1.20.0.3
Tried to install to a sandbox

-- 
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

_______________________________________________
xmonad mailing list
xmonad <at> haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
codesite | 11 Apr 09:57 2015
Picon

Issue 600 in xmonad: conflicting install instructions

Status: New
Owner: ----

New issue 600 by Ian...@...: conflicting install instructions
https://code.google.com/p/xmonad/issues/detail?id=600

What steps will reproduce the problem?
1. http://xmonad.org
2. follow link to http://xmonad.org/download.html
3. read: cabal install http://code.haskell.org/xmonad/xmonad.tar.gz
4. follow link to http://xmonad.org/intro.html
5. read conflicting instruction: cabal install xmonad

Let's at least have a consistently documented and supported way to build,  
especially since building xmonad is quite prone to being broken in  
different circumstances.

--

-- 
You received this message because this project is configured to send all  
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

Gmane