Update D.Extending module lists with help of a script (also added)

This commit is contained in:
Adam Vogt 2009-10-12 04:49:18 +00:00
parent bf36bb785a
commit 5e0a65ea63
2 changed files with 593 additions and 165 deletions

View File

@ -116,81 +116,175 @@ beyond the standard keybindings provided by xmonad.
See "XMonad.Doc.Extending#Editing_key_bindings" for instructions on how to See "XMonad.Doc.Extending#Editing_key_bindings" for instructions on how to
edit your key bindings. edit your key bindings.
* "XMonad.Actions.Commands": running internal xmonad actions * "XMonad.Actions.Commands":
interactively. Allows you to run internal xmonad commands (X () actions) using
a dmenu menu in addition to key bindings. Requires dmenu and
the Dmenu XMonad.Actions module.
* "XMonad.Actions.ConstrainedResize": an aspect-ratio-constrained * "XMonad.Actions.ConstrainedResize":
window resizing mode. Lets you constrain the aspect ratio of a floating
window (by, say, holding shift while you resize).
Useful for making a nice circular XClock window.
* "XMonad.Actions.CopyWindow": duplicating windows on multiple * "XMonad.Actions.CopyWindow":
workspaces. Provides bindings to duplicate a window on multiple workspaces,
providing dwm-like tagging functionality.
* "XMonad.Actions.CycleSelectedLayouts": bind a key to cycle through a * "XMonad.Actions.CycleRecentWS":
particular subset of your layouts. Provides bindings to cycle through most recently used workspaces
with repeated presses of a single key (as long as modifier key is
held down). This is similar to how many window managers handle
window switching.
* "XMonad.Actions.CycleWS": move between workspaces in various ways. * "XMonad.Actions.CycleSelectedLayouts":
This module allows to cycle through the given subset of layouts.
* "XMonad.Actions.DeManage": cease management of a window without * "XMonad.Actions.CycleWS":
unmapping it. Provides bindings to cycle forward or backward through the list of
workspaces, to move windows between workspaces, and to cycle
between screens. Replaces "XMonad.Actions.RotView".
* "XMonad.Actions.DwmPromote": dwm-like master window swapping. * "XMonad.Actions.CycleWindows":
Provides bindings to cycle windows up or down on the current workspace
stack while maintaining focus in place.
* "XMonad.Actions.DynamicWorkspaces": add, delete, and rename workspaces. * "XMonad.Actions.DeManage":
This module provides a method to cease management of a window
without unmapping it. "XMonad.Hooks.ManageDocks" is a
more automated solution if your panel supports it.
* "XMonad.Actions.FindEmptyWorkspace": find an empty workspace. * "XMonad.Actions.DwmPromote":
Dwm-like swap function for xmonad.
Swaps focused window with the master window. If focus is in the
master, swap it with the next window in the stack. Focus stays in the
master.
* "XMonad.Actions.FlexibleManipulate": move\/resize windows without * "XMonad.Actions.DynamicWorkspaces":
warping the mouse. Provides bindings to add and delete workspaces. Note that you may only
delete a workspace that is already empty.
* "XMonad.Actions.FlexibleResize": resize windows from any corner. * "XMonad.Actions.FindEmptyWorkspace":
Find an empty workspace.
* "XMonad.Actions.FloatKeys": move\/resize floating windows with * "XMonad.Actions.FlexibleManipulate":
keybindings. Move and resize floating windows without warping the mouse.
* "XMonad.Actions.FocusNth": focus the nth window on the screen. * "XMonad.Actions.FlexibleResize":
Resize floating windows from any corner.
* "XMonad.Actions.MouseGestures": bind mouse gestures to actions. * "XMonad.Actions.FloatKeys":
Move and resize floating windows.
* "XMonad.Actions.MouseResize": use with * "XMonad.Layout.FloatSnap":
"XMonad.Layout.WindowArranger" to resize windows with the mouse when Move and resize floating windows using other windows and the edge of the
using a floating layout. screen as guidelines.
* "XMonad.Actions.NoBorders": forcibly remove borders from a window. * "XMonad.Actions.FocusNth":
Not to be confused with "XMonad.Layout.NoBorders". Focus the nth window of the current workspace.
* "XMonad.Actions.PerWorkspaceKeys": configure keybindings * "XMonad.Actions.GridSelect":
per-workspace. GridSelect displays items(e.g. the opened windows) in a 2D grid and lets
the user select from it with the cursor/hjkl keys or the mouse.
* "XMonad.Actions.Promote": An action to move the focused window to * "XMonad.Actions.MessageFeedback":
the master pane, or swap the master with the next window. Alternative to 'XMonad.Operations.sendMessage' that provides knowledge
of whether the message was handled, and utility functions based on
this facility.
* "XMonad.Actions.RotSlaves": rotate non-master windows. * "XMonad.Actions.MouseGestures":
Support for simple mouse gestures.
* "XMonad.Actions.Search": provide helpful functions for easily * "XMonad.Actions.MouseResize":
running web searchs. A layout modifier to resize windows with the mouse by grabbing the
window's lower right corner.
* "XMonad.Actions.SimpleDate": display the date in a popup menu. * "XMonad.Actions.NoBorders":
This module provides helper functions for dealing with window borders.
* "XMonad.Actions.SinkAll": sink all floating windows. * "XMonad.Actions.OnScreen":
Control workspaces on different screens (in xinerama mode).
* "XMonad.Actions.Submap": create key submaps, i.e. the ability to * "XMonad.Actions.PerWorkspaceKeys":
bind actions to key sequences rather than being limited to single Define key-bindings on per-workspace basis.
key combinations.
* "XMonad.Actions.SwapWorkspaces": swap workspace tags. * "XMonad.Actions.PhysicalScreens":
Manipulate screens ordered by physical location instead of ID
* "XMonad.Actions.TagWindows": tag windows and select by tag. * "XMonad.Actions.Plane":
This module has functions to navigate through workspaces in a bidimensional
manner.
* "XMonad.Actions.UpdatePointer": mouse-follows-focus. * "XMonad.Actions.Promote":
Alternate promote function for xmonad.
* "XMonad.Actions.Warp": warp the pointer. * "XMonad.Actions.RandomBackground":
An action to start terminals with a random background color
* "XMonad.Actions.WindowBringer": bring windows to you, and you to * "XMonad.Actions.RotSlaves":
windows. Rotate all windows except the master window and keep the focus in
place.
* "XMonad.Actions.WindowGo": travel to windows based on various * "XMonad.Actions.Search":
criteria; conditionally start a program if a window does not exist, A module for easily running Internet searches on web sites through xmonad.
or travel to that window if it does. Modeled after the handy Surfraw CLI search tools at <https://secure.wikimedia.org/wikipedia/en/wiki/Surfraw>.
* "XMonad.Actions.SimpleDate":
An example external contrib module for XMonad.
Provides a simple binding to dzen2 to print the date as a popup menu.
* "XMonad.Actions.SinkAll":
Provides a simple binding that pushes all floating windows on the
current workspace back into tiling. Use the more general general
"XMonad.Actions.WithAll"
* "XMonad.Actions.SpawnOn":
Provides a way to modify a window spawned by a command(e.g shift it to the workspace
it was launched on) by using the _NET_WM_PID property that most windows set on creation.
* "XMonad.Actions.Submap":
A module that allows the user to create a sub-mapping of key bindings.
* "XMonad.Actions.SwapWorkspaces":
Lets you swap workspace tags, so you can keep related ones next to
each other, without having to move individual windows.
* "XMonad.Actions.TagWindows":
Functions for tagging windows and selecting them by tags.
* "XMonad.Actions.TopicSpace":
Turns your workspaces into a more topic oriented system.
* "XMonad.Actions.UpdateFocus":
Updates the focus on mouse move in unfocused windows.
* "XMonadContrib.UpdatePointer":
Causes the pointer to follow whichever window focus changes to.
* "XMonad.Actions.Warp":
Warp the pointer to a given window or screen.
* "XMonad.Actions.WindowBringer":
dmenu operations to bring windows to you, and bring you to windows.
That is to say, it pops up a dmenu with window names, in case you forgot
where you left your XChat.
* "XMonad.Actions.WindowGo":
Defines a few convenient operations for raising (traveling to) windows based on XMonad's Query
monad, such as 'runOrRaise'.
* "XMonad.Actions.WindowMenu":
Uses "XMonad.Actions.GridSelect" to display a number of actions related to
window management in the center of the focused window.
* "XMonad.Actions.WindowNavigation":
Experimental rewrite of "XMonad.Layout.WindowNavigation".
* "XMonad.Actions.WithAll":
Provides functions for performing a given action on all windows of
the current workspace.
* "XMonad.Actions.WorkspaceCursors":
Like "XMonad.Actions.Plane" for an arbitrary number of dimensions.
-} -}
@ -202,14 +296,25 @@ developers. You can look at them for examples while creating your own
configuration; you can also simply import them and use them as your configuration; you can also simply import them and use them as your
own configuration, possibly with some modifications. own configuration, possibly with some modifications.
* "XMonad.Config.Arossato" * "XMonad.Config.Arossato"
This module specifies my xmonad defaults.
* "XMonad.Config.Dons" * "XMonad.Config.Azerty"
* "XMonad.Config.Droundy" * "XMonad.Config.Desktop"
This module provides a config suitable for use with a desktop
environment such as KDE or GNOME.
* "XMonad.Config.Gnome"
* "XMonad.Config.Kde"
* "XMonad.Config.Sjanssen" * "XMonad.Config.Sjanssen"
* "XMonad.Config.Xfce"
-} -}
{- $hooks {- $hooks
@ -238,30 +343,74 @@ occur. The two most important hooks are:
Here is a list of the modules found in @XMonad.Hooks@: Here is a list of the modules found in @XMonad.Hooks@:
* "XMonad.Hooks.DynamicHooks":
One-shot and permanent ManageHooks that can be updated at runtime.
* "XMonad.Hooks.DynamicLog": for use with 'XMonad.Core.logHook'; send * "XMonad.Hooks.DynamicLog": for use with 'XMonad.Core.logHook'; send
information about xmonad's state to standard output, suitable for information about xmonad's state to standard output, suitable for
putting in a status bar of some sort. See putting in a status bar of some sort. See
"XMonad.Doc.Extending#The_log_hook_and_external_status_bars". "XMonad.Doc.Extending#The_log_hook_and_external_status_bars".
* "XMonad.Hooks.EwmhDesktops": support for pagers in panel applications. * "XMonad.Hooks.EwmhDesktops":
Makes xmonad use the EWMH hints to tell panel applications about its
workspaces and the windows therein. It also allows the user to interact
with xmonad by clicking on panels and window lists.
* "XMonad.Hooks.ManageDocks": handle DOCK and STRUT windows (such as * "XMonad.Hooks.FadeInactive":
status bars) appropriately, by de-managing them and creating Makes XMonad set the _NET_WM_WINDOW_OPACITY atom for inactive windows,
appropriate gaps so as not to place other windows covering them. which causes those windows to become slightly translucent if something
like xcompmgr is running
* "XMonad.Hooks.FloatNext":
Hook and keybindings for automatically sending the next
spawned window(s) to the floating layer.
* "XMonad.Hooks.InsertPosition":
Configure where new windows should be added and which window should be
focused.
* "XMonad.Hooks.ManageDocks":
This module provides tools to automatically manage 'dock' type programs,
such as gnome-panel, kicker, dzen, and xmobar.
* "XMonad.Hooks.ManageHelpers": provide helper functions to be used * "XMonad.Hooks.ManageHelpers": provide helper functions to be used
in @manageHook@. in @manageHook@.
* "XMonad.Hooks.Place":
Automatic placement of floating windows.
* "XMonad.Hooks.RestoreMinimized":
Lets you restore minimized windows (see "XMonad.Layout.Minimize")
by selecting them on a taskbar (listens for _NET_ACTIVE_WINDOW
and WM_CHANGE_STATE).
* "XMonad.Hooks.Script":
Provides a simple interface for running a ~\/.xmonad\/hooks script with the
name of a hook.
* "XMonad.Hooks.ServerMode": Allows sending commands to a running xmonad process. * "XMonad.Hooks.ServerMode": Allows sending commands to a running xmonad process.
* "XMonad.Hooks.SetWMName": set the WM name. Useful when e.g. running * "XMonad.Hooks.SetCursor":
Java GUI programs. Set a default cursor on startup.
Thanks to Andres Salomon for his initial idea for this startup hook.
* "XMonad.Hooks.UrgencyHook": configure an action to occur when a window * "XMonad.Hooks.SetWMName":
sets the urgent flag. Sets the WM name to a given string, so that it could be detected using
_NET_SUPPORTING_WM_CHECK protocol. May be useful for making Java GUI
programs work.
* "XMonad.Hooks.XPropManage": match on XProperties in your * "XMonad.Hooks.UrgencyHook":
'XMonad.Core.manageHook'. UrgencyHook lets you configure an action to occur when a window demands
your attention. (In traditional WMs, this takes the form of \"flashing\"
on your \"taskbar.\" Blech.)
* "XMonad.Hooks.WorkspaceByPos":
Useful in a dual-head setup: Looks at the requested geometry of
new windows and moves them to the workspace of the non-focused
screen if necessary.
* "XMonad.Hooks.XPropManage":
A ManageHook matching on XProperties.
-} -}
@ -282,108 +431,292 @@ interface for writing layout modifiers is implemented in
For more information on using those modules for customizing your For more information on using those modules for customizing your
'XMonad.Core.layoutHook' see "XMonad.Doc.Extending#Editing_the_layout_hook". 'XMonad.Core.layoutHook' see "XMonad.Doc.Extending#Editing_the_layout_hook".
* "XMonad.Layout.Accordion": put non-focused windows in ribbons at the * "XMonad.Layout.Accordion":
top and bottom of the screen. LayoutClass that puts non-focused windows in ribbons at the top and bottom
of the screen.
* "XMonad.Layout.Circle": an elliptical, overlapping layout. * "XMonad.Layout.AutoMaster":
Provides layout modifier AutoMaster. It separates screen in two parts -
master and slave. Size of slave area automatically changes depending on
number of slave windows.
* "XMonad.Layout.Combo": combine multiple layouts into one. * "XMonad.Layout.BorderResize":
This layout modifier will allow to resize windows by dragging their
borders with the mouse. However, it only works in layouts or modified
layouts that react to the SetGeometry message.
"XMonad.Layout.WindowArranger" can be used to create such a setup.
BorderResize is probably most useful in floating layouts.
* "XMonad.Layout.Decoration": decorated layouts. * "XMonad.Layout.BoringWindows":
BoringWindows is an extension to allow windows to be marked boring
* "XMonad.Layout.DecorationMadness": some examples of decorated layouts. * "XMonad.Layout.CenteredMaster":
Two layout modifiers. centerMaster places master window at center,
on top of all other windows, which are managed by base layout.
topRightMaster is similar, but places master window in top right corner
instead of center.
* "XMonad.Layout.Dishes": stack extra windows underneath the master windows. * "XMonad.Layout.Circle":
Circle is an elliptical, overlapping layout, by Peter De Wachter
* "XMonad.Layout.DragPane": split the screen into two windows with a * "XMonad.Layout.Column":
draggable divider. Provides Column layout that places all windows in one column. Windows
heights are calculated from equation: H1/H2 = H2/H3 = ... = q, where q is
given. With Shrink/Expand messages you can change the q value.
* "XMonad.Layout.DwmStyle": windows decorated in a dwm-like style. * "XMonad.Layout.Combo":
A layout that combines multiple layouts.
* "XMonad.Layout.Grid": put windows in a square grid. * "XMonad.Layout.ComboP":
A layout that combines multiple layouts and allows to specify where to put
new windows.
* "XMonad.Layout.HintedTile": gapless tiled layout that attempts to * "XMonad.Layout.Cross":
obey window size hints. A Cross Layout with the main window in the center.
* "XMonad.Layout.IM": a layout for multi-window instant message clients. * "XMonad.Layout.Decoration":
A layout modifier and a class for easily creating decorated
layouts.
* "XMonad.Layout.LayoutCombinators": general layout combining. * "XMonad.Layout.DecorationMadness":
A collection of decorated layouts: some of them may be nice, some
usable, others just funny.
* "XMonad.Layout.LayoutHints": make layouts respect window size hints. * "XMonad.Layout.Dishes":
Dishes is a layout that stacks extra windows underneath the master
windows.
* "XMonad.Layout.LayoutModifier": a general framework for creating * "XMonad.Layout.DragPane":
layout \"modifiers\"; useful for creating new layout modules. Layouts that splits the screen either horizontally or vertically and
shows two windows. The first window is always the master window, and
the other is either the currently focused window or the second window in
layout order.
* "XMonad.Layout.LayoutScreens": divide the screen into multiple * "XMonad.Layout.DwmStyle":
virtual \"screens\". A layout modifier for decorating windows in a dwm like style.
* "XMonad.Layout.MagicFocus": automagically put the focused window in * "XMonad.Layout.FixedColumn":
the master area. A layout much like Tall, but using a multiple of a window's minimum
resize amount instead of a percentage of screen to decide where to
split. This is useful when you usually leave a text editor or
terminal in the master pane and like it to be 80 columns wide.
* "XMonad.Layout.Magnifier": increase the size of the focused window * "XMonad.Layout.Gaps":
Create manually-sized gaps along edges of the screen which will not
be used for tiling, along with support for toggling gaps on and
off. You probably want "XMonad.Hooks.ManageDocks".
* "XMonad.Layout.Maximize": temporarily maximize the focused window. * "XMonad.Layout.Grid":
A simple layout that attempts to put all windows in a square grid.
* "XMonad.Layout.MosaicAlt": give each window a specified relative * "XMonad.Layout.GridVariants":
amount of screen space. Two layouts: one is a variant of the Grid layout that allows the
desired aspect ratio of windows to be specified. The other is like
Tall but places a grid with fixed number of rows and columns in the
master area and uses an aspect-ratio-specified layout for the
slaves.
* "XMonad.Layout.MultiToggle": dynamically apply and unapply layout * "XMonad.Layout.HintedGrid":
transformers. A not so simple layout that attempts to put all windows in a square grid
while obeying their size hints.
* "XMonad.Layout.Named": change the names of layouts (as reported by * "XMonad.Layout.HintedTile":
e.g. "XMonad.Hooks.DynamicLog"). A gapless tiled layout that attempts to obey window size hints,
rather than simply ignoring them.
* "XMonad.Layout.NoBorders": display windows without borders. * "XMonad.Layout.IM":
Layout modfier suitable for workspace with multi-windowed instant messenger
(like Psi or Tkabber).
* "XMonad.Layout.PerWorkspace": configure layouts on a per-workspace basis. * "XMonad.Layout.IndependentScreens":
Utility functions for simulating independent sets of workspaces on
each screen (like dwm's workspace model), using internal tags to
distinguish workspaces associated with each screen.
* "XMonad.Layout.Reflect": reflect any layout vertically or horizontally. * "XMonad.Layout.LayoutBuilder":
A layout combinator that sends a specified number of windows to one rectangle
and the rest to another.
* "XMonad.Layout.ResizableTile": tiled layout allowing you to change * "XMonad.Layout.LayoutCombinators":
width and height of windows. The "XMonad.Layout.LayoutCombinators" module provides combinators
for easily combining multiple layouts into one composite layout, as
well as a way to jump directly to any particular layout (say, with
a keybinding) without having to cycle through other layouts to get
to it.
* "XMonad.Layout.ResizeScreen": a layout modifier to change the screen * "XMonad.Layout.LayoutHints":
geometry on one side. Make layouts respect size hints.
* "XMonad.Layout.Roledex": a \"completely pointless layout which acts * "XMonad.Layout.LayoutModifier":
like Microsoft's Flip 3D\". A module for writing easy layout modifiers, which do not define a
layout in and of themselves, but modify the behavior of or add new
functionality to other layouts. If you ever find yourself writing
a layout which takes another layout as a parameter, chances are you
should be writing a LayoutModifier instead!
In case it is not clear, this module is not intended to help you
configure xmonad, it is to help you write other extension modules.
So get hacking!
* "XMonad.Layout.ScratchWorkspace": implements a scratch workspace * "XMonad.Layout.LayoutScreens":
which can be shown and hidden with keybindings. Divide a single screen into multiple screens.
* "XMonad.Layout.ShowWName": Show the name of the current workspace when switching. * "XMonad.Layout.LimitWindows":
A layout modifier that limits the number of windows that can be shown.
* "XMonad.Layout.SimpleDecoration": add simple decorations to windows. * "XMonad.Layout.MagicFocus":
Automagically put the focused window in the master area.
* "XMonad.Layout.SimpleFloat": a basic floating layout. * "XMonad.Layout.Magnifier":
Screenshot : <http://caladan.rave.org/magnifier.png>
This is a layout modifier that will make a layout increase the size
of the window that has focus.
* "XMonad.Layout.Simplest": a basic, simple layout that just lays out * "XMonad.Layout.Master":
all windows with a fullscreen geometry. Used by Layout modfier that adds a master window to another layout.
"XMonad.Layout.Tabbed".
* "XMonad.Layout.Spiral": Fibonacci spiral layout. * "XMonad.Layout.Maximize":
Temporarily yanks the focused window out of the layout to mostly fill
the screen.
* "XMonad.Layout.Square": split the screen into a square area plus the rest. * "XMonad.Layout.MessageControl":
Provides message escaping and filtering facilities which
help control complex nested layouts.
* "XMonad.Layout.TabBarDecoration": add a bar of tabs to any layout. * "XMonad.Layout.Minimize":
Makes it possible to minimize windows, temporarily removing them
from the layout until they are restored.
* "XMonad.Layout.Tabbed": a tabbed layout. * "XMonad.Layout.Monitor":
Layout modfier for displaying some window (monitor) above other windows
* "XMonad.Layout.ThreeColumns": a layout with three columns instead of two. * "XMonad.Layout.Mosaic":
Based on MosaicAlt, but aspect ratio messages always change the aspect
ratios, and rearranging the window stack changes the window sizes.
* "XMonad.Layout.ToggleLayouts": toggle between two layouts. * "XMonad.Layout.MosaicAlt":
A layout which gives each window a specified amount of screen space
relative to the others. Compared to the 'Mosaic' layout, this one
divides the space in a more balanced way.
* "XMonad.Layout.TwoPane": split the screen horizontally and show two * "XMonad.Layout.MouseResizableTile":
windows. A layout in the spirit of "XMonad.Layout.ResizableTile", but with the option
to use the mouse to adjust the layout.
* "XMonad.Layout.WindowArranger": make any layout into a * "XMonad.Layout.MultiToggle":
pseudo-floating layout by allowing you to move and resize windows. Dynamically apply and unapply transformers to your window layout. This can
be used to rotate your window layout by 90 degrees, or to make the
currently focused window occupy the whole screen (\"zoom in\") then undo
the transformation (\"zoom out\").
* "XMonad.Layout.WindowNavigation": navigate around a workspace * "XMonad.Layout.Named":
directionally instead of using mod-j\/k. A module for assigning a name to a given layout.
* "XMonad.Layout.WorkspaceDir": set the current working directory in a * "XMonad.Layout.NoBorders":
workspace. Make a given layout display without borders. This is useful for
full-screen or tabbed layouts, where you don't really want to waste a
couple of pixels of real estate just to inform yourself that the visible
window has focus.
* "XMonad.Layout.NoFrillsDecoration":
Most basic version of decoration for windows without any additional
modifications. In contrast to "XMonad.Layout.SimpleDecoration" this will
result in title bars that span the entire window instead of being only the
length of the window title.
* "XMonad.Layout.OneBig":
Provides layout named OneBig. It places one (master) window at top left corner of screen, and other (slave) windows at top
* "XMonad.Layout.PerWorkspace":
Configure layouts on a per-workspace basis: use layouts and apply
layout modifiers selectively, depending on the workspace.
* "XMonad.Layout.Reflect":
Reflect a layout horizontally or vertically.
* "XMonad.Layout.ResizableTile":
More useful tiled layout that allows you to change a width\/height of window.
* "XMonad.Layout.ResizeScreen":
A layout transformer to have a layout respect a given screen
geometry. Mostly used with "Decoration" (the Horizontal and the
Vertical version will react to SetTheme and change their dimension
accordingly.
* "XMonad.Layout.Roledex":
This is a completely pointless layout which acts like Microsoft's Flip 3D
* "XMonad.Layout.ShowWName":
This is a layout modifier that will show the workspace name
* "XMonad.Layout.SimpleDecoration":
A layout modifier for adding simple decorations to the windows of a
given layout. The decorations are in the form of ion-like tabs
for window titles.
* "XMonad.Layout.SimpleFloat":
A basic floating layout.
* "XMonad.Layout.Simplest":
A very simple layout. The simplest, afaik.
* "XMonad.Layout.SimplestFloat":
A basic floating layout like SimpleFloat but without the decoration.
* "XMonad.Layout.Spacing":
Add a configurable amount of space around windows.
* "XMonad.Layout.Spiral":
A spiral tiling layout.
* "XMonad.Layout.Square":
A layout that splits the screen into a square area and the rest of the
screen.
This is probably only ever useful in combination with
"XMonad.Layout.Combo".
It sticks one window in a square region, and makes the rest
of the windows live with what's left (in a full-screen sense).
* "XMonad.Layout.StackTile":
A stacking layout, like dishes but with the ability to resize master pane.
Mostly useful on small screens.
* "XMonad.Layout.SubLayouts":
A layout combinator that allows layouts to be nested.
* "XMonad.Layout.TabBarDecoration":
A layout modifier to add a bar of tabs to your layouts.
* "XMonad.Layout.Tabbed":
A tabbed layout for the Xmonad Window Manager
* "XMonad.Layout.ThreeColumns":
A layout similar to tall but with three columns. With 2560x1600 pixels this
layout can be used for a huge main window and up to six reasonable sized
slave windows.
* "XMonad.Layout.ToggleLayouts":
A module to toggle between two layouts.
* "XMonad.Layout.TwoPane":
A layout that splits the screen horizontally and shows two windows. The
left window is always the master window, and the right is either the
currently focused window or the second window in layout order.
* "XMonad.Layout.WindowArranger":
This is a pure layout modifier that will let you move and resize
windows with the keyboard in any layout.
* "XMonad.Layout.WindowNavigation":
WindowNavigation is an extension to allow easy navigation of a workspace.
* "XMonad.Layout.WorkspaceDir":
WorkspaceDir is an extension to set the current directory in a workspace.
Actually, it sets the current directory in a layout, since there's no way I
know of to attach a behavior to a workspace. This means that any terminals
(or other programs) pulled up in that workspace (with that layout) will
execute in that working directory. Sort of handy, I think.
Note this extension requires the 'directory' package to be installed.
-} -}
@ -398,38 +731,68 @@ modules.
These are the available prompts: These are the available prompts:
* "XMonad.Prompt.AppendFile": append lines of text to a file. * "XMonad.Prompt.AppLauncher":
A module for launch applicationes that receive parameters in the command
line. The launcher call a prompt to get the parameters.
* "XMonad.Prompt.Directory": prompt for a directory. * "XMonad.Prompt.AppendFile":
A prompt for appending a single line of text to a file. Useful for
keeping a file of notes, things to remember for later, and so on---
using a keybinding, you can write things down just about as quickly
as you think of them, so it doesn't have to interrupt whatever else
you're doing.
Who knows, it might be useful for other purposes as well!
* "XMonad.Prompt.DirExec": put a bunch of scripts you want in a * "XMonad.Prompt.DirExec":
directory, then choose from among them with this prompt. A directory file executables prompt for XMonad. This might be useful if you
don't want to have scripts in your PATH environment variable (same
executable names, different behavior) - otherwise you might want to use
"XMonad.Prompt.Shell" instead - but you want to have easy access to these
executables through the xmonad's prompt.
* "XMonad.Prompt.Email": an example of "XMonad.Prompt.Input", send * "XMonad.Prompt.Directory":
simple short e-mails from a prompt. A directory prompt for XMonad
* "XMonad.Prompt.Input": useful for building general actions requiring * "XMonad.Prompt.Email":
input from a prompt. A prompt for sending quick, one-line emails, via the standard GNU
\'mail\' utility (which must be in your $PATH). This module is
intended mostly as an example of using "XMonad.Prompt.Input" to
build an action requiring user input.
* "XMonad.Prompt.Layout": choose a layout from a prompt. * "XMonad.Prompt.Input":
A generic framework for prompting the user for input and passing it
along to some other action.
* "XMonad.Prompt.Man": open man pages. * "XMonad.Prompt.Layout":
A layout-selection prompt for XMonad
* "XMonad.Prompt.RunOrRaise": choose a program, and run it if not * "XMonad.Prompt.Man":
already running, or raise its window if it is. A manual page prompt for XMonad window manager.
TODO
* narrow completions by section number, if the one is specified
(like @\/etc\/bash_completion@ does)
* "XMonad.Prompt.Shell": run a shell command. * "XMonad.Prompt.RunOrRaise":
A prompt for XMonad which will run a program, open a file,
or raise an already running program, depending on context.
* "XMonad.Prompt.Ssh": open an ssh connection. * "XMonad.Prompt.Shell":
A shell prompt for XMonad
* "XMonad.Prompt.Theme": choose a decoration theme. * "XMonad.Prompt.Ssh":
A ssh prompt for XMonad
* "XMonad.Prompt.Window": choose an open window. * "XMonad.Prompt.Theme":
A prompt for changing the theme of the current workspace
* "XMonad.Prompt.Workspace": choose a workspace. * "XMonad.Prompt.Window":
xprompt operations to bring windows to you, and bring you to windows.
* "XMonad.Prompt.XMonad": perform various xmonad actions by choosing * "XMonad.Prompt.Workspace":
one from a prompt. A workspace prompt for XMonad
* "XMonad.Prompt.XMonad":
A prompt for running XMonad commands
Usually a prompt is called by some key binding. See Usually a prompt is called by some key binding. See
"XMonad.Doc.Extending#Editing_key_bindings", which includes examples "XMonad.Doc.Extending#Editing_key_bindings", which includes examples
@ -451,10 +814,12 @@ A non complete list with a brief description:
* "XMonad.Util.CustomKeys": configure key bindings (see * "XMonad.Util.CustomKeys": configure key bindings (see
"XMonad.Doc.Extending#Editing_key_bindings"). "XMonad.Doc.Extending#Editing_key_bindings").
* "XMonad.Util.Dmenu": a dmenu binding. * "XMonad.Util.Dmenu":
A convenient binding to dmenu.
Requires the process-1.0 package
* "XMonad.Util.Dzen" "XMonad.Util.Dmenu" provide useful functions for * "XMonad.Util.Dzen":
running dzen as a xmonad status bar and dmenu as a program launcher; Handy wrapper for dzen. Requires dzen >= 0.2.4.
* "XMonad.Util.EZConfig": configure key bindings easily, including a * "XMonad.Util.EZConfig": configure key bindings easily, including a
parser for writing key bindings in "M-C-x" style. parser for writing key bindings in "M-C-x" style.
@ -462,40 +827,66 @@ A non complete list with a brief description:
* "XMonad.Util.Font": A module for abstracting a font facility over * "XMonad.Util.Font": A module for abstracting a font facility over
Core fonts and Xft Core fonts and Xft
* "XMonad.Util.Invisible": a wrapper data type to store layout state * "XMonad.Util.Invisible":
which should not be persisted across restarts. A data type to store the layout state
* "XMonad.Util.Loggers": a collection of loggers that can be used in * "XMonad.Util.Loggers":
conjunction with "XMonad.Hooks.DynamicLog". A collection of simple logger functions and formatting utilities
which can be used in the 'XMonad.Hooks.DynamicLog.ppExtras' field of
a pretty-printing status logger format. See "XMonad.Hooks.DynamicLog"
for more information.
* "XMonad.Util.NamedWindows": associate windows with their X titles. * "XMonad.Util.NamedActions":
Used by, e.g. "XMonad.Layout.Tabbed". A wrapper for keybinding configuration that can list the available
keybindings.
* "XMonad.Util.Run": a collection of functions for running external * "XMonad.Util.NamedScratchpad":
processes. Named scratchpads that support several arbitrary applications at the same time.
* "XMonad.Util.Scratchpad": hotkey-launched floating terminal window. * "XMonad.Util.NamedWindows":
This module allows you to associate the X titles of windows with
them.
* "XMonad.Util.Themes": a collection of themes to be used with * "XMonad.Util.Paste":
floating layouts. A module for sending key presses to windows. This modules provides generalized
and specialized functions for this task.
* "XMonad.Util.Timer": set up a timer to handle deferred events. * "XMonad.Util.Replace":
Implements a @--replace@ flag outside of core.
* "XMonad.Util.WindowProperties": an EDSL for specifying and matching * "XMonad.Util.Run":
on window properties. This modules provides several commands to run an external process.
It is composed of functions formerly defined in "XMonad.Util.Dmenu" (by
Spencer Janssen), "XMonad.Util.Dzen" (by glasser\@mit.edu) and
XMonad.Util.RunInXTerm (by Andrea Rossato).
* "XMonad.Util.WorkspaceCompare": general combinators for sorting * "XMonad.Util.Scratchpad":
workspaces in various ways, used by several other modules which need Very handy hotkey-launched floating terminal window.
to sort workspaces (e.g. "XMonad.Hooks.DynamicLog").
* "XMonad.Util.Paste" provides utilities for pasting or sending keys and * "XMonad.Util.StringProp":
strings to windows; Internal utility functions for storing Strings with the root window.
Used for global state like IORefs with string keys, but more latency,
persistent between xmonad restarts.
* "XMonad.Util.XSelection" provide utilities for using the mouse * "XMonad.Util.Themes":
selection; A (hopefully) growing collection of themes for decorated layouts.
* "XMonad.Util.XUtils" and "XMonad.Util.Font" are libraries for * "XMonad.Util.Timer":
accessing Xlib and XFT function in a convenient way. A module for setting up timers
* "XMonad.Util.Types":
Miscellaneous commonly used types.
* "XMonad.Util.WindowProperties":
EDSL for specifying window properties; various utilities related to window
properties.
* "XMonad.Util.XSelection":
A module for accessing and manipulating X Window's mouse selection (the buffer used in copy and pasting).
'getSelection' and 'putSelection' are adaptations of Hxsel.hs and Hxput.hs from the XMonad-utils
* "XMonad.Util.XUtils":
A module for painting on the screen
-} -}

