summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Minar <miminar@redhat.com>2015-07-19 16:21:38 +0200
committerMichal Minar <miminar@redhat.com>2015-07-19 16:21:38 +0200
commit4faeda1511d5701389f6f420e5066dfd22101366 (patch)
tree1b9c5e1c988a62e3f85aa824b4c89bfbad47a76d
parent440e7b875b7addb57049c235d177702722e3d75f (diff)
downloadxminad-4faeda1511d5701389f6f420e5066dfd22101366.tar.gz
xminad-4faeda1511d5701389f6f420e5066dfd22101366.tar.xz
xminad-4faeda1511d5701389f6f420e5066dfd22101366.zip
Moved manageHook to library
-rw-r--r--src/XMonad/Local/ManageHook.hs116
-rw-r--r--xminad.cabal1
-rw-r--r--xminad.hs109
3 files changed, 119 insertions, 107 deletions
diff --git a/src/XMonad/Local/ManageHook.hs b/src/XMonad/Local/ManageHook.hs
new file mode 100644
index 0000000..efced4c
--- /dev/null
+++ b/src/XMonad/Local/ManageHook.hs
@@ -0,0 +1,116 @@
+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
+
+-- local modules **************************************************************
+import XMonad.Local.NamedScratchpad
+import XMonad.Local.Workspaces
+
+{- note: earlier hooks override later ones -}
+manageHook :: ManageHook
+manageHook = composeOne (concat
+ [ --[manageHook myBaseConfig]
+ [checkDock -?> doIgnore]
+ , [className =? c -?> doIgnore | c <- myCIgnores]
+ , [isFullscreen -?> doMaster <+> doFullFloat]
+ , [transience]
+ , [isDialog -?> doMaster <+> doCenterFloat]
+
+ , [fmap ("Preferences" `isInfixOf`) title -?> doMaster <+> doCenterFloat]
+ , [(className =? "Gimp" <&&> c) -?> h | (c, h) <- gimpManage]
+ , [( className =? "Qjackctl"
+ <&&> fmap ("JACK Audio Connection Kit" `isPrefixOf`) title)
+ -?> doMaster <+> doFloat]
+ , [(className =? "Dia" <&&> role =? "toolbox_window")
+ -?> doMaster <+> doFloat]
+
+ , [ className =? c <&&> title =? t -?> doMaster <+> doFloat
+ | (c, t) <- myCTFloats ]
+ , [className =? c -?> doMaster <+> doCenterFloat | c <- myCCenterFloats]
+ , [className =? "Virt-manager" <&&> title =? "New VM"
+ -?> doMaster <+> doCenterFloat]
+ , [className =? c -?> doMaster <+> doFloat | c <- myCFloats ]
+ , [title =? t -?> doMaster <+> doFloat | t <- myTFloats ]
+ , [ className =? "BaldursGate" -?> doMyShift "BG" <+> doMaster]
+ , [NS.query c -?> hook c | c <- namedScratchpads]])
+ --, [className =? "dzen" -?> transparency 0.4]])
+ <+>
+ composeOne (concat
+ [ [className =? "Dia" -?> doMyShift "dia"]
+ , [className =? c -?> doMyShift "chat" | c <- myChatClients ]
+ , [(className =? "Google-chrome" <&&> title =? "Hangouts") -?> doMyShift "chat"]
+ , [className =? c -?> doMyShift "web" | c <- myWebBrowsers ]
+ , [title =? "ncmpcpp" -?> doMyShift "music" ]
+ , [className =? c -?> doMyShift "music" | c <- myMusicPlayers ]
+ , [className =? c -?> doMyShift "video" | c <- myVideoPlayers ]
+ , [className =? "Evince" -?> doMyShift "pdf" ]
+ , [className =? "Atril" -?> doMyShift "pdf" ]
+ , [className =? "Thunderbird" -?> doMyShift "mail"]
+ , [className =? "Gimp" -?> doMyShift "gimp"]
+ , [className =? "Virt-manager" -?> doMyShift "virt"]
+ , [className =? "VirtualBox" -?> doMyShift "vbox"]
+ , [className =? "Deluge" -?> doMyShift "p2p"]
+ , [className =? "Calibre" -?> doMyShift "ebook"]
+ , [className =? "Squeak" -?> doMyShift "squeak"]
+ , [className =? "Civ5XP" -?> doMyShift "ciV"]
+ , [className =? "Googleearth-bin" -?> doMyShift "earth"]
+ -- see http://xmonad.org/xmonad-docs/xmonad-contrib/src/XMonad-Hooks-XPropManage.html#xPropManageHook
+ ])
+ where
+ doMaster = doF W.shiftMaster
+ doMyShift :: WorkspaceId -> ManageHook
+ doMyShift wsp = do
+ liftX (newWorkspace wsp)
+ doF $ W.greedyView wsp . W.shift wsp
+ myTFloats = [ "VLC (XVideo output)"
+ , "DownThemAll! - Make Your Selection"
+ , "Add Downloads"
+ , "Add URL(s)"
+ , "Run Application"
+ ]
+ myCIgnores = [ "Xfce4-notifyd"
+ ]
+ myCFloats = [ -- "Gnome-panel"
+ "Close session"
+ , "MPlayer"
+ , "Wine"
+ , "Galculator"
+ ]
+ myCTFloats = [ ("Skype", "Information")
+ , ("Firefox", "Certificate Manager")
+ , ("processing-app-Base", "Preferences")
+ , ("Thunar", "File Operation Progress")
+ ]
+ myCCenterFloats = [ -- "Gnome-tweak-tool"
+ "Xfce4-notes"
+ , "Gcolor2"
+ , "Gcr-prompter"
+ , "Xfce4-appfinder"
+ , "Xmessage"
+ , "Pavucontrol"
+ , "Xfrun4"
+ , "Xfce4-settings-manager"
+ , "Xfce4-panel"
+ , "Alarm-clock-applet"
+ ]
+ myChatClients = ["Pidgin", "Xchat", "Skype", "Empathy", "Hexchat"]
+ myWebBrowsers = [ -- "Firefox"
+ "Chromium-browser"
+ , "Google-chrome"
+ ]
+ myMusicPlayers = ["ncmpcpp", "Sonata", "Rhythmbox", "Gmpc"]
+ myVideoPlayers = ["MPlayer", "Vlc", "Smplayer"]
+ gimpManage = [ ( role =? "gimp-toolbox" <||> role =? "gimp-image-window"
+ , ask >>= doF . W.sink)
+ , (role =? "gimp-image-merge-layers", doCenterFloat)
+ , (title =? "Scale Image", doCenterFloat)
+ , (title =? "Export File", doCenterFloat)
+ , (fmap ("Save as" `isPrefixOf`) title, doCenterFloat)
+ ]
+
+ role = stringProperty "WM_WINDOW_ROLE"
diff --git a/xminad.cabal b/xminad.cabal
index 6023db8..15c95db 100644
--- a/xminad.cabal
+++ b/xminad.cabal
@@ -17,6 +17,7 @@ Library
XMonad.Local.GridSelect
XMonad.Local.Keys
XMonad.Local.Layout
+ XMonad.Local.ManageHook
XMonad.Local.NamedScratchpad
XMonad.Local.TopicSpace
XMonad.Local.Workspaces
diff --git a/xminad.hs b/xminad.hs
index 81d43e3..72df8bf 100644
--- a/xminad.hs
+++ b/xminad.hs
@@ -25,7 +25,6 @@ import XMonad.Hooks.FadeWindows
import XMonad.Hooks.SetWMName
import XMonad.Hooks.UrgencyHook
import XMonad.Hooks.ManageDocks
-import XMonad.Hooks.ManageHelpers
import qualified XMonad.StackSet as W
import qualified XMonad.Util.EZConfig as EZ
import XMonad.Util.NamedScratchpad as NS
@@ -36,9 +35,8 @@ import XMonad.Util.WorkspaceCompare (getSortByIndex)
import qualified XMonad.Local.Config as Local
import qualified XMonad.Local.Keys as Local
import qualified XMonad.Local.Layout as Local
-import qualified XMonad.Local.NamedScratchpad as Local
+import qualified XMonad.Local.ManageHook as Local
import qualified XMonad.Local.TopicSpace as Local
-import qualified XMonad.Local.Workspaces as Local
doNotFadeOutWindows :: Query Bool
doNotFadeOutWindows =
@@ -79,109 +77,6 @@ myMouseBindings (XConfig {XMonad.modMask = mm}) = M.fromList
]
-{- note: earlier hooks override later ones -}
-myManageHook :: ManageHook
-myManageHook = composeOne (concat
- [ --[manageHook myBaseConfig]
- [checkDock -?> doIgnore]
- , [className =? c -?> doIgnore | c <- myCIgnores]
- , [isFullscreen -?> doMaster <+> doFullFloat]
- , [transience]
- , [isDialog -?> doMaster <+> doCenterFloat]
-
- , [fmap ("Preferences" `isInfixOf`) title -?> doMaster <+> doCenterFloat]
- , [(className =? "Gimp" <&&> c) -?> h | (c, h) <- gimpManage]
- , [( className =? "Qjackctl"
- <&&> fmap ("JACK Audio Connection Kit" `isPrefixOf`) title)
- -?> doMaster <+> doFloat]
- , [(className =? "Dia" <&&> role =? "toolbox_window")
- -?> doMaster <+> doFloat]
-
- , [ className =? c <&&> title =? t -?> doMaster <+> doFloat
- | (c, t) <- myCTFloats ]
- , [className =? c -?> doMaster <+> doCenterFloat | c <- myCCenterFloats]
- , [className =? "Virt-manager" <&&> title =? "New VM"
- -?> doMaster <+> doCenterFloat]
- , [className =? c -?> doMaster <+> doFloat | c <- myCFloats ]
- , [title =? t -?> doMaster <+> doFloat | t <- myTFloats ]
- , [ className =? "BaldursGate" -?> doMyShift "BG" <+> doMaster]
- , [query c -?> hook c | c <- Local.namedScratchpads]])
- --, [className =? "dzen" -?> transparency 0.4]])
- <+>
- composeOne (concat
- [ [className =? "Dia" -?> doMyShift "dia"]
- , [className =? c -?> doMyShift "chat" | c <- myChatClients ]
- , [(className =? "Google-chrome" <&&> title =? "Hangouts") -?> doMyShift "chat"]
- , [className =? c -?> doMyShift "web" | c <- myWebBrowsers ]
- , [title =? "ncmpcpp" -?> doMyShift "music" ]
- , [className =? c -?> doMyShift "music" | c <- myMusicPlayers ]
- , [className =? c -?> doMyShift "video" | c <- myVideoPlayers ]
- , [className =? "Evince" -?> doMyShift "pdf" ]
- , [className =? "Atril" -?> doMyShift "pdf" ]
- , [className =? "Thunderbird" -?> doMyShift "mail"]
- , [className =? "Gimp" -?> doMyShift "gimp"]
- , [className =? "Virt-manager" -?> doMyShift "virt"]
- , [className =? "VirtualBox" -?> doMyShift "vbox"]
- , [className =? "Deluge" -?> doMyShift "p2p"]
- , [className =? "Calibre" -?> doMyShift "ebook"]
- , [className =? "Squeak" -?> doMyShift "squeak"]
- , [className =? "Civ5XP" -?> doMyShift "ciV"]
- , [className =? "Googleearth-bin" -?> doMyShift "earth"]
- -- see http://xmonad.org/xmonad-docs/xmonad-contrib/src/XMonad-Hooks-XPropManage.html#xPropManageHook
- ])
- where
- doMaster = doF W.shiftMaster
- doMyShift :: WorkspaceId -> ManageHook
- doMyShift wsp = do
- liftX (Local.newWorkspace wsp)
- doF $ W.greedyView wsp . W.shift wsp
- myTFloats = [ "VLC (XVideo output)"
- , "DownThemAll! - Make Your Selection"
- , "Add Downloads"
- , "Add URL(s)"
- , "Run Application"
- ]
- myCIgnores = [ "Xfce4-notifyd"
- ]
- myCFloats = [ -- "Gnome-panel"
- "Close session"
- , "MPlayer"
- , "Wine"
- , "Galculator"
- ]
- myCTFloats = [ ("Skype", "Information")
- , ("Firefox", "Certificate Manager")
- , ("processing-app-Base", "Preferences")
- , ("Thunar", "File Operation Progress")
- ]
- myCCenterFloats = [ -- "Gnome-tweak-tool"
- "Xfce4-notes"
- , "Gcolor2"
- , "Gcr-prompter"
- , "Xfce4-appfinder"
- , "Xmessage"
- , "Pavucontrol"
- , "Xfrun4"
- , "Xfce4-settings-manager"
- , "Xfce4-panel"
- , "Alarm-clock-applet"
- ]
- myChatClients = ["Pidgin", "Xchat", "Skype", "Empathy", "Hexchat"]
- myWebBrowsers = [ -- "Firefox"
- "Chromium-browser"
- , "Google-chrome"
- ]
- myMusicPlayers = ["ncmpcpp", "Sonata", "Rhythmbox", "Gmpc"]
- myVideoPlayers = ["MPlayer", "Vlc", "Smplayer"]
- gimpManage = [ ( role =? "gimp-toolbox" <||> role =? "gimp-image-window"
- , ask >>= doF . W.sink)
- , (role =? "gimp-image-merge-layers", doCenterFloat)
- , (title =? "Scale Image", doCenterFloat)
- , (title =? "Export File", doCenterFloat)
- , (fmap ("Save as" `isPrefixOf`) title, doCenterFloat)
- ]
-
- role = stringProperty "WM_WINDOW_ROLE"
myFadeHook :: FadeHook
myFadeHook = composeAll [ opaque
@@ -314,7 +209,7 @@ myConfig dbus = myBaseConfig
, keys = Local.keyBindings
, logHook = myLogHook dbus
, handleEventHook = myEventHook
- , manageHook = myManageHook
+ , manageHook = Local.manageHook
, startupHook = myStartupHook
, mouseBindings = myMouseBindings
}