Difference between revisions of "Xmonad/Notable changes since 0.8"

From HaskellWiki
Jump to navigation Jump to search
m (→‎Util: split sub-section update Util stuff)
m (→‎New contrib modules: add subsection headings increase spacing for readability)
Line 69: Line 69:
 
===New contrib modules===
 
===New contrib modules===
   
  +
====Actions====
 
* Actions.GridSelect -- Graphically go to, select, do things with windows. With additional colourizers and documentation.
 
* Actions.GridSelect -- Graphically go to, select, do things with windows. With additional colourizers and documentation.
  +
 
* Actions.SpawnOn -- Binding actions, hook, and prompts to spawn on given or current workspace.
 
* Actions.SpawnOn -- Binding actions, hook, and prompts to spawn on given or current workspace.
  +
 
* Actions.WithAll -- apply functions to all windows on a workspace.
 
* Actions.WithAll -- apply functions to all windows on a workspace.
  +
 
* Actions.CycleWindows -- cycle recent windows, cycle custom window order, focus nth window, change focused or unfocused window order. Esp. useful with layouts that hide some windows.
 
* Actions.CycleWindows -- cycle recent windows, cycle custom window order, focus nth window, change focused or unfocused window order. Esp. useful with layouts that hide some windows.
   
  +
====Layout====
 
* Layout.CenteredMaster -- Sort of a combination of Master's mastered modifier with Magnifier, adding a master frame above tiled windows that is centered or at the top right of the screen.
 
* Layout.CenteredMaster -- Sort of a combination of Master's mastered modifier with Magnifier, adding a master frame above tiled windows that is centered or at the top right of the screen.
  +
 
* Layout.Cross -- Similar to Circle, but with a resizable center pane. Limits visible windows to five. Cycles the focused window into the main window keeping visible two above and two below in stack order.
 
* Layout.Cross -- Similar to Circle, but with a resizable center pane. Limits visible windows to five. Cycles the focused window into the main window keeping visible two above and two below in stack order.
  +
 
* Layout.FixedColumn -- Neat variation on Tall, using window hints to decide master width, e.g. have your terminal automatically be 80 columns wide in the master.
 
* Layout.FixedColumn -- Neat variation on Tall, using window hints to decide master width, e.g. have your terminal automatically be 80 columns wide in the master.
  +
 
