Testattu Linux Mint 20.2 Cinnamon:lla ja Lenovo Legion Y540:llä. Notifikaatiot toimivat vain yhdelle järjestelmän käyttäjälle.
1. Testataan ensin toimiiko koneella
Kernel moduuli "ideapad_laptop" pitäisi olla ladattuna, tarkasta onko:
lsmod | grep ideapad_laptop
Etsitään oikea hakemistopolku koneelle:
ls /sys/bus/platform/drivers/ideapad_acpi
Etsi kansiota joka on nimetty kuin, tai on "VPC2004:00". Jos kansio on joku muu kuin edellä mainittu, muista vaihtaa jatkossa tämän ohjeen komentoihin/skripteihin oikea hakemistopolku.
Käytä seuraavia komentoja kun testaat vaikuttaako moden vaihtaminen akun lataukseen.
Lue akun conservation moden tila:
cat "/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode"
Laita conservation mode päälle:
echo 1 | sudo tee "/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode"
Laita conservation mode pois päältä:
echo 0 | sudo tee "/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode"
2. Luodaan skripti
Luodaan uusi piilotettu ".bin" kansio (jos sitä ei vielä ole) kotihakemistoon skripti-tiedostoja varten. Voit vaihtaa hakemiston mutta muista vaihtaa jatkossa tämän ohjeen komentoihin/skripteihin oikea hakemistopolku.
[[ ! -d "$HOME/.bin" ]] && mkdir "$HOME/.bin"
Luodaan uusi skripti-tiedosto hakemistoon:
touch "$HOME/.bin/battery_conservation_mode.bash"
Rajoitetaan tiedoston käyttöoikeuksia ja annetaan tiedostolle ajo-oikeudet:
chmod 0700 "$HOME/.bin/battery_conservation_mode.bash"
Avataan tiedosto nano-editoriin:
nano "$HOME/.bin/battery_conservation_mode.bash"
Lisätään seuraavat rivit tiedostoon (HUOM! Vaihda alussa oleviin muuttujiin oikeat arvot! USERID on järjestelmän ainoana/ensimmäisenä käyttäjänä yleensä 1000, voit tarkistaa komennolla
id -u
, USERNAME on käyttäjätilisi nimi, lisäksi tarkista, että hakemistopolku on oikein str_CONSERVATIONMODEFILE muuttujalle):
Koodi:
#!/bin/bash
str_USERID=1000
str_USERNAME=username
str_CONSERVATIONMODEFILE="/sys/bus/platform/drivers/ideapad_acpi/VPC2004:00/conservation_mode"
func_NOTIFY()
{
sudo -u "$str_USERNAME" DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/"$str_USERID"/bus notify-send "$@"
}
# Check that the file exists and is readable & writable.
if [[ ! -r "$str_CONSERVATIONMODEFILE" || ! -w "$str_CONSERVATIONMODEFILE" ]]
then
func_NOTIFY --urgency=critical "ERROR!" "Can't read/write the Battery Conservation Mode value!"
exit
fi
# Toggle Battery Conservation Mode ON/OFF, or just force ON.
if [[ "$( cat "$str_CONSERVATIONMODEFILE" )" == "0" || "$1" == "turn_on" ]]
then
echo 1 > "$str_CONSERVATIONMODEFILE"
func_NOTIFY --icon=battery-good "Battery Conservation Mode"
else
echo 0 > "$str_CONSERVATIONMODEFILE"
func_NOTIFY --icon=battery-full-charging "Battery Charging"
fi
Voit edellisestä muuttaa halutessasi notifikaatioiden viestit toisen kielisiksi.
3. Annetaan lupa ajaa skriptiä korotetuilla oikeuksilla ilman salasanaa
Luodaan uusi tiedosto lupaa varten:
sudo touch "/etc/sudoers.d/battery_conservation_mode"
Rajoitetaan tiedoston käyttöoikeuksia:
sudo chmod 0440 "/etc/sudoers.d/battery_conservation_mode"
Avataan tiedosto visudo:lla (käytä aina visudo:a kun editoit sudoers-tiedostoja!):
sudo visudo -f "/etc/sudoers.d/battery_conservation_mode"
Lisää seuraava teksti tiedostoon (HUOM! Muuta
molemmat "username" tekstit käyttäjätilisi nimeksi, ja vaihda ".bin" jos käytät eri hakemistoa missä skripti-tiedosto sijaitsee!):
username ALL=(ALL:ALL) NOPASSWD: /home/username/.bin/battery_conservation_mode.bash
Tallenna tiedosto
CTRL+S
, ja poistu editorista
CTRL+X
.
4. Conservation mode automaattisesti päälle
4.1. Bootin/kirjautumisen jälkeen
Avaa "Käynnistettävät sovellukset" ("Startup Applications") ohjelma ja lisää uusi "Oma komento" (HUOM! Muuta "username" komennon hakemistopolussa käyttäjätilisi nimeksi, ja vaihda ".bin" jos käytät eri hakemistoa missä skripti-tiedosto sijaitsee!):
Nimi:
Battery Conservation Mode
tai mitä ikinä haluatkaan..
Komento:
sudo "/home/username/.bin/battery_conservation_mode.bash" turn_on
Kommentti:
Aseta Lenovo Battery Conservation Mode päälle
Käynnistyksen viive:
10
4.2. Lepotilasta (Hibernation) paluun jälkeen
Luodaan uusi skripti-tiedosto:
sudo touch "/lib/systemd/system-sleep/battery_conservation_mode"
Rajoitetaan tiedoston käyttöoikeuksia ja annetaan tiedostolle ajo-oikeudet:
sudo chmod 0700 "/lib/systemd/system-sleep/battery_conservation_mode"
Avataan tiedosto nano-editoriin:
sudo nano "/lib/systemd/system-sleep/battery_conservation_mode"
Lisätään seuraavat rivit tiedostoon (HUOM! Muuta "username" hakemistopolussa käyttäjätilisi nimeksi, ja vaihda ".bin" jos käytät eri hakemistoa missä skripti-tiedosto sijaitsee!):
Koodi:
#!/bin/bash
if [[ "$1" == "post" && "$2" == "hibernate" ]]
then
sleep 10
"/home/username/.bin/battery_conservation_mode.bash" turn_on
fi
5. Luodaan käynnistin (launcher) työpöydälle
Klikkaa hiiren oikealla näppäimellä työpöytää ja valitse "Luo uusi käynnistin".
Lisää seuraavat tiedot käynnistimelle (HUOM! Muuta "username" hakemistopolussa käyttäjätilisi nimeksi, ja vaihda ".bin" jos käytät eri hakemistoa missä skripti-tiedosto sijaitsee!):
Nimi =
Akunsäästötilan vaihto
tai mitä ikinä haluatkaan..
Komento =
sudo "/home/username/.bin/battery_conservation_mode.bash"
Muuta ikonia painamalla raketin kuvaa. Esim. etsi "battery-good-charging" (ilman lainausmerkkejä).