Commit 43dd9f49b97c797aa58ba8c6cadc9ec1867da590
1 parent
ae8c717f
Exists in
master
add makefile and update README
Showing
3 changed files
with
16 additions
and
52 deletions
Show diff stats
README.md
1 | -# Battery indicator for tmux/FreeBSD | |
1 | +# Battery indicator for tmux | |
2 | 2 | |
3 | 3 | This is is a little C program to indicate the current battery state and |
4 | -percentage in the tmux status bar. | |
5 | -It uses the FreeBSD `sysctl` and is not compatible with Linux. | |
4 | +percentage in the tmux status bar. It is tmux specific as it generates status | |
5 | +configuration colors according to the battery level. | |
6 | 6 | |
7 | -Requires a font that includes utf-8 symbols. Iosevka and JetBrains Mono from | |
8 | -NerdFonts have been tested. | |
7 | +It supports Linux (using `/sys/class/power_supply`) and FreeBSD with `sysctl`. | |
9 | 8 | |
10 | -Compile with | |
9 | +Requires a font that includes battery symbols. Iosevka and JetBrains Mono | |
10 | +from NerdFonts have been tested. the output is generated in utf-8. | |
11 | 11 | |
12 | -```sh | |
13 | -cc -O2 battery.c -o battery | |
14 | -``` | |
15 | - | |
16 | -and copy or link the executable into `~/.local/bin`, which should be on your | |
17 | -`$PATH`. | |
12 | +Compile with gnu `make` (`gmake` command in FreeBSD) and copy or link the | |
13 | +executable into `~/.local/bin`, which should be on your `$PATH`. | |
18 | 14 | |
19 | 15 | Edit `~/.tmux.conf` and setup the status bar with something like |
20 | 16 | |
21 | 17 | ```tmux |
22 | -set-option -g status-right "#($HOME/.local/bin/battery) %a, %d %b %H:%M " | |
18 | +set-option -g status-right " #($HOME/.local/bin/battery) %a, %d %b %H:%M " | |
23 | 19 | ``` |
24 | 20 | |
25 | 21 | Reload tmux and enjoy! | ... | ... |
battery.py
... | ... | @@ -1,39 +0,0 @@ |
1 | -#!/usr/bin/env python3 | |
2 | - | |
3 | -import subprocess | |
4 | - | |
5 | -bat_icons = [ | |
6 | - "\uf58d", # 0% | |
7 | - "\uf579", | |
8 | - "\uf57a", | |
9 | - "\uf57b", | |
10 | - "\uf57c", | |
11 | - "\uf57d", # 50% | |
12 | - "\uf57e", | |
13 | - "\uf57f", | |
14 | - "\uf580", | |
15 | - "\uf581", | |
16 | - "\uf578", # 100% | |
17 | -] | |
18 | -# bat_alert = f582 | |
19 | -# bat_plus = f58e | |
20 | -# bat_minus = f58b | |
21 | -# bat_unknown = f590 | |
22 | -# bat_charging = f583 | |
23 | - | |
24 | -out = str( | |
25 | - subprocess.run(["sysctl", "hw.acpi.battery"], capture_output=True).stdout, "UTF-8" | |
26 | -) | |
27 | -bat = dict(line.split(": ") for line in out.splitlines()) | |
28 | - | |
29 | -state = int(bat["hw.acpi.battery.state"]) | |
30 | -life = int(bat["hw.acpi.battery.life"]) | |
31 | - | |
32 | -if state == 0: # fully charged | |
33 | - print(f"\uf583 Full") | |
34 | -elif state == 1: # discharging | |
35 | - print(f"{bat_icons[life // 10]} {life}%") | |
36 | -elif state == 2: # charging | |
37 | - print(f"\uf583 {life}%") | |
38 | -elif state == 7: # disconnected | |
39 | - print("\uf590 Disconnected") |