I’ve been using i3 for a while now, but the xfce power manager doesn’t work outside the desktop environment, is there any alternative you can recommend? It doesn’t matter if it is a terminal based or graphical interface program, I just need something that can suspend the computer after a certain time or lock it when the laptop is closed
Sometimes I forget to connect the charger to the laptop, and it discharges without realizing it. When I used xfce power manager, it warned me when the charger was disconnected, can tlp or acpitool send those types of notifications?
What are the differences between tlp and acpitool?
In a nutshell TLP’s default settings are optimized for battery life upon installation, allowing you to further tweak/adjust to your needs. Whereas acpitool analyzes, but doesn’t optimize without your input.
As for notifications, I don’t believe either package provides them, especially since they’re both cli tools (TLP has a gui, TLPUI)
As for notifications, a bash script similar to this would work:
ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1) if [ "$ac_adapter" = "on" ]; then notify-send "AC Adapter" "The AC Adapter is on." else notify-send "AC Adapter" "The AC Adapter is off." fi
Also adding auto-cpufreq, ryzenadj, tuned.
But this depends on your CPU used.
TLP is good, tuned may be better?
TLP has a common USB lost issue, that is mitigated by disabling USB-autosuspend in the config. TLP config is found here
And if you need a tool for warning about AC disconnect, you can use a systemd service.
cat > /usr/local/bin/check_ac.sh <<EOF #!/bin/bash while true; do if [[ "$(cat /sys/class/power_supply/AC/online)" -eq 0 ]]; then notify-send -t 20 -a "Power" "AC Disconnected" fi sleep 20 done EOF
chmod +x /usr/local/bin/check_ac.sh
cat > /etc/systemd/user/ac-warning.service <<EOF [Unit] Description=Monitor AC State and Notify [Service] ExecStart=/usr/local/bin/check_ac.sh Restart=always [Install] WantedBy=graphical.target EOF
systemctl --user daemon-reload systemctl --user enable --now ac-warning.service
I use tlp.
I also have a battery info using i3status in the status bar, and a script I named
battery-check
, which warns me via a dunst popup and a beep when the battery gets low:#!/bin/sh set -eu bat=/sys/class/power_supply/BAT0 if [ ! -d "$bat" ]; then exit 1; fi status=$(cat "$bat/status") energy_now=$(cat "$bat/energy_now") energy_full=$(cat "$bat/energy_full") battery_percent=$(( ${energy_now}00 / ${energy_full} )) if [ "$status" != "Charging" -a "$battery_percent" -le 15 ]; then dunstify -t 8000 -u critical "Battery at ${battery_percent}%" play -q -n -c1 synth 2 sine 600 fi
I run this from my
~/.config/sway/config
like so:exec sh -c 'while true; do sleep 180; battery-check || break; done'
use power-profiles-daemon