# Activating Numlock on Bootup

## Console

### Using a separate service

- Install the package systemd-numlockonttyAUR from the AUR.
  Then enable the `numLockOnTty` service.

- Alternatively, if you do not want to install an aur package to implement this, you can simply create a service file in `/etc/systemd/system` like:

      [Unit]
      Description=Switch on numlock from tty1 to tty6

      [Service]
      ExecStart=/bin/bash -c 'for tty in /dev/tty{1..6};do /usr/bin/setleds -D +num < \"$tty\";done'

      [Install]
      WantedBy=multi-user.target

  Note: The filename should have a `.service` suffix, e.g. `numlock1to6.service`.
  Do not forget to enable the service after you create it.

### Extending getty@.service

This is simpler than using a separate service (especially since systemd-198) and does not hardcode the number of VTs in a script. Create a directory for drop-in configuration files:

    # mkdir /etc/systemd/system/getty@.service.d

Now add the following file in this directory.

    activate-numlock.conf

    [Service]
    ExecStartPre=/bin/sh -c 'setleds +num < /dev/%I'

To disable the num-lock activation hint displaying on the login screen, edit /etc/systemd/system/getty.target.wants/getty@tty1.service. Add the option '--nohints' to the following line:

    getty@tty1.service

    ExecStart=-/sbin/agetty ....

### Bash alternative

Add `setleds -D +num` to `~/.bash_profile`. Note that, unlike the other methods, this will not take effect until after you log in.

## X.org

Various methods are available.

### startx

Install the numlockx package and add it to the `~/.xinitrc` file before `exec`:

    #!/bin/sh
    #
    # ~/.xinitrc
    #
    # Executed by startx (run your window manager from here)
    #

    numlockx &

    exec window_manager

### KDM

If you use KDM as a login manager, add:

    numlockx on

to the `/usr/share/config/kdm/Xsetup`, or the `/opt/kde/share/config/kdm/Xsetup` for KDM3.

Note that this file will be overwritten on update without creating a `.pacnew` file. To prevent this, add the following line to `/etc/pacman.conf` file (omit the leading slash in the path):

    NoUpgrade = usr/share/config/kdm/Xsetup

### KDE Plasma Users

Go to System Settings, under the Hardware/Input Devices/Keyboard item you will find an option to select the behavior of NumLock.

#### Alternate Method

Alternatively, add the script the `~/.kde4/Autostart/numlockx.sh` containing:

    #!/bin/sh
    numlockx on

And make it executable:

    $ chmod +x ~/.kde4/Autostart/numlockx.sh

#### Alternate Method 2

This method enables num lock in KDM login screen (e.g. numeric password)

1) Disable "Themed Greeter" in System Settings -> Login Screen

2) in file /usr/share/config/kdm/kdmrc find section

     [X-*-Greeter]

Right after that line, add this:

     NumLock=On

### GDM

First make sure that you have numlockx (from extra) installed then add the following code to `/etc/gdm/Init/Default`:

    if [ -x /usr/bin/numlockx ]; then
          /usr/bin/numlockx on
    fi

### GNOME

When not using the GDM login manager, numlockx can be added to GNOME's start-up applications.

Install numlockx from the official repositories. Then, add a start-up command to launch `numlockx`.

    $ gnome-session-properties

The above command opens the Startup Applications Preferences applet. Click Add and enter the following:

Name: | Numlockx
Command: | /usr/bin/numlockx on
Comment: | Turns on numlock.

Note: This is not a system-wide change, repeat these steps for each user wishing to activate NumLock after logging in.

### Xfce

In the file `~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboards.xml`, make sure the following values are set to true:

    <property name="Numlock" type="bool" value="true"/>
    <property name="RestoreNumlock" type="bool" value="true"/>

### SDDM

In the file `/etc/sddm.conf`, add the following line under the `[General]` section:

    [General]
    Numlock=on

### SLiM

In the file `/etc/slim.conf` find the line and uncomment it (remove the `#`):

    #numlock             on

### OpenBox

In the file `~/.config/openbox/autostart` add the line:

    numlockx &

And then save the file.

### LightDM

See LightDM#NumLock on by default.

### LXDM

In the file `/etc/lxdm/lxdm.conf` uncomment the line:

    #numlock=0

and change to:

    numlock=1

Categories:

- Boot process
- Keyboards