about summary refs log tree commit diff
path: root/src/lib/XMonad/Custom/Config.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/XMonad/Custom/Config.hs')
-rw-r--r--src/lib/XMonad/Custom/Config.hs54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/lib/XMonad/Custom/Config.hs b/src/lib/XMonad/Custom/Config.hs
new file mode 100644
index 0000000..84f4069
--- /dev/null
+++ b/src/lib/XMonad/Custom/Config.hs
@@ -0,0 +1,54 @@
+{-# OPTIONS_GHC -Wno-missing-signatures #-}
+
+-- |
+-- Module                  : XMonad.Custom.Config
+-- Description             : Configuration entrypoint to be passed to executable
+-- Copyright               : (c) Azat Bahawi 2018-2021
+-- SPDX-License-Identifier : GPL-3.0-or-later
+-- Maintainer              : azahi@teknik.io
+-- Stability               : experimental
+-- Portability             : non-portable
+--
+
+module XMonad.Custom.Config
+    ( myConfig
+    ) where
+
+import           Flow
+import           XMonad
+import           XMonad.Actions.Navigation2D
+import qualified XMonad.Custom.Bindings        as C
+import qualified XMonad.Custom.Event           as C
+import qualified XMonad.Custom.Layout          as C
+import qualified XMonad.Custom.Manage          as C
+import qualified XMonad.Custom.Misc            as C
+import qualified XMonad.Custom.Navigation      as C
+import qualified XMonad.Custom.Theme           as C
+import qualified XMonad.Custom.Workspaces      as C
+import           XMonad.Hooks.EwmhDesktops
+import           XMonad.Hooks.ManageDocks
+import           XMonad.Hooks.UrgencyHook
+import           XMonad.Layout.IndependentScreens
+
+myConfig = do
+    screens <- countScreens
+    def { borderWidth        = C.border
+        , workspaces         = C.myWorkspaces screens
+        , layoutHook         = C.layoutHook
+        , terminal           = C.term C.applications
+        , normalBorderColor  = C.colorN
+        , focusedBorderColor = C.colorF
+        , modMask            = C.modMask
+        , keys               = C.keys
+        , mouseBindings      = C.mouseBindings
+        , manageHook         = C.manageHook
+        , handleEventHook    = C.handleEventHook
+        , focusFollowsMouse  = False
+        , clickJustFocuses   = False
+        }
+        |> withUrgencyHook (borderUrgencyHook C.red1)
+        |> withNavigation2DConfig C.myNavigation2DConfig
+        |> ewmh
+        |> ewmhFullscreen
+        |> docks
+        |> (return :: a -> IO a)

Consider giving Nix/NixOS a try! <3