packages feed

xmobar-0.51.1: xmobar.cabal

cabal-version:      >=1.10
name:               xmobar
version:            0.51.1
license:            BSD3
license-file:       license
maintainer:         Jose A. Ortega Ruiz <jao@gnu.org>
author:             Andrea Rossato and Jose A. Ortega Ruiz
homepage:           https://codeberg.org/xmobar/xmobar
bug-reports:        https://codeberg.org/xmobar/xmobar/issues
synopsis:           A Minimalistic Text Based Status Bar
description:
    Xmobar is a minimalistic text based status bar.
    .
    Inspired by the Ion3 status bar, it supports similar
    features, like dynamic color management, output templates,
    and extensibility through plugins.

category:           System
build-type:         Simple
extra-source-files:
    readme.org
    changelog.md
    doc/quick-start.org
    doc/plugins.org
    doc/compiling.org
    doc/using-haskell.org
    etc/padding-icon.sh
    etc/xmobar.config
    etc/xmobar.hs
    etc/xmonadpropwrite.hs
    etc/xmobar.el
    etc/notify-once.sh

source-repository head
    type:     git
    location: https://codeberg.org/xmobar/xmobar.git
    branch:   master

flag with_xrender
    description: Use XRender for alpha background pseudo-transparency.

flag with_inotify
    description:
        inotify support (modern Linux only). Required for the Mail and MBox plugins.

    default:     False

flag with_iwlib
    description:
        Wireless info support via Wext ioctls (deprecated). Required for the Wireless plugin, needs iwlib installed.

    default:     False

flag with_nl80211
    description:
        Wireless info support via nl80211. Required for the Wireless plugin on systems running Linux, the kernel.

    default:     False

flag with_mpd
    description: MPD support. Needs libmpd installed.
    default:     False

flag all_extensions
    description: Includes all optional extensions.
    default:     False

flag with_alsa
    description: Use alsa-mixer to get the volume from soundcards.
    default:     False

flag with_datezone
    description: Enables localized date support.
    default:     False

flag with_mpris
    description: MPRIS v1, v2 support.
    default:     False

flag with_dbus
    description:
        Publish a service on the session bus for controlling xmobar.

    default:     False

flag with_xpm
    description: Enable usage of xpm for icons.
    default:     False

flag with_threaded
    description:
        Use threaded runtime. Required for timer coalescing (less power usage).

    default:     False

flag with_rtsopts
    description: Use -with-rtsopts=-V0 to reduce wakeups.

flag with_shared
    description:
        Use shared libraries. Required when dependencies are built as shared libraries.

    default:     False

flag with_weather
    description: Enable weather plugin.

flag with_uvmeter
    description: UVMeter only useful to australians.
    default:     False

flag with_kraken
    description: Enable Kraken plugin.
    default:     False

