about summary refs log tree commit diff
path: root/src/XMonad/Custom/Manage.hs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/XMonad/Custom/Manage.hs44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/XMonad/Custom/Manage.hs b/src/XMonad/Custom/Manage.hs
new file mode 100644
index 0000000..09ee651
--- /dev/null
+++ b/src/XMonad/Custom/Manage.hs
@@ -0,0 +1,44 @@
+module XMonad.Custom.Manage
+    ( manageHook'
+    ) where
+
+import           XMonad
+import           XMonad.Custom.Scratchpads
+import           XMonad.Hooks.InsertPosition
+import           XMonad.Hooks.ManageDocks
+import           XMonad.Hooks.ManageHelpers
+import           XMonad.Layout.Fullscreen
+import           XMonad.Util.NamedScratchpad
+
+composeActions :: [MaybeManageHook]
+composeActions =
+    [ appName =? "emacs-popup"                                  -?> tileBelowNoFocus
+    , appName =? "eterm"                                        -?> tileBelow
+    , className =? "Pinentry"                                   -?> doCenterFloat
+    , className =? "Steam" <&&> not <$> title =? "Steam"        -?> doFloat
+    , className =? "URxvt"                                      -?> tileBelow
+    , className =? "Xmessage"                                   -?> doCenterFloat
+    , className =? "Zenity"                                     -?> doCenterFloat
+    , className =? "explorer.exe"                               -?> doFullFloat
+    , className =? "qemu-system-x86"                            -?> doCenterFloat
+    , className =? "qemu-system-x86_64"                         -?> doCenterFloat
+    , className =? "xterm"                                      -?> tileBelow
+    , isDialog                                                  -?> doCenterFloat
+    , isFullscreen                                              -?> doFullFloat
+    , pure True                                                 -?> normalTile
+    , stringProperty "WM_WINDOW_ROLE" =? "pop-up"               -?> doCenterFloat
+    , stringProperty "WM_WINDOW_ROLE" =? "GtkFileChooserDialog" -?> doCenterFloat
+    , transience
+    ]
+    where
+        normalTile       = insertPosition Above Newer
+        tileBelow        = insertPosition Below Newer
+        tileBelowNoFocus = insertPosition Below Older
+
+
+manageHook' :: ManageHook
+manageHook' = mconcat [ manageDocks
+                      , fullscreenManageHook
+                      , namedScratchpadManageHook scratchpads
+                      , composeOne composeActions
+                      ]

Consider giving Nix/NixOS a try! <3