On 2021-09-15 09:50, Katherine Cox-Buday wrote: > Xinglu Chen writes: > >> On Wed, Sep 15 2021, Andrew Tropin wrote: > >>> Records even for the same services have slightly different fields and >>> because of macro nature can't be reused between Home and System >>> services. In more details I mentioned this problem here: >>> https://lists.sr.ht/~abcdw/rde-devel/%3C87y2cqifpx.fsf%40yoctocell.xyz%3E#%3C878s4l8kai.fsf@trop.in%3E >> >> Some services might be useful to have in both Guix System and Guix Home; >> for instance, Guix System currently has a service for configuring >> Syncthing, and I think it makes sense to also have one for Guix Home, >> this would mean that people not using Guix System (me :-)) could also >> have Guix manage Syncthing. With the current approach, we would have to >> copy and paste quite a bit of code, and if the Syncthing service for >> Guix System changes, then the one for Guix Home might have to change as >> well. > > I agree with this point. I have several Guix systems, and several > non-guix systems with Guix managing some services. In the past, I have > had to write my own Shepherd services for things already written as > system services. > Shouldn't be a problem, if home service will be a prefered option. More details on that in the reply to Xinglu, look for linger keyword. > >>> The intersection of home and system services should be very low, so >>> there is not much benifit here as well. >> >> Quite the opposite, I think it would be great if home and system >> services could integrate more with each other. In NixOS, the NixOS >> modules and Home Manager modules feel like two very distinct things, and >> it’s not really easy to share things between them. > > I agree. > >>> ** Summary >>> Let's keep System and Home services separate for the sake of clarity, >>> reuse code via shared modules or just exports in (gnu services ...). > > [...] > >>> However, ~(gnu home services ...)~ also looks cool, but it would be a >>> little inconsistent with system services, which will have one level of >>> nestiness less: ~(gnu services)~. >>> >>> IMO, ~(gnu home services ...)~ would be a good choice if we use ~(gnu >>> system services)~ for system services. >> >> Yeah, having both (gnu system service) and (gnu home service) could make >> sense, but since we only have (gnu services), I don’t think it makes >> much sense. > > I haven't put in the energy to follow the rational behind the proposed > naming schemas, but I'd like to suggest this as well: =(gnu services > home)=. This namespace increases in specificity, and I think it would > easily follow that things in =(gnu services home)= might utilize things > in =(gnu services)=. Or I also like the idea of =home= and =system= > being sibling namespaces. Actually a good idea, thank you, I will consider it.