As discussed in the previous thread generate-configs.sh needed some
usability improvements, so I've implemented them in this patch as new
command line options:
* --main specifies the path to the main repository (required)
* --contrib specifies the path to the contrib repository (required)
* --output specifies a different output directory than the default which
is taken from the value of --contrib (optional)
* --active tells the script to insert the config data as live code
instead of the default commented out code (optional)
And don't forget --help. ;)
I also renamed the script to simply "generate-configs" because the ".sh"
was becoming obnoxious.
--
Alex Tarkovsky
New patches:
[New features for generate-configs.sh; renamed to generate-configs
Alex Tarkovsky **20071013090251] {
move ./scripts/generate-configs.sh ./scripts/generate-configs
hunk ./scripts/generate-configs 3
-# generate-configs.sh - Docstring parser for generating xmonad build configs
-# with default settings for extensions
+# generate-configs - Docstring parser for generating xmonad build configs with
+# default settings for extensions
hunk ./scripts/generate-configs 12
-# Usage: generate-configs.sh PATH_TO_CONTRIBS
+# Usage: generate-configs [ OPTIONS ] --main MAIN_DIR --contrib CONTRIB_DIR
hunk ./scripts/generate-configs 14
-# Run this script from the directory containing xmonad's main Config.hs and
-# xmonad.cabal files, otherwise you'll need to change the value of
-# $REPO_DIR_BASE below.
+# OPTIONS:
+# --active, -a Insert data in active mode (default: passive)
+# --contrib, -c CONTRIB_DIR Path to contrib repository base directory
+# --help, -h Show help
+# --main, -m MAIN_DIR Path to main repository base directory
+# --output, -o OUTPUT_DIR Output directory (default: CONTRIB_DIR)
+#
+# Data parsed from the extension source files is inserted into Config.hs in
+# either active or passive mode. The default is passive mode, in which the
+# inserted data is commented out. The --active option inserts the data
+# uncommented. Data inserted into xmonad.cabal is always inserted in active
+# mode regardless of specified options.
hunk ./scripts/generate-configs 102
-if [[ -z "$1" || $# > 1 || ! -d "$1" ]] ; then
- echo "Usage: generate-configs.sh PATH_TO_CONTRIB"
- exit 1
-fi
-
-REPO_DIR_BASE="."
-
-CABAL_FILE_BASE="${REPO_DIR_BASE}/xmonad.cabal"
-CABAL_FILE_CONTRIB="${1}/xmonad.cabal"
-
-CONFIG_FILE_BASE="${REPO_DIR_BASE}/Config.hs"
-CONFIG_FILE_CONTRIB="${1}/Config.hs"
-
hunk ./scripts/generate-configs 130
-# Prefix applied to inserted values after indent strings have been applied.
-INS_PREFIX_CABALBUILDDEP=", "
+# Prefix applied to inserted passive data after indent strings have been applied.
hunk ./scripts/generate-configs 138
-cp -f "${CABAL_FILE_BASE}" "${CABAL_FILE_CONTRIB}"
-cp -f "${CONFIG_FILE_BASE}" "${CONFIG_FILE_CONTRIB}"
+# Prefix applied to inserted active data after indent strings have been applied.
+ACTIVE_INS_PREFIX_CABALBUILDDEP=", "
+ACTIVE_INS_PREFIX_DEF=""
+ACTIVE_INS_PREFIX_IMPORT="import "
+ACTIVE_INS_PREFIX_KEYBIND=""
+ACTIVE_INS_PREFIX_KEYBINDLIST=""
+ACTIVE_INS_PREFIX_LAYOUT=""
+ACTIVE_INS_PREFIX_MOUSEBIND=""
hunk ./scripts/generate-configs 147
-for extension_srcfile in $(ls --color=never -1 "${1}"/*.hs | head -n -1 | sort -r) ; do
- for tag in $TAG_CABALBUILDDEP \
- $TAG_DEF \
- $TAG_IMPORT \
- $TAG_KEYBIND \
- $TAG_KEYBINDLIST \
- $TAG_LAYOUT \
- $TAG_MOUSEBIND ; do
+# Don't touch these
+opt_active=0
+opt_contrib=""
+opt_main=""
+opt_output=""
hunk ./scripts/generate-configs 153
- ifs="$IFS"
- IFS=$'\n'
- tags=( $(sed -n -r -e "s/^.*--\s*${tag}\s//p" "${extension_srcfile}") )
- IFS="${ifs}"
+generate_configs() {
+ for extension_srcfile in $(ls --color=never -1 "${opt_contrib}"/*.hs | head -n -1 | sort -r) ; do
+ for tag in $TAG_CABALBUILDDEP \
+ $TAG_DEF \
+ $TAG_IMPORT \
+ $TAG_KEYBIND \
+ $TAG_KEYBINDLIST \
+ $TAG_LAYOUT \
+ $TAG_MOUSEBIND ; do
hunk ./scripts/generate-configs 163
- case $tag in
- $TAG_CABALBUILDDEP) ins_indent=$INS_INDENT_CABALBUILDDEP
- ins_marker=$INS_MARKER_CABALBUILDDEP
- ins_prefix=$INS_PREFIX_CABALBUILDDEP
- ;;
- $TAG_DEF) ins_indent=$INS_INDENT_DEF
- ins_marker=$INS_MARKER_DEF
- ins_prefix=$INS_PREFIX_DEF
- ;;
- $TAG_IMPORT) ins_indent=$INS_INDENT_IMPORT
- ins_marker=$INS_MARKER_IMPORT
- ins_prefix=$INS_PREFIX_IMPORT
- ;;
- $TAG_KEYBIND) ins_indent=$INS_INDENT_KEYBIND
- ins_marker=$INS_MARKER_KEYBIND
- ins_prefix=$INS_PREFIX_KEYBIND
- ;;
- $TAG_KEYBINDLIST) ins_indent=$INS_INDENT_KEYBINDLIST
- ins_marker=$INS_MARKER_KEYBINDLIST
- ins_prefix=$INS_PREFIX_KEYBINDLIST
- ;;
- $TAG_LAYOUT) ins_indent=$INS_INDENT_LAYOUT
- ins_marker=$INS_MARKER_LAYOUT
- ins_prefix=$INS_PREFIX_LAYOUT
- ;;
- $TAG_MOUSEBIND) ins_indent=$INS_INDENT_MOUSEBIND
- ins_marker=$INS_MARKER_MOUSEBIND
- ins_prefix=$INS_PREFIX_MOUSEBIND
- ;;
- esac
+ ifs="$IFS"
+ IFS=$'\n'
+ tags=( $(sed -n -r -e "s/^.*--\s*${tag}\s//p" "${extension_srcfile}") )
+ IFS="${ifs}"
+
+ case $tag in
+ $TAG_CABALBUILDDEP) ins_indent=$INS_INDENT_CABALBUILDDEP
+ ins_marker=$INS_MARKER_CABALBUILDDEP
+ ins_prefix=$ACTIVE_INS_PREFIX_CABALBUILDDEP
+ ;;
+ $TAG_DEF) ins_indent=$INS_INDENT_DEF
+ ins_marker=$INS_MARKER_DEF
+ ins_prefix=$INS_PREFIX_DEF
+ ;;
+ $TAG_IMPORT) ins_indent=$INS_INDENT_IMPORT
+ ins_marker=$INS_MARKER_IMPORT
+ ins_prefix=$INS_PREFIX_IMPORT
+ ;;
+ $TAG_KEYBIND) ins_indent=$INS_INDENT_KEYBIND
+ ins_marker=$INS_MARKER_KEYBIND
+ ins_prefix=$INS_PREFIX_KEYBIND
+ ;;
+ $TAG_KEYBINDLIST) ins_indent=$INS_INDENT_KEYBINDLIST
+ ins_marker=$INS_MARKER_KEYBINDLIST
+ ins_prefix=$INS_PREFIX_KEYBINDLIST
+ ;;
+ $TAG_LAYOUT) ins_indent=$INS_INDENT_LAYOUT
+ ins_marker=$INS_MARKER_LAYOUT
+ ins_prefix=$INS_PREFIX_LAYOUT
+ ;;
+ $TAG_MOUSEBIND) ins_indent=$INS_INDENT_MOUSEBIND
+ ins_marker=$INS_MARKER_MOUSEBIND
+ ins_prefix=$INS_PREFIX_MOUSEBIND
+ ;;
+ esac
hunk ./scripts/generate-configs 199
- # Insert in reverse so values will ultimately appear in correct order.
- for i in $( seq $(( ${#tags[*]} - 1 )) -1 0 ) ; do
- [ -z "${tags[i]}" ] && continue
- if [[ $tag == $TAG_CABALBUILDDEP ]] ; then
- sed -i -r -e "s/${ins_marker}/\\0${ins_prefix}${tags[i]}/" "${CABAL_FILE_CONTRIB}"
- else
- sed -i -r -e "/${ins_marker}/{G;s/$/${ins_indent}${ins_prefix}${tags[i]}/;}" "${CONFIG_FILE_CONTRIB}"
+ # Insert in reverse so values will ultimately appear in correct order.
+ for i in $( seq $(( ${#tags[*]} - 1 )) -1 0 ) ; do
+ [ -z "${tags[i]}" ] && continue
+ if [[ $tag == $TAG_CABALBUILDDEP ]] ; then
+ sed -i -r -e "s/${ins_marker}/\\0${ins_prefix}${tags[i]}/" "${CABAL_FILE}"
+ else
+ sed -i -r -e "/${ins_marker}/{G;s/$/${ins_indent}${ins_prefix}${tags[i]}/;}" "${CONFIG_FILE}"
+ fi
+ done
+
+ if [[ $tag != $TAG_CABALBUILDDEP && -n "${tags}" ]] ; then
+ ins_group_comment="${ins_indent}-- For extension $(basename $extension_srcfile .hs):"
+ sed -i -r -e "/${ins_marker}/{G;s/$/${ins_group_comment}/;}" "${CONFIG_FILE}"
hunk ./scripts/generate-configs 214
+ done
+}
+
+parse_opts() {
+ [[ -z "$1" ]] && show_usage 1
+
+ while [[ $# > 0 ]] ; do
+ case "$1" in
+ --active|-a) opt_active=1
+ shift ;;
+
+ --contrib|-c) shift
+ if [[ -z "$1" || ! -d "$1" ]] ; then
+ echo "Error: Option --contrib requires a directory as argument. See: generate-configs -h"
+ exit 1
+ fi
+ opt_contrib="$1"
+ shift ;;
+
+ --help|-h) show_usage ;;
+
+ --main|-m) shift
+ if [[ -z "$1" || ! -d "$1" ]] ; then
+ echo "Error: Option --main requires a directory as argument. See: generate-configs -h"
+ exit 1
+ fi
+ opt_main="$1"
+ shift ;;
hunk ./scripts/generate-configs 243
- if [[ $tag != $TAG_CABALBUILDDEP && -n "${tags}" ]] ; then
- ins_group_comment="${ins_indent}-- For extension $(basename $extension_srcfile .hs):"
- sed -i -r -e "/${ins_marker}/{G;s/$/${ins_group_comment}/;}" "${CONFIG_FILE_CONTRIB}"
- fi
+ --output|-o) shift
+ if [[ -z "$1" || ! -d "$1" ]] ; then
+ echo "Error: Option --output requires a directory as argument. See: generate-configs -h"
+ exit 1
+ fi
+ opt_output="$1"
+ shift ;;
+
+ -*) echo "Error: Unknown option ${1}. See: generate-configs -h"
+ exit 1 ;;
+
+ *) show_usage 1 ;;
+ esac
hunk ./scripts/generate-configs 257
-done
+
+ if [[ -z "$opt_main" ]] ; then
+ echo "Error: Missing required option --main. See: generate-configs -h"
+ exit 1
+ fi
+
+ if [[ -z "$opt_contrib" ]] ; then
+ echo "Error: Missing required option --contrib. See: generate-configs -h"
+ exit 1
+ fi
+}
+
+show_usage() {
+cat << EOF
+Usage: generate-configs [ OPTIONS ] --main MAIN_DIR --contrib CONTRIB_DIR
+
+OPTIONS:
+ --active, -a Insert data in active mode (default: passive)
+ --contrib, -c CONTRIB_DIR Path to contrib repository base directory
+ --help, -h Show help
+ --main, -m MAIN_DIR Path to main repository base directory
+ --output, -o OUTPUT_DIR Output directory (default: CONTRIB_DIR)
+EOF
+ exit ${1:-0}
+}
+
+parse_opts $*
+
+[[ -z "$opt_output" ]] && opt_output="$opt_contrib"
+
+CABAL_FILE="${opt_output}/xmonad.cabal"
+CONFIG_FILE="${opt_output}/Config.hs"
+
+cp -f "${opt_main}/xmonad.cabal" "${CABAL_FILE}"
+cp -f "${opt_main}/Config.hs" "${CONFIG_FILE}"
+
+if [[ $opt_active == 1 ]] ; then
+ INS_PREFIX_DEF=$ACTIVE_INS_PREFIX_DEF
+ INS_PREFIX_IMPORT=$ACTIVE_INS_PREFIX_IMPORT
+ INS_PREFIX_KEYBIND=$ACTIVE_INS_PREFIX_KEYBIND
+ INS_PREFIX_KEYBINDLIST=$ACTIVE_INS_PREFIX_KEYBINDLIST
+ INS_PREFIX_LAYOUT=$ACTIVE_INS_PREFIX_LAYOUT
+ INS_PREFIX_MOUSEBIND=$ACTIVE_INS_PREFIX_MOUSEBIND
+fi
+
+generate_configs
}
Context:
[remove old TODOs (fix darcs conflict)
Devin Mullins **20071012154859]
[haddock improvement
Devin Mullins **20071012145447]
[MetaModule.hs: add RunInXTerm and XUtils.
Joachim Fasting **20071012114252]
[Add documentation to Dishes.hs
nornagon@gmail.com**20071012072953]
[doco fix: s/SomeLayout/Layout/g
Devin Mullins **20071012025953]
[Haddock fixes
Andrea Rossato **20071012100416]
[Fix EwmhDesktops, ManageDocks, and SetWMName compilation for amd64
Alex Tarkovsky **20071010213853]
[Export hasTag
Karsten Schoelzel **20071011095504]
[Improve readability of RotView
Eric Mertens **20071011175200]
[Added wmii like actions extension.
Juraj Hercek **20071010201452]
[Remove spurious output from ShellPrompt
Spencer Janssen **20071011182816]
[add/reformat (commented out) tracing code to SwitchTrans
l.mai@web.de**20071011022139]
[NoBorders bugfix (I hope)
l.mai@web.de**20071011021756
David Roundy should probably have a look at this, but this change makes sense
to me. Plus it makes NoBorders work in combination with SwitchTrans. :-)
]
[XSelection.hs: Implement Andrea's idea for handling non-UTF-8 string cases
gwern0@gmail.com**20071010020616]
[Add XSelection to MetaModule
Spencer Janssen **20071010160340]
[XSelection.hs: a new module for XMonadContrib dealing with copy-and-paste
gwern0@gmail.com**20071008222706
This is based on Andrea Rossato's standalone tools and is meant for integration straight into a Config.hs. It offers two main functions, 'getSelection' and 'putSelection', whose names should be self-explanatory.
]
[Add WindowPrompt: the XPrompt equivalent of WindowBringer
Andrea Rossato **20071009164047]
[WindowBringer: export windowMapWith used by WindowPrompt
Andrea Rossato **20071009163505]
[MetaModule: added WindowPrompt
Andrea Rossato **20071009163445]
[LayoutScreens: update docs
Spencer Janssen **20071008161441]
[TwoPane: update docs
Spencer Janssen **20071008161345]
[DragPane: no need to deal with expose events in this simplified version
Andrea Rossato **20071008143801]
[make createNewWindow set background and foreground to a given color.
David Roundy **20071008125206
This means we don't need to draw colors that are this color. Also
speeds up redrawing, since the X server can do all the drawing on its
own, without talking with xmonad.
]
[Fix more LANGUAGE pragmas
Shachaf Ben-Kiki **20071008115229
This patch should go after my other one -- I'd missed some files that used
-fglasgow-exts.
]
[Add LANGUAGE pragams
Shachaf Ben-Kiki **20071008022141
It seems that GHC 6.6 just enables -fglasgow-exts when it sees any LANGUAGE
pragma, so not all of them were added; this patch adds the rest of them, which
is necessary for xmonad to compile in GHC >=6.7.
]
[fix SwitchTrans some more
l.mai@web.de**20071007224116]
[update doco
Devin Mullins **20071007215906]
[add bringMenu, and extract duplication
Devin Mullins **20071007215532]
[DragPane must handle ExposeEvent too
Andrea Rossato **20071008074702]
[ShellPrompt.hs: add getShellCompl to export list
gwern0@gmail.com**20071007220236
getShellCompl is useful for writing prompts in Config.hs or even full standalone prompts; and personally, if a small utility function like 'split' can be exported, how much more so something useful like getShellCompl?
]
[Tabbed and XPrompt updated to lates Extras changes
Andrea Rossato **20071007163825]
[doc fixes for ManageDocks
Devin Mullins **20071007204016]
[fix(?) SwitchTrans (makes noBorders work again)
l.mai@web.de**20071007193055]
[avoid compiler warning in FlexibleManipulate
l.mai@web.de**20071007163509]
[update NoBorders.hs configuration documentation
gwern0@gmail.com**20071007190621
It seems 'noBorder full' no longer hacks it.
]
[d'oh, add WindowBringer to MetaModule
Devin Mullins **20071007185138]
[Maybe? What Maybe? (rollback earlier dmenu change)
Devin Mullins **20071007185915]
[Enter WindowBringer, Bringer of Windows.
Devin Mullins **20071007173633]
[add dmenuMap function
Devin Mullins **20071007172543]
[ShellPrompt: check for executables and better error handling
Andrea Rossato **20071007110133
Code contributed by Spencer (basically I just removed FilePath
depenency).
]
[Move my NextWorkspace functionality into CycleWS
mail@joachim-breitner.de**20071007103933
Hi,
This patch merges the additional functionality of my NextWorkspace into CycleWS,
using a compatible interface for what was there before.
Greetings,
Joachim
]
[ManageDocks now handles STRUT windows as well
mail@joachim-breitner.de**20071007103116
It now also detects window with STRUT set and modifies the gap accordingly.
Cheveats:
* Only acts on STRUT apps on creation, not if you move or close them
* To reset the gap, press Mod-b twice and restart xmonad (Mod-q)
]
[NextWorkspace haddock improvement
mail@joachim-breitner.de**20071007083216
I just added to the docs how to move a window to the next workspace
_and_ switch to that (by >>’ing the two actions). Some users (like me, it
seems) probably prefer that behaviour.
Greetings,
Joachim
]
[NextWorkspace: Go forward or backward
mail@joachim-breitner.de**20071006233010
Hi,
inspired by RotView, I implemented an Extension that allows the user to go
forward or backward in the list of workspaces, or to move the current
window to the next or previous workspace. Haddock included. Works here, but
hardly tested (and while tired).
Cu torrow @ HacII, if you are there.
Greetings,
Joachim
]
[Better EWMH support
mail@joachim-breitner.de**20071007091648
Yay, SetWMName contains just what I need! Thanks Ivan, that saved me quite
some work. Now the panel switch should work even when you start with xmonad
right away, and don’t run it after metacity has run before :-]
Greetings,
Joachim
]
[Add ShellPrompt to MetaModule
Andrea Rossato **20071007075937]
[Tabbed: updated to the last (unannounced) API changes
Andrea Rossato **20071007072018]
[ShellPrompt: fromMaybe requires importing Data.Maybe
Andrea Rossato **20071007070148]
[add MouseGestures to MetaModule
l.mai@web.de**20071006230735]
[re-add SwitchTrans to MetaModule
l.mai@web.de**20071006230711]
[add MouseGestures.hs to darcs
l.mai@web.de**20071006230425]
[document noBorders breakage
l.mai@web.de**20071006230316]
[Replace -fglasgow-exts with LANGUAGE pragma in WindowNavigation.hs
nornagon@gmail.com**20071006224156]
[Replace -fglasgow-exts with LANGUAGE pragma in ResizableTile.hs
nornagon@gmail.com**20071006223156]
[Replace -fglasgow-exts with LANGUAGE pragma in MosaicAlt.hs
nornagon@gmail.com**20071006223025]
[Replace -fglasgow-exts with LANGUAGE pragma in Grid.hs
nornagon@gmail.com**20071006222320]
[Replace -fglasgow-exts with LANGUAGE pragma in Dishes.hs
nornagon@gmail.com**20071006222155]
[update SwitchTrans for the new layout system
l.mai@web.de**20071006212008]
[Two new dynamic log functions that display the title of the currently focused window
Christian Thiemann **20071006173113
I liked the window-title-in-statusbar feature of dwm very much and wanted to
have that in XMonad as well. Somewhere on the net I found some code to put
into Config.hs (and sorry, that was last week and I already forgot where I got
it from) which I modified and put into the DynamicLog extension. One can now
set the logHook in Config.hs either to dynamicLogWithTitle to get the usual
layout description and workspace list plus window title enclosed in angle
brackets, or dynamicLogWithTitleColored "white" (or "red" etc.) to have xmonad
print out some ^fg() markers for dzen to display the window title in the given
color.
Some windows (like terminals or browsers) change their window title from time
to time but xmonad does not recognize this. So I started learning Haskell to
provide patches for X11-extras and xmonad so that PropertyNotify events are
captured and, if the event notifies about a WM_NAME property change, call the
logHook to update the status bar.
Hope you find this useful,
Christian
]
[change Dmenu functions to return IO/X (Maybe String)
Devin Mullins **20071006070959
dmenu exits with code 1 when you hit Escape, and I wanna create a contrib that
takes advantage of that.
This required changes in four contribs (Commands, DirectoryPrompt, ShellPrompt,
and WorkspaceDir), and might require changes in users' Configs. Also, I'm not
sure some of the changes I made to the client code are very Haskelly. Would
appreciate input there.
]
[fix problem found by Heffalump in CopyWindow.
David Roundy **20071005143746]
[(un)Manage Docks based on WINDOW_TYPE
mail@joachim-breitner.de**20071006132802
Hi,
this is a replacement for the example code in Config.hs that should detect
and unamange, for example, the gnome-panel.
The problem with that code is that it also unamangs dialog boxes from gnome-panel
which then are not usable (no keyboard intput, at least here).
Greetings,
Joachim
]
[MetaModule.hs: add Dishes.
Joachim Fasting **20071006123900]
[Dishes.hs: needs -fglasgow-exts.
Joachim Fasting **20071006123851]
[ResizableTile.hs: needs -fglasgow-exts.
Joachim Fasting **20071006123550]
[MetaModule.hs: whitespace.
Joachim Fasting **20071006123540]
[MetaModule.hs: add some missing imports.
Joachim Fasting **20071006123525]
[MetaModule.hs: typo.
Joachim Fasting **20071006123214]
[NoBorders.hs: unused bindings.
Joachim Fasting **20071006102316]
[NoBorders.smartBorders: add type signature.
Joachim Fasting **20071006102210]
[Grid.hs: needs -fglasgow-exts.
Joachim Fasting **20071006102204]
[EwmhWindows wrap up for inclusion
mail@joachim-breitner.de**20071006110529
Now with haddock documentation, a proper header and nicer, warningfree code, ready
for a first release and inclusion in XMonadConrib. It works for me, but needs more
testing. If you run xmonad with gnome-panel or something similar, please try it.
Thanks,
Joachim
]
[EwmhDesktops initial patch
mail@joachim-breitner.de**20071005222540
What works so far, quit hackerish:
* Number of Workspaces
* Active current workspace
* Names of workspaces
More to come..
]
[get rid of obviated comment
Devin Mullins **20071006055652]
[get rid of duplicate mapWorkspaces function
Devin Mullins **20071006055404]
[add Grid to MetaModule
l.mai@web.de**20071005230032]
[basic docs for Grid
l.mai@web.de**20071005225934]
[import Grid.hs into repository
l.mai@web.de**20071005013412]
[Dishes layout. Stacks windows underneath masters.
nornagon@gmail.com**20071005230038]
[ShellPrompt: removed readline dependency and added escape character support
Andrea Rossato **20071005112250]
[XPrompt: added ^A and ^E and more
Andrea Rossato **20071005112122
- added ^A (start of line) and ^E (end of line)
- added support for escaping spaces (see an example of it's use in the
new ShellPrompt)
- some code cleanup: I'm now tracking changes to XPrompt also in
modified version that supports i18n. This is the reason of some name
changes.
]
[Tabbed: check if we really have a window to focus
Andrea Rossato **20071005111733]
[add QC tests for SwapWorkspaces
Devin Mullins **20071004081534
run with -i..:../tests
]
[add man page doco
Devin Mullins **20071004081504]
[Maximize layout modifier
Jamie Webb**20071004061202]
[Add ^K and ^U support to XPrompt
Eric Mertens **20071002210814]
[Rename ResizableTile.Tall to ResizableTall
Jamie Webb**20071003023000
Having two layouts named Tall was upsetting the deserialization code.
]
[MosaicAlt take 2
Jamie Webb**20071003162533]
[Mark modules that haven't been ported to the new API yet.
Spencer Janssen **20071003164516
These need to be ported or removed before the 0.4 release.
]
[More LANGUAGE pragmas
Spencer Janssen **20071003164257]
[Add XPropManage to MetaModule
Spencer Janssen **20071003164236]
[add swapping capability in WindowNavigation.
David Roundy **20071003151755
This allows you to reorder your windows geometrically, by
swapping the currently focussed window with ones that are
up/down/right/left of it. The idea is that we should be
able to manipulate windows based on the visual layout of
the screen rather than some (possibly obscure) logical ordering.
]
[export constructor to make ThreeColumns layout usable again
Daniel Neri **20071003093103]
[WindowNavigation: add configurable colors and the possibility to turn them off
Andrea Rossato **20071003090017]
[Add SwapWorkspaces to MetaModule
Spencer Janssen **20071003163405]
[add SwapWorkspaces (to reorder them on your number keys)
Devin Mullins **20071002212407]
[Layout -> LayoutClass for ResizableTile and MosaicAlt
Jamie Webb**20071003010849]
[NoBorders: reduce flicker
Spencer Janssen **20071002213053]
[TagWindows
Karsten Schoelzel **20071002190526
Functions to work with window tags, including a XPrompt interface.
These are stored in the window property "_XMONAD_TAGS"
Adding also functions shiftHere and shiftToScreen (move to another module?).
]
[Add XPropManage, a manageHook using XProperties
Karsten Schoelzel **20071002190231]
[make Spiral work with new layout class.
David Roundy **20071002164735]
[some renaming of classes and data types.
David Roundy **20070929191238]
[SimpleStacking is deprecated
Spencer Janssen **20071002185604]
[Make Tabbed use XUtils.releaseFont
Andrea Rossato **20071002062709]
[XUtils: added releaseFont
Andrea Rossato **20071002062640]
[An alternative mosaic layout implementation
Jamie Webb**20071002011716]
[Fix infinite loop in ResizableTile serialization
Jamie Webb**20071002001254]
[Use newtype deriving for Invisible
Spencer Janssen **20071001151555]
[Tabbed: updated usage information
Andrea Rossato **20071001082219]
[XMonadContrib.ResizableTile in darcs patch.
matsuyama3@ariel-networks.com**20071001091411
I have fixed error "" to return Nothing. Thanks Andrea.
]
[Commands: added recent layout commands
Andrea Rossato **20070930213225]
[Removed fromIMaybe from Tabbed ad added it to Invisible
Andrea Rossato **20070930181912]
[Tabbed: reintroduced shrinker configuration option and removed the unneeded Read instance
Andrea Rossato **20070930131936]
[Tabbed: moved string positioning to XUtils
Andrea Rossato **20070930095441]
[refactor paintAndWrite to take the alignment and hide string positioning
Andrea Rossato **20070930095215]
[make DraPane use XUtils
Andrea Rossato **20070929172849]
[make Tabbed use XUtils
Andrea Rossato **20070929172823]
[Added XUtils: a library for drawing
Andrea Rossato **20070929172754]
[enable color setting in WindowNavigation.
David Roundy **20070929114531
This is still somewhat experimental, comments welcome.
]
[Add smartBorders
Spencer Janssen **20070929010946]
[Give Invisible a definition for fail.
Spencer Janssen **20070929051527
The default definition of fail calls error. This is very bad, as we rely on a
non-bottom result. We should consider moving to MonadZero, to be on the safe
side.
]
[Tabbed: fixed a bug: when only one window is in the stack doLayout must still return a Tabbed (I Nothing) TConf
Andrea Rossato **20070928223136]
[Added Invisible to store layout state
Andrea Rossato **20070928190107
Invisible is a data type to store information that will be lost when
restarting XMonad (the idea came from David Roundy)
]
[WindowNavigation now uses Invisible (plus some vertical alignement)
Andrea Rossato **20070928185907]
[DragPane now uses Invisible
Andrea Rossato **20070928185832]
[Tabbed now uses Invisible
Andrea Rossato **20070928185808]
[add new WindowNavigation module.
David Roundy **20070928131906]
[Tabbed: removed two little bugs due to the mess during the transition (my fault, sorry ;)
Andrea Rossato **20070928085513]
[DeManage.hs: doesn't need -fglasgow-exts.
Joachim Fasting **20070928083639]
[Use LANGUAGE pragmas over -fglasgow-exts
Spencer Janssen **20070928181614]
[remove SetLayout.
David Roundy **20070928015855]
[Various fixes to NoBorders. Hopefully fixes bug #42
Spencer Janssen **20070928174615]
[Use LANGUAGE pragmas
Spencer Janssen **20070928174602]
[LayoutModifier: call unhook after releaseResources
Spencer Janssen **20070928174510]
[DynamicLog: sort first by index in the workspaces list, then by tag name
Spencer Janssen **20070928144900]
[Make modifier descriptions prettier
Spencer Janssen **20070928053257]
[Give Hinted a nice description
Spencer Janssen **20070928053121]
[LayoutModifier should have descriptions too
Spencer Janssen **20070928053106]
[Tabbed: give a nice description
Spencer Janssen **20070928052608]
[DynamicLog: print a description of the current layout
Spencer Janssen **20070928051606]
[Update docs
Spencer Janssen **20070928034350]
[Add simpler layoutHints
Spencer Janssen **20070928034008]
[NewTabbed: after a ReleaseResources we should return Tabbed Nothing...
Andrea Rossato **20070928011645]
[Move NewTabbed to Tabbed
Spencer Janssen **20070927231840]
[Remove Tabbed.hs
Spencer Janssen **20070927231002]
[Remove Decoration.hs
Spencer Janssen **20070927230947]
[DragPane:just code formatting
Andrea Rossato **20070927083814]
[NewTabbed: fixes a (reintroduced) bug and some code formatting
Andrea Rossato **20070927083551
- The InvisibleMaybe patch reintroduced the rectangle bug.
- Some code formatting
- Corrected usage information
]
[make NewTabbed use InvisibleMaybe to hide its cache.
David Roundy **20070926202330]
[make DragPane code a bit more compact.
David Roundy **20070926191656]
[hide implementation of DragPane from users.
David Roundy **20070926191630]
[make DragPane a bit more succinct.
David Roundy **20070926190900]
[make DragPane work with the new Layout class
Andrea Rossato **20070926190439]
[make MagicFocus work with the new Layout class
Andrea Rossato **20070926114307]
[NewTabbed: we must check if the sceen rectangle changed
Andrea Rossato **20070926114056
- Check if rectangle changed
- removed orphan instances warnings
- some code formatting
]
[fix DynamicWorkspaces.
David Roundy **20070925220659]
[Remove LayoutChoice, this functionality is in the core
Spencer Janssen **20070925214912]
[new SetLayout module.
David Roundy **20070925205333]
[make Accordian use pureLayout.
David Roundy **20070925192117]
[modifyLayout -> handleMessage.
David Roundy **20070925182930]
[Make Square work with class.
David Roundy **20070925174446]
[make Combo work with class
David Roundy **20070925174417]
[NewTabbed: fixed a bug and some code formatting
Andrea Rossato **20070925133749
- Since now Operations.windows doesn't call sendMessage UnDoLayout
anymore, doLayout must take care of destroying all tabs when only one
window ( or none) is left on the workspace.
- Some code formatting.
]
[make Roledex work with Layout class
Andrea Rossato **20070925153237]
[make Accordion work with Layout class
Andrea Rossato **20070925152307]
[fix embarrassing bugs in LayoutModifier.
David Roundy **20070924195726]
[Added a NewTabbed module with a new tabbed layout to test
Andrea Rossato **20070924193419]
[LayoutModifier updated to use LayoutMessages
Andrea Rossato **20070924193345]
[move ThreeCol over to new class.
David Roundy **20070924191632]
[Use the new modifiers in LayoutHints
Spencer Janssen **20070924062000]
[Use the new layout switcher in Commands
Spencer Janssen **20070924060541]
[Follow kind changes in FindEmptyWorkspace
Spencer Janssen **20070924055928]
[update WorkspaceDir.
David Roundy **20070923221456]
[rename LayoutHelpers to LayoutModifier.
David Roundy **20070923215956]
[convert LayoutScreens to class.
David Roundy **20070923215942]
[Update NoBorders and LayoutHelpers.
David Roundy **20070923192640]
[add a hook to LayoutHelpers.
David Roundy **20070923121723]
[use default modifyLayout in Circle.
David Roundy **20070923115257]
[update LayoutHelpers to work with new Layout class.
David Roundy **20070923114929]
[make TwoPane work with Layout class
Andrea Rossato **20070922124210]
[Circle: must export type constructor
Andrea Rossato **20070922124126]
[make Circle work with Layout class.
David Roundy **20070921215525]
[Cope with StackSet export changes
Spencer Janssen **20070924091031]
[Rolodex.hs: add missing type signature.
Joachim Fasting **20070919215436
div' is only used with Dimension, used Integral to keep it general.
]
[Warp.hs: remove seemingly unused code.
Joachim Fasting **20070919214634]
[CopyWindow.hs: -Wall police.
Joachim Fasting **20070919214556]
[CopyWindow.copy: remove seemingly unnecessary parameter from helper func.
Joachim Fasting **20070919214526]
[DirectoryPrompt.hs: add missing type signature.
Joachim Fasting **20070919213736]
[LayoutChoice.hs: update module header.
Joachim Fasting **20070919213101]
[LayoutChoice.hs: add LANGUAGE pragma.
Joachim Fasting **20070919212815]
[SinkAll.hs: -Wall police.
Joachim Fasting **20070919212359]
[XPrompt.hs: replace 'borderWidth' with 'borderPixel'
gwern0@gmail.com**20070918162950
borderWidth is already defined in Config.hs. Thus, if one attempted to use a prompt configuration different than defaultXPConfig, and one defined it in one's Config.hs where it should be, then the borderWidth field would cause a warning by -Wall, since borderWidth is already a name being used by XMonad at large.
]
[Operations.sink is gone
Spencer Janssen **20070917214113]
[Match 'Remove Operations functions which have StackSet equivalents' from the core
Spencer Janssen **20070917213329]
[SshPrompt.hs: fix some copy/paste errors, rebind sshPrompt to not conflict with xmonadPrompt
Brandon S Allbery KF8NH **20070916182520
Just a minor patch to the comments/documentation, which was clearly copied
unchanged from ShellPrompt.hs.
]
[make fixedLayout accept a list of Rectangles.
David Roundy **20070911134845
This works nicely for describing a fixed xinerama-like layout.
(e.g. when using two distinct VNC clients to log into a single
VNC server and attain multiheadedness).
]
[Fixing some typos and grammar in documentation.
Michael Fellinger **20070911023158]
[Typo in Tabbed.hs documentation
Michael Fellinger **20070911021815]
[ssh-global-known-hosts
Brandon S Allbery KF8NH **20070909222432
Add support for global ssh known hosts file, which is checked for via
$SSH_KNOWN_HOSTS or a standard list of locations. This is stripped of
comments and hashed hosts, combined with the local hosts file (which is
trated the same way), and duplicates eliminated.
]
[add LayoutChoice module.
David Roundy **20070906154955]
[FloatKeys.hs: needs -fglasgow-exts to compile.
Joachim Fasting **20070909144215]
[DragPane.hs: needs -fglasgow-exts to compile.
Joachim Fasting **20070909144205]
[Unify Drag(UpDown)Pane
Karsten Schoelzel **20070904210312]
[add function and comment assisting use in resizing the screen.
David Roundy **20070906125543]
[Add FloatKeys for moving and resizing of floating windows with the keyboard
Karsten Schoelzel **20070905212531]
[Fix FlexibleResize for change in applySizeHints
Karsten Schoelzel **20070905193926]
[make dragPane handle thinner.
David Roundy **20070905124139]
[cleanup in WorkspaceDir.
David Roundy **20070827185833]
[new SetWMName module, useful for working around problems running Java GUI applications.
Ivan Tarasov **20070826004411]
[remove LayoutHooks module (which is unused).
David Roundy **20070823154520]
[cleanup in DwmPromote.
David Roundy **20070823155437]
[cleanup in ViewPrev.
David Roundy **20070823155405]
[clean up CopyWindow.
David Roundy **20070823155912]
[Add CycleWS to MetaModule
Spencer Janssen **20070905203137]
[CycleWS: a couple of simple functions to cycle between workspaces
Andrea Rossato **20070821061132]
[make Contrib use WorkspaceId = type String.
David Roundy **20070820113813]
[Add HintedTile docstring
Spencer Janssen **20070905200310]
[Docstring parser for generating xmonad build configs with default settings for extensions
Alex Tarkovsky **20070905200128]
[TAG 0.3
Spencer Janssen **20070905022947]
[docs not generated in DragPane.hs
Don Stewart **20070904232447]
[HintedTile typo
Spencer Janssen **20070904202804]
[HintedTile
Spencer Janssen **20070904202219]
[Doc fixes for DragPane
Spencer Janssen **20070904201847]
[XPrompt: a very long string in the completion list can lead to a division by zero
Andrea Rossato **20070830141524]
[XPrompt.hs: remove debugging bits
Andrea Rossato **20070828081235]
[make code more compact in XPrompt.
David Roundy **20070827191830]
[XPrompt: just code formatting
Andrea Rossato **20070822193220]
[fix bug leading to early exit in XPrompt.
David Roundy **20070827185858]
[fix bug where we draw divider for DragPane even if there's just one window.
David Roundy **20070823155810]
[CopyWindow: update usage info
Spencer Janssen **20070820232834]
[add DragPane.
David Roundy **20070813144007]
[fix bug in Combo where we ignored changes in super.
David Roundy **20070813143500]
[remove redundant fromIntegral from Commands.
David Roundy **20070820000925]
[Mosaic.hs (really) Fix incorrect usage example
Jason Creighton **20070818215725
"tall" and "wide" are anachronisms as well. It makes me wonder how we can
and/or should give examples like this that don't bitrot and confuse newbies.
]
[Mosaic.hs: Fix incorrect usage example
Jason Creighton **20070818212854]
[XPrompt: haddock tuning and more comments
Andrea Rossato **20070818083423]
[SwitchTrans:: haddock tuning
Andrea Rossato **20070818083401]
[RunInXTerm: haddock tuning
Andrea Rossato **20070818083329]
[RotSlaves: haddock tuning
Andrea Rossato **20070818083306]
[Roledex: haddock tuning
Andrea Rossato **20070818083244]
[LayoutHelpers: haddock tuning
Andrea Rossato **20070818083220]
[DirectoryPrompt: removed ShellPrompt usage info and added pointer to WorkspaceDir
Andrea Rossato **20070818083105]
[DeManage: haddock fixes
Andrea Rossato **20070818083036]
[MetaModule: removed BackCompat no longer in the repository
Andrea Rossato **20070818071916]
[fix MagicFocus/floats interaction
Peter De Wachter **20070816185217]
[fix Circle/floats interaction
Peter De Wachter **20070816185144]
[XPrompt: documentation only
Andrea Rossato **20070817162806]
[ShellPrompt: quickcheck related refactoring
Andrea Rossato **20070817155725]
[added a tests directory with quickcheck tests for XPrompt and ShellPrompt
Andrea Rossato **20070817155634]
[XPrompt: quickcheck related refactoring
Andrea Rossato **20070817155454
With this patch XPrompt can be tested with quickcheck. As a result
getLastWord and skipLastWord has been refactored to avoid possible
exceptions.
]
[XPrompt: fixes a nasty bug in getLastWord
Andrea Rossato **20070815163457
This patch fixes a nasty bug in getLastWord, a bug that causes XMonad
to crash as soon as the command line consists of only 2 empty spaces.
*PLEASE UPDATE* if you are running XPrompt.
]
[ghc thinks I don't need those fromIntegrals
l.mai@web.de**20070815231852]
[use XPrompt in WorkspaceDir.
David Roundy **20070814191103]
[clean up DynamicWorkspaces to handle layouts properly.
David Roundy **20070814183542]
[make DynamicWorkspace more thorough.
David Roundy **20070814014548
Note: there's still a bug due to our failure to inform
the old layouts to clean up.
]
[new module DynamicWorkspaces to add and remove workspaces.
David Roundy **20070814011501]
[fix Commands to work with new workspaces.
David Roundy **20070814004146]
[Make FlexibleManipulate comply with new mouse dragging system
Spencer Janssen **20070815032619]
[make FlexibleResize use new mouseDrag properly.
David Roundy **20070807202016]
[fix Expand/Shrink for spiralWithDir
bobstopper@bobturf.org**20070808204752]
[Remove GreedyView: the functionality is now in StackSet
Spencer Janssen **20070815022101]
[Use maskEvent rather than nextEvent. Fixes rare segfaults
Spencer Janssen **20070814170416]
[Decoration: don't crash when given a non-existent font
Andrea Rossato **20070810182433]
[actually use the selected font in XPrompt.
David Roundy **20070810174543]
[increase default contrast in XPrompt.
David Roundy **20070810174724]
[center prompt text in window.
David Roundy **20070810173746]
[don't crash when given a non-existent font in XPrompt.
David Roundy **20070810170445]
[Add ViewPrev to MetaModule
Spencer Janssen **20070810211242]
[ViewPrev.hs
nelhage@mit.edu**20070810032653
Add a ViewPrev extension which gives a viewPrev command to view the
previously visible workspace.
]
[fix CopyWindow to not require Integral WorkspaceId.
David Roundy **20070801144543]
[SshPrompt now uses RunInXTerm to launch the command
Andrea Rossato **20070807101911]
[RunInXTerm: a simple module to run commands in an X terminal
Andrea Rossato **20070807101603
This is just a wrapper around spawn to launch commands in an X
terminal: runInXTerm will check the for the XTERMCMD environmental
variable, and use it to run the command. If the variable is not set
the command will be executed with xterm.
]
[XPrompt: removed touchFile (which is not the equivalent of touch!)
Andrea Rossato **20070805225906]
[LayoutScreen: haddock cleanup
Andrea Rossato **20070805215800]
[XPrompt.hs: getCompletion should check for completions of the last word of the command line
Andrea Rossato **20070805124130]
[work around Magnifier's problems with floating windows
Peter De Wachter **20070805141051]
[Add Roledex to MetaModule
Spencer Janssen **20070806151628]
[XPrompt.hs: read history lazily
Andrea Rossato **20070804185914
Instead of forcing the reading of all the history file we read it lazily.
]
[XPrompt.hs: removed defaultPromptConfig. use defautlXPConfig instead
Andrea Rossato **20070804183252]
[weird formatting fixed
Don Stewart **20070806032739]
[rolodex
tim.thelion@gmail.com**20070804235730
Cascading windows...
]
[XPrompt.hs: haddock corrections and some comments
Andrea Rossato **20070804104622]
[XMonadPrompt.hs: minor haddock corrections
Andrea Rossato **20070804104534]
[SwitchTrans.hs: minor haddock corrections
Andrea Rossato **20070804104458]
[SshPrompt.hs: minor haddock corrections
Andrea Rossato **20070804104441]
[ShellPrompt.hs: minor haddock corrections
Andrea Rossato **20070804104408]
[FlexibleManipulate.hs: minor haddock corrections
Andrea Rossato **20070804104330]
[MetaModule: added XPrompt and others
Andrea Rossato **20070804093049
XPrompt, XMonadPrompt, SshPrompt.
ShellPrompt is commented out since it requires readline and the related
xmonad.cabal modifications.
]
[XPrompt: fixes a couple of bugs
Andrea Rossato **20070804090817
- we run the action passed to mkXPrompt only if we have a command;
- updateWindows must call destroyComplWin if there are no completions;
- some comments (more to come)
- a shorthand in keyPressHandle
- removed all warnings
]
[RotSlaves rework
Karsten Schoelzel