Na minha máquina, o estado atual da bateria pode ser lido em / proc / acpi / battery / BAT1 / state
Exemplo de conteúdo deste arquivo:
present: yes
capacity state: ok
charging state: charging
present rate: 749 mA
remaining capacity: 530 mAh
present voltage: 11200 mV
Você pode localizar o arquivo apropriado em sua máquina e usá-lo para suspender quando a bateria estiver em estado criticamente baixo. O seguinte script python fará isso por você:
#!/usr/bin/python
import os
import time
battery_state_file = "/proc/acpi/battery/BAT1/state"
critically_low_power = 500
suspend_command = "sudo pm-suspend"
while True:
time.sleep(1)
f = open(battery_state_file)
content = f.read().split('\n')
f.close()
if content[2].split()[2] == "discharging":
if int(content[4].split()[2]) < 500:
os.system(suspend_command)
Salve isso em um arquivo (digamos) suspendscript
, torne-o executável, adicione suspendscript &
a .xsessionrc em sua pasta pessoal, efetue logout e login novamente.
Você precisa definir battery_state_file e critically_low_power apropriadamente. Se a capacidade restante cair abaixo de 'critically_low_power' mAh, o sistema será suspenso. Opcional: Você pode, se desejar, usar "taxa atual" e "capacidade restante" para localizar "tempo restante esperado" (= "limite restante" / "taxa atual" horas) e suspender se o tempo restante ficar abaixo de um determinado limite .
Notas:
- Esse código precisará ser modificado se o conteúdo do arquivo de estado não estiver no mesmo formato do conteúdo de amostra fornecido acima.
-
sudo pm-suspend
exige que o sudoer forneça sua senha. Você tem que fazer pm-suspend
sudoable sem senha. Veja como: Como executo comandos sudo específicos sem uma senha? .
Alternativamente, você pode alterar o suspend_command para simplesmente pm-suspend
e adicionar sudo suspendscript &
para .xsessionrc e tornar suspendscript
sudoable sem senha.
- Se você usar esse script, precisará definir 'ação de energia criticamente baixa' para 'não fazer nada' nas configurações do gnome-power-manager.