about summary refs log tree commit diff
path: root/src/exe
diff options
context:
space:
mode:
Diffstat (limited to 'src/exe')
-rw-r--r--src/exe/Main.hs70
1 files changed, 70 insertions, 0 deletions
diff --git a/src/exe/Main.hs b/src/exe/Main.hs
new file mode 100644
index 0000000..3a57650
--- /dev/null
+++ b/src/exe/Main.hs
@@ -0,0 +1,70 @@
+-- |
+-- Module                  : Main
+-- Description             : Entrypoint
+-- Copyright               : (c) Azat Bahawi 2018-2021
+-- SPDX-License-Identifier : GPL-3.0-or-later
+-- Maintainer              : azahi@teknik.io
+-- Stability               : experimental
+-- Portability             : non-portable
+--
+
+module Main where
+
+import           XMonad                         ( Default(def)
+                                                , XConfig
+                                                  ( borderWidth
+                                                  , clickJustFocuses
+                                                  , focusFollowsMouse
+                                                  , focusedBorderColor
+                                                  , handleEventHook
+                                                  , keys
+                                                  , layoutHook
+                                                  , manageHook
+                                                  , modMask
+                                                  , mouseBindings
+                                                  , normalBorderColor
+                                                  , startupHook
+                                                  , terminal
+                                                  , workspaces
+                                                  )
+                                                , xmonad
+                                                )
+import           XMonad.Actions.DynamicProjects ( dynamicProjects )
+import           XMonad.Actions.Navigation2D    ( withNavigation2DConfig )
+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.Projects        as C
+import qualified XMonad.Custom.Startup         as C
+import qualified XMonad.Custom.Theme           as C
+import qualified XMonad.Custom.Workspaces      as C
+import           XMonad.Hooks.EwmhDesktops      ( ewmh )
+import           XMonad.Hooks.ManageDocks       ( docks )
+import           XMonad.Layout.Fullscreen       ( fullscreenSupport )
+
+main :: IO ()
+main =
+  xmonad
+    $ ewmh
+    $ fullscreenSupport
+    $ docks
+    $ withNavigation2DConfig C.navigation
+    $ dynamicProjects C.projects
+    $ def { borderWidth        = C.border
+          , workspaces         = C.workspaces
+          , layoutHook         = C.layoutHook
+          , terminal           = C.term C.applications
+          , normalBorderColor  = C.colorN
+          , focusedBorderColor = C.colorF
+          , modMask            = C.modMask
+          , keys               = C.keys
+          , startupHook        = C.startupHook
+          , mouseBindings      = C.mouseBindings
+          , manageHook         = C.manageHook
+          , handleEventHook    = C.handleEventHook
+          , focusFollowsMouse  = False
+          , clickJustFocuses   = False
+          }

Consider giving Nix/NixOS a try! <3