# How to use fingerprint unlocking - How to set up Fprintd (English)

**URL:** https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901
**Category:** Guides
**Created:** [September 22, 2022, 2:11pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901 "2022-09-22T14:11:57Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![matheusalmeida.me](https://discourse.nixosstag.fcio.net/letter_avatar_proxy/v4/letter/m/dec6dc/32.png) [@matheusalmeida.me](https://discourse.nixosstag.fcio.net/u/matheusalmeida.me)
#### Post date: [September 22, 2022, 2:11pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/1 "2022-09-22T14:11:57Z")

</div>

Hello, Recently I went into the “world” NixOS, and at first I had difficulties to be able to use screen unlock ing with the fingerprint sensor of my notebook, after much difficulty and the union of several solutions, I came to the following result that I come to share with you.

At first we need to install the **fprintd** package as follows;

**Nix-env:**

**On NixOS:**

`nix-env -iA nixos.fprintd`

**On Non NixOS:**

`nix-env -iA nixpkgs.fprintd`

**NixOS Configuration:**

```auto
environment.systemPackages = [

pkgs.fprintd

];

```

**With this we must configure the following lines in NixOS Configuration;**

```auto
services.fprintd.enable = true;

services.fprintd.tod.enable = true;

services.fprintd.tod.driver = pkgs.libfprint-2-tod1-vfs0090; (If the vfs0090 Driver does not work, use the following driver)

services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix; (On my device it only worked with this driver)

```

**Finally, we must rotate one:**

`sudo nixos-rebuild switch`

When you restart the system, the fingerprint option will appear in the user password menu, so it can be configured.

---

<div class="post-metadata">

### Author: ![tejing](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/tejing/32/4566_2.png) [@tejing](https://discourse.nixosstag.fcio.net/u/tejing)
#### Post date: [September 22, 2022, 4:43pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/2 "2022-09-22T16:43:38Z")

</div>

I strongly suspect there’s no point in installing `fprintd` with `nix-env`, as all that really does is get the command into `PATH`, which doesn’t actually help with unlocking your screen.

Furthermore, the NixOS module for it automatically adds it to `environment.systemPackages`, so there’s no need to do that either.

Also, the text in parentheses in the quoted configuration snippet would cause parse errors if pasted directly. It seems like you meant only one of the `tod.driver` lines to be included, but didn’t translate the text describing the conditions.

The directions can be boiled down to something like this:

Add this to your `configuration.nix` if (whatever that means in the first parentheses)

```auto
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-vfs0090;

```

Add this to your `configuration.nix` if (whatever that means in the second parentheses)

```auto
services.fprintd.enable = true;
services.fprintd.tod.enable = true;
services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;

```

(To be clear, I still don’t know if these directions actually work, as I haven’t tested them and don’t have the hardware to do so.)

---

<div class="post-metadata">

### Author: ![matheusalmeida.me](https://discourse.nixosstag.fcio.net/letter_avatar_proxy/v4/letter/m/dec6dc/32.png) [@matheusalmeida.me](https://discourse.nixosstag.fcio.net/u/matheusalmeida.me)
#### Post date: [September 22, 2022, 6:48pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/3 "2022-09-22T18:48:07Z")

</div>

Thanks for the considerations, I performed the translation of the parentheses, I’m new with the nixOS distribution, I hope my post helps others who can test.

---

<div class="post-metadata">

### Author: ![StefanSchroeder](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/stefanschroeder/32/7980_2.png) [@StefanSchroeder](https://discourse.nixosstag.fcio.net/u/StefanSchroeder)
#### Post date: [December 7, 2022, 10:25pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/4 "2022-12-07T22:25:09Z")

</div>

How do I configure the fingerprint reader exactly.  
You were mentioning the user password menu. Where is that?  
(I am using lightdm + xfce.)

---

<div class="post-metadata">

### Author: ![haizaar](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/haizaar/32/9841_2.png) [@haizaar](https://discourse.nixosstag.fcio.net/u/haizaar)
#### Post date: [June 26, 2023, 12:38pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/5 "2023-06-26T12:38:45Z")

</div>

I just used `fprintd-enroll` to setup my fingerprints if that’s what you are after.

---

<div class="post-metadata">

### Author: ![tscolari](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/tscolari/32/12347_2.png) [@tscolari](https://discourse.nixosstag.fcio.net/u/tscolari)
#### Post date: [September 5, 2023, 8:49am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/6 "2023-09-05T08:49:42Z")

</div>

I had such a bad experience with the fingerprint setup that I disabled it after a couple days.  
It works, it uses the fingerprint and unlocks the screen, or even sudo in the terminal, which is super convinient.  
The problem is when your laptop is closed and you’re using a screen. It literally didn’t allow me to type the password in the gdm/login screen. In the terminal is a bit inconvinent, you need to crlt+c the fingerprint prompt, but at least then you have an option.

Maybe I was unlucky, but it wasn’t for me!

---

<div class="post-metadata">

### Author: ![LSleutsky](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/lsleutsky/32/10822_2.png) [@LSleutsky](https://discourse.nixosstag.fcio.net/u/LSleutsky)
#### Post date: [September 22, 2023, 2:35pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/7 "2023-09-22T14:35:09Z")

</div>

@tscolari – How exactly did you get the actual fingerprint reader to unlock the screen, work with sudo, etc. I followed these steps, and any other references I can find, and I can only enroll fingers using `sudo`, which defeats the purpose, and every other time I get errors about either no devices found, or not authorized to enroll fingerprints. Pullin my hair out over here…!

---

<div class="post-metadata">

### Author: ![Freed-Wu](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/freed-wu/32/8405_2.png) [@Freed-Wu](https://discourse.nixosstag.fcio.net/u/Freed-Wu)
#### Post date: [October 9, 2023, 5:24pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/8 "2023-10-09T17:24:01Z")

</div>

Because:

```sh
$ sudo lsusb -v|rg Fingerprint
969:Bus 003 Device 002: ID 27c6:5125 Shenzhen Goodix Technology Co.,Ltd. Goodix Fingerprint Device
982: iProduct 2 Goodix Fingerprint Device

```

So I

```nix
  services.fprintd.enable = true;
  services.fprintd.tod.enable = true;
  services.fprintd.tod.driver = pkgs.libfprint-2-tod1-goodix;

```

However, it cannot work.

```sh
$ fprintd-enroll wzy
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

```

---

<div class="post-metadata">

### Author: ![tscolari](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/tscolari/32/12347_2.png) [@tscolari](https://discourse.nixosstag.fcio.net/u/tscolari)
#### Post date: [November 4, 2023, 12:04pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/9 "2023-11-04T12:04:36Z")

</div>

> [@LSleutsky](#):
>
> e I get errors about eithe

Hey sorry, I didn’t see your reply before!  
I literally [followed the steps above](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/2), on my dell laptop I had to use one driver, on lenovo the other one - but if you can enroll fingerprints I think you got the correct one already.  
Everything else just worked out of the box from that point. I’m using gnome.  
Some people pointed out that it needs to be enabled in the gnome / profile GUI configuration, but I had no such option there.

---

<div class="post-metadata">

### Author: ![mIX](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/mix/32/12317_2.png) [@mIX](https://discourse.nixosstag.fcio.net/u/mIX)
#### Post date: [December 22, 2023, 11:48pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/10 "2023-12-22T23:48:43Z")

</div>

> [@tscolari](#):
>
> Some people pointed out that it needs to be enabled in the gnome / profile GUI configuration, but I had no such option there.

I’m on a surface laptop and not able to get this working.

I’m not seeing any interface settings and when I try to manually enroll I got the same error as Freed-Wu.

```auto
Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available

```

Do I need a different driver? I tried both of the ones listed above.

---

<div class="post-metadata">

### Author: ![bowmanjd](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/bowmanjd/32/11323_2.png) [@bowmanjd](https://discourse.nixosstag.fcio.net/u/bowmanjd)
#### Post date: [December 23, 2023, 11:28am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/11 "2023-12-23T11:28:48Z")

</div>

Have you tried `sudo fprintd-enroll`?

It has been a bit since I enrolled mine, but I do recall one step the surprised me by requiring elevated permissions. I think it was the enroll step.

---

<div class="post-metadata">

### Author: ![mIX](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/mix/32/12317_2.png) [@mIX](https://discourse.nixosstag.fcio.net/u/mIX)
#### Post date: [December 23, 2023, 6:37pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/12 "2023-12-23T18:37:09Z")

</div>

Unfortunately, no luck with that. Still gave the same error, which points to a driver issue.

I have a Microsoft Surface Laptop Go 2 w/ fingerprint scanner of course. 😉

---

<div class="post-metadata">

### Author: ![tscolari](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/tscolari/32/12347_2.png) [@tscolari](https://discourse.nixosstag.fcio.net/u/tscolari)
#### Post date: [December 24, 2023, 7:59am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/13 "2023-12-24T07:59:17Z")

</div>

Is maybe the surface finger print hardware not supported for Linux in general?  
Looks like you might need some custom kernel according to Reddit [https://www.reddit.com/r/SurfaceLinux/comments/rkfctj/surface\_laptop\_go\_fingerprint\_support/](https://www.reddit.com/r/SurfaceLinux/comments/rkfctj/surface_laptop_go_fingerprint_support/)

---

<div class="post-metadata">

### Author: ![mIX](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/mix/32/12317_2.png) [@mIX](https://discourse.nixosstag.fcio.net/u/mIX)
#### Post date: [January 2, 2024, 6:26pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/14 "2024-01-02T18:26:12Z")

</div>

Thanks tscolari, I did find that in my research. I’m guessing there should also be some code added to the hardware configuration if it’s not being recognized?

Is it possible to just run two different kernels or running a primary with a spliced in custom code? I’m not exactly sure how kernels work, but I thought it was one at a time.

I see in the wiki it seems to be possible to run custom kernel, but I’m likely to screw that up as I’m new to that part of Linux.

Can running a custom kernel or add-on kernel be as easy as adding a few lines to the config?

---

<div class="post-metadata">

### Author: ![brakke](https://discourse.nixosstag.fcio.net/letter_avatar_proxy/v4/letter/b/b3f665/32.png) [@brakke](https://discourse.nixosstag.fcio.net/u/brakke)
#### Post date: [March 16, 2024, 2:07am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/15 "2024-03-16T02:07:03Z")

</div>

> [@Cannot enroll fingerprints with fprintd: "No devices available"](https://discourse.nixosstag.fcio.net/t/cannot-enroll-fingerprints-with-fprintd-no-devices-available/40362):
>
> I recently switched from Manjaro to Nix on my Framework laptop. I cannot get fingerprint enrollment to work. When I run fprintd-enroll, as sudo or not, I get: Impossible to enroll: GDBus.Error:net.reactivated.Fprint.Error.NoSuchDevice: No devices available My sensor shows up in lsusb as: Bus 001 Device 003: ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC And my config contains: services.fprintd.enable = true; services.fprintd.tod.enable = true; services.fprintd.tod.drive…

---

<div class="post-metadata">

### Author: ![capreme](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/capreme/32/16357_2.png) [@capreme](https://discourse.nixosstag.fcio.net/u/capreme)
#### Post date: [March 20, 2024, 9:50pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/16 "2024-03-20T21:50:16Z")

</div>

Just to add my experience. My system: NixOS 24.05.20240228.9099616 (Uakari); Laptop Thinkpad X1 gen 9. I run Flake and home-manager. In addition to adding fprintd package I added this to my `configuration.nix`:

```auto
services.fprintd = {
  enable = true;
  package = pkgs.fprintd-tod;
  tod = {
    enable = true;
    driver = pkgs.libfprint-2-tod1-vfs0090;
  };
};

```

Next I ran `fprintd-enroll` and it asked for password. After that it just worked for sudo and for gdm.

---

<div class="post-metadata">

### Author: ![autra](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/autra/32/16382_2.png) [@autra](https://discourse.nixosstag.fcio.net/u/autra)
#### Post date: [April 17, 2024, 7:03am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/17 "2024-04-17T07:03:37Z")

</div>

For me, `services.fprintd.enable` was enough. I didn’t need to use `tod` at all.

I used kde’s UI to enroll fingerprints, it worked like a charm as well.

---

<div class="post-metadata">

### Author: ![dinterface](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/dinterface/32/11853_2.png) [@dinterface](https://discourse.nixosstag.fcio.net/u/dinterface)
#### Post date: [April 26, 2024, 10:50am UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/18 "2024-04-26T10:50:25Z")

</div>

This worked perfectly for me on a Dell Precision 5480.

---

<div class="post-metadata">

### Author: ![spotcatbug](https://discourse.nixosstag.fcio.net/letter_avatar_proxy/v4/letter/s/b2d939/32.png) [@spotcatbug](https://discourse.nixosstag.fcio.net/u/spotcatbug)
#### Post date: [June 6, 2024, 12:48pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/19 "2024-06-06T12:48:26Z")

</div>

FYI, I also just switched my Framework laptop to NixOS. To get the fingerprint reader working, all I had to do was add `services.fprintd.enable = true;` to configuration.nix (and do a rebuild switch, of course) and it just worked - “Configure Fingerprint Authentication” appeared in the settings UI, under Users (Plasma DM.)

edit: lsusb shows `ID 27c6:609c Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC` for the reader.

---

<div class="post-metadata">

### Author: ![lollo004](https://discourse.nixosstag.fcio.net/user_avatar/discourse.nixosstag.fcio.net/lollo004/32/26992_2.png) [@lollo004](https://discourse.nixosstag.fcio.net/u/lollo004)
#### Post date: [June 30, 2024, 4:19pm UTC](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901/20 "2024-06-30T16:19:04Z")

</div>

Hi there, a quick setup for **laptops** which commonly work with fprintd out of the box:  
Add this to your _configuration.nix_

```auto
  environment.systemPackages = [
    pkgs.fprintd
  ];
  # fprintd 
  services.fprintd.enable = true;

```

Note: this is for system package, but you can also install it as a user package.

Tested on Thinkpad X1 Carbon Gen10.

Note: remember to run _fprintd-enroll_ !!

[Next page](https://discourse.nixosstag.fcio.net/t/how-to-use-fingerprint-unlocking-how-to-set-up-fprintd-english/21901.md?page=2)
