SLiM Display Manager

The thing you want most from a Login Manager is for it to start up quickly and disappear equally quickly. I have noticed lately that my Void Linux Display Manager ( LXDM) is taking a long time to startup. So I decided to try another Display Manager.

Slim is the default Display Manager in Devuan. My Devuan login screen looks like this


Very plain, not even a Devuan logo.

You can read about SLiM here.

and here

That little picturre on the Wikipedia site is its default splash screen.
You can read about installing and configuring it here. It will work with any DTE
https://wiki.archlinux.org/title/SLiM
and here

You can install it in any Debian based distro with just

apt-get install slim

But I wanted it in Void. That is just a bit more difficult

xbps-install slim slim-void-theme

Then we have to stop the LXDM daemon and start the slim daemon

cd /var/service
rm lxdm

As soon as I do that Void drops back to the login console ( because I just killed the lxdm daemon)
So now login as root and do

ln -s /etc/sv/slim /var/service slim

That link is the way one starts a daemon in the runit init system in Void.
The login screen comes up instantly ( because the slim daemon has started)
So I try to login, and it fails… it just goes back to the login screen, ie it does not start Xfce.
Kill it and boot in recovery mode.
Login as root
Look at /home/nevj/.xinitrc. Find it does not start up any dte. Apparently LXDM starts Xfce by some other method.
But SLiM uses .xinitrc , so I have to add the line

 exec startxfce4

to the end of .xinitrc, in both /home/nevj and /root.
Also edit the file /etc/sv/slim/run to

exec slim -d

So that it starts as a daemon
Also edit the file /etc/slim.conf adding

current_theme       slim-void-theme

So that it uses the void splash screen.
Reboot and it works
My login screen now looks like this

But
It takes just as long to startup as did LXDM.
However, there are some telltale messages scrolling across the screen while it is starting up SLiM.
The messages say that it is restoring the Xfce session.

OK, the penny drops. What has been happening is that I have been having more and more complex Xfce sessions (at least 4 windows open) and Xfce is taking longer and longer to restore these sessions, each time I boot. Nothing to do with the Display manager at all.

So I went thru all that, just to get the critical startup messages that resolved the issue. I might just keep SLiM for a while.

It is interesting that old fashioned Display Manager, which uses the classic .xinitrc method of starting the DTE , gave me the critical messages which resolved my issue, while the more modern LXDM sat there for ages with a blank screen and told me nothing.

You can draw your own conclusion
Regards to all
Neville

3 Likes

Are you saying this delay is because you didn’t logoff but locked the screen with several things running or maybe you let it go to sleep?

No, it is when I power off, then reboot. Xfce saves the settings, and it is the process of restoring the settings that takes time. The display manager seems to anticipate that I will be starting xfce , and it starts doing it before the login screen appears. Then when I login, Xfce comes up almost instantly.
I dont use screenlock or logout. I always just power off when I am finished for the day. Old habit…

When I first installed Void, it booted very fast. After using it for some time, the display manager stage of the boot got slower. I think it is because I have Xfce loaded up with a screenful of windows, and it has to restore it.
From my point of view, being able to restore the session is the most important property of a window manager, so I shall put up with the slight delay in booting.

Regards
Neville

1 Like

Have you tried slick-greeter? It’s very fast, faster than normal LightDM.

Hi Mark,
No, I was not aware of that. Will have a look.
Regards
Neville

Hello Neville,
SLiM is my favorite DM and the only one I use. It is light, DE independent and easily customizable. The configuration can be changed by editing /etc/slim.conf and themes are in /usr/share/slim/themes. You can use any .jpg file you like as a background by replacing the “background.jpg” located at /usr/share/slim/themes or change fonts and colors by editing “slim.theme” file. I always set SLiM to auto_login, so I don’t have to type the password every time (uncomment the lines “default_user” and “auto_login” set to “yes”). I think that the boot delay in your case is caused by saving and restoring the Xfce session and not by the DM.
Cheers

