Catonano writes: > (define %my-services > (modify-services > (cons* (gnome-desktop-service) > (cons* > (service agetty-service-type > (agetty-configuration (tty "ttyS0"))) > %desktop-services)) > (slim-service-type config => > (slim-configuration > (inherit config) > (startx (xorg-start-command > #:configuration-file > (xorg-configuration-file > ;; Setup X to use a swiss german keyboard layout. > #:extra-config > '("Section \"InputClass\" > Identifier \"keyboard-all\" > Option \"XkbLayout\" \"ch\" ; <~ replace \"ch\" with \"it\" > MatchIsKeyboard \"on\" > EndSection")))))))) This looks wrong to me. If this works, I think it's only by accident. Check out the docstring for modify-services in gnu/services.scm, which says: Modify the services listed in SERVICES according to CLAUSES and return the resulting list of services. Each clause must have the form: (TYPE VARIABLE => BODY) So, every clause after modify-services needs to have that form. This may also be the reason why the length of your %my-services is the same as %desktop-services. I think maybe the gnome-desktop-service and the agetty-service-type service you've created are just being ignored somehow. Does this make sense? -- Chris