• Icon: Sub-task Sub-task
    • Resolution: Declined
    • Icon: Normal Normal
    • None
    • None

      UPDATE:

      I've decided the best approach is to not completely remove elogind, since it does act as a way of doing quick user switching and allocating hardware to each seat, which is useful. But it is trying to do way, way too much. Looking at the power management situation in GNOME, I do not expect it to work well until 3.38 or later. Which means we should turn off power management for elogind and patch GNOME to manage it ourselves. Thus the renaming of this issue to 'gut the GNOME'.

      Currently, elogind suspend/resume is problematic. When elogind puts the system to sleep, both Krish and I get a blank screen on resume that we can't recover from (I can only recover from it by restarting gdm over ssh.) But if I run this simple script, I can sleep the system and bring it back without any issue:

       #!/bin/bash
      dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
      sleep 0.5
      sudo sh -c 'echo -n mem > /sys/power/state'
      

      This means that there is some bugginess in elogind and its inhibitor system, and its interactions with the hardware. But when I simply force the screen to lock, and rely on the kernel sleep functionality, it works great. This means that this dbus-based system appears to be too error-prone and complex to get working well and we should migrate away from it.

      Currently, GNOME requires elogind which is really a piece of systemd. Elogind provides the following questionable functionality:

      • multi-seat support, which lets you have 2 monitors and 2 keyboard hooked up to one computer and have them be used by different users.
      • handling your display's backlight (WTF)
      • intercepting ACPI events to suspend your system
      • tracking all user logins and assigning them to seats, as well as assigning hardware to seats.

      This is all better handled by other things, and multi-seat is a useless feature, which means that elogind can be removed.

      Suggested approach is to patch the packages that actually use elogind in gnome.

      That list is:

      gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.36.1.ebuild: sys-auth/elogind
      gnome-base/gnome-settings-daemon/gnome-settings-daemon-3.36.1.ebuild: sys-auth/elogind
      gnome-base/gvfs/gvfs-1.44.1.ebuild: elogind? ( >=sys-auth/elogind-229:0= )
      gnome-base/gnome-shell/gnome-shell-3.36.4.ebuild: elogind? ( sys-auth/elogind )
      gnome-base/gnome-session/gnome-session-3.36.0.ebuild: elogind? ( sys-auth/elogind )
      gnome-base/gnome-control-center/gnome-control-center-3.36.4.ebuild: elogind? ( sys-auth/elogind )
      gnome-base/gdm/gdm-3.36.3.ebuild: >=sys-auth/elogind-239.3[pam]
      gnome-extra/cinnamon-control-center/cinnamon-control-center-3.6.5.ebuild: !systemd? ( app-admin/openrc-settingsd sys-auth/elogind )
      gnome-extra/cinnamon-session/cinnamon-session-3.6.1-r4.ebuild: !systemd? ( sys-auth/elogind[policykit] )
      gnome-extra/cinnamon-settings-daemon/cinnamon-settings-daemon-3.6.1-r1.ebuild: !systemd? ( sys-auth/elogind:0= )
      gnome-extra/cinnamon-screensaver/cinnamon-screensaver-3.6.1-r1.ebuild: !systemd? ( sys-auth/elogind )
      media-sound/pulseaudio/pulseaudio-13.0.ebuild: elogind? ( sys-auth/elogind )
      sys-apps/accountsservice/accountsservice-0.6.55.ebuild: elogind? ( >=sys-auth/elogind-229.4 )
      sys-apps/gnome-disk-utility/gnome-disk-utility-3.36.1.ebuild: !systemd? ( >=sys-auth/elogind-239.3:0= )
      sys-auth/polkit/polkit-0.115-r2.ebuild: elogind? ( sys-auth/elogind )
      sys-auth/polkit/polkit-0.115-r5.ebuild: elogind? ( sys-auth/elogind )
      sys-fs/udisks/udisks-2.8.4.ebuild: elogind? ( >=sys-auth/elogind-219 )
      sys-fs/udisks/udisks-2.7.8.ebuild: elogind? ( >=sys-auth/elogind-219 )
      x11-libs/vte/vte-0.60.2.ebuild: elogind? ( >=sys-auth/elogind-241.3 )
      x11-wm/mutter/mutter-3.36.4.ebuild: || ( sys-auth/elogind sys-apps/systemd ) 

       

            drobbins drobbins
            drobbins drobbins
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: