Package: xmonad Version: 0.11-6+b1 Severity: important
Dear Maintainer, I use a specific layout for Firefox on my "0" workspace (that is a simpleTabbed noBorders layout). Sometimes (but not always I failed to find how to reproduce this behavior) xmonad goes in a loop when I switch from one firefox window to another. After I have ended this loop (by pressing again the keys that triggers the switch) the focus stays on one of the firefox window (although not the one currently displayed). The only way to break this state is to open a new firefox window. I have also this strange bug on other workspaces but less often. I have attached my xmonad.hs -- System Information: Debian Release: jessie/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.13-1-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_BE.UTF-8, LC_CTYPE=fr_BE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Versions of packages xmonad depends on: ii libc6 2.18-4 ii libffi6 3.0.13-12 ii libgmp10 2:5.1.3+dfsg-1 ii libx11-6 2:1.6.2-1 ii libxext6 2:1.3.2-1 ii libxinerama1 2:1.1.3-1 ii libxrandr2 2:1.4.2-1 ii x11-utils 7.7+1 Versions of packages xmonad recommends: ii libghc-xmonad-dev 0.11-6+b1 pn libghc-xmonad-doc <none> ii xfonts-base 1:1.0.3 Versions of packages xmonad suggests: ii suckless-tools [dmenu] 40-1 -- no debconf information -- (°> Nicolas Évrard ( ) Liège `¯
import XMonad import Graphics.X11.ExtraTypes.XF86 import qualified XMonad.StackSet as W import qualified Data.Map as M import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageHelpers import XMonad.Hooks.UrgencyHook import XMonad.Layout.NoBorders import XMonad.Layout.Tabbed import XMonad.Layout.Minimize import XMonad.Layout.BoringWindows import XMonad.Layout.PerWorkspace import XMonad.Layout.WindowNavigation import XMonad.Layout.Reflect import XMonad.Actions.CycleWS import XMonad.Actions.UpdatePointer import XMonad.Actions.WindowBringer import XMonad.Util.Run(spawnPipe) import XMonad.Util.EZConfig import System.IO {-swapFirst :: X()-} {-swapFirst = windows $ W.modify' swapFirst'-} {-swapFirst' :: W.Stack a -> W.Stack a-} {-swapFirst' (W.Stack t [] []) = W.Stack t [] []-} {-swapFirst' (W.Stack t [] (r:rs)) = W.Stack r [] (t:rs)-} {-swapFirst' (W.Stack t ls rs) = swapFirst' (W.Stack t [] (ls ++ rs))-} belgian_azerty = [xK_ampersand, xK_eacute, xK_quotedbl, xK_apostrophe , xK_parenleft, xK_section, xK_egrave, xK_exclam, xK_ccedilla , xK_agrave] azertyKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $ [((m .|. modm, k), windows $ f i) | (i, k) <- zip (workspaces conf) belgian_azerty, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]] myLayout = avoidStruts (smartBorders tiled ||| smartBorders simpleTabbed) ||| noBorders Full where tiled = reflectHoriz $ windowNavigation (boringWindows (minimize (Tall 1 (3 / 100) (1 / 2)))) myHook:: ManageHook myHook = composeAll [ className =? "Vlc" --> doFloat , className =? "Pqiv" --> doFloat ] <+> composeOne [ transience ] main = do xmproc <- spawnPipe "/usr/bin/xmobar" xmonad $ withUrgencyHook NoUrgencyHook $ defaultConfig { modMask = mod4Mask , focusedBorderColor = "white" , normalBorderColor = "black" , keys = azertyKeys <+> keys defaultConfig , workspaces = workspaces defaultConfig ++ ["0"] , manageHook = manageDocks <+> myHook <+> manageHook defaultConfig , layoutHook = onWorkspace "0" ((avoidStruts . noBorders) simpleTabbed) $ myLayout , logHook = (dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn xmproc , ppTitle = xmobarColor "green" "" . shorten 50 }) >> updatePointer (Relative 0.5 0.5) } `additionalKeys` [ ((mod4Mask, xK_Return), spawn "urxvtc") , ((mod4Mask, xK_F1), spawn "xtrlock") , ((0, xF86XK_AudioMute), spawn "amixer sset Master toggle") , ((mod4Mask, xK_r), spawn "dmenu_run") , ((mod4Mask, xK_u), focusUrgent) , ((mod4Mask .|. shiftMask, xK_a), kill) , ((mod4Mask, xK_Tab), toggleWS) {-, ((mod4Mask, xK_Escape), swapFirst)-} , ((mod4Mask, xK_m), withFocused minimizeWindow) , ((mod4Mask .|. shiftMask, xK_m), sendMessage RestoreNextMinimizedWin) , ((mod4Mask, xK_h), sendMessage $ Go R) -- inverted direction , ((mod4Mask, xK_l), sendMessage $ Go L) -- because of reflectHoriz , ((mod4Mask, xK_g), gotoMenu) ] `removeKeys` [(mod4Mask, n) | n <- [xK_p]]