[bug#73296,v2] home: services: dbus: Add utilities to profile.

Message ID 87setzr7ea.fsf_-_@antr.me
State New
Headers
Series [bug#73296,v2] home: services: dbus: Add utilities to profile. |

Commit Message

Antero Mejr Sept. 16, 2024, 2:38 p.m. UTC
* gnu/home/services/desktop.scm (home-dbus-service-type)[extensions]:
Extend home-profile-service-type to add dbus-launch and other such
utilities to the home profile.

Change-Id: I9a3dc00d52b66c327f4eae523bddf758bddddb9e
---
Please ignore the last patch, it had a typo in the commit message.

 gnu/home/services/desktop.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)


base-commit: ecc95ecd399ce7917a19ae3e687ea1a92caf830a
  

Comments

Ludovic Courtès Sept. 30, 2024, 8:15 p.m. UTC | #1
Hello,

Antero Mejr <mail@antr.me> skribis:

> * gnu/home/services/desktop.scm (home-dbus-service-type)[extensions]:
> Extend home-profile-service-type to add dbus-launch and other such
> utilities to the home profile.
>
> Change-Id: I9a3dc00d52b66c327f4eae523bddf758bddddb9e

I must say I don’t fully understand the use case of
‘home-dbus-service-type’ since usually the user’s dbus session is
started automatically, on demand (for example, spawning pulseaudio will
automatically start a dbus session if it’s not already running).

Often I find that for such services we don’t necessarily want to
“clutter” the user’s profile with low-level tools such as ‘dbus-launch’
in this case.  But I’m not sure here.

Could you explain?  What’s the point of ‘home-dbus-service-type’?  :-)

Thanks,
Ludo’.
  
Simon Streit Oct. 1, 2024, 10:02 p.m. UTC | #2
Hello!

Ludovic Courtès <ludo@gnu.org> writes:

> Antero Mejr <mail@antr.me> skribis:
>
>> * gnu/home/services/desktop.scm (home-dbus-service-type)[extensions]:
>> Extend home-profile-service-type to add dbus-launch and other such
>> utilities to the home profile.
>>
>> Change-Id: I9a3dc00d52b66c327f4eae523bddf758bddddb9e
>
> I must say I don’t fully understand the use case of
> ‘home-dbus-service-type’ since usually the user’s dbus session is
> started automatically, on demand (for example, spawning pulseaudio will
> automatically start a dbus session if it’s not already running).
>
> Often I find that for such services we don’t necessarily want to
> “clutter” the user’s profile with low-level tools such as ‘dbus-launch’
> in this case.  But I’m not sure here.
>
> Could you explain?  What’s the point of ‘home-dbus-service-type’?  :-)

This is an interesting question that you are asking.  For me, and the
first two years with Guix, I never had a proper running dbus session
when running, first with i3, and then with sway from there on.  It would
work with GNOME.  But I'd never hang around there for long and I learned
to live without dbus that would produce strange effects in strange
situations.

It only happened after I migrated to Guix Home and enabling
home-dbus-service-type that I finally had a fully functioning
environment with dbus.  It solved so many problems since and I never
fully understood why I was missing dbus in the first place.  It either
never either launched properly -- which I doubt, since applications like
pulseaudio where running --, or I had never sourced some variables
properly.

To answer your question: This service is quite the requirement to have a
desktop environment that is not based on the bigger variants that
usually provide it.


Kind regards
  
Ludovic Courtès Nov. 17, 2024, 10:05 p.m. UTC | #3
Hi,

Simon Streit <simon@netpanic.org> skribis:

>> Could you explain?  What’s the point of ‘home-dbus-service-type’?  :-)
>
> This is an interesting question that you are asking.  For me, and the
> first two years with Guix, I never had a proper running dbus session
> when running, first with i3, and then with sway from there on.  It would
> work with GNOME.  But I'd never hang around there for long and I learned
> to live without dbus that would produce strange effects in strange
> situations.
>
> It only happened after I migrated to Guix Home and enabling
> home-dbus-service-type that I finally had a fully functioning
> environment with dbus.  It solved so many problems since and I never
> fully understood why I was missing dbus in the first place.  It either
> never either launched properly -- which I doubt, since applications like
> pulseaudio where running --, or I had never sourced some variables
> properly.
>
> To answer your question: This service is quite the requirement to have a
> desktop environment that is not based on the bigger variants that
> usually provide it.

OK, interesting.  I’m not using it and not noticing problems (or did I
get used to the D-Bus class of problems?).

Thanks for your reply,
Ludo’.
  

Patch

diff --git a/gnu/home/services/desktop.scm b/gnu/home/services/desktop.scm
index 679ba31c0f..6d8ac275ca 100644
--- a/gnu/home/services/desktop.scm
+++ b/gnu/home/services/desktop.scm
@@ -327,7 +327,10 @@  (define home-dbus-service-type
     (list (service-extension home-shepherd-service-type
                              home-dbus-shepherd-services)
           (service-extension home-environment-variables-service-type
-                             home-dbus-environment-variables)))
+                             home-dbus-environment-variables)
+          (service-extension home-profile-service-type
+                             (lambda (config)
+                               (list (home-dbus-dbus config))))))
    (default-value (home-dbus-configuration))
    (description
     "Run the session-specific D-Bus inter-process message bus.")))