diff options
author | Azat Bahawi <azahi@teknik.io> | 2021-11-23 03:19:06 +0300 |
---|---|---|
committer | Azat Bahawi <azahi@teknik.io> | 2021-11-23 03:19:06 +0300 |
commit | 729e030dd25da2e36fa5a1312b8ecb3415dc1675 (patch) | |
tree | 53166b6c3bd96f860d0a7242353ef9cc7bb1790f /src/lib/XMonad/Custom/Startup.hs | |
parent | Remove tests (diff) |
Huge update
Diffstat (limited to 'src/lib/XMonad/Custom/Startup.hs')
-rw-r--r-- | src/lib/XMonad/Custom/Startup.hs | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/lib/XMonad/Custom/Startup.hs b/src/lib/XMonad/Custom/Startup.hs new file mode 100644 index 0000000..f2415ea --- /dev/null +++ b/src/lib/XMonad/Custom/Startup.hs @@ -0,0 +1,58 @@ +-- | +-- Module : XMonad.Custom.Startup +-- Description : Startup hooks +-- 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.Startup + ( startupHook + ) where + +import Control.Monad +import Data.Maybe +import XMonad hiding ( startupHook ) +import XMonad.Hooks.ManageDocks +import XMonad.Hooks.SetWMName +import XMonad.Util.Cursor +import XMonad.Util.SpawnNamedPipe + +atomsToFullscreen :: [String] +atomsToFullscreen = + [ "_NET_ACTIVE_WINDOW" + , "_NET_CLIENT_LIST" + , "_NET_CLIENT_LIST_STACKING" + , "_NET_DESKTOP_NAMES" + , "_NET_WM_DESKTOP" + , "_NET_WM_STATE" + , "_NET_WM_STATE_FULLSCREEN" + , "_NET_WM_STATE_HIDDEN" + , "_NET_WM_STRUT" + ] + +addNETSupported :: Atom -> X () +addNETSupported x = withDisplay $ \d -> do + r <- asks theRoot + n <- getAtom "_NET_SUPPORTED" + a <- getAtom "ATOM" + liftIO $ do + p <- join . maybeToList <$> getWindowProperty32 d n r + when (fromIntegral x `notElem` p) + $ changeProperty32 d r n a propModeAppend [fromIntegral x] + +addEWMHFullscreen :: X () +addEWMHFullscreen = do + s <- mapM getAtom atomsToFullscreen + mapM_ addNETSupported s + +startupHook :: X () +startupHook = do + spawnNamedPipe "xmobar ~/.xmonad/xmobarrc/top.hs" "xmobarTop" + spawnNamedPipe "xmobar ~/.xmonad/xmobarrc/bot.hs" "xmobarBot" + docksStartupHook + addEWMHFullscreen + setDefaultCursor xC_left_ptr + setWMName "xmonad" |