Hi Guix, as I tried to add a custom udev rule I noticed that I could only really do this when the udev-configuration accessor functions are exported. In my system configuration I first created the new udev rule (that’s all a bit verbose, unfortunately), which is almost identical to the ‘kvm-udev-rule’: ~~~~~~~~~~~~~~~~ (define (avrispmkii-udev-rule) "Return a directory with a udev rule that sets the group owner and group write permissions on the node matching the AVRISPmkII microcontroller programming device." (computed-file "avrispmkii-rules" #~(begin (use-modules (guix build utils)) (define rules.d (string-append #$output "/lib/udev/rules.d")) (mkdir-p rules.d) (call-with-output-file (string-append rules.d "/90-avrispmkii.rules") (lambda (port) (display "\ SUBSYSTEM!=\"usb\", ACTION!=\"add\", GOTO=\"avrisp_end\" # Atmel Corp. JTAG ICE mkII ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2103\", MODE=\"660\", GROUP=\"dialout\" # Atmel Corp. AVRISP mkII ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2104\", MODE=\"660\", GROUP=\"dialout\" # Atmel Corp. Dragon ATTR{idVendor}==\"03eb\", ATTR{idProduct}==\"2107\", MODE=\"660\", GROUP=\"dialout\" LABEL=\"avrisp_end\"\n" port)))) #:modules '((guix build utils)))) ~~~~~~~~~~~~~~~~ Then I replaced %desktop-services to amend the service of ‘udev-service-type’: ~~~~~~~~~~~~~~~~ (modify-services %desktop-services (udev-service-type config => (udev-configuration (inherit config) (rules (append (udev-configuration-rules config) (list (avrispmkii-udev-rule))))))) ~~~~~~~~~~~~~~~~ As you can see I need ‘udev-configuration’ to create a new configuration, and ‘udev-configuration-rules’ to append my new rule to the existing rules. The attached patch just exports ‘udev-configuration’, ‘udev-configuration?’ (why not?), and ‘udev-configuration-rules’. ~~ Ricardo