HaskellWiki

Haskell | Wiki community | Recent changes
Random page | Special pages

 

Not logged in
Log in | Help

Request an account if you don't have one.

Xmonad/Notable changes since 0.8

< Xmonad

Categories: XMonad

This page is for keeping a record of significant changes in darcs xmonad and xmonad-contrib since the 0.8.* releases. See 'darcs changes' for more details about miscellaneous feature enhancements, and documentation and bug fixes not noted here.

(0.8.1 was a maintenance release, with no changes to user functionality. It simply included ghc-6.10.1 related updates and a ghc optimization bug 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.

Contents


1 Updates that require changes in xmonad.hs

Modules formerly using Hooks.EventHook now use Event from core.

1.1 EwmhDesktops

Note: EwmhDesktops users must change configuration by removing the obsolete ewmhDesktopsLayout from layoutHook, (it no longer exists), and updating to the current ewmh support which includes a startupHook and handleEventHook. (No need to change config if using ewmh via Config.Desktop, Config.Gnome, etc. Your config will automatically be updated to use current ewmh support so long as your config does not completely replace startupHook, logHook, or handleEventHook. See the change configuration link and Config.Desktop documentation for help merging your customizations with one of the desktop configs.)

See below for details of how to update an EwmhDesktops config.

1.2 DynamicLog

Most DynamicLog users can continue with configs unchanged, but users of the quickbar functions xmobar or dzen will need to change xmonad.hs: their types have changed to allow easier composition with other XConfig modifiers. The dynamicLogDzen and dynamicLogXmobar functions have been removed. For details, see the 0.9 DynamicLog docs.

1.3 WindowGo and safeSpawn

WindowGo or safeSpawn users may need to change command lines due to safeSpawn changes. For details, see Util.Run, and Actions.WindowGo docs.

1.4 Optional changes

People who explicitly use swapMaster in key or mouse bindings should change it to shiftMaster. It's the current default used where swapMaster had been used previously. It works better than swapMaster when using floating and tiled windows together on the same workspace.

People explicitly referencing the "SP" scratchpad workspace in xmonad.hs should change it to the currently used id "NSP" which is also used by the new Util.NamedScratchpad

2 Changes to the xmonad core

3 Changes to xmonad-contrib

3.1 Updated modules

3.1.1 Actions

3.1.2 Config

3.1.3 Hooks

Your config will be automatically upgraded if you're using EWMH via Config.Desktop, Config.Gnome, etc. but people using defaultConfig with explicit EwmhDesktops hooks and the ewmhDesktopsLayout modifier should update their configs as described below.

3.1.4 Layout

3.1.5 Prompt

3.1.6 Util

3.1.7 etc

3.2 New contrib modules

3.2.1 Actions

3.2.2 Hooks

3.2.3 Layout

3.2.4 Util

3.3 Deleted modules

4 Related Projects

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.

xmonad-extras includes some modules with additional dependencies, like a Volume control, an MPD prompt and the xmonad-eval package that uses the hint interpreter to manipulate xmonad state during runtime via arbitrary haskell expressions ala emacs eval.

xmonad log applet allows displaying xmonad logHook output in gnome-panel.

Bluetile is a tiling window manager based on xmonad which focuses on making the tiling paradigm easily accessible to users coming from traditional window managers by drawing on known conventions and providing both mouse and keyboard access for all features. It also tries to be usable 'out of the box', requiring minimal to no configuration in most cases.

dzen-utils provides combinators for creating and processing dzen2 input strings.

hlint parses haskell source and offers suggestions on how to improve it. (Requires >=ghc-6.10)

xmonad and dbus integration

5 EwmhDesktops 0.9 config updates

Users of defaultConfig that explicitly include EwmhDesktops hooks and the ewmhDesktopsLayout modifier should remove the old layout modifier, then choose one of the following upgrade methods:

darcs xmonad users who already have ewmh log and event hooks will likely choose 2) which will only require them to add ewmhDesktopsStartup to the existing config.

1) To combine your custom non-ewmh hooks with all the current ewmh defaults:

Remove any of the ewmh hooks or modifiers currently in your config*, and instead use the new ewmh function which adds EWMH support to defaultConfig all at once. You should keep avoidStruts and manageDocks if you're using them. If you are using a different WM Name for java, that needs to over-ride part but not all of the ewmh startupHook, so use method 2) below.)
* Remove ewmhDesktopsLayout, ewmhDesktopsLogHook, and if you have it, ewmhHandleEventHook, or use method 2 instead.
        import XMonad
        import XMonad.Hooks.EwmhDesktops
 
        main = xmonad $ ewmh defaultConfig {
                -- non-ewmh customizations
                }

2) To override these hooks, customize them or explicitly define them yourself:

Use something like the following example. It overrides logHook completely to use a custom hook that filters the workspaces, and explicitly adds the EwmhDesktops handleEventHook and startupHook, over-riding the default WM name. For more information about modifying these fields see the Hooks.EwmhDesktops and Config.Desktop documentation.
        import XMonad
        import XMonad.Hooks.EwmhDesktops
        
        -- imports needed for this example, but normally not needed
        import Data.Monoid (mappend)
        import XMonad.Actions.SetWMName
        import XMonad.Hooks.FadeInactive
 
        main = xmonad $ defaultConfig {
                  startupHook = ewmhDesktopsStartup >> setWMName "LG3D"
 
                , logHook = ewmhDesktopsLogHookCustom scratchpadFilterOutWorkspace
                -- This completely replaces the config logHook.
                --
                -- Use '>>'  or 'do' to run an ewmh logHook /plus/ your own
                -- chosen logHook(s). Same as for startupHook. For example:
                -- , logHook = logHook gnomeConfig >> fadeInactiveLogHook
 
                , handleEventHook = myCustomEventHook `mappend` ewmhDesktopsEventHook 
                -- handleEventHook combines with mappend or mconcat instead of '>>'       
                }

Retrieved from "http://haskell.cs.yale.edu/haskellwiki/Xmonad/Notable_changes_since_0.8"

This page has been accessed 6,183 times. This page was last modified 00:45, 24 November 2009. Recent content is available under a simple permissive license.