Cara Membuat Laptop Linux Otomatis Hibernate di 15% dengan Notifikasi di 17%

Sebagai pengguna Linux dengan laptop yang bisa dibilang jadul, kadang saat sedang bekerja atau asik mengerjakan sesuatu dengan laptop ini, battery tiba tiba drop tanpa ada notifikasi dan langsung mati begitu saja, padahal battery laptop Asus K401UQK saya ini sudah saya ganti baru, entah karena kualitasnya yang jelek atau gimana, saya kurang paham.

Nah untuk mengakali hal tersebut, saya mengubah beberapa konfigurasi default seperti misalkan mengatur agar laptop tidak langsung mati di 2% (default) namun masuk ke hibernate di 15%, memberikan notifikasi otomatis di 17% dan menjadwalkan pengecekan battery setiap menit agar tidak kelewatan.

Hasilnya, laptop saya sekarang bisa dibilang lebih sopan dalam memberi waktu sebelum mati atau hibernate. Nah sebagai dokumentasi agar saya tidak lupa, sekaligus sharing untuk teman teman yang mungkin terkendala hal yang sama, berikut adalah langkah konfigurasinya.

Konfigurasi Yang Saya Terapkan

Level BateraiAksi
40%Notifikasi “Baterai Rendah” dari sistem
25%Notifikasi “Baterai Kritis” dari sistem
17%Notifikasi kustom: “Laptop akan hibernate di 15%”
15%Hibernate otomatis (data tersimpan ke disk)

TONTON JUGA:

Dengan konfigurasi ini, saya punya waktu yang cukup banyak untuk menyimpan pekerjaan dan mencari charger sebelum laptop ini “pingsan”.

Langkah Konfigurasi

Langkah 1. Pertama pastikan dulu bahwa laptop mendukung fitur hibernate dengan perintah :

cat /sys/power/state

Jika outputnya ada kata disk, misalkan freeze mem disk, maka laptop tersebut sudah mendukung.

Langkah 2. Cek ukuran SWAP, dan pastikan SWAP lebih besar dari RAM.

Langkah 3. Nah selanjutnya kita ubah konfigurasi baterai yang ada di /etc/UPower/UPower.conf.

Saya ubah nilainya menjadi :

PercentageLow=40
PercentageCritical=25
PercentageAction=15

Nah ini tentu bisa disesuaikan dengan kebutuhan kamu ya. Jadi jangan terlalu terpaku pada artikel ini.

Penjelasannya :

  • PercentageLow=40 > Notifikasi “Baterai Rendah” mulai di 40%
  • PercentageCritical=25 > Notifikasi “Baterai Kritis” mulai di 25%
  • PercentageAction=15 > Tindakan hibernate dilakukan di 15%

Langkah 4. Setelah itu silahkan restart service-nya.

sudo systemctl restart upower

Dan selesai, sampai sini, laptop akan memilki behavior sesuai yang kita tentukan barusan, notifikasi battery rendah akan ada di 40%, critical di 25% dan actions ke hibernate di 15%. Untuk sebagian orang sih ini terlalu brutal dan mungkin masih banyak waktu hingga battery mencapai 0%, tapi balik lagi, dalam kasus saya, ini batterynya yang kadang bermasalah, sehingga saya ingin notifikasi dan pencegahan lebih dimaksimalkan.

Buat Script Notifikasi Otomatis

Lanjut, karena sistem bawaan UPower hanya memberi notifikasi di 40% dan 25%, saya buat skrip sendiri untuk notifikasi di 17%.

Tujuannya, jadi pas di 17%, system akan memberitahu bahwa nanti ketika di 15%, laptop akan hibernate, jadi saya punya waktu untuk langsung lari dan ambil charger.

Langkah 1. Buat folder script (jika belum ada).

mkdir -p ~/.local/bin

Langkah 2. Buat file script

nano ~/.local/bin/battery-notify.sh

