diff --git a/src/QBar/Cli.hs b/src/QBar/Cli.hs index e8c6d50dba612f6f09d154b52ab875e4eccbed00..63840065d720cda90165185845ff37621e1a9433 100644 --- a/src/QBar/Cli.hs +++ b/src/QBar/Cli.hs @@ -67,7 +67,14 @@ barConfigurationParser = do l -> sequence_ l blockParser :: Parser (BarIO ()) -blockParser = hsubparser ( - command "default" (info (pure defaultBarConfig) (progDesc "Load default set of blocks.")) <> +blockParser = subparser ( + commandGroup "Available blocks:" <> command "date" (info (pure $ addBlock dateBlock) (progDesc "Load the date and time block.")) ) + <|> + subparser ( + hidden <> + commandGroup "Available presets:" <> + command "default" (info (pure defaultBarConfig) (progDesc "Load default set of blocks.")) <> + command "legacy" (info (pure legacyBarConfig) (progDesc "Load the legacy configuration. Requires some custom block scripts.")) + ) diff --git a/src/QBar/DefaultConfig.hs b/src/QBar/DefaultConfig.hs index ee421743c62d8c8836ff7d821ad7cae31c75bd8a..7fc58cd76e6292628aaff71f7812decb8f83605f 100644 --- a/src/QBar/DefaultConfig.hs +++ b/src/QBar/DefaultConfig.hs @@ -8,13 +8,26 @@ import Pipes import Control.Lens -blockLocation :: String -> FilePath -blockLocation name = "~/.config/qbar/blocks/" <> name - defaultBarConfig :: BarIO () defaultBarConfig = do systemInfoInterval <- sharedInterval 10 + let battery = systemInfoInterval $ batteryBlock >-> modify (blockName ?~ "battery") + let cpuUsage = systemInfoInterval $ cpuUsageBlock 1 >-> modify ((blockName ?~ "cpuUsage") . addIcon "💻\xFE0E") + + -- TODO: commented-out blocks should be added as soon as they are implemented in qbar + addBlock dateBlock + addBlock battery + --addBlock volumeBlock + addBlock cpuUsage + --addBlock ramUsageBlock + --addBlock cpuTemperatureBlock + --addBlock networkBlock + +legacyBarConfig :: BarIO () +legacyBarConfig = do + systemInfoInterval <- sharedInterval 10 + let todo = systemInfoInterval (blockScript $ blockLocation "todo") let wifi = systemInfoInterval $ (blockScript $ blockLocation "wifi2") >-> modify (addIcon "📡\xFE0E") let networkEnvironment = systemInfoInterval (blockScript $ blockLocation "network-environment") @@ -33,3 +46,6 @@ defaultBarConfig = do addBlock networkEnvironment addBlock wifi addBlock todo + where + blockLocation :: String -> FilePath + blockLocation name = "~/.config/qbar/blocks/" <> name