Hi Deby,
I agree, it was a false errand.
It is strange, the boot seems to start restoring the Xfce session, before it brings up the DM screen? Maybe it forks 2 processes? As soon as the DM screen is up and I login, the Xfce screen comes up instantly. No delay after login at all.
Gnome in Debian is entirely different. After the gdm screen and login, there is a huge delay bringing up Gnome.? And Gnome does not restore sessions.

But I do like SLiM, it will be staying on my Void install, and also on Devuan, where it is the default.
Thanks for the hints on configuring it.

Regards
Neville

There is an interesting sequel to this SLiM story.
Everything went well with Void/SLiM until tonight. When I booted Void tonight, it hung with the screen flashing between the DM and the boot log, and I could not login.

So, boot in recovery mode, look at the logs, nothing relavent. I take a punt and disable elogind. Reboot and it is fixed, I get the DM screen, and can login.

So what hapoened. When I look now, elogind is running. But I disabled it so runit would not start it. Therefore SLiM must start elogind itself. So I had 2 copies of elogind running, and that is what made it unstable.

So why did I manually start elogind in the first place? Well in Void when you install a package , any daemons required are not started… you have to manually setup runit to start them. When I installed LXDE it brought up the DM screen, but would not allow a login. I had to start elogind to get a login working.
but
SLiM must be different to LXDE. SLiM must start elogind itself., so for SLiM elogind is not a dependency, it is automatically started.

Does anyone know what the relationship between a DM and the login daemon is? It would seem that you must have a login daemon to be able to login, but that 2 login daemons can make the boot unstable.
It would also seem that all DM’s bring up the login screen, but they do not manage the actual login.

Hi Neville,
I am not an expert on this topic and never used SLiM on Void. The reasons I chose SLiM as my preferred DM: 1. Extremely light on system resources, while providing enough functionality. 2. Very easy to configure by editing the file /etc/slim.conf 3. DE independent with very few of it’s own dependencies. SLiM is the default DM in Porteus and Star distros.

Also in Devuan
Yes it is easy to configure. I like it, I am keeping it in Void.

My problem with it , as detailed in last post, was because Void requires you to start daemons by hand, so I thought I had to start elogind, but slim started elogind itself, so I had 2 login dae ons running.
Void is a bit unusual in several ways, but I like it. It cuts out a lot of the complex nonsense.
Neville

Hi all,
I found myself here from a Google search and was a little surprised to see people saying SLiM is still the default in anything! I’m a Gentoo user, and they were on the verge of deleting it from portage for being unmaintained. However, I’ve forked it onto Sourceforge (as slim-fork) and applied a bunch of fixes and improvements. I should probably make contact with the owners of Porteus, Star and Devuan to let them know…
Cheers,
Rob

Welcome Robert
Well it is certainly in need of some maintenance . Its performance in Void involved some annoying hangups, and I ended up removing it.

I still have it in Devuan , and there it performs quite well.

I think you should inform distros of your fork. Can you add Void to the list please? It is not default in Void. It is in the Void repo.

I found this piece of info

I might download your sourceforge fork and have a go with that in Void.

Regards
Neville

What was the nature of those hangs? I know there were a couple of instances of locked-up-on-black-screen with the Gentoo port when PAM got updated, and before the required extra patch was applied to SLiM. Usually it was down to an authentication failure being reported in a different manner to how the 2013 version of PAM did it. Hopefully I’ve fixed all of those, but if there are others I obviously want to know!
Thanks,
Rob

  1. During boot it gets to the splash screen and alternates between a splash screen and a blank screen. Login is impossible. Reboot and it most times is OK. Nothing in logs.
    I am using the Void splash screen for slim… It comes from Void repo.
    Note Void uses elogind. Slim seems to start elogind without my needing to start the daemon in Void. That is unusual for Void, one usually has to start all the daemons manually.

Did you see that reference I added to reply no 11? It says “slim is slightly broken for elogind”, and gives a fix.

  1. Freezes in Xfce while restoring session. Not sure this is slim? May be a graphics card issue.

I think the best thing I can do is test your slim-fork in Void.
Will do. It will take me a few days… I am old and slow

Regards
Neville

