I'm trying to enable Bluetooth on my GUIX machine, and I do not understand the instructions:
Scheme Procedure: bluetooth-service [#:bluez bluez] [#:auto-enable? #f]
Return a service that runs the bluetoothd daemon, which manages all the Bluetooth devices and provides a number of D-Bus interfaces. When AUTO-ENABLE? is true, the bluetooth controller is powered automatically at boot, which can be useful when using a bluetooth keyboard or mouse.
Users need to be in the lp group to access the D-Bus service.
In particular, I do not understand the [#:
part, and thus do not know what to put in my config.scm.
None of the other modifications I've made to config.scm
required such 'arguments' for lack of a better word. For example, extra-special-file
is described simply as
Scheme Procedure: extra-special-file file target
and contains an example and was thus easy to figure out.
This does not work:
(services
(append
(list (service gnome-desktop-service-type)
(service bluetooth-service))
%desktop-services))
reconfigure gives
guix system: error: failed to load 'config.scm':
gnu/services.scm:242:17: In procedure %service-with-default-value:
In procedure struct-vtable: Wrong type argument in position 1 (expecting struct): #<procedure bluetooth-service (#:key bluez auto-enable?)>
Apparently the #:
is a hash-colon, which is used to define a keyword in Scheme. But that page does not give me enough information to translate the GUIX instructions into something to put in config.scm
.
It feels like the GUIX documentation assumes some Scheme knowledge that I do not yet posses, and I do not really know where to start to obtain. An example would be appreciated.