From eda7f71b7e65adf47389bc9593ee73ee7be4fe84 Mon Sep 17 00:00:00 2001 From: Michal Minar Date: Sun, 2 Aug 2015 10:43:03 +0200 Subject: Fix focus issues for tabbed windows Use TackFloating module with full or tabbed layouts. Signed-off-by: Michal Minar --- src/XMonad/Local/EventHook.hs | 14 -------------- src/XMonad/Local/Layout.hs | 34 ++++++++++++++++++---------------- 2 files changed, 18 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/XMonad/Local/EventHook.hs b/src/XMonad/Local/EventHook.hs index aa26b7e..d25377b 100644 --- a/src/XMonad/Local/EventHook.hs +++ b/src/XMonad/Local/EventHook.hs @@ -14,19 +14,5 @@ eventHook = mconcat [ ewmhDesktopsEventHook , docksEventHook , fadeWindowsEventHook - , focusFollowsTiledOnly , fullscreenEventHook ] - --- | Enables 'focusFollowsMouse' for tiled windows only. For this to --- work you need to turn off 'focusFollowsMouse' in your configuration --- and then add this function to your 'handleEventHook'. -focusFollowsTiledOnly :: Event -> X All -focusFollowsTiledOnly e@(CrossingEvent {ev_window = w, ev_event_type = t}) - | isNormalEnter = whenX bothTiled (focus w) >> mempty - where isNormalEnter = t == enterNotify && ev_mode e == notifyNormal - bothTiled = notFloating w <&&> currentIsTiled - currentIsTiled = currentWindow >>= maybe (return True) notFloating - currentWindow = gets $ W.peek . windowset - notFloating w' = gets $ not . M.member w' . W.floating . windowset -focusFollowsTiledOnly _ = mempty diff --git a/src/XMonad/Local/Layout.hs b/src/XMonad/Local/Layout.hs index 14bb6a5..e9a5a5a 100644 --- a/src/XMonad/Local/Layout.hs +++ b/src/XMonad/Local/Layout.hs @@ -21,6 +21,7 @@ import XMonad.Layout.SubLayouts import qualified XMonad.Layout.Tabbed as Tab import XMonad.Layout.ThreeColumns import XMonad.Layout.ToggleLayouts +import XMonad.Layout.TrackFloating import XMonad.Layout.TwoPane import XMonad.Layout.WindowNavigation @@ -41,15 +42,16 @@ nmaster = 1 ratio = 1/2 delta = 3/100 -tiled = Tall nmaster delta ratio -threecol = ThreeColMid nmaster delta (1/3) +tiled = Tall nmaster delta ratio +threecol = ThreeColMid nmaster delta (1/3) -- common layouts easyLay = windowNavigation baseLay -baseLay = smartBorders $ (mySubTabbed $ BW.boringWindows $ toggleLayouts threecol +baseLay = smartBorders $ (mySubTabbed $ BW.boringWindows $ + toggleLayouts threecol ( MT.mkToggle (MT.single REFLECTX) tiled ||| MT.mkToggle (MT.single REFLECTY) (Mirror tiled))) - ||| (BW.boringWindows $ Tab.tabbed Tab.shrinkText myTabTheme) + ||| (BW.boringWindows $ trackFloating $ Tab.tabbed Tab.shrinkText myTabTheme) -- workspace layouts chatL = IM.withIM (1%5) (IM.ClassName "Skype" @@ -78,22 +80,22 @@ bgL = windowNavigation $ BW.boringWindows $ smartBorders remoteL = windowNavigation $ BW.boringWindows $ smartBorders $ Tab.tabbed Tab.shrinkText myTabTheme -wineGameL = smartBorders $ simpleFloat ||| Full +wineGameL = smartBorders $ simpleFloat ||| trackFloating Full -mySubTabbed x = Tab.addTabs Tab.shrinkText myTabTheme $ subLayout [] Simplest x +mySubTabbed x = trackFloating $ Tab.addTabs Tab.shrinkText myTabTheme $ subLayout [] Simplest x myTabTheme :: Tab.Theme myTabTheme = Tab.defaultTheme - { Tab.activeTextColor = "#ffffff" - , Tab.activeBorderColor = "#FBAB2E" - , Tab.activeColor = "#3c3c3c" - , Tab.inactiveTextColor = "#c0c0c0" + { Tab.activeTextColor = "#ffffff" + , Tab.activeBorderColor = "#FBAB2E" + , Tab.activeColor = "#3c3c3c" + , Tab.inactiveTextColor = "#c0c0c0" , Tab.inactiveBorderColor = "#c0c0c0" - , Tab.inactiveColor = "#3c3c3c" - , Tab.urgentTextColor = "#ff0000" - , Tab.urgentBorderColor = "#ff0000" - , Tab.urgentColor = "#000000" - , Tab.fontName = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*" - , Tab.decoHeight = 24 + , Tab.inactiveColor = "#3c3c3c" + , Tab.urgentTextColor = "#ff0000" + , Tab.urgentBorderColor = "#ff0000" + , Tab.urgentColor = "#000000" + , Tab.fontName = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*" + , Tab.decoHeight = 24 } -- cgit