packages feed

xmobar 0.24.5 → 0.25

raw patch · 15 files changed

+136/−129 lines, 15 filesdep +iwlib

Dependencies added: iwlib

Files

news.md view
@@ -1,5 +1,22 @@ % xmobar - Release notes +## Version 0.25 (February, 2018)++_New features_++  - The X11 properties `WM_NAME` and `WM_CLASS` for xmobar windows can+    be setup in either the configuration file (`wmName` and `wmClass`)+    or using the new flags `-n` adn `-w` (see [issue #323]).+  - New flag `with_weather`, to build sans `Weather` monitor.++_Bug fixes_++   - Honouring -x in MPris monitor ([issue #325])+++[issue #323]: https://github.com/jaor/xmobar/issues/323+[issue #325]: https://github.com/jaor/xmobar/issues/325+ ## Version 0.24.5 (May, 2017)  _Bug fixes_
readme.md view
@@ -1,3 +1,4 @@+[![Hackage](https://img.shields.io/hackage/v/xmobar.svg)](http://hackage.haskell.org/package/xmobar) [![Build Status](https://travis-ci.org/jaor/xmobar.svg?branch=master)](https://travis-ci.org/jaor/xmobar)  # About@@ -10,7 +11,7 @@ features, like dynamic color management, icons, output templates, and extensibility through plugins. -This page documents xmobar 0.24.5 (see [release notes]).+This page documents xmobar 0.25 (see [release notes]).  [This screenshot] shows xmobar running under [sawfish], with antialiased fonts. And [this one] is my desktop with [xmonad] and two@@ -141,7 +142,7 @@ :    Support for wireless cards. Enables the Wireless plugin. No Haskell      library is required, but you will need the [iwlib] C library and      headers in your system (e.g., install `libiw-dev` in Debian-based-     systems).+     systems or `wireless_tools` on Arch Linux).  `with_alsa` :    Support for ALSA sound cards. Enables the Volume plugin. Requires the@@ -158,11 +159,16 @@      Requires the [libXpm] C library.  `with_uvmeter`-:    Enables UVMeter plugin. The plugin shows UV data for Australia.+:    Enables UVMeter plugin. The plugin shows UV data for Australia. Requires+     `with_conduit` to connect to HTTPS URLs. +`with_weather`+:    Support to display weather information. Enables Weather plugin.+ `with_conduit` :    Use http-conduit for getting weather data enabling support for http proxies.      Requires [http-conduit] and [http-types].+     Note that this flag has only an effect if `with_weather` is also set.  `all_extensions` :    Enables all the extensions above.@@ -362,6 +368,13 @@ `template` :    The output template. ++`wmClass`+:    The value for the window's X11 WM_CLASS property.  Defaults to "xmobar".++`wmName`+:    The value for the window's X11 WM_NAME property.  Defaults to "xmobar".+ ### Running xmobar with i3status  xmobar can be used to display information generated by [i3status], a@@ -389,6 +402,8 @@       -h, -?        --help                 This help       -V            --version              Show version information       -f font name  --font=font name       The font name+      -w class      --wmclass=class        X11 WM_CLASS property+      -n name       --wmname=name          X11 WM_NAME property       -B bg color   --bgcolor=bg color     The background color. Default black       -F fg color   --fgcolor=fg color     The foreground color. Default grey       -A alpha      --alpha=alpha          The transparency: 0 is transparent, 255 (the default) is opaque@@ -1115,7 +1130,9 @@ - Aliases to `mpris1` - Requires [dbus] and [text] packages.   To activate, pass `--flags="with_mpris"` during compilation.-- PlayerName: player supporting MPRIS v1 protocol, in lowercase.+- PlayerName: player supporting MPRIS v1 protocol.  Some players need+  this to be an all lowercase name (e.g. "spotify"), but some others+  don't. - Args: default monitor arguments. - Variables that can be used with the `-t`/`--template` argument:             `album`, `artist`, `arturl`, `length`, `title`, `tracknumber`@@ -1129,7 +1146,9 @@ - Aliases to `mpris2` - Requires [dbus] and [text] packages.   To activate, pass `--flags="with_mpris"` during compilation.-- PlayerName: player supporting MPRIS v2 protocol, in lowercase.+- PlayerName: player supporting MPRIS v2 protocol.  Some players need+  this to be an all lowercase name (e.g. "spotify"), but some others+  don't. - Args: default monitor arguments. - Variables that can be used with the `-t`/`--template` argument:             `album`, `artist`, `arturl`, `length`, `title`,@@ -1161,6 +1180,7 @@   the mail count (use an empty string for the default). - Opts is a possibly empty list of options, as flags. Possible values:    -a  --all (no arg)  Show all mailboxes, even if empty.+   -u (no arg) Show only the mailboxes' names, sans counts.    -d dir  --dir dir a string giving the base directory where mbox files with                      a relative path live.    -p prefix --prefix prefix  a string giving a prefix for the list@@ -1547,20 +1567,20 @@ version 0.11.1. Since then, it is maintained and developed by [jao], with the help of the greater xmobar and Haskell communities. -In particular, xmobar [incorporates patches] by Axel Angel, Dragos-Boca, Ben Boeckel, Duncan Burke, Roman Cheplyaka, Patrick Chilton,-Antoine Eiche, Nathaniel Wesley Filardo, John Goerzen, Reto Hablützel,-Juraj Hercek, Tomáš Janoušek, Spencer Janssen, Roman Joost, Jochen-Keil, Lennart Kolmodin, Krzysztof Kosciuszkiewicz, Dmitry Kurochkin,-Todd Lunter, Robert J. Macomber, Dmitry Malikov, David McLean, Marcin-Mikołajczyk, Dino Morelli, Tony Morris, Eric Mrak, Thiago Negri,-Edward O'Callaghan, Svein Ove, Martin Perner, Jens Petersen, Alexander-Polakov, Petr Rockai, Andrew Sackville-West, Markus Scherer, Alexander-Shabalin, Valentin Shirokov, Peter Simons, Alexander Solovyov, Will-Song, John Soros, Travis Staton, Artem Tarasov, Samuli Thomasson,-Edward Tjörnhammar, Sergei Trofimovich, Thomas Tuegel, Jan Vornberger,-Anton Vorontsov, Daniel Wagner, Zev Weiss, Phil Xiaojun Hu, Edward-Z. Yang and Norbert Zeh.+In particular, xmobar [incorporates patches] by Mohammed Alshiekh,+Axel Angel, Dragos Boca, Ben Boeckel, Duncan Burke, Roman Cheplyaka,+Patrick Chilton, Antoine Eiche, Nathaniel Wesley Filardo, John+Goerzen, Reto Hablützel, Juraj Hercek, Tomáš Janoušek, Spencer+Janssen, Roman Joost, Jochen Keil, Lennart Kolmodin, Krzysztof+Kosciuszkiewicz, Dmitry Kurochkin, Todd Lunter, Robert J. Macomber,+Dmitry Malikov, David McLean, Marcin Mikołajczyk, Dino Morelli, Tony+Morris, Eric Mrak, Thiago Negri, Edward O'Callaghan, Svein Ove, Martin+Perner, Jens Petersen, Alexander Polakov, Petr Rockai, Andrew+Sackville-West, Markus Scherer, Alexander Shabalin, Valentin Shirokov,+Peter Simons, Alexander Solovyov, Will Song, John Soros, Travis+Staton, Artem Tarasov, Samuli Thomasson, Edward Tjörnhammar, Sergei+Trofimovich, Thomas Tuegel, Jan Vornberger, Anton Vorontsov, Daniel+Wagner, Zev Weiss, Phil Xiaojun Hu, Edward Z. Yang and Norbert Zeh.  [jao]: http://jao.io [incorporates patches]: http://www.ohloh.net/p/xmobar/contributors
src/Bitmap.hs view
@@ -2,7 +2,7 @@ ----------------------------------------------------------------------------- -- | -- Module      :  Bitmap--- Copyright   :  (C) 2013, 2015, 2017 Alexander Polakov+-- Copyright   :  (C) 2013, 2015, 2017, 2018 Alexander Polakov -- License     :  BSD3 -- -- Maintainer  :  jao@gnu.org@@ -18,7 +18,7 @@  import Control.Monad import Control.Monad.Trans(MonadIO(..))-import Data.Map hiding (foldr, map, filter)+import Data.Map hiding (map, filter) import Graphics.X11.Xlib import System.Directory (doesFileExist) import System.FilePath ((</>))
src/Config.hs view
@@ -50,6 +50,8 @@ data Config =     Config { font :: String         -- ^ Font            , additionalFonts :: [String] -- ^ List of alternative fonts+           , wmClass :: String      -- ^ X11 WM_CLASS property value+           , wmName :: String       -- ^ X11 WM_NAME property value            , bgColor :: String      -- ^ Backgroud color            , fgColor :: String      -- ^ Default font color            , position :: XPosition  -- ^ Top Bottom or Static@@ -112,6 +114,8 @@ defaultConfig =     Config { font = "-misc-fixed-*-*-*-*-10-*-*-*-*-*-*-*"            , additionalFonts = []+           , wmClass = "xmobar"+           , wmName = "xmobar"            , bgColor = "#000000"            , fgColor = "#BFBFBF"            , alpha   = 255
− src/IWlib.hsc
@@ -1,75 +0,0 @@--------------------------------------------------------------------------------- |--- Module      :  IWlib--- Copyright   :  (c) Jose A Ortega Ruiz--- License     :  BSD-style (see LICENSE)------ Maintainer  :  Jose A Ortega Ruiz <jao@gnu.org>--- Stability   :  unstable--- Portability :  unportable------  A partial binding to iwlib-----------------------------------------------------------------------------------{-# LANGUAGE CPP, ForeignFunctionInterface, EmptyDataDecls #-}---module IWlib (WirelessInfo(..), getWirelessInfo) where--import Foreign-import Foreign.C.Types-import Foreign.C.String--data WirelessInfo = WirelessInfo { wiEssid :: String,  wiQuality :: Int }-                  deriving Show--#include <iwlib.h>--data WCfg-data WStats-data WRange--foreign import ccall "iwlib.h iw_sockets_open"-  c_iw_open :: IO CInt--foreign import ccall "unistd.h close"-  c_iw_close :: CInt -> IO ()--foreign import ccall "iwlib.h iw_get_basic_config"-  c_iw_basic_config :: CInt -> CString -> Ptr WCfg -> IO CInt--foreign import ccall "iwlib.h iw_get_stats"-  c_iw_stats :: CInt -> CString -> Ptr WStats -> Ptr WRange -> CInt -> IO CInt--foreign import ccall "iwlib.h iw_get_range_info"-  c_iw_range :: CInt -> CString -> Ptr WRange -> IO CInt--getWirelessInfo :: String -> IO WirelessInfo-getWirelessInfo iface =-  allocaBytes (#size struct wireless_config) $ \wc ->-  allocaBytes (#size struct iw_statistics) $ \stats ->-  allocaBytes (#size struct iw_range) $ \rng ->-  withCString iface $ \istr -> do-    i <- c_iw_open-    bcr <- c_iw_basic_config i istr wc-    str <- c_iw_stats i istr stats rng 1-    rgr <- c_iw_range i istr rng-    c_iw_close i-    if bcr < 0 then return WirelessInfo { wiEssid = "", wiQuality = 0 } else-      do hase <- (#peek struct wireless_config, has_essid) wc :: IO CInt-         eon <- (#peek struct wireless_config, essid_on) wc :: IO CInt-         essid <- if hase /= 0 && eon /= 0 then-                    do let e = (#ptr struct wireless_config, essid) wc-                       peekCString e-                  else return ""-         q <- if str >= 0 && rgr >=0 then-                do qualv <- xqual $ (#ptr struct iw_statistics, qual) stats-                   mv <- xqual $ (#ptr struct iw_range, max_qual) rng-                   let mxv = if mv /= 0 then fromIntegral mv else 1-                   return $ fromIntegral qualv / mxv-              else return 0-         let qv = round (100 * (q :: Double))-         return WirelessInfo { wiEssid = essid, wiQuality = min 100 qv }-    where xqual p = let qp = (#ptr struct iw_param, value) p in-            (#peek struct iw_quality, qual) qp :: IO CChar
src/Main.hs view
@@ -135,6 +135,8 @@           | OnScr      String           | IconRoot   String           | Position   String+          | WmClass    String+          | WmName     String        deriving Show  options :: [OptDescr Opts]@@ -142,6 +144,8 @@     [ Option "h?" ["help"] (NoArg Help) "This help"     , Option "V" ["version"] (NoArg Version) "Show version information"     , Option "f" ["font"] (ReqArg Font "font name") "The font name"+    , Option "w" ["wmclass"] (ReqArg WmClass "class") "X11 WM_CLASS property"+    , Option "n" ["wmname"] (ReqArg WmName "name") "X11 WM_NAME property"     , Option "B" ["bgcolor"] (ReqArg BgColor "bg color" )       "The background color. Default black"     , Option "F" ["fgcolor"] (ReqArg FgColor "fg color")@@ -206,6 +210,8 @@     Help -> putStr   usage >> exitSuccess     Version -> putStrLn info  >> exitSuccess     Font s -> doOpts' (conf {font = s})+    WmClass s -> doOpts' (conf {wmClass = s})+    WmName s -> doOpts' (conf {wmName = s})     BgColor s -> doOpts' (conf {bgColor = s})     FgColor s -> doOpts' (conf {fgColor = s})     Alpha n -> doOpts' (conf {alpha = read n})
src/Parsers.hs view
@@ -212,7 +212,8 @@         return (x,s)        perms = permute $ Config-              <$?> pFont <|?> pFontList <|?> pBgColor <|?> pFgColor+              <$?> pFont <|?> pFontList <|?> pWmClass <|?> pWmName+              <|?> pBgColor <|?> pFgColor               <|?> pPosition <|?> pTextOffset <|?> pIconOffset <|?> pBorder               <|?> pBdColor <|?> pBdWidth <|?> pAlpha <|?> pHideOnStart               <|?> pAllDesktops <|?> pOverrideRedirect <|?> pPickBroadest@@ -220,7 +221,8 @@               <|?> pCommands <|?> pSepChar <|?> pAlignSep <|?> pTemplate  -      fields    = [ "font", "additionalFonts","bgColor", "fgColor", "sepChar"+      fields    = [ "font", "additionalFonts","bgColor", "fgColor"+                  , "wmClass", "wmName", "sepChar"                   , "alignSep" , "border", "borderColor" ,"template"                   , "position" , "textOffset", "iconOffset"                   , "allDesktops", "overrideRedirect", "pickBroadest"@@ -230,6 +232,8 @@        pFont = strField font "font"       pFontList = strListField additionalFonts "additionalFonts"+      pWmClass = strField wmClass "wmclass"+      pWmName = strField wmName "windowName"       pBgColor = strField bgColor "bgColor"       pFgColor = strField fgColor "fgColor"       pBdColor = strField borderColor "borderColor"
src/Plugins/Kbd.hsc view
@@ -54,6 +54,7 @@ instance Storable XkbStateRec where     sizeOf _ = (#size XkbStateRec)     alignment _ = alignment (undefined :: CUShort)+    poke _ _ = undefined     peek ptr = do         r_group <- (#peek XkbStateRec, group) ptr         r_locked_group <- (#peek XkbStateRec, locked_group) ptr@@ -155,6 +156,7 @@ instance Storable XkbKeyNameRec where     sizeOf _ = (#size XkbKeyNameRec)     alignment _ = alignment (undefined :: CUShort)+    poke _ _ = undefined     peek ptr = do         r_name <- (#peek XkbKeyNameRec, name) ptr @@ -165,6 +167,7 @@ instance Storable XkbKeyAliasRec where     sizeOf _ = (#size XkbKeyAliasRec)     alignment _ = alignment (undefined :: CUShort)+    poke _ _ = undefined     peek ptr = do         r_real <- (#peek XkbKeyAliasRec, real) ptr         r_alias <- (#peek XkbKeyAliasRec, alias) ptr@@ -177,6 +180,7 @@ instance Storable XkbNamesRec where     sizeOf _ = (#size XkbNamesRec)     alignment _ = alignment (undefined :: CUShort)+    poke _ _ = undefined     peek ptr = do         r_keycodes <- (#peek XkbNamesRec, keycodes) ptr         r_geometry <- (#peek XkbNamesRec, geometry) ptr@@ -215,6 +219,7 @@ instance Storable XkbDescRec where     sizeOf _ = (#size XkbDescRec)     alignment _ = alignment (undefined :: CUShort)+    poke _ _ = undefined     peek ptr = do         r_dpy <- (#peek XkbDescRec, dpy) ptr         r_flags <- (#peek XkbDescRec, flags) ptr
src/Plugins/Monitors.hs view
@@ -20,7 +20,9 @@ import Plugins  import Plugins.Monitors.Common (runM, runMD)+#ifdef WEATHER import Plugins.Monitors.Weather+#endif import Plugins.Monitors.Net import Plugins.Monitors.Mem import Plugins.Monitors.Swap@@ -53,8 +55,7 @@ import Plugins.Monitors.Mpris #endif -data Monitors = Weather      Station     Args Rate-              | Network      Interface   Args Rate+data Monitors = Network      Interface   Args Rate               | DynNetwork               Args Rate               | BatteryP     Args        Args Rate               | BatteryN     Args        Args Rate Alias@@ -74,6 +75,9 @@               | TopMem       Args        Rate               | Uptime       Args        Rate               | CatInt       Int FilePath Args Rate+#ifdef WEATHER+              | Weather      Station     Args Rate+#endif #ifdef UVMETER               | UVMeter      Station     Args Rate #endif@@ -104,7 +108,9 @@ type DiskSpec  = [(String, String)]  instance Exec Monitors where+#ifdef WEATHER     alias (Weather s _ _) = s+#endif     alias (Network i _ _) = i     alias (DynNetwork _ _) = "dynnetwork"     alias (Thermal z _ _) = z@@ -148,7 +154,9 @@     start (MultiCpu a r) = startMultiCpu a r     start (TopProc a r) = startTop a r     start (TopMem a r) = runM a topMemConfig runTopMem r+#ifdef WEATHER     start (Weather s a r) = runMD (a ++ [s]) weatherConfig runWeather r weatherReady+#endif     start (Thermal z a r) = runM (a ++ [z]) thermalConfig runThermal r     start (ThermalZone z a r) =       runM (a ++ [show z]) thermalZoneConfig runThermalZone r
src/Plugins/Monitors/Mpris.hs view
@@ -85,7 +85,9 @@ runMPRIS :: (MprisVersion a) => a -> String -> [String] -> Monitor String runMPRIS version playerName _ = do     metadata <- io $ getMetadata version dbusClient playerName-    mapM showWithPadding (makeList version metadata) >>= parseTemplate+    if [] == metadata then+      getConfigValue naString+      else mapM showWithPadding (makeList version metadata) >>= parseTemplate  runMPRIS1 :: String -> [String] -> Monitor String runMPRIS1 = runMPRIS MprisVersion1
src/Plugins/Monitors/UVMeter.hs view
@@ -18,11 +18,14 @@ import Plugins.Monitors.Common  import qualified Control.Exception as CE-import Control.Applicative hiding ((<|>),many)-import Network.HTTP+import Network.HTTP.Conduit+       (parseRequest, newManager, tlsManagerSettings, httpLbs,+        responseBody)+import Data.ByteString.Lazy.Char8 as B import Text.Read (readMaybe) import Text.Parsec import Text.Parsec.String+import Control.Monad (void)   uvConfig :: IO MConfig@@ -35,14 +38,18 @@     deriving (Show)  uvURL :: String-uvURL = "http://www.arpansa.gov.au/uvindex/realtime/xml/uvvalues.xml"+uvURL = "https://uvdata.arpansa.gov.au/xml/uvvalues.xml"  getData :: IO String-getData = do-    let request = getRequest uvURL-    CE.catch (simpleHTTP request >>= getResponseBody) errHandler-    where errHandler :: CE.IOException -> IO String-          errHandler _ = return "<Could not retrieve data>"+getData =+  CE.catch (do request <- parseRequest uvURL+               manager <- newManager tlsManagerSettings+               res <- httpLbs request manager+               return $ B.unpack $ responseBody res)+           errHandler+  where errHandler+          :: CE.SomeException -> IO String+        errHandler _ = return "<Could not retrieve data>"  textToXMLDocument :: String -> Either ParseError [XML] textToXMLDocument = parse document ""@@ -123,7 +130,7 @@  xmlDecl :: Parser XML xmlDecl = do-    string "<?xml"+    void $ manyTill anyToken (string "<?xml") -- ignore the byte order mark     decl <- many (noneOf "?>")     string "?>"     return (Decl decl)
src/Plugins/Monitors/Wireless.hs view
@@ -17,7 +17,7 @@ import System.Console.GetOpt  import Plugins.Monitors.Common-import IWlib+import Network.IWlib  newtype WirelessOpts = WirelessOpts   { qualityIconPattern :: Maybe IconPattern
src/Signal.hs view
@@ -20,7 +20,7 @@  import Data.Typeable (Typeable) import Control.Concurrent.STM-import Control.Exception hiding (handle)+import Control.Exception import System.Posix.Signals import Graphics.X11.Types (Button) import Graphics.X11.Xlib.Types (Position)
src/Window.hs view
@@ -1,7 +1,7 @@ ----------------------------------------------------------------------------- -- | -- Module      :  Window--- Copyright   :  (c) 2011-17 Jose A. Ortega Ruiz+-- Copyright   :  (c) 2011-18 Jose A. Ortega Ruiz --             :  (c) 2012 Jochen Keil -- License     :  BSD-style (see LICENSE) --@@ -18,7 +18,7 @@ import Prelude import Control.Applicative ((<$>)) import Control.Monad (when, unless)-import Graphics.X11.Xlib hiding (textExtents, textWidth)+import Graphics.X11.Xlib hiding (textExtents) import Graphics.X11.Xlib.Extras import Graphics.X11.Xinerama import Foreign.C.Types (CLong)@@ -100,8 +100,8 @@   card <- mkatom "CARDINAL"   atom <- mkatom "ATOM" -  setTextProperty d w "xmobar" wM_CLASS-  setTextProperty d w "xmobar" wM_NAME+  setTextProperty d w (wmClass c) wM_CLASS+  setTextProperty d w (wmName c) wM_NAME    wtype <- mkatom "_NET_WM_WINDOW_TYPE"   dock <- mkatom "_NET_WM_WINDOW_TYPE_DOCK"
xmobar.cabal view
@@ -1,5 +1,5 @@ name:               xmobar-version:            0.24.5+version:            0.25 homepage:           http://xmobar.org synopsis:           A Minimalistic Text Based Status Bar description: 	    Xmobar is a minimalistic text based status bar.@@ -82,8 +82,12 @@   description: UVMeter only useful to australians.   default: False +flag with_weather+  description: Enable weather plugin+  default: True+ flag with_conduit-  description: Use http-conduits for getting weather data+  description: Use http-conduits for getting weather data, only has an effect if with_weather is set.   default: False  executable xmobar@@ -105,9 +109,8 @@       Plugins.Monitors.MultiCpu, Plugins.Monitors.Net,       Plugins.Monitors.Swap, Plugins.Monitors.Thermal,       Plugins.Monitors.ThermalZone, Plugins.Monitors.Top,-      Plugins.Monitors.Uptime, Plugins.Monitors.Weather,-      Plugins.Monitors.Bright, Plugins.Monitors.CatInt,-      Plugins.Monitors.UVMeter+      Plugins.Monitors.Uptime,+      Plugins.Monitors.Bright, Plugins.Monitors.CatInt      ghc-options: -funbox-strict-fields -Wall -fno-warn-unused-do-bind     extra-libraries: Xrandr Xrender@@ -127,14 +130,8 @@       X11 >= 1.6.1,       mtl >= 2.1 && < 2.3,       parsec == 3.1.*,-      HTTP >= 4000.2.4,       stm >= 2.3 && < 2.5 -    if flag(with_conduit)-       -- use http-conduit  instead of simple-http-       build-depends: http-conduit, http-types-       cpp-options: -DHTTP_CONDUIT-     if flag(with_threaded)        -- -threaded is a workaround for 100% CPU busy loop        -- (http://hackage.haskell.org/trac/ghc/ticket/4934).@@ -161,7 +158,8 @@      if flag(with_iwlib) || flag(all_extensions)        extra-libraries: iw-       other-modules: IWlib, Plugins.Monitors.Wireless+       build-depends: iwlib >= 0.1.0 && < 0.2+       other-modules: Plugins.Monitors.Wireless        cpp-options: -DIWLIB      if flag(with_mpd) || flag(all_extensions)@@ -195,5 +193,16 @@        other-modules: XPMFile        cpp-options: -DXPM -    if flag(with_uvmeter)+    if flag(with_weather) || flag(all_extensions)+       build-depends: HTTP >= 4000.2.4+       other-modules: Plugins.Monitors.Weather+       cpp-options: -DWEATHER+       if flag(with_conduit)+          -- use http-conduit  instead of simple-http+          build-depends: http-conduit, http-types+          cpp-options: -DHTTP_CONDUIT++    if flag(with_uvmeter) && flag(with_conduit)+       other-modules: Plugins.Monitors.UVMeter+       build-depends: http-conduit, http-types        cpp-options: -DUVMETER