summaryrefslogtreecommitdiffhomepage
path: root/xmobar.cabal
blob: e7ed69c458e67db0a5296e1136f17d9b830e6430 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
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