summaryrefslogtreecommitdiffstats
path: root/src/XMonad
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 /src/XMonad
parent440e7b875b7addb57049c235d177702722e3d75f (diff)
downloadxminad-4faeda1511d5701389f6f420e5066dfd22101366.tar.gz
xminad-4faeda1511d5701389f6f420e5066dfd22101366.tar.xz
xminad-4faeda1511d5701389f6f420e5066dfd22101366.zip
Moved manageHook to library
Diffstat (limited to 'src/XMonad')
-rw-r--r--src/XMonad/Local/ManageHook.hs116
1 files changed, 116 insertions, 0 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"