* Previously I was removing empty workspaces after switching away from
them, but this seemed to cause a bug when workspaces were defined
statically in your XMonad configuration.
* Next up: a function to delete an existing project.
Reorder the application of hooks so that users' config is honored.
Notably, this means setWMName works in startupHook instead of
needing to do it repeatedly in logHook.
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.
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.
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.
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.
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.
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.)