You are not logged in.
Hi!
I've been searching for this solution and please believe me, posting here is my last resort.
I am using xmonad with mainly no problems, but it completly fails when I want to do something fullscreen. When I tap F11 key in Firefox, it freezes for a while and then works really slowly and sometimes ignores my orders. Of course there is no full screen. Trying to maximize youtube causes realy bad crash. However, VLC has no problems. To cure firefox from lags i need to restart it, but still cannot go fullscreen.
I remeber that in Debian i hadn't got such a problem. The only thing that mattered was that every fullscreen apps appeared as tiled windows and I had to maximize them manualy. But in my opinion it was good, I had full control of them and although it looked bugged, nobordersLayout could fix it.
This is my xmonad.hs (It is very messy because I have copied someone's and did some modifications. I'm very newbie to haskell and i don't understand it well enough)
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig
import Graphics.X11.ExtraTypes.XF86
import XMonad.Layout.Spacing
import XMonad.Layout.NoBorders(smartBorders, noBorders)
import XMonad.Layout.PerWorkspace
import XMonad.Layout.IM
import XMonad.Layout.Grid
--import XMonad.Actions.GridSelect
import Data.Ratio ((%))
import XMonad.Actions.CycleWS
import qualified XMonad.StackSet as W
import System.IO
import XMonad.Layout.Grid
import XMonad.Hooks.ICCCMFocus
import Data.List
import XMonad.Actions.SinkAll
import XMonad.Hooks.ManageHelpers
myWorkspaces = ["1", "2", "3", "4", "5", "6"]
myLayout = avoidStruts $ tiled1 ||| Mirror tiled1 ||| nobordersLayout ||| Grid
where
tiled1 = spacing 5 $ Tall nmaster1 delta ratio
--tiled2 = spacing 5 $ Tall nmaster2 delta ratio
nmaster1 = 1
nmaster2 = 2
ratio = 2/3
delta = 3/100
nobordersLayout = smartBorders $ Full
gridLayout = spacing 8 $ Grid
pidginLayout = withIM (18/100) (Role "buddy_list") gridLayout
myManageHook = composeAll
[ isFullscreen --> doFullFloat,
(role =? "gimp-toolbox" <||> role =? "gimp-image-window") --> (ask >>= doF . W.sink)
, className =? "File Operation Progress" --> doFloat
, resource =? "desktop_window" --> doIgnore
, className =? "xfce4-notifyd" --> doIgnore
--, className =? "Iron" --> doShift "1:main"
--, className =? "Gimp" --> doShift "5:graphic"
--, className =? "Vlc" --> doShift "7:media"
--, className =? "Minitube" --> doShift "7:media"
--, className =? "Firefox" --> doFullFloat
]
where role = stringProperty "WM_WINDOW_ROLE"
main = do
xmproc <- spawnPipe "xmobar"
--spawn "xcompmgr -Cf"
xmonad $ defaultConfig
{ manageHook = manageDocks <+> myManageHook -- make sure to include myManageHook definition from above
<+> manageHook defaultConfig
, layoutHook = myLayout
, logHook = dynamicLogWithPP xmobarPP
{ ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor "#2CE3FF" "" . shorten 50
, ppLayout = const "" -- to disable the layout info on xmobar
}
, modMask = mod4Mask
, workspaces = myWorkspaces
, normalBorderColor = "#60A1AD"
, focusedBorderColor = "#68e862"
, borderWidth = 2
} `additionalKeys`
[
((mod4Mask, xK_Return), spawn "terminator") -- spawn terminator terminal
, ((mod4Mask, xK_w), spawn "firefox") -- firefox browser
, ((mod1Mask, xK_F4), kill) -- to kill app
, ((mod4Mask, xK_f), spawn "thunar")
, ((mod4Mask, xK_m), spawn "ncmpcpp") -- hit a button to run mpd with ncmpcpp
, ((mod4Mask .|. shiftMask, xK_F4), spawn "sudo shutdown -h now") -- to shutdown
, ((mod4Mask .|. shiftMask, xK_r), spawn "sudo reboot") -- to restart
, ((controlMask, xK_p), spawn "ncmpcpp toggle") -- play/pause mpd
, ((0, xF86XK_AudioLowerVolume), spawn "amixer set Master 3%-") -- decrease volume
, ((0, xF86XK_AudioRaiseVolume), spawn "amixer set Master 3%+") -- increase volume
, ((0, xF86XK_AudioMute), spawn "amixer set Master toggle") -- mute volume
, ((controlMask .|. shiftMask, xK_Right), spawn "ncmpcpp next") -- play next song in mpd
, ((controlMask .|. shiftMask, xK_Left), spawn "ncmpcpp prev") -- play previous song
, ((mod4Mask, xK_a ), windows W.swapUp) -- swap up window
, ((mod4Mask, xK_z ), windows W.swapDown) -- swap down window
, ((mod4Mask, xK_KP_Add ), sendMessage (IncMasterN 1)) -- increase the number of window on master pane
, ((mod4Mask, xK_KP_Subtract ), sendMessage (IncMasterN (-1))) -- decrease the number of window
, ((mod4Mask .|. controlMask, xK_Right ), sendMessage Expand) -- expand master pane
, ((mod4Mask .|. controlMask, xK_Left ), sendMessage Shrink) -- shrink master pane
, ((0, xF86XK_HomePage), spawn "iron") -- run iron
--MOJE
, ((0, xK_Print), spawn "scrot ~/Pictures/screenshot.jpg")
, ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s ~/Pictures/screenshot.jpg") -- capture screenshot of focused window
, ((mod4Mask, xK_Up), windows W.focusUp)
, ((mod4Mask, xK_Down), windows W.focusDown)
, ((mod4Mask, xK_Left), windows W.focusMaster)
, ((mod4Mask, xK_Right), windows W.focusDown)
, ((0, xF86XK_KbdBrightnessUp), spawn "xbacklight -inc 10")
, ((0, xF86XK_KbdBrightnessDown), spawn "xbacklight -inc -10")
, ((mod4Mask, xK_b), sendMessage ToggleStruts)
, ((mod4Mask .|. shiftMask, xK_f), sinkAll)
]`removeKeys` -- keys to remove
[ (mod4Mask .|. shiftMask, xK_c)
, (mod4Mask .|. shiftMask, xK_j)
, (mod4Mask .|. shiftMask, xK_k)
, (mod4Mask, xK_j)
, (mod4Mask, xK_k)
, (mod4Mask, xK_h)
, (mod4Mask, xK_l)
, (mod4Mask, xK_comma)
, (mod4Mask, xK_period)
]`additionalMouseBindings`
[--((mod4Mask, button4),\_-> nextWS)
--,((mod4Mask, button5),\_-> prevWS)
((mod4Mask, button4),\_-> spawn "amixer set Master 3%+")
,((mod4Mask, button5),\_-> spawn "amixer set Master 3%-")
,((mod4Mask, button3),\_-> return())
,((mod4Mask, button1),\_-> return())
]My favourite purpose is to force unfloat all windows that are not dialogs, even games from steam (I have never tried them in xmonad) and fullscreen flash player.
Offline
I was facing the same problem after switching to newer version of Firefox.
XMonad.Hooks.EwmhDesktops.fullscreenEventHook is the solution.
Credit goes to http://charlieharvey.org.uk/page/icewea … en_problem.
Offline
I've had this problem for months now, and this finally fixed it. Thanks a bunch!
Offline