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 93 94 95 96 97 98 99 100 101 102 103 104
|
# bash completion for TLP
# Copyright (c) 2025 Thomas Koch <linrunner at gmx.net> and others.
# SPDX-License-Identifier: GPL-2.0-or-later
_batteries() {
# show list of batteries
local bats b
bats=$( {
for b in /sys/class/power_supply/*; do
if echo "$b" | grep -E -v -q "hid" \
&& [ "$(cat $b/present 2> /dev/null)" = "1" ] \
&& [ "$(cat $b/type)" = "Battery" ]; then
echo "${b##/*/} "
fi
done } )
if [ -n "$bats" ]; then
COMPREPLY=( $(compgen -W "${bats}" -- ${cur}) )
fi
}
_target_level() {
local threshf
threshf="/sys/class/power_supply/${COMP_WORDS[2]}/charge_control_end_threshold"
if [ -f "$threshf" ]; then
COMPREPLY=( $(compgen -W "$(cat "$threshf")" -- ${cur}) )
fi
}
_tlp() {
local cur prev words cword opts bats
_init_completion || return
opts="start ac bat usb bayoff discharge setcharge fullcharge chargeonce recalibrate diskid --version"
case $cword in
1)
# subcmds only
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
;;
2)
case "${prev}" in
fullcharge|chargeonce|recalibrate)
_batteries
return 0
;;
discharge)
_batteries
return 0
;;
esac
;;
3)
if [ "${COMP_WORDS[1]}" = "discharge" ]; then
_target_level
return 0
fi
;;
4)
if [ "${COMP_WORDS[1]}" = "setcharge" ]; then
_batteries
return 0
fi
;;
esac
} &&
complete -F _tlp tlp
_tlp_rf() {
local cur prev words cword opts
_init_completion || return
opts="on off toggle --version"
if [ $cword -eq 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
} &&
complete -F _tlp_rf bluetooth nfc wwan wifi
_tlp_stat() {
local cur prev words cword opts
_init_completion || return
opts="--battery --cdiff --config --disk --graphics --mode --pcie --pev
--processor --psup --quiet --rfkill --system --temp --trace --udev
--usb --verbose --warn"
if [ $cword -eq 1 ]; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
} &&
complete -F _tlp_stat tlp-stat
complete -F _command run-on-ac run-on-bat
|