* Layout.GridVariants -- More customizable Grid, and very fine SplitGrid, see [http://xmonad.org/xmonad-docs/xmonad-contrib xm-contrib documentation] (once 0.9 is released)
 
* Layout.GridVariants -- More customizable Grid, and very fine SplitGrid, see [http://xmonad.org/xmonad-docs/xmonad-contrib xm-contrib documentation] (once 0.9 is released)
  +
 
* Layout.IndependentScreens -- Utilities to simulate dwm's screen model, where each physical screen has its own set of the defined workspaces.
 
* Layout.IndependentScreens -- Utilities to simulate dwm's screen model, where each physical screen has its own set of the defined workspaces.
  +
 
* Layout.Monitor -- Many useful functions for gkrellm, clock, widget type windows
 
* Layout.Monitor -- Many useful functions for gkrellm, clock, widget type windows
  +
 
* Layout.ThreeColumnsMiddle -- Master in center three column layout
 
* Layout.ThreeColumnsMiddle -- Master in center three column layout
  +
 
* Layout.Mosaic -- Very versatile, easy to configure, fun layout that can yield anything from Full to TwoPane to Spiral to Grid. It sizes panes based on the relative sizes of a list of numbers. The number of visible windows is limited to the number of list elements.
 
* Layout.Mosaic -- Very versatile, easy to configure, fun layout that can yield anything from Full to TwoPane to Spiral to Grid. It sizes panes based on the relative sizes of a list of numbers. The number of visible windows is limited to the number of list elements.
   
  +
====Util====
 
* Util.Paste -- For pasting strings to windows
 
* Util.Paste -- For pasting strings to windows
   

Revision as of 21:50, 23 February 2009

This page is for keeping a record of significant changes in darcs xmonad and xmonad-contrib since the 0.8 release. (0.8.1 was a maintenance release, with no changes to user functionality. It simply includes ghc-6.10.1 related updates and workaround for 64-bit users building xmonad-contrib on ghc-6.10.1.)

The idea is to put here a list of things which a user upgrading from 0.8 to 0.9 might like to know, so that they are sure to be included in the 0.9 release notes.

Changes to the xmonad core

  • Spawned processes are now handled by xmonad. Using 'exec xmonad' in startup files now "does the right thing."
  • New --restart command line flag to restart a running xmonad process.
  • Focus changes across screens with mouse, even for empty workspaces.
  • XMonad now exports (.|.), no need to import Data.Bits.
  • StackSet exports focusUp', focusDown' for Stack in addition to focusUp/Down StackSet versions.
  • XConfig has new handleEventHook:: Event -> X All field supporting custom event hooks. The function should return (All True) to have the default handler run afterward. (See Graphics.X11.Xlib.Extras Event, Core.hs, Main.hs)
  • X is now typeable. (Enables Language.Haskell.Interpreter, i.e. hint integration, see xmonad-eval project below.)

Changes to xmonad-contrib

Updated modules

Modules formerly using Hooks.EventHook now use Event from core. Note: EwmhDesktops users must change configuration by adding a handleEventHook to XConfig.

Actions

  • Actions.CycleWS now includes HiddenWS type.
  • Actions.Submap now supports a default action, enabling looping to, e.g., set volume, or use an explicit 'exit submap' key.
  • Actions.Plane has a planeKeys function to automatically set up default workspace navigation.
  • Actions.Search has more searches.
  • Actions.WindowBringer now works with external programs other than dmenu, such as nafai's gtkmenu
  • Actions.CopyWindow has new runOrCopy
  • Actions.WindowGo has raiseMaster variant of runOrRaiseMaster

Hooks

  • Hooks.EwmhDesktops requires new handleEventHook = ewmhDesktopsEventHook, added to defaultConfig.
  • Hooks.DynamicLog module has a new 'statusBar' function to simplify status bar configuration. Similar 'dzen' and 'xmobar' quick bar functions have changed type to allow better compositionality.The 'dynamicLogDzen' and 'dynamicLogXmobar' have been removed.
  • Hooks.UrgencyHook now can be configured with reminders at intervals, and urgency can be cleared with a keybinding even without "visiting" the urgent window.

Layout

  • Layout.Grid has configurable aspect ratio.
  • Layout.Master is now a layout modifier rather than layout; backward compatible with old Master.

Util

  • Util.EZConfig includes multimedia keys on systems with X11 that supports them.
  • Util.Scratchpad has general spawn action allowing user to specify how to set resource to "scratchpad", allows use of gnome-terminal, etc. as scratchpads.
  • Util.WindowProperties has general getProp32* helpers and doc improvements
  • Util.XSelection has new functions to allow transforming the selection before acting on it.

etc

  • Config.Kde has optional KDE 4 specific settings.
  • XMonad.Prompt has more tab completion settings, configurable history filter, several bug fixes.

New contrib modules

Actions

  • Actions.GridSelect -- Graphically go to, select, do things with windows. With additional colourizers and documentation.
  • Actions.SpawnOn -- Binding actions, hook, and prompts to spawn on given or current workspace.
  • Actions.WithAll -- apply functions to all windows on a workspace.
  • Actions.CycleWindows -- cycle recent windows, cycle custom window order, focus nth window, change focused or unfocused window order. Esp. useful with layouts that hide some windows.

Layout

  • Layout.CenteredMaster -- Sort of a combination of Master's mastered modifier with Magnifier, adding a master frame above tiled windows that is centered or at the top right of the screen.
  • Layout.Cross -- Similar to Circle, but with a resizable center pane. Limits visible windows to five. Cycles the focused window into the main window keeping visible two above and two below in stack order.
  • Layout.FixedColumn -- Neat variation on Tall, using window hints to decide master width, e.g. have your terminal automatically be 80 columns wide in the master.
  • Layout.GridVariants -- More customizable Grid, and very fine SplitGrid, see xm-contrib documentation (once 0.9 is released)
  • Layout.IndependentScreens -- Utilities to simulate dwm's screen model, where each physical screen has its own set of the defined workspaces.
  • Layout.Monitor -- Many useful functions for gkrellm, clock, widget type windows
  • Layout.ThreeColumnsMiddle -- Master in center three column layout
  • Layout.Mosaic -- Very versatile, easy to configure, fun layout that can yield anything from Full to TwoPane to Spiral to Grid. It sizes panes based on the relative sizes of a list of numbers. The number of visible windows is limited to the number of list elements.

Util

  • Util.Paste -- For pasting strings to windows

Deleted modules

  • Config.PlainConfig is now a separate project, shepheb's xmonad-light.

Related Packages

xmonad-light allows using a limited version of xmonad without having to have ghc installed. It provides a special syntax to customize a few common options using xmonad.conf instead of xmonad.hs.

Asgaroth's xmonad-eval uses the hint interpreter to manipulate xmonad state during runtime via normal haskell expressions ala emacs eval.

For users of >=ghc-6.10, the hlint package parses haskell source and offers suggestions on how to improve it.