14

I am trying to toggle num-lock on my Raspberry Pi 2 running Raspbian jessie, I need it to run during the initial CLI boot up (before <hostname> login: or startx), I have tried numlockx and setleds but none work until logged in. I already have a script that runs during boot and was hoping to incorporate it into the existing script.

In case you were wondering it is so I can have num-lock for my password.

1

5 Answers 5

7

Yup. There's a way.

  1. Open up /etc/kbd/config with your favorite editor.

  2. Search for a line that says LEDS=+num. It should be on line 67 if I'm not mistaken.

  3. Uncomment it. I assume you know how to uncomment since I think you know scripting.

  4. Profit.

17
  • thanks I will try it now and get back to you in a few minutes Dec 6, 2015 at 12:09
  • 1
    It worked a charm! Now I just have to get used to not pressing numlock Dec 6, 2015 at 12:13
  • 1
    I have my comfy chair but I need the pi because I'm live testing Dec 6, 2015 at 14:49
  • 1
    imgur.com/W3kEJgr Dec 6, 2015 at 14:50
  • 2
    I don't have any file at /etc/kbd/config. I tried sudo touch /etc/kbd/config, but it complained that there was "No such file or directory". Nov 16, 2017 at 22:28
6

While this isn't directly answering the Raspbian Jessie question, for those other Googler's who run Raspbian Stretch, which doesn't have /etc/kbd/config, here's the solution:

  • Install numlockx: sudo apt-get install numlockx
  • Edit this file: sudo nano /usr/share/lightdm/lightdm.conf.d/01_debian.conf
  • At the end of that file, add this line: greeter-setup-script=/usr/bin/numlockx on
  • Save the file and reboot, and you NumLock key should still be on

Sources:

https://www.raspberrypi.org/forums/viewtopic.php?t=192383

which in turn cites:

https://unix.stackexchange.com/questions/375920/numlock-on-startup-on-linux-mint-18-2

2
  • Good to know there is a solution for X. But sadly that does not help in Raspbian Light. :(
    – kwasmich
    May 28, 2018 at 9:03
  • 1
    Note also this will not work, as per the question, "before <hostname> login: or startx". It will also not work at all unless you are using lightdm (the GUI login).
    – goldilocks
    May 28, 2018 at 12:25
2

/etc/kbd/config has been removed in Raspbian Stretch, but you can set the numlock state using /usr/bin/setleds instead.

For example, to enable numlock in all VTs:

#!/bin/bash
# Turn Numlock on for the TTYs:
for tty in /dev/tty[1-6]; do
    /usr/bin/setleds -D +num < "$tty";
done

You put this script in /usr/local/bin/numlock, and invoke it at boot time, for example using a systemd service (/etc/systemd/system/numlock.service):

[Unit]
Description=numlock

[Service]
ExecStart=/usr/bin/numlock
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Enable the service with systemctl enable numlock.service.

Source: http://forums.debian.net/viewtopic.php?t=134006#p650222

1
  • 1
    Note that this will only work for CLI. It does not work on Stretch on the UI boot.
    – aaronburro
    Mar 22, 2019 at 16:25
0

On Raspbian 10 (Buster), there's a slightly easier way. In a terminal:

sudo apt install numlockx

In the default text editor, vim.tiny, or nano save the following text into the file ~/.config/autostart/NumLock.desktop:

[Desktop Entry]
Type=Application
Name=Numlock on
Comment=Set numlock to on at logon
NoDisplay=true
Exec=numlockx on
NotShowIn=GNOME;KDE;XFCE;

That's it. This is based on how the system already configures keyboard and mouse settings.

-4

Command line:

sed -i 's/#LEDS=+num/LEDS=+num/' '/etc/kbd/config'
3
  • How exactly does this work? How would the OP get this to run before setting the hostname and before startx? Apr 20, 2016 at 22:28
  • You just run it once, it modifies the file forever. It is the programmatic equivalent to the manual steps up there. Apr 21, 2016 at 13:53
  • Most sysadmins like to know how the programs/scripts in their systems work. Serious ones audit everything that needs to run in a mission-critical environment. People also like to make sure that random scripts/commands they get online are not malicious. This is why we want to know what this does, not for us, but for the laypeople.
    – Aloha
    Nov 18, 2017 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.