From c18aaaca0315f777fdc3d30c6f8fc33526deb55c Mon Sep 17 00:00:00 2001 From: Brent Yorgey Date: Wed, 26 Mar 2008 20:57:41 +0100 Subject: update documentation in XMonad/Doc in preparation for 0.7 release darcs-hash:20080326195741-bd4d7-74a11c8d28951cf24caaf0e6102cad2fc40635d1.gz --- XMonad/Doc/Extending.hs | 175 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 138 insertions(+), 37 deletions(-) (limited to 'XMonad/Doc/Extending.hs') diff --git a/XMonad/Doc/Extending.hs b/XMonad/Doc/Extending.hs index d0537fc..244ec43 100644 --- a/XMonad/Doc/Extending.hs +++ b/XMonad/Doc/Extending.hs @@ -125,14 +125,17 @@ edit your key bindings. * "XMonad.Actions.CopyWindow": duplicating windows on multiple workspaces. -* "XMonad.Actions.CycleWS": move between workspaces. +* "XMonad.Actions.CycleSelectedLayouts": bind a key to cycle through a + particular subset of your layouts. + +* "XMonad.Actions.CycleWS": move between workspaces in various ways. * "XMonad.Actions.DeManage": cease management of a window without unmapping it. * "XMonad.Actions.DwmPromote": dwm-like master window swapping. -* "XMonad.Actions.DynamicWorkspaces": add and delete workspaces. +* "XMonad.Actions.DynamicWorkspaces": add, delete, and rename workspaces. * "XMonad.Actions.FindEmptyWorkspace": find an empty workspace. @@ -148,6 +151,19 @@ edit your key bindings. * "XMonad.Actions.MouseGestures": bind mouse gestures to actions. +* "XMonad.Actions.MouseResize": use with + "XMonad.Layout.WindowArranger" to resize windows with the mouse when + using a floating layout. + +* "XMonad.Actions.NoBorders": forcibly remove borders from a window. + Not to be confused with "XMonad.Layout.NoBorders". + +* "XMonad.Actions.PerWorkspaceKeys": configure keybindings + per-workspace. + +* "XMonad.Actions.Promote": An action to move the focused window to + the master pane, or swap the master with the next window. + * "XMonad.Actions.RotSlaves": rotate non-master windows. * "XMonad.Actions.Search": provide helpful functions for easily @@ -165,12 +181,16 @@ edit your key bindings. * "XMonad.Actions.TagWindows": tag windows and select by tag. +* "XMonad.Actions.UpdatePointer": mouse-follows-focus. + * "XMonad.Actions.Warp": warp the pointer. * "XMonad.Actions.WindowBringer": bring windows to you, and you to windows. -* "XMonad.Actions.WmiiActions": wmii-style actions. +* "XMonad.Actions.WindowGo": travel to windows based on various + criteria; conditionally start a program if a window does not exist, + or travel to that window if it does. -} @@ -223,13 +243,19 @@ Here is a list of the modules found in @XMonad.Hooks@: putting in a status bar of some sort. See "XMonad.Doc.Extending#The_log_hook_and_external_status_bars". +* "XMonad.Hooks.EventHook": a hook to handle X events at the layout level. + * "XMonad.Hooks.EwmhDesktops": support for pagers in panel applications. -* "XMonad.Hooks.ManageDocks": handle DOCK and STRUT windows appropriately. +* "XMonad.Hooks.ManageDocks": handle DOCK and STRUT windows (such as + status bars) appropriately, by de-managing them and creating + appropriate gaps so as not to place other windows covering them. * "XMonad.Hooks.ManageHelpers": provide helper functions to be used in @manageHook@. +* "XMonad.Hooks.ServerMode": example use of "XMonad.Hooks.EventHook". + * "XMonad.Hooks.SetWMName": set the WM name. Useful when e.g. running Java GUI programs. @@ -265,13 +291,24 @@ For more information on using those modules for customizing your * "XMonad.Layout.Combo": combine multiple layouts into one. +* "XMonad.Layout.Decoration": decorated layouts. + +* "XMonad.Layout.DecorationMadness": some examples of decorated layouts. + * "XMonad.Layout.Dishes": stack extra windows underneath the master windows. * "XMonad.Layout.DragPane": split the screen into two windows with a draggable divider. +* "XMonad.Layout.DwmStyle": windows decorated in a dwm-like style. + * "XMonad.Layout.Grid": put windows in a square grid. +* "XMonad.Layout.HintedTile": gapless tiled layout that attempts to + obey window size hints. + +* "XMonad.Layout.IM": a layout for multi-window instant message clients. + * "XMonad.Layout.LayoutCombinators": general layout combining. * "XMonad.Layout.LayoutHints": make layouts respect window size hints. @@ -289,9 +326,6 @@ For more information on using those modules for customizing your * "XMonad.Layout.Maximize": temporarily maximize the focused window. -* "XMonad.Layout.Mosaic": tries to give each window a - user-configurable relative area - * "XMonad.Layout.MosaicAlt": give each window a specified relative amount of screen space. @@ -305,29 +339,48 @@ For more information on using those modules for customizing your * "XMonad.Layout.PerWorkspace": configure layouts on a per-workspace basis. +* "XMonad.Layout.Reflect": reflect any layout vertically or horizontally. + * "XMonad.Layout.ResizableTile": tiled layout allowing you to change width and height of windows. +* "XMonad.Layout.ResizeScreen": a layout modifier to change the screen + geometry on one side. + * "XMonad.Layout.Roledex": a \"completely pointless layout which acts like Microsoft's Flip 3D\". +* "XMonad.Layout.ScratchWorkspace": implements a scratch workspace + which can be shown and hidden with keybindings. + * "XMonad.Layout.ShowWName": Show the name of the current workspace when switching. +* "XMonad.Layout.SimpleDecoration": add simple decorations to windows. + +* "XMonad.Layout.SimpleFloat": a basic floating layout. + +* "XMonad.Layout.Simplest": a basic, simple layout that just lays out + all windows with a fullscreen geometry. Used by + "XMonad.Layout.Tabbed". + * "XMonad.Layout.Spiral": Fibonacci spiral layout. * "XMonad.Layout.Square": split the screen into a square area plus the rest. +* "XMonad.Layout.TabBarDecoration": add a bar of tabs to any layout. + * "XMonad.Layout.Tabbed": a tabbed layout. * "XMonad.Layout.ThreeColumns": a layout with three columns instead of two. -* "XMonad.Layout.TilePrime": fill gaps created by resize hints. - * "XMonad.Layout.ToggleLayouts": toggle between two layouts. * "XMonad.Layout.TwoPane": split the screen horizontally and show two windows. +* "XMonad.Layout.WindowArranger": make any layout into a + pseudo-floating layout by allowing you to move and resize windows. + * "XMonad.Layout.WindowNavigation": navigate around a workspace directionally instead of using mod-j\/k. @@ -347,21 +400,38 @@ modules. These are the available prompts: -* "XMonad.Prompt.Directory" +* "XMonad.Prompt.AppendFile": append lines of text to a file. + +* "XMonad.Prompt.Directory": prompt for a directory. -* "XMonad.Prompt.Layout" +* "XMonad.Prompt.DirExec": put a bunch of scripts you want in a + directory, then choose from among them with this prompt. -* "XMonad.Prompt.Man" +* "XMonad.Prompt.Email": an example of "XMonad.Prompt.Input", send + simple short e-mails from a prompt. -* "XMonad.Prompt.Shell" +* "XMonad.Prompt.Input": useful for building general actions requiring + input from a prompt. -* "XMonad.Prompt.Ssh" +* "XMonad.Prompt.Layout": choose a layout from a prompt. -* "XMonad.Prompt.Window" +* "XMonad.Prompt.Man": open man pages. -* "XMonad.Prompt.Workspace" +* "XMonad.Prompt.RunOrRaise": choose a program, and run it if not + already running, or raise its window if it is. -* "XMonad.Prompt.XMonad" +* "XMonad.Prompt.Shell": run a shell command. + +* "XMonad.Prompt.Ssh": open an ssh connection. + +* "XMonad.Prompt.Theme": choose a decoration theme. + +* "XMonad.Prompt.Window": choose an open window. + +* "XMonad.Prompt.Workspace": choose a workspace. + +* "XMonad.Prompt.XMonad": perform various xmonad actions by choosing + one from a prompt. Usually a prompt is called by some key binding. See "XMonad.Doc.Extending#Editing_key_bindings", which includes examples @@ -380,16 +450,46 @@ external utilities. A non complete list with a brief description: -* "XMonad.Util.Anneal": The goal is to bring the system, from an - arbitrary initial state, to a state with the minimum possible - energy. +* "XMonad.Util.CustomKeys": configure key bindings (see + "XMonad.Doc.Extending#Editing_key_bindings"). -* "XMonad.Util.CustomKeys" or "XMonad.Util.EZConfig" can be used to - configure key bindings (see "XMonad.Doc.Extending#Editing_key_bindings"); +* "XMonad.Util.Dmenu": a dmenu binding. * "XMonad.Util.Dzen" "XMonad.Util.Dmenu" provide useful functions for running dzen as a xmonad status bar and dmenu as a program launcher; +* "XMonad.Util.EZConfig": configure key bindings easily, including a + parser for writing key bindings in "M-C-x" style. + +* "XMonad.Util.Font": A module for abstracting a font facility over + Core fonts and Xft + +* "XMonad.Util.Invisible": a wrapper data type to store layout state + which should not be persisted across restarts. + +* "XMonad.Util.Loggers": a collection of loggers that can be used in + conjunction with "XMonad.Hooks.DynamicLog". + +* "XMonad.Util.NamedWindows": associate windows with their X titles. + Used by, e.g. "XMonad.Layout.Tabbed". + +* "XMonad.Util.Run": a collection of functions for running external + processes. + +* "XMonad.Util.Scratchpad": hotkey-launched floating terminal window. + +* "XMonad.Util.Themes": a collection of themes to be used with + floating layouts. + +* "XMonad.Util.Timer": set up a timer to handle deferred events. + +* "XMonad.Util.WindowProperties": an EDSL for specifying and matching + on window properties. + +* "XMonad.Util.WorkspaceCompare": general combinators for sorting + workspaces in various ways, used by several other modules which need + to sort workspaces (e.g. "XMonad.Hooks.DynamicLog"). + * "XMonad.Util.XSelection" provide utilities for using the mouse selection; @@ -421,6 +521,8 @@ Editing key bindings means changing the 'XMonad.Core.XConfig.keys' field of the 'XMonad.Core.XConfig' record used by xmonad. For example, you could write: +> import XMonad +> > main = xmonad $ defaultConfig { keys = myKeys } and provide an appropriate definition of @myKeys@, such as: @@ -430,14 +532,14 @@ and provide an appropriate definition of @myKeys@, such as: > , ((modMask x, xK_F3 ), shellPrompt defaultXPConfig) > ] -This particular definition also requires importing "Graphics.X11.Xlib" -(for the symbols such as @xK_F12@), "XMonad.Prompt", +This particular definition also requires importing "XMonad.Prompt", "XMonad.Prompt.Shell", and "XMonad.Prompt.XMonad": -> import Graphics.X11.Xlib +> import XMonadPrompt > import ... -- and so on -For a list of the names of particular keys (such as xK_F12, and so on), see +For a list of the names of particular keys (such as xK_F12, and so +on), see . Usually, rather than completely redefining the key bindings, as we did @@ -507,17 +609,10 @@ All together, your @~\/.xmonad\/xmonad.hs@ would now look like this: > , ((modMask x, xK_F3 ), shellPrompt defaultXPConfig) > ] - -There are other ways of defining @newKeys@; for instance, -you could define it like this: - -> newKeys x = foldr (uncurry M.insert) (keys defaultConfig x) (myKeys x) - -However, the simplest way to add new key bindings is to use some -utilities provided by the xmonad-contrib library. For instance, -"XMonad.Util.EZConfig" and "XMonad.Util.CustomKeys" both provide -useful functions for editing your key bindings. Look, for instance, at -'XMonad.Util.EZConfig.additionalKeys'. +There are much simpler ways to accomplish this, however, if you are +willing to use an extension module to help you configure your keys. +For instance, "XMonad.Util.EZConfig" and "XMonad.Util.CustomKeys" both +provide useful functions for editing your key bindings; "XMonad.Util.EZConfig" even lets you use emacs-style keybinding descriptions like \"M-C-\". -} @@ -767,6 +862,9 @@ Where @property@ can be: * 'XMonad.ManageHook.className': the resource class name. +* 'XMonad.ManageHook.stringProperty' @somestring@: the contents of the + property @somestring@. + (You can retrieve the needed information using the X utility named @xprop@; for example, to find the resource class name, you can type @@ -839,6 +937,9 @@ of the corresponding actions will be run (in the order in which they are defined). This is a change from versions before 0.5, when only the first rule that matched was run. +Finally, for additional rules and actions you can use in your +manageHook, check out the contrib module "XMonad.Hooks.ManageHelpers". + -} {- $logHook -- cgit v1.2.3