library
    exposed-modules:
        Xmobar
        Xmobar.Plugins.Accordion
        Xmobar.Plugins.Monitors.Common.Types
        Xmobar.Plugins.Monitors.Common.Run
        Xmobar.Plugins.Monitors.Common
        Xmobar.Plugins.Monitors.Cpu

    hs-source-dirs:   src
    other-modules:
        Paths_xmobar
        Xmobar.Config.Types
        Xmobar.Config.Parse
        Xmobar.Config.Template
        Xmobar.Run.Types
        Xmobar.Run.Timer
        Xmobar.Run.Template
        Xmobar.Run.Exec
        Xmobar.Run.Runnable
        Xmobar.Run.Actions
        Xmobar.Run.Loop
        Xmobar.Draw.Boxes
        Xmobar.Draw.Cairo
        Xmobar.Draw.Types
        Xmobar.App.Config
        Xmobar.App.Main
        Xmobar.App.Opts
        Xmobar.App.Compile
        Xmobar.System.Utils
        Xmobar.System.StatFS
        Xmobar.System.Environment
        Xmobar.System.Localize
        Xmobar.System.Signal
        Xmobar.System.Kbd
        Xmobar.Text.Ansi
        Xmobar.Text.Loop
        Xmobar.Text.Pango
        Xmobar.Text.Swaybar
        Xmobar.Text.SwaybarClicks
        Xmobar.Text.Output
        Xmobar.X11.Bitmap
        Xmobar.X11.CairoSurface
        Xmobar.X11.ColorCache
        Xmobar.X11.Draw
        Xmobar.X11.Events
        Xmobar.X11.Loop
        Xmobar.X11.Text
        Xmobar.X11.Types
        Xmobar.X11.Window
        Xmobar.Plugins.Command
        Xmobar.Plugins.BufferedPipeReader
        Xmobar.Plugins.CommandReader
        Xmobar.Plugins.Date
        Xmobar.Plugins.EWMH
        Xmobar.Plugins.HandleReader
        Xmobar.Plugins.QueueReader
        Xmobar.Plugins.PacmanUpdates
        Xmobar.Plugins.PipeReader
        Xmobar.Plugins.MarqueePipeReader
        Xmobar.Plugins.StdinReader
        Xmobar.Plugins.XMonadLog
        Xmobar.Plugins.Kbd
        Xmobar.Plugins.Locks
        Xmobar.Plugins.NotmuchMail
        Xmobar.Plugins.Monitors
        Xmobar.Plugins.Monitors.Batt
        Xmobar.Plugins.Monitors.Batt.Common
        Xmobar.Plugins.Monitors.Common.Output
        Xmobar.Plugins.Monitors.Common.Parsers
        Xmobar.Plugins.Monitors.Common.Files
        Xmobar.Plugins.Monitors.CoreTemp
        Xmobar.Plugins.Monitors.K10Temp
        Xmobar.Plugins.Monitors.Cpu.Common
        Xmobar.Plugins.Monitors.CpuFreq
        Xmobar.Plugins.Monitors.Disk
        Xmobar.Plugins.Monitors.Disk.Common
        Xmobar.Plugins.Monitors.Load
        Xmobar.Plugins.Monitors.Load.Common
        Xmobar.Plugins.Monitors.Mem
        Xmobar.Plugins.Monitors.MultiCoreTemp
        Xmobar.Plugins.Monitors.MultiCpu
        Xmobar.Plugins.Monitors.Net
        Xmobar.Plugins.Monitors.Net.Common
        Xmobar.Plugins.Monitors.Swap
        Xmobar.Plugins.Monitors.Thermal
        Xmobar.Plugins.Monitors.ThermalZone
        Xmobar.Plugins.Monitors.Top
        Xmobar.Plugins.Monitors.Top.Common
        Xmobar.Plugins.Monitors.Uptime
        Xmobar.Plugins.Monitors.Bright
        Xmobar.Plugins.Monitors.CatInt

    default-language: Haskell2010
    extra-libraries:
        Xrandr
        Xrender

    ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind
    build-depends:
        aeson >=1.4.7.1 && <2.4,
        async <2.3,
        base >=4.18.0 && <4.22,
        bytestring >=0.10.8.2 && <0.13,
        cairo >=0.13 && <0.14,
        colour >=2.3.6 && <2.4,
        containers <0.9,
        directory <1.4,
        extra <1.9,
        filepath <1.6,
        mtl >=2.1 && <2.4,
        old-locale <1.1,
        pango >=0.13 && <0.14,
        parsec >=3.1 && <3.2,
        parsec-numbers >=0.1.0 && <0.2,
        process <1.7,
        regex-compat <0.96,
        stm >=2.3 && <2.6,
        time <1.17,
        transformers <0.7,
        unix <2.9,
        utf8-string >=0.3 && <1.1,
        vector <0.14,
        X11 >=1.6.1 && <1.11

    if impl(ghc <9.6.0)
        build-depends: unsupported-ghc-version >=1 && <1

    if flag(with_threaded)
        cpp-options: -DTHREADED_RUNTIME

    if flag(with_rtsopts)
        cpp-options: -DRTSOPTS

    if flag(with_shared)
        cpp-options: -DSHARED_LIBRARIES

    if flag(with_xrender)
        cpp-options:   -DXRENDER
        other-modules: Xmobar.X11.XRender
        build-depends: X11-xft >=0.2 && <0.4

    if (flag(with_inotify) || flag(all_extensions))
        cpp-options:   -DINOTIFY
        other-modules:
            Xmobar.Plugins.Mail
            Xmobar.Plugins.MBox

        build-depends: hinotify >=0.3 && <0.5

    if ((flag(with_iwlib) || flag(with_nl80211)) || flag(all_extensions))
        other-modules: Xmobar.Plugins.Monitors.Wireless

    if flag(with_iwlib)
        cpp-options:     -DIWLIB
        extra-libraries: iw
        build-depends:   iwlib >=0.1.0 && <0.2

    if (!flag(with_iwlib) && (flag(with_nl80211) || flag(all_extensions)))
        cpp-options:   -DUSE_NL80211
        build-depends:
            netlink >=1.1.1.0,
            cereal >=0.5.8.1

    if (flag(with_mpd) || flag(all_extensions))
        cpp-options:   -DLIBMPD
        other-modules: Xmobar.Plugins.Monitors.MPD
        build-depends: libmpd >=0.10.0.1 && <0.11

    if (flag(with_alsa) || flag(all_extensions))
        cpp-options:   -DALSA
        other-modules:
            Xmobar.Plugins.Monitors.Volume
            Xmobar.Plugins.Monitors.Alsa

        build-depends:
            alsa-mixer >=0.3 && <0.4,
            alsa-core >=0.5 && <0.6,
            process >=1.4.3.0 && <1.7

    if (flag(with_datezone) || flag(all_extensions))
        cpp-options:   -DDATEZONE
        other-modules: Xmobar.Plugins.DateZone
        build-depends:
            timezone-olson >=0.2 && <0.3,
            timezone-series >=0.1 && <0.2

    if (flag(with_mpris) || flag(all_extensions))
        cpp-options:   -DMPRIS
        other-modules: Xmobar.Plugins.Monitors.Mpris
        build-depends: dbus >=1 && <1.5

    if (flag(with_dbus) || flag(all_extensions))
        cpp-options:   -DDBUS
        other-modules: Xmobar.System.DBus
        build-depends: dbus >=1 && <1.5

    if (flag(with_xpm) || flag(all_extensions))
        cpp-options:     -DXPM
        other-modules:   Xmobar.X11.XPMFile
        extra-libraries: Xpm

    if (flag(with_weather) || flag(all_extensions))
        cpp-options:   -DWEATHER
        other-modules: Xmobar.Plugins.Monitors.Weather
        build-depends:
            http-conduit <2.4,
            http-types <0.13,
            http-client-tls <0.5

    if flag(with_uvmeter)
        cpp-options:   -DUVMETER
        other-modules: Xmobar.Plugins.Monitors.UVMeter
        build-depends:
            http-conduit,
            http-types

    if flag(with_kraken)
        cpp-options:   -DKRAKEN
        other-modules: Xmobar.Plugins.Kraken
        build-depends:
            aeson >=1.5.6 && <1.5.7,
            text >=1.2.4 && <1.2.5,
            unordered-containers >=0.2.14 && <0.2.15,
            vector >=0.12.3 && <0.12.4,
            wuss >=1.1 && <1.2,
            websockets >=0.12 && <0.13

    if os(freebsd)
        other-modules:
            Xmobar.Plugins.Monitors.Batt.FreeBSD
            Xmobar.Plugins.Monitors.Cpu.FreeBSD
            Xmobar.Plugins.Monitors.Disk.FreeBSD
            Xmobar.Plugins.Monitors.Load.FreeBSD
            Xmobar.Plugins.Monitors.Mem.FreeBSD
            Xmobar.Plugins.Monitors.Net.FreeBSD
            Xmobar.Plugins.Monitors.Swap.FreeBSD
            Xmobar.Plugins.Monitors.Top.FreeBSD
            Xmobar.Plugins.Monitors.Uptime.FreeBSD

        extra-libraries:
            procstat
            kvm
            geom

        build-depends:   bsd-sysctl <1.1

    else
        other-modules:
            Xmobar.Plugins.Monitors.Batt.Linux
            Xmobar.Plugins.Monitors.Cpu.Linux
            Xmobar.Plugins.Monitors.Disk.Linux
            Xmobar.Plugins.Monitors.Load.Linux
            Xmobar.Plugins.Monitors.Mem.Linux
            Xmobar.Plugins.Monitors.Net.Linux
            Xmobar.Plugins.Monitors.Swap.Linux
            Xmobar.Plugins.Monitors.Top.Linux
            Xmobar.Plugins.Monitors.Uptime.Linux

