forked from ultrabug/py3status
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
1487 lines (1396 loc) · 90.7 KB
/
CHANGELOG
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
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
version 3.56 (2024-01-28)
* remove audio modules in favor of playerctl (#2231), by lasers
* new module dexcom: display glucose readings from your Dexcom CGM system (#2229), by lasers
* arch_updates module: hourly cache_timeout, add a note about alpm-hooks (#2219), by lasers
* volume_status module: pamixer fix command if device is 0 (#2230), by Václav Kubernát
* volume_status module: pamixer: Use default device if none specified (#2228), by Václav Kubernát
version 3.55 (2024-01-12)
* pkg: add dbus tag to pull dependencies 'pip install py3status[dbus]'
* pkg: drop eol python 3.7 support, add python 3.12
* pkg: pull setuptools for 3.12
* docs(build): move away from readthedocs and switch to automatic github pages (#2216)
* docs(config): add favicon and rename the site
* readme: drop readthedocs build status
* docs: fix broken 404 urls (#2223), by lasers
* arch_updates module: update auracle from sync to outdated (#2220), by mlmatlock
* bluetooth module: reinitialize dbus to fix after sleep behavior (#2221), by lasers
* lm_sensors module: fix invalid json if specified more than one chip (#2226), by lasers
* nvidia_smi module: fix --list-properties (#2225), by lasers
* vpn_status module: add formatters for displaying IP addresses of VPNs (#2227), by Joey Holtzman
version 3.54 (2023-10-13)
* arch_updates module: handle yay return code better when there are no updates (#2214), by Geoff Liu
* arch_updates module: make it more responsive to system updates (#2215), by Geoff Liu
* battery_level module: fix code style
version 3.53 (2023-09-10)
* argparser: remove deprecated interval option (#2210), by lasers
* new module playerctl: control players supported by playerctl (#2211), by Joey Holtzman
version 3.52 (2023-07-29)
* IMPORTANT: the project has moved from setuptools to pyproject.toml and hatch
* IMPORTANT: gevent support is now deprecated and removed
* core: drop gevent support
version 3.51 (2023-06-27)
* NEW: thanks to Andreas Grapentin, py3status can now run in lots of other containers (tmux, term, dzen2, lemonbar...)
* IMPORTANT: modules are moving away from the obsolete pydbus library
* core: implement handling of output_format in py3status for i3bar, dzen2, xmobar, lemonbar, tmux, term, none (#2104), by Andreas Grapentin
* core: autodetect output_format (#2202), by lasers
* fix(module): report module post_config_hook errors thx to @lasers (#2208)
* docs(user): add a section to specify that modules dependencies are up to the users
* docs(mkdocs): drop mkdocs-simple-hooks closes #2195
* docs: fix two DeprecationWarning (#2191), by lasers
* docs(audiosink): fix screenshots (#2194), by lasers
* docs(autodoc): remove dead code thx to @lasers, closes #2183 (#2193)
* arch_updates module: add support for pikaur (#2182), by vim
* arch_updates module: remove cower support (gone) (#2190), by lasers
* backlight module: drop pydbus, switch to dbus-python
* bluetooth module: report battery percentage if available (#2185), by Alex Tsitsimpis
* clock module: added timezone information to times implicitly using local system timezone (#2197), by Andreas Grapentin
* clock module: minor patch to get the local timezone. (#2189), by Josh Sixsmith
* diskdata module: fix variable init type
* diskdata module: make module work on FreeBSD (#2200), by Björn Busse
* mpd_status module: fix UnboundLocalError (#2199), by Björn Busse
* ns_checker module: replace query() with resolve() (#2207), by Björn Busse
* systemd module: drop pydbus, switch to dbus-python
* vpn_status module: drop pydbus, switch to dbus-python
version 3.50 (2023-04-17)
* update alpine install doc (#2176), by raspbeguy
* battery_level module: fix invalid indexing, skip batteries with unavailable info (#2180), by lasers
* vpn_status module: add wireguard support (#2181), by javiertury
version 3.49 (2023-02-17)
* do_not_disturb module: use 'makoctl mode' to check current mode. (#2172), by Valdur Kana
* google_calendar module: add support to configure which google calendar will be used (#2174), by Alex Thomae
version 3.48 (2023-01-14)
* IMPORTANT: bluetooth module has been replaced by the bluetooth2 code, please migrate
* python: drop py 3.6 from CI and bump 3.11 (#2166)
* battery_level module: allow icon to not use charging_character (#2158), by Kevin Pulo
* bluetooth module: replaced by bluetooth2 as announced on 2022-10
* check_tcp module: add IPv6 support (#2167), by Björn Busse
* clock module: migrate to standard zoneinfo with 3.7, 3.8 support. (#2155), by Valdur Kana
* events: change the reading timeout to infinity (#2153), by Austin Lund
* kdeconnector module: Active notifications were always 1. (#2170), by Valdur Kana
* kdeconnector module: refactor to use dbus signals to update module (#2168), by Valdur Kana
* kdeconnector module: show cell network type and strength. (#2162) (#2163), by Valdur Kana
* mpris module: fix error self.parent on Py3status module not found. (#2169), by Valdur Kana
* timewarrior module: remove dependency on dateutil (#2161), by Rasmus Rendal
* volume_status module: amixer scontrols uses device and card parameter. (#2152), by Valdur Kana
* volume_status module: deprecate start_delay parameter
* volume_status module: smarter initialization logic with retry, remove start_delay setting (#2165), by Joan Bruguera
* window module: window without title will not produce error on i3msg mode, by Valdur Kana* core: add inhibition timer on misbehaving signals
version 3.47 (2022-10-02)
* INFORMATION: the upcoming bluetooth module has been merged as bluetooth2, users are encouraged to switch
* core: simpler logic to inhibit out of order signaling (#2147)
* formatter: add escape command to escape html, thx to lasers
* new module from scratch: bluetooth2 (#2114), by lasers
* mpris module: different players can use chromium busname, skip cache, by Valdur Kana
* taskwarrior module: add report parameter (#2141), by Evan Chen
* volume_status module: autoselect channel on amixer backend (#2143), by lasers
version 3.46 (2022-08-25)
* INFORMATION: we plan to replace the bluetooth module with a more flexible one in coming releases (see #2114)
* core: use git package for logging git commit information if available (#2138), by Austin Lund
* docs: add Alpine Linux installation instructions (#2129), by raspbeguy
* new audiosink module: switch between pulseaudio sinks from your bar (#2137), by Jens Brandt
* sysdata module: ignore ZFS ARC cache in memory usage (#2131), by anarcat
* volume_status module: add start_delay to address issue #2136 (#2139)
version 3.45 (2022-06-16)
* official python3.6 support removed
* mail module: fix pathlib adoption (#2125), by Hunter Blanks
* twitch module: migrate to new Twitch API, fix #2123 (#2124), by Julian Picht
* volume_status module: use mapped volume with amixer backend. (#2128), by Jose Riha
version 3.44 (2022-04-22)
* IMPORTANT: python3.6 support will be removed on next release
* core: handle SIGTSTP/SIGCONT better for after sleep freezes
* formatter: stop escaping html characters on pango markup (#2122), by lasers
* module_test: add clear_timeout_due (#2119), by lasers
* udev monitor: implement udev events throttling with warnings
* google_calendar module: escape html on event summary for pango
* mpris module: add player_shortname placeholder for displaying player busname (#2120), by Valdur Kana
* xrandr module: fix missing " at the end of documentation line. (#2121), by Valdur Kana
version 3.43 (2022-04-01)
* core: rework SIGSTP inhibition to support both #2068 and #2107
* formatter: pango markup should escape all html character
* py3.safe_format: add information about invalid format
* py3.safe_format: implement a generic max_width parameter
* requirements: fix click dependency with black
* udev monitor: don't trigger actions when i3bar refresh is stopped
* weather_owm module: dont use onecall for better current day forecast (#2112)
version 3.42 (2022-03-14)
* core: fix root cause of negative update_due (#2109), by Valdur Kana
* external_script module: add option 'convert_numbers' to preserve number formatting (#2101), by Nicolas Kuttler
* khal_calendar module: add option to limit the number of returned calendar entries (#2103), by Andreas Grapentin
* mpris module: total rework with bug fixes (#2077), by Valdur Kana
* weather_own module: fix onecall when city is specified thx to @mlmatlock
version 3.41 (2022-02-27)
* core: drop and log negative new_update_due which causes high cpu load and endless loop (closses #2085) (#2092), by Valdur Kana
* core: switch from time.perf_counter to time.monotonic (#2099)
* core: timeout due to return something >= 0 instead of None
* new option py3status.stop_signal to disable i3bar stop/resume (#2095)
* arch_updates module: paru exits with a non-zero status if there are no updates (#2098), by Stefan G
* battery_level module: fallback to power_now if no current_now
* events: fix pydevd.debugger first click caused "JSONDecodeError: Expecting value: line 1 column 2 (char 1)". (closes #2090) (#2091), by Valdur Kana
* net_iplist module: support parsing iface name with "@" symbol (#2083), by Yikai Zhao
* pomodoro module: pyglet and pygame are no longer needed after the merge of #1770 (#2094), by Stefan G
* scratchpad module: workaround for i3ipc 2.2.1 not finding leaves() in sway (#2088), by Valdur Kana
* sysdata module: add tctl sensor (#2082), by lasers
* velib_metropole module: drop obsolete module
* weather_owm module: fix forecast by using new onecall api endpoint (#2097)
* window module: i3ipc backend uses incoming event data and relies less on get_tree.focused() data. (#2087), by Valdur Kana
version 3.40 (2021-11-08)
* README: update readthedocs links to new documentation thx to @oceyral
* i3 contrib page: update readthedocs links to new documentation
* i3 contrib page: update to sync with i3.github.io
* core: inhibit conflicting SIGCONT SIGTSTP that can be received too fast (#2068)
* core: fix i3/sway detection thx to @steinex
* formatter: support pango special & character
* bump mkdocs from 1.2.1 to 1.2.3 in /requirements (#2073), by dependabot[bot]
* battery_level module: add configurable status strings (#2065), by oghm2
* do_not_disturb module: handle mako using makoctl (#2075) thx to @steinex
* vpn_status module: fix changed dbus signal handler signature (#2074) thx to @oceyral
* whoami module: add {hostname} placeholder to output (#2069), by oghm2
version 3.39 (2021-08-30)
* documentation was refactored to use MkDocs, lots of work has been done
* add a makefile to ease tasks
* create and split project, documentation and tests requirements
* tests: update tox and module tests to match mkdocs md format
* new sway_idle module: to display the idle state of sway wm (#2058), by Valentin Weber
* clock module: compatible with tzlocal 3.0, thx to @flyingapfopenguin
* speedtest module: fix error when clicking too fast, closes #2060
* weather_owm module: _format_sunrise and _format_sunset as aware datetime (#2055), by msk
version 3.38 (2021-06-29)
* update IRC doc to OFTC
* arch_updates module: add paru support (#2052), by Andreas Schleifer
* spotify module: work around play/pause bug in spotifyd (#2053), by Benjamin van der Burgh
* weather_owm module: added support for displaying wind speeds in knots (#2050), by Tarjei Knapstad
version 3.37 (2021-05-26)
* require setuptools: py3status/core.py and tests/test_user_modules.py import pkg_resources (#2043), by Tomáš Hrnčiar
* help: clarify connection between --debug and --log-file options (#2044), by Ilia Kurenkov
* tox: exit on first error
* bitcoin_price module: remove module due to unmaintained APIs (#2047), by lasers
* exchange_rate module: update code to require an api key fix #2048
* kdeconnector module: add support for version 20.12.3 (#2037), by Danilo Treffiletti
* lm_sensors module: replace raw with json output (#2049), by lasers
* timewarrior module: remove timezone info from end date (#2039), by Glenn Feunteun
* weather_owm module: avoid customized formats in module_test (#2034), by lasers
* weather_owm module: remove hardcoded rounded numbers (#2033), by lasers
version 3.36 (2021-04-02)
* new zypper_updates module: to watch for OpenSuse updates (#2026), by Yiannis
* clock module: switch back to time.time
version 3.35 (2021-03-22)
* fix time modules synchronization bug thanks to @ya-isakov
* core: fix detection of instances of user provided modules fix #2020 (#2023)
* docs: fix NixOS instructions to address #2018 (#2024), by Thiago Kenji Okada
* add github issue templates
* bluetooth module: add missing requirement
* sysdata module: rename temp_unit to cpu_temp_unit and drop zone config to support intel, amd, RPi (#2029), by lasers
* weather_owm module: add wind direction placeholder (#2021), by leroyz84
version 3.34 (2021-03-04)
* storage: fix Path generation in storage fixes #2004 (#2007), by Miroslav Šedivý
* battery_level module: fix converting seconds to H:M:S format (#2010), by David Herman
* google_calendar module: add options to personalize behavior (#2013), by ben75020
* kdeconnector module: fix for battery unavailable (#2015), by Zack Didcott
* lm_sensors module: fix an issue when sensors disconnect and are not detected again (#2006), by Jack Doan
* net_iplist module: show only non deprecated ipv6 addresses (#2011), by Christian Struck
* networkmanager module: make format_device less confusing in docstring
* volume_status module: log available devices only on change
* volume_status module: run with either pulseaudio or pipewire installed (#2009), by Yaroslav Dronskii
version 3.33 (2021-02-07)
* HOTFIX: this hotfix release fixes py3-cmd
* IMPORTANT: since we touched a lot of stuff in 3.32, we might have broken stuff.
* command: fix py3-cmd refresh error thx to @btmcg fixes #2003
version 3.32 (2021-02-03)
* IMPORTANT: a lot of python3 and code normalization happened thanks to Miroslav Šedivý
* core: upgrade to python 3.6 syntax using pyupgrade, by Miroslav Šedivý
* core: modernize python3 code (#1993), by Miroslav Šedivý
* py3status code uses f-strings (#1981), by Miroslav Šedivý
* use list/generator/dict comprehensions where appropriate (#1982), by Miroslav Šedivý
* use pathlib everywhere to manipulate paths and files (#1978), by Miroslav Šedivý
* use shutil.which() instead of external which binary (#1997), by Jonas Witschel
* use time.perf_counter to measure short time periods (#1996), by Miroslav Šedivý
* add github project sponsoring
* argparsers: add missing path on default value
* argparsers: make sure FILE and PATH options are Path objects
* battery_level module: fix float formatting with f-strings
* better usage of timedelta/time modules (#1985), by Miroslav Šedivý
* ci: switch to GitHub Actions CI (#1980), by Miroslav Šedivý
* command: fix binding on PosixPath instead of a bytes-like object
* core: honor the "colors" general directive thx to @infabo fixes #1999
* docs: fix building of html docs
* drop travis-ci
* fix sys.path manipulation in setup.py as reported by @X-dark (#1983), by Miroslav Šedivý
* i3status module: use datetime.timezone for a custom tz (#1984), by Miroslav Šedivý
* i3status module: add markup support for time,tztime modules, by lasers
* mpd_status module: fixes extra space in the state when there's no artist (#1998), by Nicolás Sirolli
* mpris module: fixes mpris for Chrome, too. (#1989), by Klaus Umbach
* remove obsolete numeric relics from Python 2 (#1991), by Miroslav Šedivý
* spotify module: fix QA black format* Drop Python 3.5 support, by Miroslav Šedivý
* taskwarrior module: replace pytz with datetime.timezone (#1992), by Miroslav Šedivý
* volume_status module: stop spamming logs fixes #2002
* window module: change i3ipc to required dependency thx to @ssiyad
version 3.31 (2020-11-19)
* core: new "on_error" parameter to control module error behavior (#1972)
* doc: add CorruptCommit 's configuration examples (#1965), by CorruptCommit
* doc: create a user contributed conf example section thx to @CorruptCommit #1959
* update python version compatibility, 3.5 is gone, 3.9 is out
* parse_config: report missing file command fixes #1961 thx to @Bouni
* add poweron architecture ppc64le to travis build (#1963), by asellappen
* clock module: handle timezone changes, thx to @sTiKyt fix #1962
* coin_market module: broken module rewrite fixes #1913 (#1970), by lasers
* diskdata module: ignore df -k errors (#1969), by lasers
* do_not_disturb module: enhance dunst support using 1.5.0 dunstctl
* hueshift module: fix initialization incrementing cached value by delta (#1967), by Eugène Nélou
* i3status: add support for '%+' time format (#1975), by Parakleta
* mpris module: don't join the artist fields in BrokenDBusMpris (#1954), by Moritz Lüdecke
* spotify module: add spotifyd support (#1974), by Jean-Philippe Evrard
* sysdata module: increasing meminfo readable lines count to support Raspberry Pi4 (fix #1958) (#1960), by Valdur Kana
version 3.30 (2020-09-14)
* battery_level module: fix filter in /sys thanks to @naclander and @armandg (#1951), by Marc Poulhiès
* battery_level module: fix logic to skip batteries and charged state detection (#1949), by Danilo Treffiletti
* volume_status module: device parameter can be used as a regex
* volume_status module: log available devices on default mode
version 3.29 (2020-09-07)
* fix flake8 code linting and black code formatting to pass tests (#1940), by lasers
* py3.requests: return empty json on remote server problem fix #1401
* battery_level module: add power consumption placeholder (#1939), by vmoyankov
* battery_level module: support more battery paths detection (#1946), by Marc Poulhiès
* core modules: remove deprectated function, fix type annotation support (#1942), by Markus Sommer
* do_not_disturb module: change pause default from False to True
* google_calendar module: fix imports for newer google-python-client-api versions (#1948), by raphaunix
* mpris module: implement broken chromium mpris interface workaround (#1943), by Jacotsu
* new module prometheus: display prometheus query results on your bar (#1947), by Wilmer van der Gaast
* new module watson: to use the watson time-tracking tool (#1944), by Markus Sommer
* sysdata module: add {mem,swap}_free, {mem,swap}_free_unit, {mem,swap}_free_percent, by Ricardo Pérez
* sysdata module: try to use default intel/amd sensors first, by Yaroslav Dronskii
* tox CI: force version of black to avoid reformatting failure
* volume_status module: document commands to print possible devices (#1932), by lasers
version 3.28 (2020-04-13)
* IMPORTANT: drop support for EOL Python 2.6-3.4 (#1896), by Hugo van Kemenade
* clock module: add "locale" config parameter to change time representation (#1910), by inemajo
* docs: update debian instructions fix #1916
* mpd_status module: use currentsong command if possible (#1924), by girst
* networkmanager module: allow using the currently active AP in formats (#1921), by Benoît Dardenne
* volume_status module: change amixer flag ordering fix #1914 (#1920)
version 3.27 (2020-03-01)
* i3status: support read_file module (#1909), by @lasers thx to @dohseven
version 3.26 (2020-02-23)
* IMPORTANT: drop support for EOL Python 2.6-3.4 (#1904), by Hugo van Kemenade
version 3.25 (2020-02-09)
* core: fix collections.abc imports for Python 3.9 (#1889), by Hugo van Kemenade
* qa: fix black formatting
* fix documentation build
* do_not_disturb module: add Mako support for wayland environment. (#1898), by Cyrinux
* frame module: expose output of submodules for use in format (#1900), by Akim Sadaoui
* imap module: fix idle for courier (#1899), by Alexander Görtz
* imap module: handle OAuth TransportError (#1886), by Justyn Butler
* imap module: implement degraded_when_stale (#1885), by girst
* imap module: implement retry logic (works around badly configured mail servers) (#1881), by girst
* mpd_status module: use idle feature (major cpu savings) (#1884), by girst
* mpd_status module: clean up idle code (#1890), by girst
* mpd_status module: properly terminate idling thread (#1895), by girst
* mpd_status: fix color output (#1893), by L0ric0
* net_iplist module: fix iface regex wrt #1892 thx to @segaja
* spotify module: document dep on python-dbus fix #1888
* xrandr module: fix force_on_change logic when udev is not available #1873 (#1874), by Andrwe Lord Weber
version 3.24 (2020-01-10)
* core: some commands expectedly return non 0 output, dont log them, thanks to steinex
* fix tests and update setup for python 3.8 (#1880), by Maxim Baz
* imap module: add OAuth2 support (#1879), by Justyn Butler
version 3.23 (2020-01-04)
* core: report CommandError on logs
* xkb_input: new module from scratch to support sway too (#1869), by lasers
* backlight module: use logind as a fallback (#1870), by Boucman
* spaceapi module: fix offline attributeerror exception (#1872), by lasers
* getjson module: support basic auth via username/password fix #1875 (#1876)
* speedtest module: document how to run the test wrt #1878
version 3.22 (2019-12-10)
* doc/configuration.rst: fix unexpected unindents (#1867), by lasers
* imap module: fix black code formatting to pass tests (#1857), by lasers
* module_test: support config cli arguments (#1859), by lasers
* mpris module: add vlc nowplaying field (#1855), by Cedric Girard
* new module systemd_suspend_inhibitor, to be able to inhibit suspend managed by systemd logind (#1861), by Cyrinux
* ns_checker module: use post_config_hook (#1850), by lasers
* remove nvidia_temp in favor of nvidia_smi (#1853), by lasers
* remove scratchpad_{async,counter} in favor of scratchpad (#1852), by lasers
* remove window_title{,_async} in favor of window (#1854), by lasers
* treewide: fix typos, grammar improvements (#1858), by Torstein Husebø
* usbguard module: update for versioned dbus in 0.7.5 (#1856), by Maxim Baz
* volume_status module: simplify code (#1851), by lasers
* window: get name instead of window_title, get nodes or empty lists (#1860), by lasers
version 3.21 (2019-10-13)
* implement global request_retry_times and request_retry_wait options (#1847)
* arch_updates module: checkupdates throws exit code on zero updates (#1848), by Daniel Jenssen
* bitcoin_price module: change api request to http (#1836), by dosera
* coin_market module: skip empty datas (#1849), by lasers
* fix `long_description_content_type` missing
* fix entry_point typo in docstring (#1830), by Oliver Bestwalter
* fix project's long_description has invalid markup which will not be rendered on PyPI
* i3status: support memory module, remove valid_config_param (#1833), by lasers
* new module networkmanager: display network status (#1766), by Kevin Pulo
* module testing: fix testmode fails because it uses is_gevent property. (#1832), by Valdur Kana
* mpris module: fix KeyError exception closes #1827 (#1831), by lasers
* nvidia_temp module: add safeformat for separator, rename separator (#1846), by lasers
* spotify module: add playback placeholder (#1829), by Bazyli Cyran
* sysdata module: prevent a divide by zero on empty swap (#1838), by Pierre GINDRAUD
* weather_owm module: add safeformat for separator, rename separator (#1845), by lasers
* weather_own module: add thresholds for humidity (#1844), by lasers
* wifi module: fix bug introduced in PR #1834 (#1835), by ownaginatious
* wifi module: specify device by name or MAC address (#1834), by ownaginatious
version 3.20 (2019-08-06)
* IMPORTANT: py3status now supports importing modules from pypi packages, see 'writing modules' section on docs!
* introduce entry point based discovery of packaged custom modules (#1823), by Oliver Bestwalter
* core, module: add an ability to import resources (#1673), by lasers
* fix logo url in README (#1814), by Daniel Peukert
* formatter: add expand_color() (#1787), by lasers
* formatter: fix colors in composites after expand_color addition (#1821), by lasers
* tox is always lowercase (#1824), by Oliver Bestwalter
* new module xkb_layouts: to display keyboard layouts and variants (#1817), by lasers
* add 100ms delay before refreshing modules on udev trigger #1805
* arch_updates module: add trizen support (#1813), by Daniel Peukert
* arch_updates module: auracle throws exit code on zero updates (#1809), by Piotr Miller
* arch_updates module: change trizen command to track exit code (#1815), by Daniel Peukert
* backlight module: round brightness percentage instead of truncating (#1803), by Piotr Miller
* bluetooth module: switch to pydbus (#1804), by Maxim Baz
* clementine module: upgrade to MPRIS2 support (#1797), by Rodrigo Leite
* sysdata module: add cpus, format_cpu, format_cpu_separator, etc (#1798), by lasers
* uptime module: specify strftime characters to display system up since (#1810), by lasers
* volume_status module: pactl improvements (#1765), by Kevin Pulo
* volume_status module: support icon blocks to reflect volume (#1812), by Daniel Peukert
* volume_status: pamixer cleanups/improvs (#1806), by lasers
* weather_owm module: switch from timezoneapi to our own api (Fix #1818) (#1819)
* wifi module: split up unit placeholders, remove round_bitrate (#1791), by lasers
* wwan module: add missing curly brackets to examples (#1820), by luto
* xrandr module: allow users to use an icon instead of OUTPUT text (#1801), by lasers
version 3.19 (2019-04-30)
* NEWS: py3status now has a logo thanks to @tobaloidee!
* constants: QA uppercase hex color codes (#1786), by lasers
* core: log loaded i3status modules on startup (#1772), by lasers
* group: calculate remaining times to cycle more accurately (#1785), by lasers
* logo upload & readme update (#1768), by tobaloidee
* module: fix pango markup for non-composite modules (#1784), by lasers
* py3: move py3.get_color_names helper to formatter (#1778), by lasers
* py3: support multiple matches on get_placeholders_list (#1773), by lasers
* py3: support converting bits to bytes on format_units() (#1793), by lasers
* new module khal: display your khal calendar (#1741), by xenrox
* diskdata module: explicitly request kb from df (#1763), by Kevin Pulo
* diskdata module: optimize formatting composites, units, etc (#1774), by lasers
* i3pystatus module: check python first before telling python2 users to install (#1760), by lasers
* i3pystatus module: support universal/py3status module options (#1758), by lasers
* i3pystatus module: remove composites and keys to make dicts more comparable (#1762), by lasers
* keyboard_layout module: use xkblayout-state to switch layout (#1780), by Pipat Saengow
* keyboard_layout module: xkblayout-state should prefer variant if available (#1795), by ecks
* mpris module: detect and report error when used with gevent (#1771)
* mpris module: make new default and click buttons changes (#1761), by lasers
* net_rate module: call functions once instead of twice (#1792), by lasers
* nvidia_smi module: add memory units placeholders (#1790), by lasers
* pomodoro module: use py3.play_sound helper (#1770), by lasers
version 3.18 (2019-03-30)
* bugfix release: regresion on group cycling
* group: don't cycle on zero (#1757), by lasers
* updated configuration and modules paths detection using XDG_CONFIG_HOME (#1694), by lasers
* reorder docs index
* update i3wm.github.io py3status page with newer links and doc fix #1010 (#1745)
* docs: make unordered list, update docs, fix typos (#1754), by lasers
* parse_config: raise errors when using modules in containers in the order directive (#1747), by lasers
* frame module: add safeformat for the separator (#1746), by lasers
* mpris module: handle disconnected players gracefully on clicks (#1759), by lasers
version 3.17 (2019-03-24)
* IMPORTANT: py3status is now compatible with sway on wayland
* add sway support with --wm option (#1718), by lasers
* argparsers: add slash on paths (#1710), by lasers
* broken frame modules when pango markup is used fix #1736
* cli, core: refactor cli stuff from core to cli (#1667), by lasers
* events: remove unused if statement for \$OUTPUT{,_PART} (#1752), by lasers
* formatter, py3: use color hidden to hide blocks (#1726), by lasers
* py3status: transform modules and docstring commands (#1677), by lasers
* module cleanups and tweaks #2 (#1701), by lasers
* module cleanups and tweaks (#1691), by lasers
* module: add pango markup conversion (#1723), by lasers
* module: add pango markup conversion (py2+module_options) (#1729), by lasers
* module: fix indexerror exception (#1749), by lasers
* move list and docstring from py3status to py3-cmd (#1713), by lasers
* rename cli.py to argparsers.py (#1696), by lasers
* simplify include_paths early to valid paths (#1695), by lasers
* tests: add consistency tests for modules (#1690), by lasers
* new module: scroll (#1748), by lasers
* air_quality module: expose and optimize thresholds (#1684), by lasers
* arch_updates module: add auracle support (#1674), by Yaroslav Dronskii
* arch_updates module: fix SPEC VIOLATION: full_text is NULL! (#1735), by lasers
* arch_updates module: remove include_aur in favor of auto, refactoring (#1727), by lasers
* arch_updates module: remove obsolete cower from docs (#1720), by lasers
* arch_updates module: use py3.command_output helper (#1721), by lasers
* async_script module: fix typo (#1702), by Cody Hiar
* battery_level: fix case when an invalid battery is detected (#1751), by Thiago Kenji Okada
* coin_market module: optimize thresholds (#1682), by lasers
* graphite module: use func mapping instead of eval('func') (#1700), by lasers
* group module: stop cycling on urgent module closes #890 (#1753)
* hddtemp module: optimize thresholds (#1683), by lasers
* imap module: fix flake8 F999 errors (#1671), by lasers
* mail module: raise invalid filters, add log option to print folders (#1708), by lasers
* mpris module: remove min_width pixels in favor of spaces (#1738), by lasers
* netdata module: normalize speed rate (#1730), by Ajeet D'Souza
* netdata module: optimize thresholds (#1679), by lasers
* screenshot module: catch up with the standards (#1714), by lasers
* sysdata module: add used units (#1715), by lasers
* sysdata module: optimize cpu_freqs (#1685), by lasers
* sysdata module: optimize meminfo parsing (#1697), by lasers
* sysdata module: optimize thresholds (#1678), by lasers
* thunderbird_todos module: optimize thresholds (#1680), by lasers
* tor_rate module: allow users to hide socket errors (#1666), by cyrinux
* transmission module: optimize thresholds (#1681), by lasers
* twitch module: clean up some code (#1698), by lasers
* twitch module: use self.py3.request helper (#1699), by lasers
* usbguard module: simpler implementation (#1707), by Maxim Baz
* vnstat module: replace coloring with optimized thresholds (#1686), by lasers
* weather_owm module: flip coordinates to (lat, lon) (#1732), by lasers
* weather_owm module: print error message and status code (#1672), by lasers
* wifi module: add optimized thresholds (#1688), by lasers
* wifi module: code cleanup (#1689), by lasers
* wifi module: remove use_sudo in favor of auto (#1703), by lasers
* wifi module: switch to wifi device auto detection by default (#1706), by lasers
version 3.16 (2019-01-20)
* @maximbaz has become the third collaborator of the py3status project !
* add -u, --i3status to specify or override i3status path (#1649), by lasers
* add more module and global options, see documentation (#1620), by lasers
* added zen of py3status
* notify users of obsolete module and their alternatives (#1618)
* module_test: add urgent support in --term (#1626), by lasers
* modules: deprecate timeout parameter and honor request_timeout everywhere
* modules: don't set module options on disabled modules (#1637), by lasers
* modules: normalize main methods and add tests (#1641), by lasers
* doc: Update NixOS docs (#1639), by Thiago Kenji Okada
* doc: write documentation about request_timeout, by lasers
* doc: fix doc generation warnings (#1636), by lasers
* py3: adjust cache_timeout intervals to the right second (#1650), by lasers
* py3: get_color_names_list to return an empty list on false value (#1631), by lasers
* py3: threshold_get_color to set color=None on exception (#1634), by lasers
* fix i3status path detection and setting on startup (#1662), by lasers
* fixed typo in naming ('gradiant' -> 'gradient') (#1658), by Thomas F. Duellmann
* remove obsolete cli interval argument (#1661)
* git-hooks: add black tests to run first before pushing (#1653), by lasers
* update arch installation instructions (#1622), by Maxim Baz
* update contribution guidelines (#1623), by Maxim Baz
* update screenshots (#1616), by lasers
* new conky module: display conky system monitoring (#1664), by lasers
* diskdata module: call functions once instead of twice (#1640), by lasers
* diskdata module: optimize thresholds (#1629), by lasers
* diskdata: Added used_percent threshold (#1628), by Thiago Kenji Okada
* do_not_disturb module: dunst with state=None is invalid (#1625), by lasers
* do_not_disturb module: fix pause logic hiding startup notifications (#1624)
* do_not_disturb: simplify dunst logic (#1654), by Maxim Baz
* do_not_disturb: use pkill instead of killall to support NixOS (#1638), by Thiago Kenji Okada
* exchange_rate module: change feed to exchangeratesapi.io (#1655), by lasers
* file_status module: optimize thresholds (#1632), by lasers
* i3block module: normalize docstrings (#1635), by lasers
* mpd_status module: max_width was not working because of composite fixes #1613 (#1615)
* mpris module: fix clementine attributeerror exception (#1648), by lasers
* net_rate module: optimize thresholds (#1630), by lasers
* net_rate module: prevent errors after resuming from sleep (#1659), by cyrinux
* pingdom module: add author ultrabug (#1651), by lasers
* sysdata module: added cpu frequency placeholders (#1609), by Jack Doan
* sysdata module: support sysfs paths to temp sensors (#1614), by Jack Doan
* systemd module: support user systemd units (#1657), by cyrinux
* taskwarrior module: add tasks placeholder (#1647), by ecks
* velib_metropole module: fix format thresholds (#1633), by lasers
* weather_yahoo module: removed due to full API change by Yahoo/Oath
* xrandr module: add dynamic primary configuration (#1665), by lasers
version 3.15 (2018-12-30)
* CI now checks for black format on modules
* add support for background and border (i3-gaps) colors (#1486), by lasers
* py3-cmd: allow sending click events with modifiers (#1589), by lasers
* dont log every udev event per default
* fix check for modifiers at click events (#1601), by L0ric0
* formatter: avoid duplicate soft blocks (#1595), by @lasers, by lasers
* log signals for easier debugging
* arch_updates module: alternatively use yay for AUR check (#1545), by Simon Legner
* backlight module: added "hide_when_unavailable" option (#1607), by Thiago Kenji Okada
* battery_level module: refresh with udev, increase default cache_timeout (#1573), by Maxim Baz
* deadbeef module: return deadbeef data without error codes (#1581), by lasers
* do_not_disturb module: major refactoring (#1471), by lasers
* dropbox_status module: add support for unicode character output from dropbox-cli (#1578), by Keith Hughitt
* dropboxd_status module: add documentation about dropbox-cli (#1598), by sridhars
* external_script module: allow display full output as notification on click (#1585), by Maxim Baz
* gitlab module: use py3.get_color_names_list helper (#1522), by lasers
* google_calendar module: fix url indexerror exception (#1603), by lasers
* i3pystatus module: add sample output, fix docstrings (#1587), by lasers
* keyboard_layout module: add variant placeholder (#1492), by lasers
* mail module: report account name collision with folder names (#1544), by L0ric0
* mail module: add imap subscriptions to filter mailbox folders (#1606), by lasers
* mail module: validate mailboxes, names to avoid collisions (#1593), by lasers
* new module async_script: allow for background scripts output to update the bar themselves (#1265), by girst
* new module emerge_status: display information about running gentoo emerge (#1275), by AnwariasEu
* new module hueshift: change your screen color temperature (#1142), by lasers
* new module mega_sync: to check for MEGA service synchronization (#1458), by Maxim Baz
* new module speedtest: to check your internet bandwidth (#1435), by cyrinux
* new module usbguard: control usbguard from your bar (#1376), by cyrinux
* new module velib_metropole: display velib metropole stations and (e)bikes (#1515), by cyrinux
* screenshots module: don't use f-strings (#1590), by lasers
* screenshots module: fix parsing missing last screenshots (#1586), by lasers
* systemd module: add option to suppress output if unit is in default state (#1382), by flyingapfopenguin
* systemd module: add config parameter to hide service extension (#1381), by flyingapfopenguin
* transmission module: use --list when no aditional arguments are given (#1604), by L0ric0
* vnstat module: replace deprecated --exportdb with --oneline (#1570), by lasers
* volume_status module: use human-scale volume percentages like alsamixer (#1579), by justin j lin
* vpn_status module: handle multiple vpns (#1596), by @oceyral, by oceyral
* wifi module: add mhz and ghz frequency placeholders (#1574), by Till Backhaus
* xrandr module: new force_on_change feature to follow screens automatically (#1597)
version 3.14 (2018-11-10)
* IMPORTANT: this version adds an optional dependency with pyudev that is recommended to use
* core & modules: add helpers to allow modules to react to udev events (#1546)
* black: py3status core uses black formatter
* fix default i3status.conf detection
* add ~/.config/i3 as a default config directory, closes #1548
* add .config/i3/py3status in default user modules include directories
* add markup (pango) support for modules (#1408), by @MikaYuoadas
* add missing documentation on gevent option
* setup.py, travis.yml: add python 3.7 support, by lasers
* module_test: print modules in terminal, by lasers
* clean and improve screenshots generation (#1535), by @tobes
* py3: add threshold string support (#1480), by @lasers
* py3: notify_user module name in the title (#1556), by @lasers, by lasers
* parse_config: raise error on invalid modules (fixes #1523), by @lasers
* fix flake8 W605 errors in core and disable test for modules (#1560), by @tobes
* module: rename min_width,align to min_length,position (#1551), by @lasers
* allow test_modules to use udev_monitor (#1558), by @lasers
* refactor and document extra requirements
* print module information to sdtout instead of stderr (#1565), by @robertnf
* battery_level: Default to using sys instead of acpi (#1562), by @eddie-dunn
* enhanced help message thx to @lasers #1555
* reduce flake8 checks on errors to concentrate on functional errors
* fix errors on empty module error message, fixes #1567
* imap module: fix output formatting issue (#1559), by @girst
* xrandr module: now only updates on a "drm" udev event if pyudev is installed
version 3.13 (2018-09-28)
* WARNING: after this release, py3status coding style CI will enforce the 'black' formatter: https://pypi.org/project/black/
* @lasers has become the second collaborator of the py3status project !
* README: update Arch Linux installation instructions, by Alexis Horgix Chotard
* config functions base64() and hide(), by @tobes
* config parser: add explicit exceptions, by @tobes
* config parser: cleaner functions, by @tobes
* config parser: improve unicode support, by @tobes
* config parser: unify quote removal, by @tobes
* documentation: module docstring fixes to remove sphinx errors plus formatting, by @tobes
* documentation: update formater and configuration docs, by @L0ric0
* fix BOM related documentation breakage, by @tobes
* fix empty seeming composite block issue, by @tobes
* fix LANGUAGE environment variable for english output, by @wojtex
* flake8: resolve several warnings and errors, by @lasers
* formatter: add {:ceil} to return x or x+1, by @lasers
* formatter: catch both lonely braces, by @tobes
* formatter: don't strip whitespace, by @lasers
* formatter: hide block on 'None' string too, by @lasers
* formatter: return falsey properly, by @lasers
* formatter: show values instead of faking nonexistent keys, by @lasers
* lexer fix small glitchs, by @tobes
* module: align modules with py3status instead of i3bar, by @lasers
* module: fix universal module options for python2, by @lasers
* parse_config: fix lookuperror exception, by @lasers
* parse_config: print file name too in config error messages, by @lasers
* prevent creating timezone with to large an offset due to suspending, by @tobes
* py3: add new helper: get_color_names_list, by @lasers
* py3: threshold_get_colors to allow name with different values, by @lasers
* py3status lexer updates for docs, by @tobes
* add new module: lm_sensors, by @lasers
* add new module: loadavg, by @lasers
* add new module: mail, by @lasers
* add new module: nvidia_smi, by @lasers
* add new module: sql, by @Cereal2nd and @lasers
* add new module: timewarrior, by @lasers
* add new module: wanda_the_fish, by @lasers
* Added sql module, by Maikel Punie
* allow us to get params from formats and also update them, by @tobes
* clock: use format parsing to find placeholder, by @tobes
* command_output: allow ignoring stderr, by Maxim Baz
* deadbeef: deprecate 7.0, 7.1 support, by @lasers
* deadbeef: use py3.command_output helper, by @lasers
* exchange_rate: fix issue caused by lack of testing, by @lasers
* external_script: cast numeric output automatically, by @lasers
* fedora_updates: fix issue caused by lack of testing, by @tobes
* git-hooks: run flake8 tests first before pushing, by @lasers
* github: update github notifications link with scope, by @su8
* gitlab: add pipelines status placeholder, by @cyrinux
* i3pystatus: standalone fix for thread issue, by @tobes
* replace http with secure https in all modules, by @lasers
* setup: add fast-entry_points, by @lasers
* storage: properly handle and log legacy storage migration, by @Ultrabug
* storage: use $XDG_CACHE_HOME or ~/.cache, by @lasers
* sysdata: add htop-like memory usage, by @lasers
* test_module_doc: fix modules to remove all ignore items, by @lasers
* updated formater doc, by Lorenz Steinert
* weather_owm: work without timezoneapi but also if you set city or location, by @tobes
* whatismyip: don't fetch requests between toggle states, by @lasers
version 3.12 (2018-08-09)
* it looks like some i3 freezes that affected py3status (see #941) have been fixed https://github.com/i3/i3/issues/2539, next i3 release (>4.15) should contain the fix
* py3.request adds a default User-Agent header when none is provided
* py3-cmd: refactoring to add more options for click and refresh commands, add frame click support for #1349, by @lasers
* formatter: parse placeholders with periods, by @lasers
* air_quality module: display nothing instead of error on api error, by @cyrinux
* arch_updates module: better error handling when no internet connection, by @btmcg
* exchange_rate module: use the new core default user-agent
* file_status module: patch to fix plural wording, by @cyrinux
* volume_status module: skip pactl and pamixer if no pulseaudio, by @lasers and reported by @raingart
* volume_status module: (pactl) reinitialize default device, fixes #1402 by @lasers as reported by @sridhars
* whatismyip module: deprecate negative_cache_timeout parameter
* xrandr module: add support for setting background, by @evypb
version 3.11 (2018-07-05)
* py3.notify_user: add support for title and icon parameters to tune notifications, by @cyrinux
* new gitlab module: to powerfully manage your gitlab notifs/todos, by @lasers
* new wwan network manager module, by @cyrinux
* arch_updates module: update documentation to include the pacman-contrib requirement by @markrileybot
* diskdata module: fix stats computation, fixes #1373 by @scotte
* file_status module: add support for several paths with new format options, by @cyrinux
* hddtemp module: workaround for hddtemp byte bug, by @lasers
* net_rate module: handle non-existent interfaces better, fixes #1377, by @scotte
* sysdata module: use py3.format_units, by @simon04
* whatismyip module: replace freegeoip.net which has move and now require an api key, by @cyrinux
version 3.10 (2018-05-21)
* fix pip installation reported on #1351 by @lainiwa
version 3.9 (2018-05-14)
* added --disable_click_events (-m) option to disable all click events, by @jamethy
* allow executing shell code in the config using shell(), by @girst
* test_formatter: add {:g} to remove trailing zeroes, by @lasers
* add py3-cmd to Control section of README, by @kmoe
* fix issue where cache_timeout non-numeric wrt #1340, by @tobes
* py3: play sounds with ffplay, by @lasers
* battery_level module: fixed for systems without POWER_SUPPLY_POWER_NOW neither POWER_SUPPLY_CURRENT_NOW, by @adrianlzt
* bitcoin_price module: changed request url from http to https, by @zack-baker
* keyboard_layout module: add variants support, by @lasers
* keyboard_locks module: rearrange locks, by @lasers
* pomodoro module: fix off-by-one error, rename max_breaks to pomodoros, by @lasers
* volume_status : prioritize default sound system fixing pulseaudio and alsa detection, by @saengowp
* weather_yahoo module: date bugfix and a series of changes, by @lasers
* xrandr module: parse mode properly, by @lasers
version 3.8 (2018-04-02)
* py3: command_output call command with lc_all=c, by woland
* py3: dismiss empty notifications, by @lasers
* py3: make thresholds take none for an answer, by @lasers
* py3: return gradients properly, by @lasers
* run event in threads to fix latency problems, by @tobes
* start modules in threads to parallelize, by @tobes
* persistent storage for modules, by @tobes
* added support for environment variables in config, by alex o'neill
* formatter: add {:g} to remove trailing zeroes, by @lasers
* formatter: inherit commands properly, by @lasers
* formatter: reject the condition if none, by @lasers
* improve logging for modules, by @tobes
* add cookies handling for request, by @raspbeguy
* add installation instructions for nixos, by daniel schaefer
* add multiple qa fixes for multiple modules, by @ultrabug
* add new module: hddtemp, by @lasers
* add new module: transmission, by @lasers
* add option to enable support for green threads using gevent, by @ultrabug
* add yubikey module, by maxim baz
* added google_calendar module, by igor grebenkov
* air_quality: new module from scratch, by @lasers
* allow do_not_disturb signals to be configured, by robert ricci
* allow external on_click events to run immediately, by @tobes
* allow named colors, by @tobes
* allow overiding xrandr resolution using {output}_mode, by @nollain
* allow selection of keyboard layout, by @tobes
* allow test modules to use storage, by @tobes
* allow time_in(cache_forever), by @tobes
* backlight: allow to use multiple backlight commands, add configuration for light, by @anubiann00b
* bitcoin_price: use py3.request helper, by @lasers
* coin_market: expose placeholder, add format_datetime, cleanups, by @lasers
* coin_market: remove first_run, by @lasers
* core: make notify_user less ambiguous in the logs, by @lasers
* core: support shorthand hex colors (thx @tobes), by @lasers
* deadbeef: add sleep_timeout, by @lasers
* deadbeef: check if deadbeef is installed, by @lasers
* display thunderbird_calendar tasks, by themistokle benetatos
* document availability as a debian package, by sébastien delafond
* enable click events for spotify, by @nollain
* exchange_rates: use new feed, by @tobes
* external_script: fix indexerror exception, by @lasers
* external_script: use localized command output, by woland
* external_script: use post_config_hook, by @lasers
* fix deadbeaf error, by @tobes
* github: don't treat first run as special, by @tobes
* google_calendar: code qa, fixups, add new configs, by @ultrabug
* group: allow waiting for active module, by @tobes
* imap: support for imap-idle; enabled by default, by @girst
* keyboard_locks: merge formats, by @lasers
* make post requests work, by @raspbeguy
* module storage: add ctime and mtime metadata keys on storage_set, by @ultrabug
* module storage: move documentation, add methods and overall review with tobes, by @ultrabug
* move arg parsing to own file to help decouple stuff, by @tobes
* mpd_status: fix valueerror, allow hiding on error, by @girst
* net_rate: use post_config_hook, by @lasers
* netdata: annihilate the lines, by @lasers
* online_status: fix timeout for ping, by @lasers
* parse_config: small refactor for append_modules, by alex o'neill
* pomodoro: fix cached_until intervals, by @lasers
* pomodoro: make formats more customizable, by robert ricci
* support i3pystatus modules, by @tobes
* sysdata: first half of cleanup efforts, by @lasers
* task to monitor i3status thread, by @tobes
* taskwarrior: make the command customizable, by @regnat
* taskwarrior: use post_config_hook, by @lasers
* thunderbird_calendar: code qa, cleanups, by daniel foerster
* thunderbird_todos: new module from scratch, by @lasers
* timer: add urgent + timer: add colors, by @lasers
* twitch api requires an app client id, by james curtis
* update standalone testing, by @tobes
* updated insync module to recognise synced state, by @cypher1
* volume_status: add boost for pamixer, by @lasers
* volume_status: check the binaries, by @lasers
* volume_status: enable mouse buttons, by @lasers
* volume_status: use py3.command_output, by woland
* weather_yahoo: new module from scratch, by @lasers
* wifi: use sudo in post_config_hook, by @lasers
* window_title: add new placeholders + simplifying, by @lasers
* xrandr_rotate: display screen properly, by @lasers
* xrandr_rotate: refresh properly, by @lasers
version 3.7 (2017-11-30)
* NOTE: this is a performance focused release
* deep rework of the usage and scheduling of threads to run modules: now py3status does not keep one thread per module running permanently but instead uses a queue to spawn a thread to execute the module only when its cache expires, by @tobes
* memory footprint of py3status got largely reduced thanks to the threads modifications and thanks to a nice hunt on ever growing and useless variables done by @tobes
* the next release will contain logic to switch from threads to greenlets and go further in optimizing py3status
* conversion of many modules to use post_config_hook, by @lasers
* improve spelling in documentation, by @lasers
* let Py3.contains_format() accept a list of placeholder names
* py3: print full command in the error logs, by @lasers
* air_quality module: fix attributeerror exception, by @lasers
* apt_updates module: improved error if apt not installed, by @lasers
* backlight module: allow slower value change after a threshold, by @maximbaz
* backlight module: detect and bypass xbacklight limitations, by @lasers
* diskdata module: new {total_space} placeholder, by @pcewing
* do_not_disturb module: better support for dunst, by @maximbaz
* exchange_rate module: use py3 helper to extract placeholders, by @lasers
* github module: fix urls so trailing / doesn't cause problems, by @lasers
* icinga2 module: fix missing color parameter, by @lasers
* moc module: code/documentation cleanups, by @lasers
* mpris module: code improvements, by @lasers
* pingdom module: fix when no useful data returned, by @lasers
* uptime module: code improvements/simplification, by @lasers
* volume_status module: allow card to be specified for amixer, by @lasers
* volume_status module: bugfix for pamixer when volume is zero, by @lasers
* xrandr_rotate module: run command once, by @lasers
* xrandr_rotate: replace shell commands with python codes, by @lasers
* xsel module: allow logging and clear selection, by @JohnAZoidberg
* yandexdisk_status module: improved error reporting to users, by @lasers
version 3.6 (2017-08-22)
* faster py3-cmd, by @tobes
* universal gradients functionality, by @tobes
* share code so module_test improved, by @tobes
* better report when i3status is missing, by @tobes thx to @Cypher1
* better module doctest failures, by @alexoneill
* allow report exception to be available early, by @tobes
* better error catching for missing {, by @tobes thx to @lasers
* make hide_if_zero work for net_rate fixes #935, by @tobes thx to @maximbaz
* fix py3-cmd link in docs, by @tobes
* fix group width issue when no output, by @tobes
* docs: add new screenshot directive, by @tobes
* only show first line of error in i3bar, by @tobes
* formatter allow some commands to be inherited, by @tobes
* formatter not zero fix for displayed values, by @tobes thx to @maximbaz
* new cmus module: to control your cmus music player, by @lasers
* new coin_market module: to display custom cryptocurrency data, by @lasers
* new moc module: to control your moc music player, by @lasers
* backlight module: combine device/device_path params, by @lasers
* backlight module: improve rounding of brightness value, by @maximbaz
* battery_level module: fix bug with over 100% full icon, by @docwalter
* battery_level module: fix divide by zero bug, by @tablet-mode
* bitcoin_prices module: add safeformat for the separator, by @lasers
* bluetooth module: add safeformat for the separator, by @lasers
* clock module: fix unicode time formatting, by @tobes
* dpms module: add safeformat for all statuses, by @lasers
* external_script: allow colored output, by @enguerrand
* fixed some of the documentation headings, by @armandg
* getjson module: cleanups, by @lasers
* github module: parse and use GitHub pagination headers (closes #945), by @rixx
* iw module: use absolute path for iw, by @paradoxisme
* make headers available via py3.request() and update github module, by @tobes
* mpris module: fix keyboard interrupt in test mode @ritze
* mpris module: improvements to player detection @ritze
* net_iplist module: fix for new formatter, by @guiniol
* pomorodo module: fix typo on docstring, by @valdur55
* selinux module: show permissive as degraded and cleanups, by @lasers
* spaceapi module: Don't die if datetimes are unparseable, by @rixx
* spaceapi module: prevent 'used before assignment' error, by @fmorgner
* spotify module: sanitize album/track title by default, by @vvoland
* sysdata module: Add load support, by @guiniol
* volume_status module: fix PactlBackend on non english system, by @vvoland
* volume_status: Default device detection for pactl, by @lasers
* volume_status: support for input devices, by @markrileybot
* volume_status module: allow device as a int, by @tobes thx to @yabbes
* vpn_status module: change default format on no VPN, by @markrileybot
* whatismyip module: color_degraded support in status mode, by @aethelz
* whatismyip module: prevent mouse updates, by @lasers
* wifi module: add format, merge formats, by @lasers
* wifi module: fix quality icon python 2 bug, by @markrileybot
* window_title_async: fix workspace glitch, by @lasers
version 3.5 (2017-04-07)
* allow improved access to settings from py3status section, by @tobes
* add a new py3status configuration section and the ability to set i3-nagbar font, by @randomguy
* update sysdata documentation, by @valdur55
* group/frame: use safe_format() not build_composite, by @tobes
* skip empty modules in group, by @tobes
* remove some un-needed ignored parameters, by @tobes
* allow runtime errors to be handled in i3bar, by @tobes
* documentation generation cleanup, by @tobes
* show urgent on closed containers, by @tobes
* improve docstring tests to prevent reserved config parameters, by @tobes
* fix color comparison bug, by @tobes
* fix issue with empty full_text not showing separator, by @tobes
* fix issue with blank module causing extra separator to show, by @tobes
* cleanup i3status config access, by @tobes
* nicer exceptions on cli-commands, by @tobes
* py3 logging nicer formatting, by @tobes
* py3 provide http request functionality, drop requests dependency, by @tobes
* cleanup: remove transformed from module responses, by @tobes
* py3 helper: command_output() signal fix, by @tobes
* py3 helper: allow check_commands() to take a string, by @tobes
* formatter unicode fixup for python2, by @tobes
* new air_quality module, to display the air quality of your place, by @beetleman and @lasers
* new getjson module to display fields from a json url, by @vicyap
* new keyboard_locks module to display keyboard locks states, by @lasers
* new systemd module to check the status of a systemd unit, by @adrianlzt
* new tor_rate module to display the incoming and outgoing data rates of a Tor daemon instance, by @fmorgner
* new xscreensaver module, by @lasers and @neutronst4r
* backlight module: fix mouse behavior thanks to @Tadly on #796, by @tobes
* battery_level module: use helpers, by @lasers
* bitcoin_price module: add format, use post_config_hook, by @lasers
* bluetooth module: use helpers, by @lasers
* bluetooth module: hcitool is deprecated (bluez-5.44) so it is better to use the dbus library directly, by @jmdana
* check_tcp module: remove hardcoded strings, by @lasers
* coin_balance: use post_config_hook, by @lasers
* clementine module: use helpers, fix exception, by @lasers
* clock module: add %s, %T for time_delta calculation, by @ShareDVI
* clock module: use helpers, by @lasers
* clock module: allow better icon selection for given time, by @maximbaz
* deadbeef module: bug fix and improvements and extra placeholders, by @lasers
* diskdata module: use helpers, by @lasers
* diskdata module: fix stats for fs mounted multiple times by @eturner
* dpms module: add button_off, button_toggle, cache_timeout by @lasers
* do_not_disturb: use post_config_hook, by @lasers
* dropbox: use helpers and format fix, by @lasers
* external_script module: fix exception, remove warning, by @lasers
* external_script: use helpers, by @lasers
* frame module: use helpers, by @lasers
* getjson: use py3.request() + bugfix, by @tobes
* getjson: bugfix, by @maximbaz
* github module: use helpers and post_config_hook, by @lasers
* gpmdp module: fix permission, by @lasers
* gpmdp module: use helpers, by @lasers
* hamster module: use helpers, by @lasers
* hamster module: fix potential exceptions, by @lasers
* imap module: add depreciation stuffs, by @lasers
* imap: allow_urgent on unread messages, by @lasers
* insync module: fix exception, by @lasers
* insync module: use helpers, by @lasers
* keyboard_layout module: use helpers, by @lasers
* mpris module: fix mouse clicks by @ritze
* mpris module: use helpers, by @lasers
* mpris module: fixes to player registration, by valdur55
* net_iplist module: use helpers and post_config_hook, by @lasers
* netdata module: cleanups and optimization, by @lasers
* netdata module: add format, by @lasers
* nvidia_temp module: use helpers, by @lasers
* nvidia_temp module: fix exception, by @lasers
* online_status: use helpers, by @lasers
* pingdom module: add format, by @lasers
* pomodoro module: use helpers, by @lasers
* process_status module: add format, use helpers, by @lasers
* rainbow module: add format, by @lasers
* scratchpad_async: use post_config_hook, by @lasers
* selinux module: fix exception, remove hardcoded strings, by @lasers
* spaceapi module: add format by @lasers
* sysdata module: avoid dividing by 0, by @guiniol
* taskwarrior module: use helpers, by @lasers
* taskwarrior: fix potential exceptions, by @lasers
* tor_rate: use post_config_hook, by @lasers
* twitch_streaming: use post_config_hook, by @lasers
* vnstat module: use helpers, add exception, cleanup, by @lasers
* volume_status: bugfix for pactl on debian systems, by @DextersHub
* vpn_status: use post_config_hook, by @lasers
* whatismyip module: support any format placeholder, always use `url_geo` with a better default, by @maximbaz
* whatismyip module: expected support and cleanups by @maximbaz
* wifi module: fix device autodetection magic, by @lasers
* wifi module: remove command_checks(iw), by @lasers
* wifi module: support unicode wifi SSID, by @blahgeek
* wifi module: use helpers, fix exception, by @lasers
* window_title: cleanup, by @lasers
* window_title_async module: do not treat workspace name as window name, by @valdur55
* window_title_async module: use post_config_hook, by @lasers
* xrandr module: add option to hide output if only one combination is available, by @maximbaz
* xrandr_rotate module: use post_config_hook, by @lasers
* xsel module: add format, by @lasers
* yandexdisk_status module: use helpers, remove hardcoded strings, fix exception, by @lasers
version 3.4 (2017-01-26)
* fix python2 unicode use in i3status time modules, by @tobes
* fix python3.6 travis CI, by @tobes
* cache format string tokens to reduce work done, by @tobes
* formatter: new not_zero format command, by @tobes
* simplify the descriptions for all modules, by @lasers
* new do_not_disturb module to toggle notifications, by @maximbaz
* new rss_aggregator module to display your unread feed items, by @raspbeguy
* arch_updates module: add hide_if_zero option, by @lasers
* arch_updates module: multiple fixes, by @tobes
* backlight module: fix crash when monitor doesn't support backlight change, by @laxd
* battery_level module: fix crash when running on a machine with no battery, by @laxd
* battery_level module: prevent logic issues when zero, by @tobes
* battery_level module: support a different type of battery, by @bpinto
* clementine module: add format parameter, by @lasers
* dpms: add format parameter, by @lasers
* mpd_status module: fix max_width, by @lasers thanks to report by @girst
* mpris module: detect players starting after py3status, by @ritze
* net_rate module: add option to aggregate rate from all interfaces, by @guiniol
* netdata module: use next available nic, by @lasers
* online_status module: add deprecation warning, by @lasers
* online_status module: add format parameter, by @lasers
* player_control module: add format parameter, by @lasers
* rainbow module: add multi_color option, by @tobes
* scratchpad_async module: cleanup format parameter, by @lasers