summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-10-21print_cpu_usage: fix invalid %cpu placeholder outputGaël PORTAY
Currently, the module cpu_usage prints %cpu0 information for the invalid %cpu placeholder (i.e. the cpu number is missing). Consider the following configuration. order += "cpu_usage" cpu_usage { format = "cpu0=%cpu0 cpu1=%cpu1 cpu=%cpu" # missing cpu number -------------------^ } The configuration above produces the output below. $ i3status -c config i3status: trying to auto-detect output_format setting i3status: auto-detected "term" cpu0=-2% cpu1=-49% cpu=-2% cpu0=06% cpu1=02% cpu=06% cpu0=05% cpu1=06% cpu=05% ... The module prints %cpu0 at the third placeholder where it should report an error. This commit fixes this behavior by initializing `number' to -1. If the cpu is missing in %cpu placeholder, the sscanf function does not set `number'. Because `number' is -1 (lower to 0), an error is reported and the placeholder is skipped. $ i3status -c ./config i3status: trying to auto-detect output_format setting i3status: auto-detected "term" provided CPU number '-1' above detected number of CPU 4 cpu0= cpu1=-48% cpu= provided CPU number '-1' above detected number of CPU 4 cpu0= cpu1=11% cpu= provided CPU number '-1' above detected number of CPU 4 cpu0= cpu1=03% cpu= ...
2018-10-11Provide a more natural volume percentage with ALSA.arcnmx
The rationale of the code is explained in the header: http://git.alsa-project.org/?p=alsa-utils.git;a=blob;f=alsamixer/volume_mapping.c;h=1c0d7c45e6686239464e1b0bbc8983ea57f3914f;hb=HEAD > The mapping is designed so that the position in the interval is > proportional to the volume as a human ear would perceive it (i.e., the > position is the cubic root of the linear sample multiplication > factor). and the commit message: http://git.alsa-project.org/?p=alsa-utils.git;a=commit;h=34bb514b5fd1d6f91ba9a7b3a70b0ea0c6014250 > use a mapping where the bar height is proportional to the audible > volume, i.e., where the amplitude is the cube of the bar height. and further explanation can be found in the pull request: https://github.com/i3/i3status/pull/268#pullrequestreview-147429763
2018-09-03Add support for "POWER_SUPPLY_STATUS=Not charging" (fixes #304)David96
2018-08-24Added %interface to the ethernet optionsMax Christian Pohle
2018-07-31Fix for issue 300: Correctly print usage for cpu 10=
2018-07-16Merge pull request #296 from Stunkymonkey/include-orderIngo Bürk
switch to clang 3.8 & ignore include sort order
2018-07-16Merge pull request #299 from tuxillo/patch-2Ingo Bürk
Detect interface type on DragonFly BSD
2018-07-15Detect interface type on DragonFly BSDAntonio Huete Jimenez
2018-07-14Do not use pulseaudio for DragonFly BSDAntonio Huete Jimenez
2018-07-13fix clang errorsFelix Buehler
2018-07-13able to print percentageFelix Buehler
its now possible to have percentage before and after a variable. except for the date. But percentage with dates does not make much sense to me, so i skipped it.
2018-07-13Merge pull request #256 from oyvinht/masterIngo Bürk
Read multiple batteries on DragonFly BSD.
2018-06-29Merge pull request #292 from Stunkymonkey/format_qualityIngo Bürk
add format_quality option in wireless
2018-06-29add format_quality option in wirelessFelix Buehler
2018-06-25Stop requiring CAP_NET_ADMINOlivier Gayot
Since the following commit in the Linux kernel tree 0fdc100bdc4b ethtool: allow non-netadmin to query settings it is no longer necessary to have the CAP_NET_ADMIN capability to query a device speed using ioctl(..., SIOCETHTOOL) in conjonction with the ETHTOOL_GSET ethtool command. The mentioned commit landed first in the 2.6.37 version of the Kernel. This version is no longer maintained nowdays. Since it is not necessary anymore, it is strongly prefered from a security standpoint to drop the CAP_NET_ADMIN capability from the binary. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Prevent potential crash if glob() failsOlivier Gayot
Calling globfree(NULL) is undefined behaviour. In Linux (glibc), it results in a segmentation fault. It is also undefined behaviour to call globfree(&pglob) if a previous call to glob(&pglob) returned an error. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix potential memory leak on LinuxOlivier Gayot
The function slurp_all_batteries(), on Linux, allocates memory dynamically Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix invalid handling of glob() errors on LinuxOlivier Gayot
The manual of glob(3) says that the function returns 0 on successful completion. Any other integer value should be considered an error, not only negative integers. In practice, *BSD systems use negative values but Linux uses positive integers. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Fix use of undefined macro __OpenBSD__Olivier Gayot
Compiling on Linux with -Wundef produces the following warning: warning: "__OpenBSD__" is not defined, evaluates to 0 [-Wundef] Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Avoid assigning a new value to a var before using the old valueOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20Make sure the arguments passed to printf/die(...) match the formatOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-20No longer use a temporary buffer in the die() functionOlivier Gayot
Before the following change f947d0a Breaks configfiles! Major refactoring of i3status, see below The die(fmt, ...) function was outputting the reason to the status bar in addition to stderr. For this reason, it was meaningful to create a temporary string according to the format string and then passing it around to the different functions. Nowadays, we only display the error message to stderr so calling fprintf(stderr, ...) is much simpler. Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-11Fix shown IP address belonging to wrong interfaceOlivier Gayot
The following commit: 6a75ea9 Show IP address when address has a label introduced a way to show the IP address of an interface when a label is associated to the IP. When a label is associated to an IP, the structure returned by getifaddrs() has the label concatenated to the interface name in the .ifa_name field as in the following example: struct ifaddrs ifaddr = { .ifa_name = "eth0:mylabel", }; As a consequence, using a strict comparison between the interface name and the .ifa_name field yields a falsy result. However, checking if the .ifa_name starts with the interface name (e.g. eth0) does not work either because other network interfaces can have a name which starts with eth0. This commit solves the issue by stripping out the optional label from the .ifa_name field before making a strict comparison with the interface name. Fix #283 Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-06-04Simplify the algorithm used to determine the IP addressOlivier Gayot
Signed-off-by: Olivier Gayot <olivier.gayot@sigexec.com>
2018-05-19Merge pull request #270 from Stunkymonkey/mem-supportIngo Bürk
initial support of memory-usage for linux
2018-05-15Fix MacOS buildeplanet
2018-05-04Simplify the memory thresholdsBenedikt Heine
2018-05-04Rename ram variables consistentlyBenedikt Heine
2018-04-11Implement support for memory-usage on LinuxFelix Buehler
2018-04-08Merge pull request #275 from winks/patch-2Ingo Bürk
Fix NULL value on OpenBSD when there is no acpitz0
2018-04-06Fix NULL value on OpenBSD when there is no acpitz0Florian Anderiasch
Using %degrees on OpenBSD resulted in garbage values if sysctl doesn't know about any cpu temperature sensors.
2018-03-29Show IP address when address has a labelDan Robertson
If an address has been added with a label, ensure the correct address is shown.
2018-03-27Read multiple batteries on DragonFly BSD.Øyvin Halfdan Thuv
Using ACPI to read individual battery information instead of just accumulations from sysctl.
2018-03-27Merge branch 'master' into masterIngo Bürk
2018-03-27Merge pull request #243 from jasperla/fei_errorIngo Bürk
Remove overly aggressive #error
2018-02-13OpenBSD: fix volume display on some hardwareCarlin Bingham
On some hardware the AUDIO_MIXER_READ ioctl requires the current number of channels to be set, and the mute device found needs to be checked if it belongs to the master output device.
2018-02-07Make iface_type() work on FreeBSDGerome Fournier
2018-01-28Treat zero battery capacity as "not available" (#259)johcgt
`print_battery_info` computes `batt_info.percentage_remaining` by dividing batt_info.remaining by `full`. If `full` is `0` then the battery remaining will be reported as "inf". Before this, it tries to set `full` to either the design capacity or to the last known good charge. It determines if these values are available by checking whether their fields in `batt_info` are non-negative. As it initialized `batt_info` with values of `-1`, a non-negative value implies that something has provided a value. `slurp_all_batteries` and `add_battery_info` however initialize these fields to zero, so if these functions are called then `batt_info.full_design` will always be used. This means that on systems that don't provide a value for design capacity the percentage remaining will be reported as "inf", unless the user has set `last_full_capacity` to `true` in their `i3status.conf`. This patch changes `print_battery_info` to expect values for the battery capacity to be strictly greater than zero. This seems reasonable as a battery with a capacity of zero isn't useful. An alternative solution would be to change `slurp_all_batteries` and `add_battery_info` to initialize `batt_info` with `-1`, as `print_battery_info` does. This is less appealing as `add_battery_info` is accumulating the values, so using `-1` would introduce off-by-one errors without additional code to avoid them.
2017-12-11Update comment as in #247 (#254)Emeric Planet
2017-12-11Add IPv6 address when IPv4 isn't available (#247)Emeric Planet
2017-12-09Call tzset at each time printeplanet
2017-09-04Remove overly aggressive #errorJasper Lievisse Adriaanse
Change-Id: I8c20606d386d713cac51b620d1fcdb479a3622fe
2017-08-24Be more cautious about handling invalid battery measurements.kousu
2017-08-19Use local timezone for battery %emptytime (#236)Emeric Planet
2017-04-16Merge pull request #219 from flammi/masterIngo Bürk
Add check for virtual ethernet devices
2017-04-13Add battery capacity parsing (#216)Emeric Planet
The Linux power supply class defines three entries to provide battery status. One of them wasn't used: POWER_SUPPLY_CAPACITY. https://www.kernel.org/doc/Documentation/power/power_supply_class.txt
2017-04-13Added bracesFabian Franzen
Added braces to the if-statement as requested.
2017-04-12Fix memory leak/Use BEGINS_WITH macroFabian Franzen
The orignal proposed code had a memory leak when returning true. Furthermore I included the handy BEGINS_WITH macro of i3 which makes the code (IMHO) a lot more readable.
2017-04-12Add check for virtual ethernet devicesFabian Franzen
The _first_ option for ethernet devices now uses the link in sysfs to determine if it's a real device or just a virtual one (i.e veth** devices created by docker).
2017-03-26Multiple CPU support for cpu_usage (#209)eplanet
This change addresses the issue #199 asking for multiple CPU support. It takes an arbitrary CPU number and outputs its usage using the same arithmetics as for CPU aggregation. It currently doesn't support FreeBSD.