diff options
| author | lassulus <git@lassul.us> | 2023-02-03 13:28:15 +0100 |
|---|---|---|
| committer | lassulus <git@lassul.us> | 2023-02-03 13:28:15 +0100 |
| commit | d299a49bfea376d4d6969d00e44056363f7af0ae (patch) | |
| tree | 9af622a6a6c324452592c2672ff145b77bede3c0 /tv/5pkgs/haskell/xmonad-tv/src | |
| parent | b711133bea18ea1ed3ad441b2d80ccd5ba7dfd22 (diff) | |
| parent | 880eb5310d3ddf8da4907aadb7ecdf45f2f892d3 (diff) | |
Merge remote-tracking branch 'ni/master'
Diffstat (limited to 'tv/5pkgs/haskell/xmonad-tv/src')
| -rw-r--r-- | tv/5pkgs/haskell/xmonad-tv/src/main.hs | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/tv/5pkgs/haskell/xmonad-tv/src/main.hs b/tv/5pkgs/haskell/xmonad-tv/src/main.hs index eb61bd5..118f2da 100644 --- a/tv/5pkgs/haskell/xmonad-tv/src/main.hs +++ b/tv/5pkgs/haskell/xmonad-tv/src/main.hs @@ -23,6 +23,7 @@ import System.Posix.Process (executeFile) import XMonad.Actions.DynamicWorkspaces ( addWorkspacePrompt, renameWorkspace , removeEmptyWorkspace) import XMonad.Actions.CycleWS (toggleWS) +import XMonad.Layout.Gaps (Direction2D(U,R,D,L), gaps) import XMonad.Layout.NoBorders ( smartBorders ) import XMonad.Layout.ResizableTile (ResizableTall(ResizableTall)) import XMonad.Layout.ResizableTile (MirrorResize(MirrorExpand,MirrorShrink)) @@ -58,13 +59,19 @@ main = getArgs >>= \case readEnv :: Data.Aeson.FromJSON b => String -> IO b 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.ByteString.Char8.pack - <$> getEnv name + . Data.Maybe.fromMaybe mempty + <$> lookupEnv name mainNoArgs :: IO () mainNoArgs = do + myScreenGaps <- readEnv' [] "XMONAD_SCREEN_GAPS" :: IO [Int] myScreenWidth <- readEnv "XMONAD_SCREEN_WIDTH" :: IO Dimension myTermFont <- getEnv "XMONAD_TERM_FONT" myTermFontWidth <- readEnv "XMONAD_TERM_FONT_WIDTH" :: IO Dimension @@ -89,6 +96,7 @@ mainNoArgs = do , workspaces = workspaces0 , layoutHook = refocusLastLayoutHook $ + gaps (zip [U,R,D,L] myScreenGaps) $ smartBorders $ ResizableTall 1 |
