Patrick Iacob [Sun, 27 Nov 2022 04:11:01 +0000 (20:11 -0800)]
battery: Fix remaining on Linux
The current version displays the remaining time as 'n/a'.
Fixes this regression introduced in
69b2487650782f135db76078c4a7fb841cb936ac
where current_now and power_now were incorrectly replaced with current and
power when they were moved to a macro.
drkhsh [Wed, 23 Nov 2022 22:59:51 +0000 (23:59 +0100)]
New component: cat
Generically reads an arbitrary file natively.
Saves a few layers of execution in comparison to using `run_command`
with an argument like `cat ./file`.
drkhsh [Thu, 27 Oct 2022 22:47:06 +0000 (00:47 +0200)]
README: Add note about FreeBSD sndio dep
drkhsh [Thu, 27 Oct 2022 22:21:02 +0000 (00:21 +0200)]
radical re-formatting 3/3: Error checks
Check for `< 0` instead of `== -1`.
Fixes coding style. Formatting commits suck, incoherent coding style
sucks more.
https://suckless.org/coding_style/
drkhsh [Thu, 27 Oct 2022 22:51:34 +0000 (00:51 +0200)]
radical re-formatting 2/3: Fix blocks
Fixes coding style. Formatting commits suck, incoherent coding style
sucks more.
https://suckless.org/coding_style/
drkhsh [Thu, 27 Oct 2022 22:49:31 +0000 (00:49 +0200)]
radical re-formatting 1/3: Fix spacing
Fixes coding style. Formatting commits suck, incoherent coding style
sucks more.
https://suckless.org/coding_style/
drkhsh [Thu, 27 Oct 2022 21:18:30 +0000 (23:18 +0200)]
radical re-formatting 0/3: Alphabetic headers
Except stated otherwise in comment.
Fixes coding style. Formatting commits suck, incoherent coding style
sucks more.
https://suckless.org/coding_style/
drkhsh [Thu, 27 Oct 2022 22:13:12 +0000 (00:13 +0200)]
ram: Refactor on OpenBSD
Fixes up overly complicated lines, by splitting up logic
drkhsh [Thu, 27 Oct 2022 22:11:15 +0000 (00:11 +0200)]
ram: Refactor Linux perc/used
Fixes up overly complicated line, by splitting up logic
drkhsh [Thu, 27 Oct 2022 21:47:01 +0000 (23:47 +0200)]
battery: Refactor remaining on OpenBSD
Fixes up overly complicated line, by splitting up logic
drkhsh [Thu, 27 Oct 2022 22:15:21 +0000 (00:15 +0200)]
temp: Put sysctl into define to avoid line wraps
Long, wrapped, multi-line if statements suck to read.
This fixes readability.
drkhsh [Thu, 27 Oct 2022 21:44:52 +0000 (23:44 +0200)]
various: Put paths into defines to avoid line wraps
Long, wrapped, multi-line if statements suck to read.
This fixes readability in the worst places by packing format strings for
paths into defines.
drkhsh [Thu, 27 Oct 2022 20:14:20 +0000 (22:14 +0200)]
separator: kill that useless thing
Just use the format strings dude. :)
NRK [Wed, 26 Oct 2022 20:16:05 +0000 (02:16 +0600)]
do not rely on obsolete feature
function prototype with unspecified argument is obsolete since c99.
additionally some of these function which don't take any argument were
being called with a `const char *` arg, which is UB.
fix both these issues by declararing ALL the components to accept a
`const char *`, and name the arg "unused" if it's meant to be ignored.
NRK [Wed, 26 Oct 2022 20:14:53 +0000 (02:14 +0600)]
components/*.c: include slstatus.h
this gives the compiler a chance to check weather the prototype and
definiton matches or not, which would catch issues like
3c47701.
Spenser Truex [Wed, 26 Oct 2022 19:34:47 +0000 (21:34 +0200)]
Add 'Not charging' status support
Exists on various ThinkPads. Seems to be both a synonym for "full".
Tested on:
- ThinkPad T500 (Spenser Truex <truex@equwal.com)
- ThinkPad T420 (drkhsh <me@drkhsh.at)
drkhsh [Wed, 26 Oct 2022 10:57:12 +0000 (12:57 +0200)]
Add comment about mixer oss module to README
drkhsh [Wed, 19 Oct 2022 23:24:08 +0000 (01:24 +0200)]
Update LICENSE
Ingo Feinerer [Mon, 15 Feb 2021 11:56:42 +0000 (12:56 +0100)]
Reset sndiod initialization flag on disconnects
If the connection is lost to the sndiod(8) daemon reset the
initialization to allow for a graceful restart.
michaelbuch12@gmail.com [Fri, 1 Jan 2021 15:52:57 +0000 (16:52 +0100)]
Make volume component work on FreeBSD
- Edit compile instructions
- Reuse OpenBSD sndio implementation
michaelbuch12@gmail.com [Fri, 1 Jan 2021 16:04:36 +0000 (17:04 +0100)]
Fix RAM component on FreeBSD
The current implementation uses the wrong type for
given sysctl calls leading to overflow and incorrectly
reported RAM usage. The fix is to use 'unsigned int'
which is what FreeBSD expects.
NRK [Sat, 27 Aug 2022 14:40:20 +0000 (20:40 +0600)]
Fix keyboard_indicators() prototype
according to both the function definition and the comment in
config.def.h, keyboard_indicators() should take a format string.
Aaron Marcher [Mon, 30 Nov 2020 20:32:14 +0000 (21:32 +0100)]
Update README
Aaron Marcher [Mon, 30 Nov 2020 20:26:40 +0000 (21:26 +0100)]
Update LICENSE
Aaron Marcher [Mon, 30 Nov 2020 19:56:21 +0000 (20:56 +0100)]
Add comment for FreeBSD to config.mk
Apparently `-lkvm` is needed for swap on FreeBSD
Thanks to Micheal Buch and Jason Smith
(See thread https://lists.suckless.org/dev/1907/33594.html)
Ingo Feinerer [Sat, 9 May 2020 10:03:20 +0000 (12:03 +0200)]
Use the sioctl_open(3) OpenBSD API to access vol
Starting with OpenBSD 6.7 regular users cannot access raw audio devices
anymore, for improved security.
Instead use the sioctl_open(3) API to access and manipulate audio
controls exposed by sndiod(8). On the first call a permanent connection
is established with the running sndiod daemon, and call-back functions
are registered which are triggered when audio controls are changed
(e.g., a USB headset is attached) or when the volume is modified. On
subsequent calls we poll for changes; if there are no volume changes
this costs virtually nothing.
Joint work with Alexandre Ratchov
Daniel Moch [Tue, 23 Jun 2020 20:35:43 +0000 (16:35 -0400)]
Add a -1 option flag
Allow slstatus to be used by programs that can grab status by calling
an external program on a periodic basis (e.g. tmux)
Mart Lubbers [Thu, 18 Jun 2020 06:46:12 +0000 (08:46 +0200)]
Handle SIGUSR1 for forced refreshes
At some point one might want to force a refresh for example after
checking email or changing the volume. Sending a SIGUSR1 achieves this
now
dsp [Fri, 1 Nov 2019 04:50:32 +0000 (22:50 -0600)]
Fix temperature reporting on OpenBSD
On OpenBSD although the formula is correct due to integer division a
temperature of for example 54 celsius appears as 5. this patch first
treats it as a floating point op before retaining the non decimal digits
Cem Keylan [Wed, 2 Oct 2019 08:31:54 +0000 (11:31 +0300)]
Full battery indicator
When you reach full charge the symbol would change
to a question mark "?" as "Full" was not defined,
now it changes to an "o" instead.
Ryan Kes [Sat, 30 Mar 2019 12:45:05 +0000 (13:45 +0100)]
Add separator module
Ingo Feinerer [Sat, 16 Feb 2019 16:59:44 +0000 (17:59 +0100)]
Follow International System of Units spacing rules
Aaron Marcher [Sat, 16 Feb 2019 16:05:04 +0000 (17:05 +0100)]
Add OS-support notice to README
Michael Buch [Sat, 16 Feb 2019 01:26:44 +0000 (01:26 +0000)]
Add ram and swap components on FreeBSD
Ingo Feinerer [Thu, 14 Feb 2019 18:25:51 +0000 (19:25 +0100)]
cpu_perc: Check for division by zero
Ingo Feinerer [Wed, 13 Feb 2019 14:45:40 +0000 (15:45 +0100)]
Fix CPU frequency on OpenBSD
Michael Buch [Wed, 13 Feb 2019 14:16:17 +0000 (14:16 +0000)]
close file descriptors and fix return values
Ingo Feinerer [Fri, 8 Feb 2019 14:37:17 +0000 (15:37 +0100)]
Add native OpenBSD support for mute/volume
Based on functionality in dstat by Joerg Jung.
Michael Buch [Wed, 13 Feb 2019 00:47:23 +0000 (00:47 +0000)]
wifi component on FreeBSD
Michael Buch [Wed, 30 Jan 2019 11:21:54 +0000 (11:21 +0000)]
Add FreeBSD support for netspeeds, entropy and ip components
Aaron Marcher [Tue, 5 Feb 2019 08:32:47 +0000 (09:32 +0100)]
Update LICENSE
Michael Buch [Tue, 5 Feb 2019 02:44:37 +0000 (02:44 +0000)]
Add support for cpu and uptime components on FreeBSD
Michael Buch [Sun, 27 Jan 2019 15:44:39 +0000 (15:44 +0000)]
Add FreeBSD support for temperature and battery components
Aaron Marcher [Sun, 8 Jul 2018 15:45:32 +0000 (17:45 +0200)]
ram: Consistency with line breaks
Aaron Marcher [Sun, 8 Jul 2018 15:44:53 +0000 (17:44 +0200)]
Fix whitespace
Aaron Marcher [Sun, 8 Jul 2018 15:42:58 +0000 (17:42 +0200)]
Consistency with 80 char limit and breaks
Aaron Marcher [Sat, 7 Jul 2018 12:05:53 +0000 (14:05 +0200)]
wifi_perc: Simplify on Linux
Remove unnecessary variable
Aaron Marcher [Sat, 7 Jul 2018 09:08:26 +0000 (11:08 +0200)]
Simplify format specifiers for uintmax_t
Aaron Marcher [Sat, 7 Jul 2018 08:56:10 +0000 (10:56 +0200)]
cpu_freq: Simplify with E-notation
Thanks to the FRIGN
Aaron Marcher [Sat, 7 Jul 2018 08:54:12 +0000 (10:54 +0200)]
cpu_freq: Change to 64 bit integers
Remove unnecessary cast to size_t
Aaron Marcher [Sat, 7 Jul 2018 08:50:25 +0000 (10:50 +0200)]
Change uint64_t to uintmax_t
Aaron Marcher [Sat, 7 Jul 2018 08:31:57 +0000 (10:31 +0200)]
battery: 64 bit ints on Linux
Aaron Marcher [Fri, 6 Jul 2018 22:24:36 +0000 (00:24 +0200)]
cpu: Use uint64_t on OpenBSD
Aaron Marcher [Fri, 6 Jul 2018 21:55:18 +0000 (23:55 +0200)]
battery: Remove unnecessary defines for paths
Aaron Marcher [Fri, 6 Jul 2018 21:47:52 +0000 (23:47 +0200)]
uptime: Improve typing and sort headers
Aaron Marcher [Fri, 6 Jul 2018 21:41:02 +0000 (23:41 +0200)]
temperature: Improve types
Aaron Marcher [Fri, 6 Jul 2018 21:38:12 +0000 (23:38 +0200)]
ram: Check for theoretical division by zero
Aaron Marcher [Fri, 6 Jul 2018 21:37:05 +0000 (23:37 +0200)]
ram: Use POSIX types
Aaron Marcher [Fri, 6 Jul 2018 21:26:12 +0000 (23:26 +0200)]
entropy: Use POSIX types for format specifiers
Aaron Marcher [Fri, 6 Jul 2018 21:17:08 +0000 (23:17 +0200)]
entropy: Improve types
Aaron Marcher [Fri, 6 Jul 2018 06:08:48 +0000 (08:08 +0200)]
Consistent paramter naming for components
Aaron Marcher [Fri, 6 Jul 2018 06:03:31 +0000 (08:03 +0200)]
slstatus.h: Fix coding style
Function declarations should include variable names.
For functions with different parameters on different platfroms they are
left out.
Aaron Marcher [Fri, 6 Jul 2018 05:56:46 +0000 (07:56 +0200)]
fmt_human: Improve types
size_t may not be enough, use 64 bit integers
Aaron Marcher [Mon, 4 Jun 2018 12:07:20 +0000 (14:07 +0200)]
Add Ian Remmler to LICENSE
Ian Remmler [Mon, 4 Jun 2018 01:02:34 +0000 (20:02 -0500)]
Add flexible formatting to keyboard_indicators.
Updated for style.
Tobias Tschinkowitz [Fri, 1 Jun 2018 18:10:34 +0000 (20:10 +0200)]
uptime: unification of the uptime function for linux/openbsd
Tobias Tschinkowitz [Thu, 31 May 2018 11:53:49 +0000 (13:53 +0200)]
wifi: fixed disconnected wifi status on openbsd
Aaron Marcher [Wed, 30 May 2018 17:35:37 +0000 (19:35 +0200)]
Clean up header includes
- Remove <errno.h> because related functions are in util.c now
- Remove corresponding <string.h> if not used otherwise
Aaron Marcher [Tue, 29 May 2018 20:26:40 +0000 (22:26 +0200)]
Update LICENSE for Quentin
Quentin Rameau [Tue, 29 May 2018 19:32:29 +0000 (21:32 +0200)]
Flush the output stream instead of arbitrarily disabling buffering
This is (arguably) more elegant and it matches Xlib output logic.
Also use puts instead of printf as we don't do formating there.
Laslo Hunhold [Tue, 29 May 2018 19:24:43 +0000 (21:24 +0200)]
Don't explicitly list each component-target
I made a mistake while reading the Posix spec. In fact, the implicit
prerequisite imposed by the .c.o-rule is evaluated as expected, even if
the .c is not given in the target rule.
This partially reverts
0efd64ffaa04715eff9c834c437562952c4531cd.
Tobias Tschinkowitz [Tue, 29 May 2018 12:28:39 +0000 (14:28 +0200)]
swap: removed unused include
Laslo Hunhold [Mon, 28 May 2018 19:16:02 +0000 (21:16 +0200)]
Refactor swap.c to use getline() instead of buf-filling
This drops a lot of code and even though we are using a common function,
the specification of only the needed things keeps it very efficient and
even more efficient in memory and time than the previous solution.
Aaron Marcher [Mon, 28 May 2018 14:17:03 +0000 (16:17 +0200)]
Update LICENSE for Tobias
Laslo Hunhold [Mon, 28 May 2018 13:58:28 +0000 (15:58 +0200)]
Fix object order and stop using a GNU make idiom
Laslo Hunhold [Sun, 27 May 2018 20:40:00 +0000 (22:40 +0200)]
Explicitly list component-objects in the Makefile
There was a long tinkering process at farbfeld about this, but the sad
truth is that it's the only way to make the Makefile truly portable.
Listing it just as
$(COM:=.o): config.mk $(REQ:=.h)
omits the dependency on the c-file itself, which incurs that strictly
speaking the object file is not depending on the source file, which is
nonsense.
You don't see strictly Posix compliant Makefiles around very often and
most use nasty GNU-extensions everywhere. It is a good idea to go ahead
as a fitting example and show how to write them portably.
Laslo Hunhold [Sun, 27 May 2018 15:57:52 +0000 (17:57 +0200)]
Use E-notation for large powers of 10
Aaron Marcher [Sun, 27 May 2018 14:46:03 +0000 (16:46 +0200)]
Revert "Add basic backlight percentage support"
On OpenBSD the backlight percentage cannot be retrieved in a simple way.
The only two solutions we are aware of for now are:
- reading from /dev/ttyC0: which isn't possible without changing
permissions or running slstatus as root
- linking against xcb-xrandr: which is bloat and does not work in every
case appearently
This reverts commit
37724ac2c3f496f4736223d0d8e5d8fecb933590 for now.
Tobias Tschinkowitz [Thu, 24 May 2018 10:09:26 +0000 (12:09 +0200)]
ram: fixed int overflow on pagetok macro
Laslo Hunhold [Wed, 23 May 2018 13:29:37 +0000 (15:29 +0200)]
Refactor keymap.c
- Get rid of camel-casing
- Don't use all-caps for variable names
- use LEN()-macro
- use strncmp() rather than strstr() for prefix-checking
- clean up the tokenizer-loop and don't use copies
- make the loop more readable by separating different breaking
conditions
- stricter error-checking and cleanup
- store the layout directly with bprintf rather than having
a separate buffer
Laslo Hunhold [Wed, 23 May 2018 11:51:50 +0000 (13:51 +0200)]
Refactor snprintf-usage in util.c
Aaron Marcher [Wed, 23 May 2018 11:30:45 +0000 (13:30 +0200)]
keymap: Add braces for for loop
Aaron Marcher [Wed, 23 May 2018 09:50:08 +0000 (11:50 +0200)]
Add keymap to README
Aaron Marcher [Wed, 23 May 2018 08:12:20 +0000 (10:12 +0200)]
Add Michael Buch to LICENSE
Michael Buch [Wed, 23 May 2018 06:16:30 +0000 (07:16 +0100)]
Add keymap component
Adding a new keymap component that will
indicate the current keyboard layout (language)
and variant if any was set. I use the
standard X11 XKB APIs to retrieve and parse
the xkb_symbols set with setxkbmap.
Laslo Hunhold [Mon, 21 May 2018 19:31:53 +0000 (21:31 +0200)]
Remove o-flag as it is redundant
Even if we extend the flag to be an n-flag with a numerical input, we
already have other Unix-tools to take care of us much more flexibly,
e.g. with head(1) you can easily get the first 10 outputs with
slstatus -s | head -n 10,
but also e.g. discard the first one and then get the consecutive 10
outputs.
For the X11-root-window-name, you can limit the runtime with timeout(1)
or a comparable solution.
This reverts commit
fa8b939990ed0648f99b0cbeba4efed807160db3.
Laslo Hunhold [Tue, 22 May 2018 10:50:43 +0000 (12:50 +0200)]
Check printf() for output errors
This way cases like
$ slstatus -s > /dev/full
are properly caught and the program terminated with the proper return
code.
Aaron Marcher [Tue, 22 May 2018 10:42:31 +0000 (12:42 +0200)]
netspeeds: Fix indentation
David Demelier [Tue, 22 May 2018 07:23:29 +0000 (09:23 +0200)]
Add basic backlight percentage support
At the moment linux only, but will add support for OpenBSD as well.
Aaron Marcher [Tue, 22 May 2018 10:21:52 +0000 (12:21 +0200)]
Change to fmt_human in netspeeds on OpenBSD
Thanks to Hiltjo
Laslo Hunhold [Mon, 21 May 2018 21:03:34 +0000 (23:03 +0200)]
swap.c: Refactor getstats() and its usage
Add a return value so we are able to check any errors and actually fail
when there has been a critical error instead of carrying on uselessly.
Laslo Hunhold [Mon, 21 May 2018 18:08:56 +0000 (20:08 +0200)]
Refactor fmt_human() and fix a bug
It is not necessary to copy memory or anything. Just keep a pointer to
the active prefix-array and assign the length of the arrays to a
variable.
Make the code more readable by using a switch, be more strict when an
invalid base is passed to it and fix a small oversight in the bottom of
the code where the base 1024 was forgotten to generalized.
Aaron Marcher [Mon, 21 May 2018 12:44:21 +0000 (14:44 +0200)]
Merge fmt_human_2 and fmt_human_10 to one function
Now only one function, fmt_human, takes an additional argument "base".
Aaron Marcher [Mon, 21 May 2018 12:14:45 +0000 (14:14 +0200)]
Remove fmt from load_avgs for consistency
In a later commit something like that will be enabled for every
component
Aaron Marcher [Mon, 21 May 2018 12:07:41 +0000 (14:07 +0200)]
Add option to output only once and exit
Aaron Marcher [Sun, 20 May 2018 22:42:06 +0000 (00:42 +0200)]
battery_remaining: check for division by zero
Aaron Marcher [Sun, 20 May 2018 22:41:03 +0000 (00:41 +0200)]
battery_remaining: Change float to double
Aaron Marcher [Sun, 20 May 2018 22:36:59 +0000 (00:36 +0200)]
battery: Minor coding style fixes
- Line length
- Spacing and indentation
- No explicit checks for NULL
Aaron Marcher [Sun, 20 May 2018 22:29:54 +0000 (00:29 +0200)]
Increase readability for load_uvmexp return
Aaron Marcher [Sun, 20 May 2018 22:16:54 +0000 (00:16 +0200)]
Remove units from numbers
This is a first step to decouple formatting from information because of
two reasons:
1. The components should only gather and return the values by design
2. Fine grained user control should be a focus
Scaling will be implemented in a different way in a later commit.