In this tutorial, I will show you how to lock the keyboard and mouse, but not the screen in Linux using "xtrlock" utility. Xtrlock is a simple, yet useful utility to lock the X display till the user enters their password at the keyboard.
Table of Contents
Why lock the keyboard and mouse, but not the screen?
My 4-years-old niece is a curious-kid. She loves "Avatar" movie very much. Whenever the Avatar movie is playing, she became so focused and her eyes are glued to the screen. But the problem is she often touches a key in the keyboard or move the mouse or click the mouse button while watching the movie. Sometimes, she accidentally close or pause the movie by pressing a key in the keyboard. So I started looking for a way to lock down both the keyboard and mouse, but not the screen.
After a couple google searches, I came across this perfect solution in Ubuntu forum. If you don't want your cat walking on your keyboard or your kid messing up with the keyboard and mouse while you watching something important on the screen, I suggest you to try xtrlock utility to lock X display until password supplied, leaving windows visible.
Some of you might think - why not simply unplug the keyboard or mouse? True! If it is a desktop, you can temporarily remove the keyboard/mouse. But in Laptops, there is no way to do it.
Install xtrlock in Linuz
The xtrlock package is available in the default repositories of most Linux operating systems. So, you can install it using your distribution's package manager.
On Arch Linux and derivatives, run the following command to install it.
$ sudo pacman -S xtrlock
On Fedora:
$ sudo dnf install xtrlock
On RHEL, CentOS:
$ sudo yum install xtrlock
On SUSE/openSUSE:
$ sudo zypper install xtrlock
On Debian, Ubuntu, Linux Mint:
$ sudo apt-get install xtrlock
Create keyboard shortcut to lock the X display
Once xtrlock installed, create a keyboard shortcut. You need this to lock the keyboard and mouse using the key combination of your choice.
Create a new file called lockkbmouse
in /usr/local/bin
.
$ sudo vi /usr/local/bin/lockkbmouse
Add the following lines into it.
#!/usr/bin/env bash sleep 1 && xtrlock
Save the file and close the file.
Make it as executable using the following command:
$ sudo chmod a+x /usr/local/bin/lockkbmouse
Next, we need to create keyboard a shortcut to lock the kb/mouse.
In Ubuntu GNOME DE:
In Ubuntu 20.04 LTS desktop, ho to Settings -> Keyboard shortcuts. Click the + (plus) symbol at the end. On older Ubuntu versions like Ubuntu 18.04 LTS, desktop, go to System Settings -> Devices -> Keyboard.
Enter a name for your shortcut and add the following line in the command box, and click Set Shortcut button.
/usr/local/bin/lockkbmouse
You can also use this line in the command box as well.
bash -c "sleep 1 && xtrlock"
Next, you will see the following screen. Type the key combination of your choice to assign the shortcut key to the newly created shortcut. For example, I use Alt+k
.
To clear the key combination, press BACKSPACE key.
Now you will see that the selected shortcut key appears in the Shortcut box.
This is the key combination to lock the keyboard and mouse. Close this window.
The keyboard shortcut key for xtrclock has been created.
Once you finished, close the Keyboard Settings window.
In Arch Linux MATE desktop:
Go to System -> Preferences -> Hardware -> keyboard Shortcuts.
Click Add to create a new shortcut.
Enter the name for your shortcut and add the following line in the command box, and click Apply button.
bash -c "sleep 1 && xtrlock"
To assign the shortcut key, just select or double click on it and type the key combination of your choice. For example, I use Alt+k.
To clear the key combination, press BACKSPACE key. Once you finished, close the Keyboard Settings window.
Lock the Keyboard and Mouse, but not the Screen using xtrlock
From now on, whenever you press the keyboard shortcut key (ALT+k
in our case), the mouse pointer will turn into a padlock. Now, the keyboard and mouse have been locked, so you can freely watch the movies or whatever you want to. Even your kid or pet touches some keys on the keyboard or clicks a mouse button, they won't work.
Here is xtrlock in action.
Do you see the a small lock button? It means that the keyboard and mouse have been locked. Even if you move the lock button, nothing will happen. The task will keep running until you unlock your screen and manually close it.
Unlock keyboard and mouse
To unlock the keyboard and mouse, simply type your password and hit "Enter". You will not see the password as you type it. Just type the password anyway and hit ENTER key. The mouse and keyboard will start to work after you entered the correct password. If you entered an incorrect password, you will hear a bell sound. Press ESC key to clear the incorrect password and re-enter the correct password again. To remove one character of a partially typed password, press either BACKSPACE or DELETE keys.
What if I permanently get locked out of the screen?
The xtrlock tool may not work on some DEs, for example GDM. It may permanently lock you out of the screen. Please test it in a virtual machine and then try it in your personal or official desktop to verify if it really works. I tested this on Arch Linux MATE desktop and Ubuntu 20.04 and 18.04 GNOME desktop. It worked just fine.
Just in case, you are locked out of the screen permanently, switch to the TTY (CTRL+ALT+F2) then run:
$ sudo killall xtrlock
Alternatively, you can use the chvt command to switch between TTY and X session.
For example, to switch to TTY1, run:
$ sudo chvt 1
To switch back to the X session again, type:
$ sudo chvt 7
Different distros uses different key combinations to switch between TTYs. Please refer your distribution's official website for more details.
In case of GDM crash, even TTY is not accessible and the system hangs at reached graphical interface. In such cases, you might need to chroot into the system and uninstall xtrlock. You have been warned!
For more details about xtrlock, refer man pages.
$ man xtrlock
Resource:
15 comments
Thank you very much for this post SK. It is very useful.
Only one suggestion. I think it is not necesary to write the command again in the custom shortcut command box.
You have already created an executable file with the command inside, so if you select that file in the custom shortcut box (resulting in “/usr/local/bin/lockkbmouse”), it will work as well.
Thanks! On kde I just added a global shortcut (ctrl+win+L) and had it call xtrlock directly (no need for a script file or the sleep command). Works great.
I’m afraid screenshots show the name of the program as “xtrclock”, which is unfortunate.
Good catch. Thanks Jo. I fixed the screenshots now.
Thanks. Just what I needed
No mention of how to set the initial password, or how to change it?
Just type your system user password.
can i make this auto run after reboot?
You mean you want to lock keyboard & mouse on every reboot? Simply add this to your .bashrc file:
/usr/local/bin/lockkbmouse
But there is no point to automatically lock display. I won’t recommend doing it. You may permanently get locked out of the screen.
why not just remove the mouse and keyboard cables in THAT case?
Yes, that’s very easy solution. But, what would you do if it is a Laptop?
So, I was able to create the file using my command line. I’m using Linux Mint Mate 20, but once I copied and pasted the next step, the
“#!/usr/bin/env bash
sleep 1 && xtrlock”
command, I couldn’t figure out how to save it and close the file, so I wasn’t able to move onto the next step of the instructions. Help?
After typing the lines, press
ESC
key and type:wq
and hit ENTER key to save and quit the file.Is there any way in which i can only disable the keyboard and not the mouse?
I think so. Search about
"xinput"
utility on web. It is a CLI utility to configure and test X input devices. Please be careful while using this. You may not able to use your system after disabling the Keyboard.