Developer Hub

Cara Mengaktifkan Lampu Keyboard (Scroll Lock) Permanen di NixOS KDE Plasma Wayland

Mengaktifkan lampu LED indikator keyboard (seperti Scroll Lock) di Linux dengan lingkungan Wayland sering kali bikin pusing. Perintah lama seperti xset led tidak lagi berfungsi, dan tombol Caps Lock sering membuat LED mendadak mati kembali karena perilaku pengontrolan kernel.

Jika kamu menggunakan NixOS dengan KDE Plasma (Wayland), berikut panduan lengkap langkah demi langkah untuk membuat lampu keyboard menyala permanen dan bisa di-toggle menggunakan tombol shortcut!


Masalah Utama & Solusi

  • Wayland Tidak Mendukung xset: Kita menggunakan brightnessctl untuk mengakses jalur /sys/class/leds/.
  • Izin Akses Root: Kita menambahkan aturan udev di NixOS agar pengguna biasa bisa mengubah status LED tanpa sudo.
  • Lampu Mati Saat Press Caps Lock: Kernel Linux meng-overhaul status LED tiap ada tombol kunci lain yang ditekan. Solusinya adalah menjalankan skrip background daemon ringan yang secara instan menjaga status LED tetap 1 (ON) sampai kamu mematikannya secara manual.

Langkah 1: Konfigurasi configuration.nix

Buka file konfigurasi NixOS kamu:

sudo nano /etc/nixos/configuration.nix

Sesuaikan isi configuration.nix kamu dengan menambahkan brightnessctl serta aturan udev:

{ config, pkgs, ... }:

{
  # 1. Pastikan user kamu masuk ke grup wheel
  users.users."fi" = {
    isNormalUser = true;
    extraGroups = [ "networkmanager" "wheel" "adbusers" ];
  };

  # 2. Tambahkan aturan udev untuk izin akses LED Scroll Lock tanpa sudo
  services.udev.extraRules = ''
    ACTION=="add", SUBSYSTEM=="leds", KERNEL=="*scrolllock", RUN+="/bin/sh -c 'chgrp wheel /sys/class/leds/%k/brightness && chmod g+w /sys/class/leds/%k/brightness'"
  '';

  # 3. Tambahkan paket brightnessctl ke sistem
  environment.systemPackages = with pkgs; [
    brightnessctl
    # paket kamu lainnya...
  ];

  system.stateVersion = "26.05";
}

Setelah itu, simpan dan rebuild sistem NixOS kamu:

sudo nixos-rebuild switch

Langkah 2: Buat Skrip led.sh (Auto-Keep Daemon)

Buat file skrip baru, misalnya di folder ~/Destop/led.sh:

nano ~/Destop/led.sh

Isi dengan kode bash berikut:

#!/usr/bin/env bash

# File penanda status
LOCK_FILE="/tmp/keyboard_led_on"

if [ -f "$LOCK_FILE" ]; then
    # Jika lampu sedang menyala, matikan daemon background & LED
    pkill -f "keep_keyboard_led_on" 2>/dev/null
    rm -f "$LOCK_FILE"
    for dev in /sys/class/leds/*::scrolllock; do
        [ -e "$dev" ] && brightnessctl --device="$(basename "$dev")" set 0
    done
    echo "Lampu keyboard OFF"
else
    # Nyalakan LED & jalankan daemon background untuk menjaga LED tetap menyala
    touch "$LOCK_FILE"
    (
        exec -a "keep_keyboard_led_on" bash -c '
        while [ -f "/tmp/keyboard_led_on" ]; do
            for dev in /sys/class/leds/*::scrolllock; do
                [ -e "$dev" ] && brightnessctl --device="$(basename "$dev")" set 1 2>/dev/null
            done
            sleep 0.1
        done
        '
    ) &
    echo "Lampu keyboard ON"
fi

Beri izin eksekusi (executable) pada skrip tersebut:

chmod +x ~/Destop/led.sh

Langkah 3: Integrasi Pintasan Tombol di KDE Plasma

Agar kamu bisa menyalakan dan mematikan lampu keyboard dengan menekan tombol (misalnya Scroll Lock):

  1. Buka System Settings di KDE Plasma.
  2. Masuk ke menu Keyboard → Pintasan (Shortcuts).
  3. Klik tombol Tambahkan Baru → Command (Perintah).
  4. Masukkan perintah:
    /home/fi/Destop/led.sh
  5. Pada bagian Custom shortcuts, klik + Tambah... lalu tekan tombol pada keyboard yang ingin kamu jadikan pintasan (misal: tombol Scroll Lock atau Ctrl + Scroll Lock).
  6. Klik Terapkan (Apply) di pojok kanan bawah.

Kesimpulan

Sekarang kamu bisa menyalakan lampu indikator keyboard secara instan di NixOS KDE Plasma Wayland hanya dengan satu tombol pintasan. Lampu akan tetap terus menyala stabil tanpa terpengaruh saat kamu menekan tombol Caps Lock atau Num Lock!

Developer
Roffi
Tutorial Linux & tempat download Aplikasi Android open-source premium. Deployed via Nero Engine.

User Reviews & Discussion

Tidak ada komentar:

Posting Komentar