Cada vez que acendemos un equipo da aula con Debian e escritorio Plasma, o teclado numérico aparece apagado. O alumnado escribe o contrasinal cos números da dereita, non aparece nada e toca premer Bloq Num antes de volver tentalo. É un detalle pequeno, pero en vinte equipos e varias veces ao dÃa acaba sendo un fastÃo. Vexamos como deixalo activado por defecto, tanto na pantalla de inicio de sesión como dentro do escritorio.

Descarga os ficheiros
- activar-numlock.sh: script para executar nun só equipo.
- numlock-aula.yaml: playbook de Ansible para configurar toda a aula dunha vez.
Por que non abonda cunha soa opción
O NumLock hai que activalo en dous momentos diferentes:
- Na pantalla de inicio (SDDM), que é onde se escribe o contrasinal.
- Na sesión de Plasma, que ao arrincar pode volver deixar o teclado como estaba.
Ademais, Debian 13 inicia Plasma en Wayland por defecto, e alà a ferramenta clásica numlockx non funciona: só serve nas sesións X11. Por iso o script fai catro cousas, para que funcione en calquera caso.
Que fai o script
- Instala
numlockx, a pequena utilidade que acende o NumLock en X11. - Configura SDDM creando
/etc/sddm.conf.d/numlock.confcoa opciónNumlock=on. Asà o teclado numérico xa está acendido na pantalla de inicio. - Crea un inicio automático global en
/etc/xdg/autostart/numlockx.desktop, que executanumlockx onao entrar calquera usuario nunha sesión X11. - Fixa o valor por defecto de Plasma en
/etc/xdg/kcminputrcco valorNumLock=0na sección[Keyboard]. Plasma interpreta0como «activado ao iniciar» (1é desactivado e2deixa o estado como estea). Esta é a parte que funciona tamén en Wayland.
Como todo se garda en /etc, a configuración aplÃcase a todos os usuarios do equipo, tamén aos que se creen máis adiante.
O script
Descárgao desde a ligazón do principio (activar-numlock.sh) ou copia o seu contido nun ficheiro co mesmo nome:
#!/bin/bash
# Activa o NumLock por defecto (pantalla de inicio SDDM + sesión KDE/X11)
# Equivalente local do playbook de Ansible da aula.
# Uso: sudo bash activar-numlock.sh
set -e
if [ "$(id -u)" -ne 0 ]; then
echo "Este script debe executarse como root: sudo bash $0" >&2
exit 1
fi
echo "[1/4] Instalando numlockx..."
apt-get update -qq
apt-get install -y numlockx
echo "[2/4] Configurando SDDM (pantalla de inicio)..."
install -d -m 0755 /etc/sddm.conf.d
cat > /etc/sddm.conf.d/numlock.conf <<'EOF'
[General]
Numlock=on
EOF
chmod 0644 /etc/sddm.conf.d/numlock.conf
echo "[3/4] Creando autostart global (numlockx on ao iniciar sesión)..."
cat > /etc/xdg/autostart/numlockx.desktop <<'EOF'
[Desktop Entry]
Type=Application
Name=Activar NumLock Aula
Exec=numlockx on
Icon=keyboard
NoDisplay=true
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
EOF
chmod 0644 /etc/xdg/autostart/numlockx.desktop
echo "[4/4] Valor por defecto de KDE Plasma (tamén funciona en Wayland)..."
# NumLock=0 -> activado ao iniciar Plasma (1 = desactivado, 2 = sen cambios)
if [ -f /etc/xdg/kcminputrc ] && grep -q '^\[Keyboard\]' /etc/xdg/kcminputrc; then
sed -i '/^\[Keyboard\]/,/^\[/{/^NumLock=/d}' /etc/xdg/kcminputrc
sed -i '/^\[Keyboard\]/a NumLock=0' /etc/xdg/kcminputrc
else
printf '\n[Keyboard]\nNumLock=0\n' >> /etc/xdg/kcminputrc
fi
# Activalo xa na sesión actual, se hai unha sesión X aberta
if [ -n "$SUDO_USER" ] && [ -n "$DISPLAY" ]; then
sudo -u "$SUDO_USER" DISPLAY="$DISPLAY" numlockx on 2>/dev/null || true
fi
echo "Feito: NumLock configurado en $(hostname). Pecha sesión ou reinicia para comprobalo."
Como executalo
Abre un terminal (Konsole) e vai ao cartafol onde gardaches o ficheiro. Por exemplo, se o deixaches en Descargas:
cd ~/Descargas
Primeiro dálle permisos de execución, para que o sistema o trate como un programa e non como un simple ficheiro de texto:
chmod +x activar-numlock.sh
Podes comprobar que os ten con ls -l activar-numlock.sh: ao principio da liña debe aparecer unha x, por exemplo -rwxr-xr-x.
Agora execútao como administrador con sudo, porque modifica ficheiros do sistema en /etc e instala un paquete:
sudo ./activar-numlock.sh
O ./ do principio indica que o script está no cartafol actual. Pedirache o teu contrasinal e irá mostrando os pasos do 1 ao 4. Se o executas sen sudo, el mesmo avisa de que debe executarse como root e non fai nada.
Ao rematar, pecha a sesión ou reinicia o equipo. Na pantalla de inicio o teclado numérico xa deberÃa estar acendido, e seguirá asà ao entrar no escritorio.
Se un usuario segue co NumLock apagado
O ficheiro /etc/xdg/kcminputrc só marca o valor por defecto. Se algún usuario cambiou antes esta opción, a súa configuración persoal (~/.config/kcminputrc) ten prioridade. Nese caso abonda con ir a Configuración do sistema → Teclado e, en NumLock ao iniciar Plasma, escoller Activado. Tamén se pode borrar a liña NumLock= dese ficheiro persoal para que volva coller o valor do sistema.
E se tes moitos equipos? Con Ansible
Se xestionas a aula con Ansible, non fai falta ir equipo por equipo: o playbook numlock-aula.yaml aplica a configuración en todos dunha vez desde o equipo do profesorado.
---
- name: Configurar e activar NumLock permanente na aula
hosts: aula
remote_user: root
gather_facts: no # Non necesitamos recoller facts, asà vai máis rápido
tasks:
- name: Instalar numlockx para asegurar o control do teclado
apt:
name: numlockx
state: present
update_cache: yes
- name: Asegurar que o directorio de configuración de SDDM existe
file:
path: /etc/sddm.conf.d
state: directory
mode: '0755'
- name: Configurar SDDM para activar NumLock na pantalla de inicio
copy:
dest: /etc/sddm.conf.d/numlock.conf
content: |
[General]
Numlock=on
mode: '0644'
- name: Crear activación forzada no Autostart global do sistema
copy:
dest: /etc/xdg/autostart/numlockx.desktop
content: |
[Desktop Entry]
Type=Application
Name=Activar NumLock Aula
Exec=numlockx on
Icon=keyboard
NoDisplay=true
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
mode: '0644'
- name: Valor por defecto de KDE Plasma (NumLock activado, tamén en Wayland)
ini_file:
path: /etc/xdg/kcminputrc
section: Keyboard
option: NumLock
value: '0' # 0 = activado, 1 = desactivado, 2 = sen cambios
no_extra_spaces: yes
mode: '0644'
- name: Notificar fin do proceso
debug:
msg: "Configuración do NumLock aplicada e persistente en {{ inventory_hostname }}"
Para usalo necesitas un inventario cun grupo chamado aula e acceso por SSH como root aos equipos. Por exemplo, un ficheiro inventario:
[aula] pc01 pc02 pc03
E lánzase asà (o .yaml non precisa permisos de execución, porque o le Ansible):
ansible-playbook -i inventario numlock-aula.yaml
O playbook fai os mesmos catro pasos que o script, tamén o de /etc/xdg/kcminputrc, asà que funciona igual en sesións X11 e Wayland. Usa o módulo ini_file, que vén incluÃdo na instalación habitual de Ansible (paquete ansible de Debian).