mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-07-07 21:35:17 +02:00
38 lines
934 B
Nix
38 lines
934 B
Nix
{
|
|
pkgs,
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.modules.desktop.canokey;
|
|
in
|
|
{
|
|
options.modules.desktop.canokey = {
|
|
enable = lib.mkEnableOption "CanoKey hardware security key support";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
services.pcscd.enable = true;
|
|
|
|
services.udev.extraRules = ''
|
|
# CanoKey - GnuPG/pcsclite
|
|
SUBSYSTEM!="usb", GOTO="canokey_rules_end"
|
|
ACTION!="add|change", GOTO="canokey_rules_end"
|
|
ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", ENV{ID_SMARTCARD_READER}="1"
|
|
LABEL="canokey_rules_end"
|
|
|
|
# CanoKey - FIDO2
|
|
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="42d4", TAG+="uaccess", GROUP="plugdev", MODE="0660"
|
|
|
|
# CanoKey - WebUSB
|
|
SUBSYSTEMS=="usb", ATTR{idVendor}=="20a0", ATTR{idProduct}=="42d4", MODE:="0666"
|
|
'';
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
ccid
|
|
pcsc-tools
|
|
];
|
|
};
|
|
}
|