View File

@ -0,0 +1,37 @@
#!/usr/bin/env runhaskell
import Control.Applicative
import Control.Arrow
import Control.Monad
import Data.Char
import Data.List
import Data.Maybe
import System.Directory
import System.Environment
-- needs haskell-src-exts
import qualified Language.Haskell.Exts.Annotated as H
getComments = (fmap . fmap) (map (\(H.Comment _ _ x) -> x) . snd)
. H.parseFileWithComments H.defaultParseMode
-- | Used to grab the description fields from all the modules in the current
-- directory for updating XMonad.Docs.Extending
main = putStrLn . intercalate "\n"
=<< mapM (fmap . handleFailure description <*> getComments) =<< filterM doesFileExist . sort
=<< getDirectoryContents . fromMaybe "." . listToMaybe
=<< getArgs -- somehow only the "." fallback works...
handleFailure :: (String -> [String] -> String) -> String -> H.ParseResult [String] -> String
handleFailure f n (H.ParseOk x) = f n x
handleFailure f n (H.ParseFailed _ msg) = n ++ " Parse Failure: " ++ msg
description :: String -> [String] -> String
description path xs =
let (hs,desc)
= uncurry (\x (y,descr) -> (x++y,takeWhile (not . or . sequence [null,("* Usage" `isInfixOf`),all (=='-'),all isSpace]) . dropWhile (all isSpace) $ descr))
. second (splitAt 1)
. break (isPrefixOf "Portability")
. map (dropWhile isSpace) $ concatMap lines xs
modName = maybe path (takeWhile (not . isSpace) . dropWhile isSpace . drop 1 . dropWhile (/=':')) $ find ("Module" `isInfixOf`) hs
in "* \""++modName++"\":\n"++unlines (map (" "++) desc)