Developer Hub

Cara Fix Backlight Keyboard External yang Mati Pas Install Ulang Linux Wayland

Cara Fix Backlight Keyboard External yang Mati Pas Install Ulang Linux Wayland

Problem:
Habis install ulang Linux, backlight keyboard external tiba-tiba mati. Pencet ScrollLock atau CapsLock gak ngaruh. Di /sys/class/leds/ ada input5::scrolllock, tapi nilainya gak berubah pas pencet tombol.

Di kasus gue: pake Wayland, keyboard external CASUE USB, laptop Toshiba. Dulu pernah jalan pake script, tapi lupa cara pasangnya.

Kenapa Bisa Gitu?

Di Wayland, kernel gak update file /sys/class/leds/inputX::scrolllock/brightness pas kita pencet ScrollLock. Jadi trigger via evtest atau libinput kadang gagal kalau tombolnya gak kedetek di laptop.

Solusi yang work: Brute Force - Paksa Nyala Terus
Ini script yang dulu gue pake. Logikanya simpel: cek tiap 0.1 detik, kalau lampu mati langsung nyalain lagi. Gak peduli dipencet tombol apa.

1. Cek Dulu Nama LED Keyboard Kamu

Colok keyboard external, terus jalanin:

ls /sys/class/leds/

Cari yang ada scrolllock. Contoh punya gue: input5::scrolllock. Dulu pas install lama namanya input19::scrolllock. Nomor ini bisa berubah tiap install ulang atau ganti port USB.

Test manual dulu:

sudo bash -c 'echo 1 > /sys/class/leds/input5::scrolllock/brightness'  # harusnya nyala
sudo bash -c 'echo 0 > /sys/class/leds/input5::scrolllock/brightness'  # mati

Kalau udah bisa nyala-mati manual, lanjut.

2. Script Force Backlight Always On

Bikin file force_led.sh:

#!/bin/bash
# Paksa LED input5 nyala terus tiap 0.1 detik
# Ganti input5 sesuai hasil ls /sys/class/leds/ kamu

while true; do
    if [ $(cat /sys/class/leds/input5::scrolllock/brightness) -eq 0 ]; then
        echo 1 > /sys/class/leds/input5::scrolllock/brightness
    fi
    sleep 0.1
done

Kasih permission + tes jalan:

chmod +x force_led.sh
sudo./force_led.sh
Backlight harusnya langsung nyala dan gak mati-mati lagi walau pencet ScrollLock.

3. Biar Jalan Otomatis Pas Boot

Biar gak perlu jalanin manual tiap nyalain laptop, bikin systemd service.

Pindahin script:

sudo mv force_led.sh /usr/local/bin/

Bikin service file:

sudo nano /etc/systemd/system/force-keyboard-led.service

Isi dengan ini:

[Unit]
Description=Force External Keyboard Backlight Always On
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/local/bin/force_led.sh
Restart=always
RestartSec=1

[Install]
WantedBy=multi-user.target

Aktifkan servicenya:

sudo systemctl daemon-reload
sudo systemctl enable --now force-keyboard-led.service

Cek status, harusnya active (running):

sudo systemctl status force-keyboard-led.service

4. Tips Kalau Nomor Input Sering Ganti

Kalau kamu sering cabut-colok keyboard atau ganti port USB, nomor input5 bisa berubah jadi input8, input12, dll. Biar gak edit script terus, pake versi ini yang nyalain semua LED scrolllock:

#!/bin/bash
while true; do
    for LED in /sys/class/leds/input*::scrolllock; do
        [ -f "$LED/brightness" ] && [ $(cat "$LED/brightness") -eq 0 ] && echo 1 > "$LED/brightness"
    done
    sleep 0.1
done

5. Perintah Penting Lainnya

Matiin service sementara:

sudo systemctl stop force-keyboard-led.service

Nonaktifin total:

sudo systemctl disable force-keyboard-led.service

Debug kalau tiba-tiba mati lagi:

  1. Cek lagi nama LED: ls /sys/class/leds/
  2. Update input5 di script sesuai yang baru
  3. Restart service: sudo systemctl restart force-keyboard-led.service

Alternatif: Toggle Pake Tombol Fisik

Kalau gak mau "paksa nyala terus" dan pengen bisa toggle pake tombol, bisa pake libinput. Tapi ini butuh tombol ScrollLock di keyboard kamu kedetek sistem. Di kasus gue, laptop gak punya tombol ScrollLock, jadi metode brute force di atas paling aman.

Script libinput buat yang mau coba:

#!/bin/bash
LED="/sys/class/leds/input5::scrolllock"
STATUS=0

sudo stdbuf -oL libinput debug-events | while read line; do
    if echo "$line" | grep -q "KEY_SCROLLLOCK" && echo "$line" | grep -q "pressed"; then
        STATUS=$((1-STATUS))
        echo $STATUS > "$LED/brightness"
    fi
done

Penutup

Jadi intinya, kalau habis install ulang dan backlight external mati:

  1. Cek ls /sys/class/leds/ cari nama input yang bener
  2. Pake script force_led.sh di atas
  3. Bikin systemd service biar auto-jalan

Udah, kelar. Semoga besok install ulang gak pusing lagi.

Tested on: Fedora 40 + Wayland + GNOME. Harusnya work juga di Ubuntu, Arch, dll.

linux wayland keyboard backlight systemd bash script scrolllock sysfs external keyboard
Developer
Roffi
Tutorial Linux & tempat download Aplikasi Android open-source premium. Deployed via Nero Engine.

User Reviews & Discussion

Tidak ada komentar:

Posting Komentar