I've got working config for gnome+wayland. here it is https://gitgud.io/znavko/guix-configs
May 9, 2019 7:26 AM, "rendaw" <7e9wc56emja...@s.rendaw.me> wrote: > On 5/9/19 2:55 PM, zna...@disroot.org wrote: > >> Hello! I try to reconfigure system with Gnome, sddm and wayland. >> I also use sddm-configuration to define use wayland for greeter, but get the >> error for my >> misconfiguration: >> >> # cat config.scm >> ... >> (services (cons* >> ;(service xfce-desktop-service-type) >> (service gnome-desktop-service-type) >> (service dhcp-client-service-type) >> (service sddm-service >> (sddm-configuration >> (display-server "wayland"))) >> ... >> ) >> >> # guix system reconfigure config.scm >> Backtrace: >> 14 (primitive-load "/root/.config/guix/current/bin/guix") >> In guix/ui.scm: >> 1734:12 13 (run-guix-command _ . _) >> In ice-9/boot-9.scm: >> 829:9 12 (catch _ _ #<procedure 7ff6047408f8 at guix/ui.scm:701…> …) >> 829:9 11 (catch _ _ #<procedure 7ff604740910 at guix/ui.scm:824…> …) >> In guix/scripts/system.scm: >> 1301:8 10 (_) >> In guix/status.scm: >> 768:4 9 (call-with-status-report _ _) >> In guix/scripts/system.scm: >> 1159:4 8 (process-action _ _ _) >> In guix/store.scm: >> 623:10 7 (call-with-store _) >> 1794:24 6 (run-with-store _ _ #:guile-for-build _ #:system _ # _) >> In guix/scripts/system.scm: >> 1175:13 5 (_ _) >> 882:18 4 (perform-action reconfigure #<<operating-system> kerne…> …) >> In gnu/system.scm: >> 851:19 3 (operating-system-derivation _) >> In gnu/services.scm: >> 743:6 2 (instantiate-missing-services _) >> In guix/combinators.scm: >> 45:26 1 (fold2 #<procedure adjust-service-list (svc result ins…> …) >> In gnu/services.scm: >> 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …) >> >> gnu/services.scm:733:11: In procedure adjust-service-list: >> In procedure struct_vtable: Wrong type argument in position 1 (expecting >> struct): #<procedure >> sddm-service (#:optional config)> >> Please, let me know how to understand such errors. Here, I saw the same >> structure >> https://www.gnu.org/software/guix/manual/en/guix.html#index-sddm_002dservice > > (sddm-service ...) returns a service instance so you don't need to wrap > it in (service ...). I think the key point to notice is it's > `sddm-service` and not `sddm-service-type` - service types go in > `(service ...)` as the second parameter but `service-*` functions > replace the `(service ...)` call entirely. > > I'm not sure if there's more information you can get from the backtrace, > but where it says: > > position 1 (expecting struct): #<procedure sddm-service (#:optional config)> > > it's saying it wanted a struct but got `sddm-service` which is a > `procedure` (function). And the last line of the trace has: > > 733:11 0 (adjust-service-list _ (#<<service> type: #<service…> …) …) > > -- all the <service> things make me think that it's probably looking for > a struct of type <service>. > > If you change it from `(service sddm-service)` to `(sddm-service > (sddm-configuration))` it should work (although you might want to > specify some values in sdm-configuration.