diff --git a/XMonad/Doc/Extending.hs b/XMonad/Doc/Extending.hs index 88c2c805..0c12c680 100644 --- a/XMonad/Doc/Extending.hs +++ b/XMonad/Doc/Extending.hs @@ -811,6 +811,8 @@ external utilities. A non complete list with a brief description: +* "XMonad.Util.Cursor": configure the default cursor/pointer glyph. + * "XMonad.Util.CustomKeys": configure key bindings (see "XMonad.Doc.Extending#Editing_key_bindings"). diff --git a/XMonad/Util/Cursor.hs b/XMonad/Util/Cursor.hs new file mode 100644 index 00000000..45a30876 --- /dev/null +++ b/XMonad/Util/Cursor.hs @@ -0,0 +1,42 @@ +---------------------------------------------------------------------------- +-- | +-- Module : XMonad.Util.Cursor +-- Copyright : (c) 2009 Collabora Ltd +-- License : BSD-style (see xmonad/LICENSE) +-- +-- Maintainer : Andres Salomon +-- Stability : unstable +-- Portability : unportable +-- +-- A module for setting the default mouse cursor. +-- +-- Some ideas shamelessly stolen from Nils Schweinsberg; thanks! +----------------------------------------------------------------------------- + +module XMonad.Util.Cursor + ( -- * Usage: + -- $usage + module Graphics.X11.Xlib.Cursor, + setDefaultCursor + ) where + +import Graphics.X11.Xlib.Cursor +import XMonad + +-- $usage +-- setDefaultCursor xC_left_ptr +-- For example, to override the default gnome cursor: +-- import XMonad.Util.Cursor +-- main = xmonad gnomeConfig { startupHook = setDefaultCursor xC_pirate } +-- Arrr! + +-- | Set the default (root) cursor +setDefaultCursor :: Glyph -> X () +setDefaultCursor glyph = do + dpy <- asks display + rootw <- asks theRoot + liftIO $ do + curs <- createFontCursor dpy glyph + defineCursor dpy rootw curs + flush dpy + freeCursor dpy curs diff --git a/xmonad-contrib.cabal b/xmonad-contrib.cabal index e589eeb3..aac6145d 100644 --- a/xmonad-contrib.cabal +++ b/xmonad-contrib.cabal @@ -217,6 +217,7 @@ library XMonad.Prompt.Window XMonad.Prompt.Workspace XMonad.Prompt.XMonad + XMonad.Util.Cursor XMonad.Util.CustomKeys XMonad.Util.Dmenu XMonad.Util.Dzen