Kemudian isi script dengan :

#!/bin/bash

# LOG FILE
LOG="/tmp/battery-notify.log"

echo "$(date): Skrip dijalankan oleh cron" >> $LOG

# Ambil informasi baterai dari UPower
BATTERY=$(upower -e | grep -m1 battery)
LEVEL=$(upower -i "$BATTERY" | awk '/percentage:/ {print int($2)}')
STATE=$(upower -i "$BATTERY" | awk '/state:/ {print $2}')

echo "$(date): LEVEL=$LEVEL, STATE=$STATE" >> $LOG

# Level notifikasi
NOTIFY_LEVEL=17
ACTION_LEVEL=15

# Kirim notifikasi jika kondisi terpenuhi
if [ "$STATE" = "discharging" ] && [ "$LEVEL" -le "$NOTIFY_LEVEL" ] && [ "$LEVEL" -gt "$ACTION_LEVEL" ]; then
echo "$(date): NOTIFICATION SENT! Level $LEVEL%" >> $LOG
export DISPLAY=:0
export XDG_RUNTIME_DIR=/run/user/1000
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
/usr/bin/notify-send -u critical -a "Baterai" "⚠️ Peringatan Hibernate" "Baterai mencapai ${LEVEL}%. Laptop akan otomatis hibernate pada 15%."
else
echo "$(date): Kondisi tidak terpenuhi (STATE=$STATE, LEVEL=$LEVEL)" >> $LOG
fi

Jika sudah selesai, seperti biasa, pastikan izin eksekusi sudah diberikan dengan perintah chmod.

chmod +x ~/.local/bin/battery-notify.sh

Selesai, sekarang test dengan menjalankan perintah berikut dan harusnya linux akan memberikan notifikasi sesuai yang kita atur tadi.

~/.local/bin/battery-notify.sh

Langkah 3. Lanjut kita jadwalkan di cron agar script ini berjalan otomatis setiap menit.

crontab -e

Kemudian tambahkan ini (jika di elementary OS saya).

* * * * * export DISPLAY=:0 && export XDG_RUNTIME_DIR=/run/user/$(id -u) && export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus && /home/gylang/.local/bin/battery-notify.sh

Silahkan disesuaikan dengan kebutuhan kamu guys. Jika sudah, lanjut verifikasi dengan perintah :

crontab -l

Nah sudah ada kan, sekarang harusnya cron sudah berjalan.

Uji Coba

Nah sekarang saya sudah charge hingga 38 persen dan karena notifikasi battery lemah ada di 40%, maka notifikasi langsung muncul.

Mari kita tunggu hingga ke 25% dimana posisi tersebut adalah notifikasi battery critical.

Dan berikut jika battery sudah mencapai 17%

Nah mantap bukan, sekarang saya bisa bekerja dengan lebih tenang tanpa khawatir kehilangan data karena baterai habis. Cocok banget buat kamu yang masih setia pakai laptop jadul dengan baterai yang mulai rewel.

Apakah kamu punya tips lain atau mungkin ada langkah yang lebih baik? komen dibawah guys dan berikan pendapatmu


Catatan Penulis : WinPoin sepenuhnya bergantung pada iklan untuk tetap hidup dan menyajikan konten teknologi berkualitas secara gratis — jadi jika kamu menikmati artikel dan panduan di situs ini, mohon whitelist halaman ini di AdBlock kamu sebagai bentuk dukungan agar kami bisa terus berkembang dan berbagi insight untuk pengguna Indonesia. Kamu juga bisa mendukung kami secara langsung melalui dukungan di Saweria. Terima kasih.

Gylang Satria

Tech writer yang sehari‑hari berkutat dengan Windows 11, Linux Ubuntu, dan Samsung S24. Punya pertanyaan atau butuh diskusi? Tag @gylang_satria di Disqus. Untuk kolaborasi, email saja ke [email protected]

Post navigation