let usbDeviceRules = [ # rad10 { vendor = "1d50"; product = "cc15"; group = "users"; mode = "0660"; } { vendor = "1d50"; product = "6089"; group = "users"; mode = "0660"; } # DJI Goggles { vendor = "2ca3"; product = "001f"; group = "plugdev"; mode = "0660"; } # uDMX { vendor = "16c0"; product = "05dc"; group = "users"; mode = "0660"; } # Brother P-touch P700 { vendor = "04f9"; product = "2061"; group = "users"; mode = "0660"; } # RP2040 in BOOTSEL mode { vendor = "2e8a"; product = "0003"; group = "users"; mode = "0660"; } # RP2350 in BOOTSEL mode { vendor = "2e8a"; product = "000f"; group = "users"; mode = "0660"; } # WCH Link (CMSIS-DAP compatible adapter) { vendor = "1a86"; product = "8010"; group = "plugdev"; mode = "0660"; } ]; mkUsbRule = rule: ''SUBSYSTEM=="usb", ATTR{idVendor}=="${rule.vendor}", ATTR{idProduct}=="${rule.product}", GROUP="${rule.group}", MODE="${rule.mode}"''; in { services.udev.extraRules = builtins.concatStringsSep "\n" (map mkUsbRule usbDeviceRules); }