tv xmonad: allow settings gaps

This commit is contained in:
tv 2023-02-03 03:05:17 +01:00
parent 5156185782
commit 3e4b31e653

View File

@ -23,6 +23,7 @@ import System.Posix.Process (executeFile)
import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace
, removeEmptyWorkspace) , removeEmptyWorkspace)
import XMonad.Actions.CycleWS (toggleWS) import XMonad.Actions.CycleWS (toggleWS)
import XMonad.Layout.Gaps (Direction2D(U,R,D,L), gaps)
import XMonad.Layout.NoBorders ( smartBorders ) import XMonad.Layout.NoBorders ( smartBorders )
import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall)) import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall))
import XMonad.Layout.ResizableTile (MirrorResize(MirrorExpand,MirrorShrink)) import XMonad.Layout.ResizableTile (MirrorResize(MirrorExpand,MirrorShrink))
@ -58,13 +59,19 @@ main = getArgs >>= \case
readEnv :: Data.Aeson.FromJSON b => String -> IO b readEnv :: Data.Aeson.FromJSON b => String -> IO b
readEnv name = readEnv name =
Data.Maybe.fromJust readEnv' (error $ "could not get environment variable: " <> name) name
readEnv' :: Data.Aeson.FromJSON b => b -> String -> IO b
readEnv' defaultValue name =
Data.Maybe.fromMaybe defaultValue
. Data.Aeson.decodeStrict' . Data.Aeson.decodeStrict'
. Data.ByteString.Char8.pack . Data.ByteString.Char8.pack
<$> getEnv name . Data.Maybe.fromMaybe mempty
<$> lookupEnv name
mainNoArgs :: IO () mainNoArgs :: IO ()
mainNoArgs = do mainNoArgs = do
myScreenGaps <- readEnv' [] "XMONAD_SCREEN_GAPS" :: IO [Int]
myScreenWidth <- readEnv "XMONAD_SCREEN_WIDTH" :: IO Dimension myScreenWidth <- readEnv "XMONAD_SCREEN_WIDTH" :: IO Dimension
myTermFont <- getEnv "XMONAD_TERM_FONT" myTermFont <- getEnv "XMONAD_TERM_FONT"
myTermFontWidth <- readEnv "XMONAD_TERM_FONT_WIDTH" :: IO Dimension myTermFontWidth <- readEnv "XMONAD_TERM_FONT_WIDTH" :: IO Dimension
@ -89,6 +96,7 @@ mainNoArgs = do
, workspaces = workspaces0 , workspaces = workspaces0
, layoutHook = , layoutHook =
refocusLastLayoutHook $ refocusLastLayoutHook $
gaps (zip [U,R,D,L] myScreenGaps) $
smartBorders $ smartBorders $
ResizableTall ResizableTall
1 1