Hi, just for completeness, fvogt helped on #plasma to resolve the issue:
this seems to cause the issue https://bugs.gentoo.org/644718#c0 This fixes the problem https://github.com/sddm/sddm/pull/1010/files Rainer Am Dienstag, 15. Mai 2018, 17:26:03 CEST schrieb Rainer Dorsch: > Hi, > > small addition: > > There is at least one user on #debian-kde who claims that sddm and > switchuser works for him. > > For sddm this line should apply in kdisplaymanager.cpp: > > return exec("caps\n", re) && re.indexOf("\tlocal") >= 0; > > What does that do? I do not find a file caps which can be executed :-/ > > Thanks > Rainer > > On Dienstag, 15. Mai 2018 17:12:25 CEST you wrote: > > Hi, > > > > I digged a little further: > > > > On Dienstag, 15. Mai 2018 09:02:52 CEST Rainer Dorsch wrote: > > > Hi, > > > > > > I have an issue with switch user in ksmserver on my newly installed > > > Debian > > > buster system (plama-workspaces 5.12.5): > > > > > > When I try to swich user, I get the switchuser dialog displayed, but > > > when > > > I > > > click on switch, I get to my own session's lockscreen. This doesn't seem > > > to > > > be a general issue, there is at least one person on #debian-kde who > > > reports > > > that switching users works for him. > > > > > > I traced the code and ended up in > > > > > > /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/userswit > > > ch > > > er / UserSwitcher.qml > > > > That gets executed, modifying the text of a button took effect, nice that > > it is a scripting language... :-) > > > > > Since I am not an qml writer (or reader ;-) I was so far not able to > > > find > > > out what > > > > > > sessionsModel.switchUser(block.userListCurrentModelData.vtNumber, > > > sessionsModel.shouldLock) > > > > > > does. As a first test, can I add a log statement to test, if that line > > > in > > > the code is really reached (maybe just log to /tmp/switchuserdebug.log)? > > > > > > Any idea is welcome. > > > > ...and I am back in sessionsmodel.cpp > > > > it seems there are a few return statements which effectively (as I > > understand it) simply skip the switch user. That is what I actually see. > > > > void SessionsModel::switchUser(int vt, bool shouldLock) > > { > > > > if (vt < 0) { > > > > startNewSession(shouldLock); > > return; > > > > } > > > > if (!canSwitchUser()) { > > > > return; > > > > } > > > > if (!shouldLock) { > > > > m_displayManager.switchVT(vt); > > emit switchedUser(vt); > > return; > > > > } > > > > checkScreenLocked([this, vt](bool locked) { > > > > if (locked) { > > > > // already locked, switch right away > > m_displayManager.switchVT(vt); > > emit switchedUser(vt); > > > > } else { > > > > m_pendingReserve = false; > > m_pendingVt = vt; > > > > emit aboutToLockScreen(); > > m_screensaverInterface->Lock(); > > > > } > > > > }); > > > > } > > > > In particular I suspect that the > > > > if (!canSwitchUser()) { > > > > return; > > > > } > > > > is executed: > > > > bool SessionsModel::canSwitchUser() const > > { > > > > return const_cast<SessionsModel > > > > *>(this)->m_displayManager.isSwitchable() && > > KAuthorized::authorizeAction(QLatin1String("switch_user")); > > } > > > > Unfortunately, for me it is not clear, what could > > KAuthorized::authorizeAction(QLatin1String("switch_user") make false or > > how > > I can validate if SessionsModel *>(this)->m_displayManager.isSwitchable() > > is true. > > > > Looking at isSwitchable: > > > > bool > > KDisplayManager::isSwitchable() > > { > > > > if (DMType == NewGDM || DMType == LightDM) { > > > > QDBusObjectPath currentSeat; > > if (getCurrentSeat(0, ¤tSeat)) { > > > > SystemdSeat SDseat(currentSeat); > > if (SDseat.isValid()) { > > > > QVariant prop = SDseat.property("CanMultiSession"); > > if (prop.isValid()) > > > > return prop.toBool(); > > > > } > > CKSeat CKseat(currentSeat); > > if (CKseat.isValid()) { > > > > QDBusReply<bool> r = > > > > CKseat.call(QStringLiteral("CanActivateSessions")); > > > > if (r.isValid()) > > > > return r.value(); > > > > } > > > > } > > return false; > > > > } > > > > if (DMType == OldKDM) > > > > return dpy[0] == ':'; > > > > if (DMType == OldGDM) > > > > return exec("QUERY_VT\n"); > > > > QByteArray re; > > > > return exec("caps\n", re) && re.indexOf("\tlocal") >= 0; > > > > } > > > > Is sddm covered here? > > > > Trying with lightDM as default display manager....and the problem goes > > away > > > > :-) > > > > Is it true that sddm is not supported? I am surprised since switchuser > > worked with sddm for me in Debian Stretch (plasma-5.8.6)? > > > > Also it would helped me tremendously, if a log entry (or even a pop-up > > message...) would have been produced instead of a silent failure.... It > > seems that would not add a lot of code... > > > > Thanks > > Rainer -- Rainer Dorsch Beatus-Widmann-Str. 5 72138 Kirchentellinsfurt 07157-734133 email: fdb...@bokomoko.de