{-# OPTIONS_GHC -Wno-missing-signatures #-} -- | -- Module : XMonad.Custom.Config -- Description : Configuration entrypoint to be passed to executable -- Copyright : (c) Azat Bahawi 2018-2022 -- SPDX-License-Identifier : GPL-3.0-or-later -- Maintainer : azat@bahawi.net -- Stability : experimental -- Portability : non-portable -- module XMonad.Custom.Config ( ngConfig ) where import Flow import XMonad 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.Theme as C import qualified XMonad.Custom.Workspaces as C import XMonad.Hooks.EwmhDesktops ( ewmh , ewmhFullscreen ) import XMonad.Hooks.ManageDocks ( docks ) import XMonad.Hooks.UrgencyHook ( borderUrgencyHook , withUrgencyHook ) import XMonad.Layout.IndependentScreens ( countScreens ) ngConfig = do screens <- countScreens def { borderWidth = C.border , workspaces = C.ngWorkspaces screens , layoutHook = C.ngLayoutHook , terminal = C.term C.applications , normalBorderColor = C.colorN , focusedBorderColor = C.colorF , modMask = C.ngModMask , keys = C.ngKeys , mouseBindings = C.ngMouseBindings , manageHook = C.ngManageHook , handleEventHook = C.ngHandleEventHook , focusFollowsMouse = False , clickJustFocuses = False } |> withUrgencyHook (borderUrgencyHook C.red1) |> withNavigation2DConfig C.myNavigation2DConfig |> ewmh |> ewmhFullscreen |> docks |> (return :: a -> IO a)