executable xmobar
    main-is:          Main.hs
    hs-source-dirs:   app
    default-language: Haskell2010
    ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind
    build-depends:
        X11 <1.11,
        async <2.3,
        base,
        containers <0.9,
        directory <1.4,
        filepath <1.6,
        parsec,
        unix <2.9,
        xmobar

    if flag(with_rtsopts)
        ghc-options: -with-rtsopts=-V0

    if flag(with_threaded)
        cpp-options: -DTHREADED_RUNTIME
        ghc-options: -threaded

test-suite XmobarTest
    type:             exitcode-stdio-1.0
    main-is:          Spec.hs
    hs-source-dirs:   src test
    other-modules:
        Xmobar.Plugins.Monitors.CommonSpec
        Xmobar.Plugins.Monitors.Common
        Xmobar.Plugins.Monitors.Common.Parsers
        Xmobar.Plugins.Monitors.Common.Types
        Xmobar.Plugins.Monitors.Common.Output
        Xmobar.Plugins.Monitors.Common.Files
        Xmobar.Plugins.Monitors.Cpu
        Xmobar.Plugins.Monitors.Cpu.Common
        Xmobar.Plugins.Monitors.CpuSpec
        Xmobar.Plugins.Monitors.Common.Run
        Xmobar.Run.Exec
        Xmobar.Run.Timer
        Xmobar.System.Signal

    default-language: Haskell2010
    build-depends:
        X11 <1.11,
        async <2.3,
        base,
        bytestring <0.13,
        containers <0.9,
        directory <1.4,
        filepath <1.6,
        hspec >=2 && <3,
        mtl,
        old-locale <1.1,
        parsec,
        parsec-numbers <0.2,
        process <1.7,
        regex-compat <0.96,
        regex-tdfa <1.4,
        stm,
        temporary <1.4,
        time <1.17,
        transformers <0.7,
        unix <2.9,
        xmobar

    if (flag(with_alsa) || flag(all_extensions))
        cpp-options:   -DALSA
        other-modules:
            Xmobar.Plugins.Monitors.Volume
            Xmobar.Plugins.Monitors.Alsa
            Xmobar.Plugins.Monitors.AlsaSpec

        build-depends:
            alsa-mixer,
            alsa-core,
            process >=1.4.3.0 && <1.7

    if os(freebsd)
        other-modules: Xmobar.Plugins.Monitors.Cpu.FreeBSD
        build-depends: bsd-sysctl

    else
        other-modules: Xmobar.Plugins.Monitors.Cpu.Linux

benchmark xmobarbench
    type:             exitcode-stdio-1.0
    main-is:          main.hs
    hs-source-dirs:   bench
    default-language: Haskell2010
    ghc-options:      -funbox-strict-fields -Wall -fno-warn-unused-do-bind 
    build-depends:
        base,
        gauge,
        mtl,
        time <1.17,
        xmobar