You are not logged in.

#1 2016-03-14 20:14:28

ikciwor
Member
Registered: 2016-03-14
Posts: 7

Xmonad - Fullscreen issues in firefox

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

#2 2016-03-23 20:54:15

jirik
Member
Registered: 2016-03-23
Posts: 1

Re: Xmonad - Fullscreen issues in firefox

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

#3 2016-03-23 21:57:14

milos
Member
Registered: 2016-03-22
Posts: 1

Re: Xmonad - Fullscreen issues in firefox

I've had this problem for months now, and this finally fixed it. Thanks a bunch!

Offline

Board footer

Powered by FluxBB