From 23accf6c3acacb1c972961612cce1c7c831b11e7 Mon Sep 17 00:00:00 2001 From: Joan MIlev <51526053+exorcist365@users.noreply.github.com> Date: Tue, 13 Jul 2021 01:01:19 +0300 Subject: Add TopH and BottomH for only controlling height of the window. (#556) --- changelog.md | 2 ++ doc/quick-start.org | 18 ++++++++++++++++-- src/Xmobar/Config/Types.hs | 2 ++ src/Xmobar/X11/Window.hs | 4 ++++ 4 files changed, 24 insertions(+), 2 deletions(-) diff --git a/changelog.md b/changelog.md index 105ea95..a155cb5 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,8 @@ _New features_ + - New constructors for only controlling bar height: + TopH and BottomH for Top and Bottom respectively - New monitor: k10temp (Sam Kirby) - Better handling of command line arguments for Haskell-based configuration keys (see #553 and #554) diff --git a/doc/quick-start.org b/doc/quick-start.org index 4b06057..c8cb6c9 100644 --- a/doc/quick-start.org +++ b/doc/quick-start.org @@ -29,8 +29,8 @@ the =Config= block in your configuration. - =alpha= The transparency. 0 is transparent, 255 is opaque. -- =position= Top, TopP, TopW, TopSize, Bottom, BottomP, BottomW, - BottomSize or Static (with x, y, width and height). +- =position= Top, TopH, TopP, TopW, TopSize, Bottom, BottomH, + BottomP, BottomW, BottomSize or Static (with x, y, width and height). TopP and BottomP take 2 arguments: left padding and right padding. @@ -42,8 +42,22 @@ the =Config= block in your configuration. integer for the percentage width, and an integer for the minimum pixel height that the xmobar window will have. + TopH and BottomH take one argument (Int) which adjusts the bar height. + For example: + #+begin_src haskell + position = TopH 30 + #+end_src + + to make a 30 tall bar on the top, or + + #+begin_src haskell + position = BottomH 30 + #+end_src + + to make a 30 tall bar on the bottom of the screen. + #+begin_src haskell position = BottomW C 75 #+end_src diff --git a/src/Xmobar/Config/Types.hs b/src/Xmobar/Config/Types.hs index 8d78f33..c31e460 100644 --- a/src/Xmobar/Config/Types.hs +++ b/src/Xmobar/Config/Types.hs @@ -68,10 +68,12 @@ data Config = } deriving (Read, Show) data XPosition = Top + | TopH Int | TopW Align Int | TopSize Align Int Int | TopP Int Int | Bottom + | BottomH Int | BottomP Int Int | BottomW Align Int | BottomSize Align Int Int diff --git a/src/Xmobar/X11/Window.hs b/src/Xmobar/X11/Window.hs index 6de8e66..13c99f0 100644 --- a/src/Xmobar/X11/Window.hs +++ b/src/Xmobar/X11/Window.hs @@ -80,9 +80,11 @@ setPosition c p rs ht = case p' of Top -> Rectangle rx ry rw h TopP l r -> Rectangle (rx + fi l) ry (rw - fi l - fi r) h + TopH ch -> Rectangle rx ry rw $ mh ch TopW a i -> Rectangle (ax a i) ry (nw i) h TopSize a i ch -> Rectangle (ax a i) ry (nw i) (mh ch) Bottom -> Rectangle rx ny rw h + BottomH ch -> Rectangle rx ny rw $ mh ch BottomW a i -> Rectangle (ax a i) ny (nw i) h BottomP l r -> Rectangle (rx + fi l) ny (rw - fi l - fi r) h BottomSize a i ch -> Rectangle (ax a i) (ny' ch) (nw i) (mh ch) @@ -153,10 +155,12 @@ getStrutValues r@(Rectangle x y w h) p rwh = case p of OnScreen _ p' -> getStrutValues r p' rwh Top -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0] + TopH _ -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0] TopP _ _ -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0] TopW _ _ -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0] TopSize {} -> [0, 0, st, 0, 0, 0, 0, 0, nx, nw, 0, 0] Bottom -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw] + BottomH _ -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw] BottomP _ _ -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw] BottomW _ _ -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw] BottomSize {} -> [0, 0, 0, sb, 0, 0, 0, 0, 0, 0, nx, nw] -- cgit v1.2.3