Trouble changing display managers

I installed Tumbleweed yesterday with KDE. I would like to switch to gnome, but it seems I lose some functionality without gdm. I cannot figure out how to change the display manager.

I have tried using YaST (the option gdm is not in the edit /etc/sysconfig) and I have tried manually editing the file /etc/sysconfig/displaymanager. When I change DISPLAYMANAGER=“sddm” to DISPLAYMANAGER=“gdm” and restart, there is no effect.

According to the YaST Software tool, gdm is installed.

All the documentation gives these 2 options, and they don’t seem to work.
Please help


sudo update-alternatives --config default-displaymanager

I wonder if this can’t be addressed with little to no effort…

Could be simple as replacing the Yast shortcut to launch a console (even xterm so will work no matter what other terminal app is installed) running the update-alternatives command.

Would probably take all of about 20 seconds for someone to do that… plus another minute or two for actually getting it through the QA process…

Already TW is doing something similar when launching firewalld instead of SuSEFW2…


And what “Yast shortcut” do you mean here?
YaST’s /etc/sysconfig editor is of course for editing the files in /etc/sysconfig/, making it run update-alternatives instead makes no sense… :wink:

There is a YaST module for update-alternatives too (package yast2-alternatives), but AFAIK it’s not installed by default unfortunately.

I’m saying that what TW now does with firewalld is an exact template for what should be done.
When you launch YaST2, it is basically a way to graphically list specified YaST modules, but does not actually contain any modules… Those are entirely separate.
So, now when you click to configure the FW in YaST in TW, the shortcut today doesn’t point to the SUSEFW2 YaST module as it still does in LEAP, it now simply launches firewalld which is its own app, fully outside of, and not created or maintained by openSUSE. You just get the firewalld instead of a YaST module.

In the same way,
That firewall pointer/shortcut in Yast should simply launch an xterm console running the update-alternatives command. Although a text console, I’m sure it’s graphical enough for any User to understand what needs to be done.


Template for what exactly?

As I wrote, there already is a YaST module for update-alternatives.

I can see I’m being clear as mud.
Let’s start over…

Take a look at what TW is now doing in YaST to launch firewalld.
It’s a perfect example that YaST can launch anything, even an “outside app” and not just YaST modules, in fact this case apparently suggests that YaST modules are self-contained apps which could be launched independently of the YaST manager itself if written to support that.

This means that you don’t have to write a YaST module for configuring the Display Manager, or at least it’s only an option since the immediate solution is already known and available… Launch a console and run update-alternatives already configured for choosing the Display Manager.

This means that you can currently go into the /etc/sysconfig editor module, find the code related to setting the Display Manager and re-write the command to launch the external app.
Or, perhaps more simply just create a new icon that displays in YaST that launches the external console with command.

Several ways to do this, and many hardly require much effort.


An additional thought…
Although what I’ve described should be simple and not require much effort,
If there is a larger strategy for re-implementing and possibly deprecating the /etc/sysconfig,
A long term solution which would require effort might warrant a look…

If the long term objective is to deprecate /etc/sysconfig, then maybe something should be written that flexibly re-directs calls to this location…
I don’t know if this can actually be done since what I’m describing violates the separation of functionality from static config files, but should at least warrant a look.


Sure it can. If you provide an icon that does that.

But that doesn’t mean the /etc/sysconfig/ editor can do that for one particular setting, that doesn’t even exist anymore in Tumbleweed and Leap 15.
There is no particular “code related to setting the Display Manager”, it’s just a generic thing that parses the config files in /etc/sysconfig/ and let’s you edit them (as the name suggests).

And again, a YaST module that lets you configure update-alternatives does exist already, even in 42.3.
Nothing to be done there…

In any case, this is not the place to discuss this really.
Either write something yourself (as you say it is so easy) and submit it, or start a discussion on opensuse-factory, or file a bug report.

Yes, you are correct. You lose some functionality without GDM.

For both Tumbleweed and Leap 15.0 Beta, the method (as another user has posted) is:

update-alternatives --config default-displaymanager

Thanks, everyone, this worked great:

I also installed this YaST module - it seems to work well also. I think having it installed by default might be a good idea.

Leap 15 has the same issues.

In the Release Notes, section 4.3, the two new methods to be used are described; in addition to the alternatives command, there is a new YaST module, Alternatives, that is intended to make modifications to the alternatives db(?). Oddly, the Alternatives module is not installed by default, so it must be downloaded manually via zypper. (I couldn’t find it using the YaST Software Management module.)

A drawback to using the YaST module is that there doesn’t seem to be a way to add a new entry if what you want isn’t in the list; e.g. if you want to use the Trinity desktop, there’s no way to add TDM with the YaST Alternatives module because it’s not on the list.

Creating a configuration to enable a Display Manager might be very simple.
AFAIK at the moment, there are no slave configurations for any Display Manager, you only need the alternative to point to s particular file.
For something that simple, you can follow the guide I created for creating an alternative for gcc


What I do:

/usr/sbin/update-alternatives --install /usr/lib/X11/displaymanagers/default-displaymanager default-displaymanager /usr/lib/X11/displaymanagers/tdm 15

It might not also need to be said,
But a common mistake that was made using the YaST tool and might be overlooked by someone using update-alternatives is that you need to

  • Install the Display Manager package
  • Create the update-alternatives alternative if necessary.

Skipping one of the two results in failure, <both> are necessary.


Creating the alternative should not be necessary, that should actually be done by the package on installation.
If not, it would be a bug, but I’m pretty sure that has been changed accordingly for all DMs included in the distribution.

Comment 12 was about TDM, which I don’t believe fits the definition of “included in the distribution”.

No, that isn’t included, so it would indeed be necessary to create the alternatives entry (unless upstream would change their openSUSE packages to support that, or it uses its own systemd service anyway that “replaces” openSUSE’s display-manager.service).

I replied to comment#15 though.

It’s been requested:

The requested change looks fine to me, if they implement it correctly.

FTR, this is the corresponding change to openSUSE’s kdm(4) package, if you want to forward it: