If I start the application with command line parameters that will make it try to get fullscreen mode, then: - the current layout of the workspace is ignored, and the xpdf window indeed fill the whole workspace. - the keys for cycling through windows in the current workspace are ignored. (keys for switching to another workspace still works). The first behaviour is not really a problem, but the second is ennoying. It makes fullscreen-mode usable only with one window per workspace. examples of problematic apps/parameters xpdf -fullscreen rdesktop -f Other applications, like mplayer and zathura, does the right thing, they honor the size of the window that the windowmanager gives them AND they are willing to be cycled into smaller windows. My version of xmonad is from debian squeeze: xmonad (0.9.1-2+b1) unstable; urgency=low * Binary-only non-maintainer upload for i386; no source changes. * Rebuild with ghc6-6.12.1-10 -- i386 Build Daemon <buildd_i386-biber@buildd.debian.org> Sat, 20 Feb 2010 13:00:47 +0000 Here is my .xmonad/xmonad.hs ----------------------------- import XMonad import XMonad.Hooks.ManageHelpers import XMonad.Actions.CycleWS import qualified XMonad.StackSet as W import qualified Data.Map as M import XMonad.Layout.NoBorders myKeys conf@(XConfig {modMask = modm}) = M.fromList $ -- Remap switching workspaces to M-[jklnm;uio] [((m .|. modm, k), windows $ f i) | (i, k) <- zip (XMonad.workspaces conf) [xK_j, xK_k, xK_l, xK_f, xK_d, xK_u, xK_i, xK_o] , (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)] ] ++ [ -- Restore some essential functions whose keybindings are now stolen ((modm .|. shiftMask, xK_s), windows W.swapMaster) ] ++ [ -- launch dmenu (shift-caps lock "p") ((modm .|. shiftMask, xK_p ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") -- launch a terminal, ssh and screen into -- F1 -> code.cjb.net , ((modm .|. shiftMask, xK_F1 ), spawn "x-terminal-emulator -e \"ssh -t code.cjb.net screen -D -R\"") -- F2 -> jobbet , ((modm .|. shiftMask, xK_F2 ), spawn "x-terminal-emulator -e \"ssh -t pc5.socio.gu.se screen -D -R\"") -- F3 -> esset (@ 192.168.0.252, or 192.168.0.3) , ((modm .|. shiftMask, xK_F3 ), spawn "x-terminal-emulator -e 'ssh -t -X -C 192.168.0.252 ~/bin/attach-or-create-a-screen-session'") -- F4 -> fekweb , ((modm .|. shiftMask, xK_F4 ), spawn "x-terminal-emulator -e \"ssh -t fek@fekweb.hgus.gu.se screen -D -R\"") -- F5 -> noels (@ 192.168.0.138, or code.cjb.net:19828) , ((modm .|. shiftMask, xK_F5 ), spawn "x-terminal-emulator -e 'ssh -t -X -C -p 19828 code.cjb.net ~/bin/attach-or-create-a-screen-session'") ] ++ [ -- -- -- a basic CycleWS setup ((modm, xK_Down), nextWS) , ((modm, xK_n ), windows W.focusDown) , ((modm, xK_p ), windows W.focusUp) , ((modm, xK_Up), prevWS) , ((modm .|. shiftMask, xK_Down), shiftToNext) , ((modm .|. shiftMask, xK_Up), shiftToPrev) , ((modm, xK_Right), nextScreen) , ((modm, xK_Left), prevScreen) , ((modm .|. shiftMask, xK_Right), shiftNextScreen) , ((modm .|. shiftMask, xK_Left), shiftPrevScreen) , ((modm, xK_z), toggleWS) ] -- myManageHook = composeAll [ resource =? "realplay.bin" --> doFloat -- , resource =? "win" --> doF (W.shift "doc") -- xpdf -- , resource =? "firefox-bin" --> doF (W.shift "web") -- ] -- newManageHook = myManageHook <+> manageHook defaultConfig main = do xmonad $ defaultConfig { layoutHook = smartBorders $ layoutHook defaultConfig , borderWidth = 1 , modMask = mod3Mask -- Rebind Mod to Caps lock , normalBorderColor = "#cccccc" , focusedBorderColor = "#cd8b00" , keys = \c -> myKeys c `M.union` keys defaultConfig c , manageHook = composeOne [ isKDETrayWindow -?> doIgnore, transience, isFullscreen -?> doFullFloat, resource =? "stalonetray" -?> doIgnore ] }