summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minář <mic.liamg@gmail.com>2016-10-17 06:54:09 +0200
committerMichal Minář <mic.liamg@gmail.com>2016-10-17 06:54:22 +0200
commitd8b6b7cd8240bbf2148b626450dfb21e6ea3fbb7 (patch)
tree1a2c941eedd7f9026941b1eb7cc59794be7a6f56
parentc3af08002ffc4efd16beddd8c5c3f9ac6519203a (diff)
downloadxminad-d8b6b7cd8240bbf2148b626450dfb21e6ea3fbb7.tar.gz
xminad-d8b6b7cd8240bbf2148b626450dfb21e6ea3fbb7.tar.xz
xminad-d8b6b7cd8240bbf2148b626450dfb21e6ea3fbb7.zip
Updated matching of google chrome
Signed-off-by: Michal Minář <mic.liamg@gmail.com>
-rw-r--r--src/XMonad/Local/Layout.hs66
-rw-r--r--src/XMonad/Local/ManageHook.hs46
2 files changed, 65 insertions, 47 deletions
diff --git a/src/XMonad/Local/Layout.hs b/src/XMonad/Local/Layout.hs
index d3eddf3..6ea0dde 100644
--- a/src/XMonad/Local/Layout.hs
+++ b/src/XMonad/Local/Layout.hs
@@ -1,34 +1,35 @@
{-# OPTIONS -fno-warn-missing-signatures #-}
{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE UnicodeSyntax #-}
module XMonad.Local.Layout (layoutHook) where
-import Data.Ratio ((%))
-import XMonad.Hooks.ManageDocks (avoidStruts)
-import XMonad.Layout
-import XMonad.Layout.Accordion
-import qualified XMonad.Layout.BoringWindows as BW
-import XMonad.Layout.Column
-import qualified XMonad.Layout.ComboP as CP
-import qualified XMonad.Layout.IM as IM
-import qualified XMonad.Layout.MultiToggle as MT
-import qualified XMonad.Layout.Named as LN
-import XMonad.Layout.NoBorders
-import qualified XMonad.Layout.PerWorkspace as PW
-import XMonad.Layout.Reflect
-import XMonad.Layout.SimpleFloat
-import XMonad.Layout.Simplest (Simplest(..))
-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
+import Data.Ratio ((%))
+import XMonad.Hooks.ManageDocks (avoidStruts)
+import XMonad.Layout
+import XMonad.Layout.Accordion
+import qualified XMonad.Layout.BoringWindows as BW
+import XMonad.Layout.Column
+import qualified XMonad.Layout.ComboP as CP
+import qualified XMonad.Layout.IM as IM
+import qualified XMonad.Layout.MultiToggle as MT
+import qualified XMonad.Layout.Named as LN
+import XMonad.Layout.NoBorders
+import qualified XMonad.Layout.PerWorkspace as PW
+import XMonad.Layout.Reflect
+import XMonad.Layout.SimpleFloat
+import XMonad.Layout.Simplest (Simplest (..))
+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
-- local modules **************************************************************
-import XMonad.Layout.TopicDir as TD
-import XMonad.Local.TopicSpace as Local
+import XMonad.Layout.TopicDir as TD
+import XMonad.Local.TopicSpace as Local
layoutHook = avoidStruts
$ TD.topicDir Local.topicDirs
@@ -42,14 +43,18 @@ layoutHook = avoidStruts
easyLay
nmaster = 1
+ratio ∷ Rational
ratio = 1/2
+delta ∷ Rational
delta = 3/100
+tiled ∷ Tall a
tiled = Tall nmaster delta ratio
+threecol ∷ ThreeCol a
threecol = ThreeColMid nmaster delta (1/3)
-- common layouts
-easyLay = windowNavigation baseLay
+easyLay = windowNavigation baseLay
baseLay = smartBorders (tiled' ||| tabbed')
where
tiled' = mySubTabbed $ BW.boringWindows
@@ -67,7 +72,7 @@ chatL = IM.withIM (1%5) (IM.ClassName "Skype"
$ IM.withIM (1%5) (IM.ClassName "Pidgin"
`IM.And` ( IM.Role "buddy_list"
`IM.Or` IM.Title "Buddy List"))
-
+
easyLay
gimpL = LN.named "GIMP"
@@ -81,10 +86,10 @@ gimpL = LN.named "GIMP"
( CP.ClassName "Gimp"
`CP.And` CP.Not (CP.Role "gimp-image-window"))
-webL = IM.withIM (1%4) (IM.ClassName "google-chrome" `IM.And` IM.Title "Tabs Outliner") easyLay
+webL = IM.withIM (1%4) (matchChrome `IM.And` IM.Title "Tabs Outliner") easyLay
bgL = windowNavigation $ BW.boringWindows $ smartBorders
- $ IM.withIM (2%7) (IM.ClassName "google-chrome") tiled
+ $ IM.withIM (2%7) matchChrome tiled
witcherL = windowNavigation $ BW.boringWindows $ noBorders
$ IM.withIM (2%7) (IM.ClassName "Firefox") tiled
@@ -96,7 +101,7 @@ wineGameL = smartBorders $ simpleFloat ||| trackFloating Full
mySubTabbed x = trackFloating $ Tab.addTabs Tab.shrinkText myTabTheme $ subLayout [] Simplest x
-myTabTheme :: Tab.Theme
+myTabTheme ∷ Tab.Theme
myTabTheme = Tab.def
{ Tab.activeTextColor = "#ffffff"
, Tab.activeBorderColor = "#FBAB2E"
@@ -110,3 +115,6 @@ myTabTheme = Tab.def
, Tab.fontName = "-*-terminus-*-*-*-*-12-*-*-*-*-*-*-*"
, Tab.decoHeight = 24
}
+
+matchChrome ∷ IM.Property
+matchChrome = IM.ClassName "google-chrome" `IM.Or` IM.ClassName "Google-chrome"
diff --git a/src/XMonad/Local/ManageHook.hs b/src/XMonad/Local/ManageHook.hs
index 5803e05..bfd77fa 100644
--- a/src/XMonad/Local/ManageHook.hs
+++ b/src/XMonad/Local/ManageHook.hs
@@ -1,27 +1,27 @@
+{-# LANGUAGE UnicodeSyntax #-}
module XMonad.Local.ManageHook (
manageHook
) where
-import Data.List
-import XMonad hiding (manageHook)
-import XMonad.Hooks.ManageDocks
-import XMonad.Hooks.ManageHelpers
-import XMonad.Util.NamedScratchpad as NS
-import qualified XMonad.StackSet as W
+import Data.List
+import XMonad hiding (manageHook)
+import XMonad.Hooks.ManageDocks
+import XMonad.Hooks.ManageHelpers
+import qualified XMonad.StackSet as W
+import XMonad.Util.NamedScratchpad as NS
-- local modules **************************************************************
-import XMonad.Local.Config
-import XMonad.Local.NamedScratchpad
-import XMonad.Local.Workspaces
+import XMonad.Local.Config
+import XMonad.Local.NamedScratchpad
+import XMonad.Local.Workspaces
{- note: earlier hooks have higher priority -}
-manageHook :: ManageHook
+manageHook ∷ ManageHook
manageHook = composeAll
[ composeOne [NS.query c -?> hook c | c <- namedScratchpads]
, composeOne (concat
[ [checkDock -?> doIgnore]
- , [(className =? "google-chrome" <&&>
- appName =? tabsOutlinerAppName) -?> doTOFloat]
+ , [(matchChrome <&&> appName =? tabsOutlinerAppName) -?> doTOFloat]
, [className =? c -?> doIgnore | c <- myCIgnores]
, [className =? "Wine" -?> doFloat ]
, [isFullscreen -?> doMaster <+> doFullFloat]
@@ -32,7 +32,7 @@ manageHook = composeAll
, [( className =? "Qjackctl"
<&&> fmap ("JACK Audio Connection Kit" `isPrefixOf`) title)
-?> doMaster <+> doFloat]
- , [(className =? "Dia" <&&> role =? "toolbox_window")
+ , [(className =? "Dia" <&&> windowRole =? "toolbox_window")
-?> doMaster <+> doFloat]
, [ className =? c <&&> title =? t -?> doMaster <+> doFloat
| (c, t) <- myCTFloats ]
@@ -47,7 +47,7 @@ manageHook = composeAll
, composeOne (concat
[ [className =? "Dia" -?> doMyShift "dia"]
, [className =? c -?> doMyShift "chat" | c <- myChatClients ]
- , [(className =? "Google-chrome" <&&> title =? "Hangouts") -?> doMyShift "chat"]
+ , [(matchChrome <&&> title =? "Hangouts") -?> doMyShift "chat"]
, [className =? c -?> doMyShift "web" | c <- myWebBrowsers ]
, [title =? "ncmpcpp" -?> doMyShift "music" ]
, [className =? c -?> doMyShift "music" | c <- myMusicPlayers ]
@@ -69,11 +69,15 @@ manageHook = composeAll
]
where
doMaster = doF W.shiftMaster
- doMyShift :: WorkspaceId -> ManageHook
+
+ doMyShift ∷ WorkspaceId → ManageHook
doMyShift wsp = do
liftX (newWorkspace wsp)
doF $ W.greedyView wsp . W.shift wsp
+
+ doTOFloat ∷ ManageHook
doTOFloat = doRectFloat tabsOutlinerFloatRect
+
myTFloats = [ "VLC (XVideo output)"
, "DownThemAll! - Make Your Selection"
, "Add Downloads"
@@ -107,12 +111,18 @@ manageHook = composeAll
myWebBrowsers = []
myMusicPlayers = ["ncmpcpp", "Sonata", "Rhythmbox", "Gmpc"]
myVideoPlayers = ["MPlayer", "Vlc", "Smplayer"]
- gimpManage = [ ( role =? "gimp-toolbox" <||> role =? "gimp-image-window"
+
+ gimpManage = [ ( windowRole =? "gimp-toolbox" <||> windowRole =? "gimp-image-window"
, ask >>= doF . W.sink)
- , (role =? "gimp-image-merge-layers", doCenterFloat)
+ , (windowRole =? "gimp-image-merge-layers", doCenterFloat)
, (title =? "Scale Image", doCenterFloat)
, (title =? "Export File", doCenterFloat)
, (fmap ("Save as" `isPrefixOf`) title, doCenterFloat)
]
- role = stringProperty "WM_WINDOW_ROLE"
+matchChrome ∷ Query Bool
+matchChrome = className =? "google-chrome" <||> className =? "Google-chrome"
+
+windowRole ∷ Query String
+windowRole = stringProperty "WM_WINDOW_ROLE"
+