Commit 43dd9f49b97c797aa58ba8c6cadc9ec1867da590

Authored by Miguel Barão
1 parent ae8c717f
Exists in master

add makefile and update README

Showing 3 changed files with 16 additions and 52 deletions   Show diff stats
Makefile 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +
  2 +all:
  3 + cc -O2 battery.c -o battery
  4 +
  5 +clean:
  6 + rm battery
  7 +
... ...
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")