Unl0kr

Unl0kr is an experimental disk unlocker UI aiming to eventually replace Osk-sdl. It is written in C using LVGL and runs on the Linux framebuffer without hardware acceleration.

By itself unl0kr doesn't actually perform any unlocking. Instead it uses the so called "keyscript mode" in which the entered password is piped through STDOUT into the actual unlocking program. The unl0kr package in pmOS's aports implements the latter as a shell script.

Installation
The unl0kr package is part of pmOS's aports directory. When installing pmOS, you can select unl0kr over osk-sdl via

Alternatively, you may also install unl0kr into a running system with apk. Installing the package automatically triggers regeneration of the initramfs.

Running outside the initramfs
For testing purposes, you can run unl0kr outside the boot process. Simply switch to a TTY (e.g. with chvt) and run

As mentioned above, unl0kr only prints the entered password to STDOUT so this won't actually do anything to your disks.

Configuration
Unl0kr's configuration file resides in /etc/unl0kr.conf. There is currently no documentation for the existing options but you may refer to the example config for inspiration.

Among others, a number of built-in UI themes can be selected through the config file. For screenshots of the currently available themes see here.

To verify the effect of changing config options, you can run unl0kr manually from a TTY as described in the "Running outside the initramfs" section. To actually apply the changes during boot, you need to regenerate the initramfs.

Troubleshooting
The initramfs environment in which unl0kr runs during boot is notably different from your normal system environment. Therefore, the first step in verifying whether unl0kr works on your system is to run it outside the initramfs as described in the "Running outside the initramfs" section. If it doesn't work there, it won't work during boot either.

If you've verified that unl0kr runs outside the initramfs but it still fails during boot, you can use the debug-shell to debug the initramfs environment.

Input devices are not working
The debug-shell ships with several tools you may use for debugging input devices. Unl0kr uses libinput which relies on udev and wraps around the input device handling provided by evdev / the kernel.

As a first step, you can use evtest to list and test the input devices made available by the kernel. If your devices don't show up here, your kernel likely isn't configured correctly.

Afterwards, to verify that the devices have been set up correctly for use with libinput, you can use the eponymous program.

If your devices don't show up here, you might be missing udev rules to make them work correctly.

Reporting issues
Issues with unl0kr should be reported on the project's GitLab issues page.

There is currently no dedicated Matrix room but if needed you may contact @h3nn3s:matrix.org directly.