all repos — dotfiles @ ce1c2f28bb389820ff172845a75148c1fca8e0ab

my *nix dotfiles

nix/bin/battery.nix (view raw)

 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
{ pkgs, ... }:

let
  name = "bat";
in
pkgs.writeScriptBin name
  ''
    red="\e[31m"
    grn="\e[32m"
    ylw="\e[33m"
    cyn="\e[36m"
    blu="\e[34m"
    prp="\e[35m"
    bprp="\e[35;1m"
    rst="\e[0m"

    bat_status=""
    bat_status=$( cat /sys/class/power_supply/BAT0/capacity )
    charging_status=$( cat /sys/class/power_supply/BAT0/status )

    health() {
    for i in {0..4}
    do
        if [[ $i -le $(( $bat_status/20 )) ]]; then
            echo -ne "#[fg=colour1]· "
        else
            echo -ne "#[fg=colour8]· "
        fi
    done
    echo
    }

    bat_status_small() {
    if [[ "$charging_status" = *Charging* ]]; then
        echo -ne "+$bat_status%"
    else
        echo -ne "$bat_status%"
    fi
    }

    [ -z "$1" ] && {
    bat_status_small
    }

    while getopts qi options 
    do
    case $options in
        i)
            bat_status_small
            ;;
        q)
            if [[ "$charging_status" = *Charging* ]]; then
                echo -ne "+ $(health)"
            else
                health
            fi
    esac
    done
  ''