-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lxqt-session - make WM selection smarter #235
Comments
I agree completely. @agaida Is it fixed in the latest git? This isn't the first time that message box is shown in a report. I don't remember how the other reports were closed but, IMO, a user should never encounter it. Starting without any window manager is much better than showing this message and, if there is a WM installed on the user's system, it should be selected automatically. I hope this has become totally impossible with the latest git; otherwise, it'll be a release blocker. |
This window is shown, if currently configured WM is not found: // If previuos WM was removed, we show dialog.
if (mWindowManager.isEmpty() || ! findProgram(mWindowManager.split(QL1C(' '))[0]))
{
mWindowManager = showWmSelectDialog();
settings->setValue(QL1S("window_manager"), mWindowManager);
settings->sync();
} The list of known window managers is taken from {XDG}/lxqt/windowmanagers.conf: WindowManagerList getWindowManagerList(bool onlyAvailable)
{
LXQt::Settings cfg(QSL("windowmanagers"));
cfg.beginGroup(QSL("KnownManagers"));
const QStringList names = cfg.childGroups();
WindowManagerList ret;
for (const QString &name : names)
{
bool exists = findProgram(name);
if (!onlyAvailable || exists)
{
cfg.beginGroup(name);
WindowManager wm;
wm.command = name;
wm.name = cfg.localizedValue(QSL("Name"), wm.command).toString();
wm.comment = cfg.localizedValue(QSL("Comment")).toString();
wm.exists = exists;
ret << wm;
cfg.endGroup();
}
}
return ret;
} The default windowmanagers.conf config is here. ... and I agree that the dialog should have a "Leave session" button |
Apparently, it should never happen. Why has it been reported several times? This time, from Debian! |
IMO when the user removes all "known" window managers w/o setting some existing into |
Or there is a problem in the logic for checking if the window manager (its executable) is present... |
I have two desktops installed, one is debian-mate and the other debian-lxqt . The other thing I did find is that xfwm does not seem to be a dependency of anything if it's the default window manager. It should be at the very least be a dependency of task-lxqt-desktop or something more appropriate. $ aptitude show task-lxqt-desktop The more perplexing question to me is why it couldn't find lightdm ? Perhaps because it's GTK2 based ? The problem with this choice is it allows you to traverse through directories and folders if you click on other but most users would be clueless as to what to do. |
Can anyone, please, test the "abort" functionality with #181? |
How is that? I see it: Package: task-lxqt-desktop Package: lxqt |
will have a look later - and @palinek, you are right lxqt depend on xfwm4|x-window-manager means that there must be a window manager installed, with xfwm4 as default alternative. That also means that xfwm4 will not be installed when a different WM is installed. The delivered configuration defaults to xfwm4 - so one has to chose the WM - we need a windows manager, so an abort don't make any sense at this point. Second notice: This is not an upstream problem. So we can close this here. Edit: We should check the WM list - but thats a different problem. |
I may be very ignorant in this case and what I'm going to say may sound irrational: It should not happen at all when there is a WM that works with LXQt. |
I mean, whether the user has chosen a WM or has left it blank, LXQt should behave more intelligently. |
It wouldn't happen if all WMs that work with LXQt would be listed in |
If you mean |
Here,
And
|
The issue is with the default settings - given that we deliver in debian with preconfigured xfwm4 - so if xfwm4 isn't installed the session management has to ask which WM to use. So possible WMs should be listed in the dialogue, we should test this. But an abort button will not help in this case we just need a WM :) - behave more intelligent would be a solution - if at least one WM from the list is found: Use that - if more than one WM is found and the WMs found are not the current config - display the dialogue. Best outcome would be: We don't deliver any pre-configuration and if only one WM is installed we take this installed and recognized WM as default. |
And that's exactly what happens right now: QString LXQtModuleManager::showWmSelectDialog()
{
WindowManagerList availableWM = getWindowManagerList(true);
if (availableWM.count() == 1)
return availableWM.at(0).command;
WmSelectDialog dlg(availableWM);
dlg.exec();
return dlg.windowManager();
} |
Probably, the problem is how that's done in Debian. |
https://github.com/lxqt/lxqt-session/blob/master/config/session.conf - no comment without my lawyer :D |
So, this is only about incomplete installation :D can be closed. BTW, to @agaida's lawyer: Why doesn't Debian have |
But still: LXQt isn't intelligent enough in such cases..... So, maybe, there's still something to do. |
Possible solution: if (mWindowManager.isEmpty() || ! findProgram(mWindowManager.split(QL1C(' '))[0]))
{
if (!automatically_select_an_existent_window_manager())
{ // failure
show_selection_dialog();
}
} |
@tsujan - thats why i shared my thoughts how things could/should work re: audacious-qt5 - a year ago the qt5 version was subpar, the parts that was not the frontend still depend on gtk - so the maintainer finally gave up. Maybe it's now time to re-evaluate. I dropped my own audacious packaging because of the same reasons. Edit: tried to deliver siduction with audacious-qt, but the user experience was not that funny |
@agaida IMO, As for EDIT: audacious-plugins-qt5 + audacious-qt5 |
I think that xfwm4 being the default WM installed with LXQt on debian doesn't make sense. LXQt should not be requiring GTK when other WMs that don't require GTK, like openbox or kwin, exist. |
@E5ten Please don't start that discussion again! LXQt works with any DE-independent WM. Moreover, the subject is very different here. |
Hi all, I think couple of points are missing. If it would have happened in the first session itself which didn't have all the packages having experimental snapshots then I would have been at fault. But this happened after I changed/upgraded to most packages having experimental-snapshots. The only package I didn't upgrade was the one which has the new virtual ABI . Another thing which I should have written is - lightdm is THE display manager instead of sddm , there is a serious/grave bug at least in Debian and anyways I have trusted lightdm for long. marco is the window manager in debian-mate which is forked from metacity . So, is it that lxqt-session would work ONLY with xfwm4 or also with metacity ? If it works with metacity then maybe just adding marco to /usr/share/lxqt/windowmanagers.conf might be all that is needed ? |
@E5ten - you shoudl read lxqt/lxqt#1011 completely - if you have any new insights that was not mentioned there - add it in #1011 @shirishag75 - for you only we could make it short: lxqt/lxqt#1011 (comment) -- a relod or two might be needed the numbers are in the hidden comments. And no, we don't consider lightdm as a good choice. And please forget about some bugs in debian - they are not relevant. I would guess all RC-bugs will be fixed before the next debian release (at least that is what the debian release team say: It is done, when it is done aka the release is finally ready when the RC-Bugcounter is exactly 0) anyways - i know that the selection work fine once they are set - as @tsujan said we should make the selection a bit smarter. |
@tsujan: it's, but as i said - that was not the problem |
@palinek - if i understand your comment right:
Wouldn't it be clever just to remove the WM setting from our default configuration? |
@tsuan - with the explanation from @palinek the whole session should work unconfigured as long as at least one WM is found. So what to do with more than one installed and no one configured? Given that we remove the preset to openbox/xfwm4/anything_else - how should the system react. Having a windowmanager started will improve the usability of LXQt dramatically 😎 Edit: Second question - in a fictional system i have xfwm4, openbox, kwin_x11 and marco installed. My configured WM in user config is openbox. Now i get bored of it and purge openbox. How should the lxqt-session react on the next start (openbox is still configured in the user settings) |
Instead of showing that frightening dialog, LXQt can choose the next compatible WM that's installed on your system. If you don't like it, you could easily change it. Only if there's no other WM, the dialog could show up -- although I don't know how useful it could be then ;) |
it can be useful - we will never ever have any possible WM (and their binary names in our list) - but regarding the choice - you are right, sounds sensible |
so - i tested a bit with the current code - and the result was more or less a total desaster. it might be that i've done something wrong. The meaning of @shirishag75's screenshot is crystal clear - no WM from the windowmanager.conf found in his installation. Mate has marco afaik. It is more or less the same thing what happend with Lubuntu and the not readed configuration. The WM dialog appears. Now there are some situations we can discuss: c) and d) would be the right™ thing to do - if this fails e) Steps to solve
[1] if one want a bit fun - select xterm from with the dialog - that was more or less the behaviour of an unconfigured twm or so - X started, on terminal pops up, no decorations etc. EDIT: With c) and d) implemented we wouldn't even had to change the session.conf away from openbox - if it is not installed e) jumps in and all things are fine. It would be nice if we could handle that with top priority. |
Are there any downsides in implementing the list ? And btw are all the windowmanagers.conf the same ?
I also saw that lxqt-common was not installed, installing it meant uninstalling whole lot of other lxqt stuff.
Not sharing the whole list as that would be apparent. I also saw the contents of |
<sarcasm>oh, lxqt-common is not installable? Surprising.</sarcasm> |
We should really address this issue before a the debian freeze - but it is no direct release blocker, can be done with a point release |
refs lxqt/lxqt/issues/1583 It will wreck the WM logic if openbox is not installed, the dialog will appear, even if not needed.
refs lxqt/lxqt/issues/1583 It will wreck the WM logic if openbox is not installed, the dialog will appear, even if not needed.
Somewhat related: If want to add new window manager to thelist of compatible WMs so it can be choosen in session configuration - how do I do that? |
For some unknown reason, when I entered for a lxqt session, lxqt asked me for the default window manager
There is/was no way to take the screenshot unless was in a VM hence reused the picture shared on the forum.
now if you look at the dialog box it doesn't give you any hint how do you get out of the session to come to the default login screen and the user is sort of stuck there.
I was able to use CTRL+ALT+Fn to come to a terminal emulator, shutdown lightdm via systemctl and restart lightdm to get the login screen, go to mate-desktop, look up https://forum.lxqt.org/t/selecting-default-window-manager-in-lxqt-0-13-0/309 and use the settings shared by agaida at https://forum.lxqt.org/t/selecting-default-window-manager-in-lxqt-0-13-0/309/7 , copy the needful to
/etc/xdg/lxqt/session.conf
and was able to login.A user shouldn't need to go through such loopholes.
FWIW, there is/was no file named session.conf in
/etc/xdg/lxqt/
Update - I removed session.conf in
/etc/xdg/lxqt/
and tried logging in again and this time it worked, dunno the reason why it worked this time but not the other time.System credentials in case they throw any more light -
The text was updated successfully, but these errors were encountered: