summaryrefslogtreecommitdiff
path: root/bl
blob: 455064daae8bbe1997ea2176ab87d0962b96a2ff (plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/sh

## Backlight controller generic: use either light or xbacklight

#{{{ printhelp
printhelp () {
  printf "Backlight control interface\n"
  printf "bl -h\n"
  printf "bl [-xX] [-idg]\n"
  printf "bl [-xX] -I X\n"
  printf "bl [-xX] -D X\n"
  printf "bl [-xX] -s X\n"
  printf "\t-i)  \tincreases the backlight\n"
  printf "\t-I) X\tincreases the backlight by X percent\n"
  printf "\t-d)  \tdecreases the backlight\n"
  printf "\t-D) X\tdecreases the backlight by X percent\n"
  printf "\t-s) X\tsets the backlight to X percent\n"
  printf "\t-g)  \tgets the backlight\n"
  printf "\t-h)  \tprints this help message.\n"
  printf "\t-x)  \tuse light instead of brightnessctl.\n"
  printf "\t-X)  \tdon't use light instead of brightnessctl.\n"
}
#}}}

#{{{ defaults
CMD="brightnessctl"
ARG="get"
AMT="1"
#}}}

#{{{ getopts2
while getopts "hxXidgI:D:s:" o; do case "${o}" in
  x) CMD="light" ;;
  X) CMD="brightnessctl" ;;
  i) ARG="inc" ;;
  d) ARG="dec" ;;
  g) ARG="get" ;;
  I)
    ARG="inc"
    AMT="$OPTARG"
    ;;
  D)
    ARG="dec"
    AMT="$OPTARG"
    ;;
  s)
    ARG="set"
    AMT="$OPTARG"
    ;;
  *) printhelp ;;
esac done
#}}}

#{{{ main
case "$CMD" in
  "brightnessctl")
    case "$ARG" in
      "inc")
        brightnessctl set -s "+$AMT%"
        brightnessctl -s
        ;;
      "dec")
        brightnessctl set -s "$AMT%-"
        brightnessctl -s
        ;;
      "set")
        brightnessctl set -s "$AMT%"
        brightnessctl -s
        ;;
      "get")
        brightnessctl | cut -d' ' -f3 | paste -s -d' ' | awk '{printf "%5.2f\n", 100 * $2 / $3}'
        ;;
    esac
    ;;
  "light")
    case "$ARG" in
      "inc")
        light -A "$AMT"
        ;;
      "dec")
        light -U "$AMT"
        ;;
      "set")
        light -S "$AMT"
        ;;
      "get")
        light -G
        ;;
    esac
    ;;
esac
#}}}