Thanks Neville.
The issue you linked to is slightly different, and I already knew of it from a Gentoo bug report (although I hadn’t come across the fix before so that was extremely helpful!). It exhibits as missing menu items on the (XFCE) desktop after you’ve logged in.
I’ve seen black screens but I don’t think I’ve ever encountered the alternating behaviour you describe. I think I can see how you might get it, though, from a combination of the bug I have seen with certain possible init system configurations. I would have to see if I could recreate it with a clean install of Void, though as you say, it’s probably equally useful for you to try my fork and see if it still happens for you.
Regards,
Rob

Hi Robert,
I am on the way with that.
Grappling with cmake… I have not encountered it before.
It does not make on Void out of the box. Needs some settings, for example cant find include files.

I have not seen missing items in the Xfce desktop.

By the way, are you interested in Lumina Desktop Environment? They are looking for people with your sort of skills. The situation is a bit like Slim… developed to a certain level then left without support.

Regards
Neville

It does take some getting used to. I would not have chosen to use it myself but it’s what I inherited, and people look at you strangely these days if you say you prefer autotools…

It’s a bit of a corner case. If you log out and then log back in quickly (within about 20 seconds) the session menu loses the “shut down”, “reboot” and similar options. This is because you aren’t in a properly registered session, due to a bad interaction with elogind. The problem does not affect old-school ConsoleKit users (e.g. Devuan) nor full-blown systemd (e.g. Debian)

1 Like

Hi Robert,
My ‘few days’ turned into a week, but I can now report that I have slim-1.3.9 running in Void Linux , with apparently no problems. I will use it for a while and watch for issues.

Some of the issues encountered installin from your tarfile into Void were

  • with cmake it needs the package libXmu-devel, and the file CMakeLists.txt needs set(X11_Xmu_INCLUDE_PATH '/usr/include/X11')
  • cmake also needs pam-devel
  • it is a good idea to remove any previous install of slim and all its config files.
  • after make and make install slim can be started by hand, but does not autostart on boot
  • to autostart slim, one needs to disable the current display manager… go to /etc/sv and rename lxdm to lxdm.save
    Then mkdir slim, and for a starting script copy the contents of lxdm.xsave to slim
  • cd slim and edit the run file to
#!/bin/sh
sv -w7 check dbus >/dev/null || exit 1
exec /usr/local/bin/slim  -d 

This makes slim wait until dbus is started, then starts slim as a daemon

  • for this version of slim it is necessary to leave elogind running . This is different from the Void package version of slim.

After all that , slim starts up on booting, and allows logins. It comes with the default pink coloured slim splash screen.

The only new message is a popup on the starting Xfce screen saying

 - XFCE PolicyKit Agent

So I guess we can say , install successful.
It is a matter of wait and see. No issues yet.

The behaviour at shutdown time is different. With this slim installed, I cant do shutdown from the Xfce menu as a user, I have to logout, login as root, and then Xfce will allow a shutdown.
This is different from the void package version of slim and from most other Login Managers.

Regards
Neville

OK, thanks for that.
Several of your notes on “stuff you need to do” are specific to the way Void handles package management and startup. They would need to be addressed by a Void package for SLiM but it would not be appropriate upstream. Of the others:

This seems odd, as it doesn’t seem necessary on other distros. If you didn’t previously have libXmu-devel then it’s possible you missed a step to register it centrally

That probably depends on your build options. If you aren’t using elogind (or systemd) then I’d expect you to be reliant on ConsoleKit, but the support for that now needs to be enabled when you run ccmake. I suspect this is also the cause of your missing “shutdown” menu items.
Unfortunately I’ve not had time to play with Void so I can’t (yet) say anything more definitive

Void uses elogind, but not systemd (It uses runit init system)
I did the cmake with pam enabled, not consolekit. Maybe the shutdown issue is due to pam?
From technical point of view, what it is doing is correct… in a multiuser system you dont want users doing shutdown.

. If you didn’t previously have libXmu-devel then it’s possible you missed a step to register it centrally

I dont understand. Do you mean I needed ldconfig ? I thought I did that. Slim does use dynamic libraries.

Anyway, the main point was to check for the login screen flashing between screen and blank. So far it has not done it, so I suspect your mods may have fixed it.

Regards
Neville