[xmonad] strange application crashes with gnome/xmonad

Rogan Creswick creswick at gmail.com
Sat Feb 26 00:30:43 CET 2011


I'm mystified by a problem I'm having that only seems to appear when
using xmonad with gnome, and I am hoping that someone here can help
debug the issue.

I'm running xmonad with gnome per the instructions here:
  http://www.haskell.org/haskellwiki/Xmonad/Using_xmonad_in_Gnome#Setting_up_Gnome_to_use_Xmonad
specifically, I set up an xmonad.desktop file in my user's
applications dir, and I created another file in xsessions that invokes
the following xmonad.start:

---- xmonad.start:
--------------------------------------------------------------
#!/bin/bash

export PATH=$PATH:$HOME/.cabal/bin
export WINDOW_MANAGER=xmonad
gnome-session
----------------------------------------------------------------------------------------

I'm running the latest xmonad (0.9), and my xmonad.hs is included below.

The problem is that many applications crash when I change desktops,
but *only* when docked with the external display oriented so that the
display is above my laptop's lcd.  No other orientation causes
problems  - putting the screen to either side, or below the laptop
display works just fine. I also don't experience stability issues with
gnome + metacity when the monitors are in this configuration.
Furthermore, this is the second OS install that has exhibited this
problem (both were Debian testing installs, but with different
versions of testing).

I've posted my .xsession-errors file after having a gnome terminal and
thunderbird crash while switching desktops on hpaste:
http://hpaste.org/44316/weird_app_crashes_with_xmonad

This has been going on for over a year now - I ran non-gnome tools for
quite a while, but I'd like to give them a shot again, since other
(more annoying) stability issues arise when I yank bits of gnome out
of their usual environment (e.g., gnome-terminals crashing every time
I dock/undock, etc.).

Thanks!
Rogan

---- xmonad.hs-------------------------------------------------------------------
import XMonad
import XMonad.Config.Gnome
import XMonad.Layout.NoBorders
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.FloatNext
import XMonad.Util.Run
import XMonad.Util.EZConfig
import System.IO
import XMonad.Hooks.SetWMName

import qualified XMonad.StackSet as W

main = xmonad gnomeConf

gnomeConf = gnomeConfig {
         modMask = mod4Mask
       , terminal = "gnome-terminal"
       , layoutHook = smartBorders (layoutHook gnomeConfig)
       , manageHook = (manageHook gnomeConfig) <+> floatManageHooks
<+> doF W.focusDown <+>
                      (composeAll . concat $ [ [className =? "Do" -->
doIgnore] ])
       , startupHook = setWMName "LG3D"  -- LG3D is an xmonad
compatible window manager that the JVM is aware of
       } `additionalKeys`
       [ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command
-lock") -- M-S-z lock screen
       , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s") --
C-PrintScreen runs scrot.
       , ((mod4Mask, xK_p), spawn "dmenu_run") -- M-p runs dmenu_run
(like the default config..)
       , ((0, xK_Print), spawn "scrot")
       ]

floatManageHooks = composeAll [
                    className =? "Pandora" --> doFloat
                   -- make the evolution get mail checker float.
                   , title =? "Send & Receive Mail" --> (doFloat <+>
doF W.focusDown)
                   , className =? "Firefox" <&&> resource =? "Dialog"
    --> doFloat
                   , className =? "Firefox" <&&> resource =?
"Extension"   --> doFloat
                   , className =? "Firefox" <&&> resource =? "Browser"
    --> doFloat
                   , className =? "Firefox" <&&> resource =?
"Download"    --> doFloat
                   , title =? "Open..." --> doFloat
                   ]



More information about the xmonad mailing list