Code Monkey home page Code Monkey logo

Comments (37)

tsujan avatar tsujan commented on July 19, 2024

A user shouldn't need to go through such loopholes.

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.

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

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

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

Apparently, it should never happen. Why has it been reported several times? This time, from Debian!

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

Apparently, it should never happen. Why has it been reported several times?

IMO when the user removes all "known" window managers w/o setting some existing into lxqt-config-session

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

Or there is a problem in the logic for checking if the window manager (its executable) is present...

from lxqt-session.

shirishag75 avatar shirishag75 commented on July 19, 2024

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
Package: task-lxqt-desktop
Version: 3.46
State: installed
Automatically installed: no
Priority: optional
Section: tasks
Maintainer: Debian Install System Team [email protected]
Architecture: all
Uncompressed Size: 6,144
Depends: tasksel (= 3.46), task-desktop, sddm, sddm-theme-debian-elarun | sddm-theme-debian-elarun, lxqt
Recommends: xsane, orca, libreoffice-gtk3, synaptic, libreoffice, libreoffice-help-en-us, mythes-en-us, hunspell-en-us, hyphen-en-us, system-config-printer
Description: LXQt
This task package is used to install the Debian desktop, featuring the LXQt desktop environment, and with other packages that Debian users expect to have available on the 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.

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

Can anyone, please, test the "abort" functionality with #181?

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

The other thing I did find is that xfwm does not seem to be a dependency of anything.

How is that? I see it:

Package: task-lxqt-desktop
Depends: tasksel (= 3.46), task-desktop, sddm, sddm-theme-debian-elarun | sddm-theme-debian-elarun, lxqt

Package: lxqt
Depends: featherpad, lximage-qt, lxqt-core (= 27), lxqt-about, lxqt-admin, lxqt-openssh-askpass, lxqt-powermanagement, lxqt-sudo, pavucontrol-qt | pavucontrol, qlipper | clipit | xfce4-clipman, qps, qterminal, qttranslations5-l10n, sddm-theme-debian-maui | sddm-theme | lightdm | gdm3 | lxdm | slim | nodm, xarchiver | ark | engrampa, xfwm4 | x-window-manager
Recommends: audacious | clementine | qmmp, calibre, cmst | nm-tray | network-manager-gnome | plasma-nm | wicd, smplayer, smtube, quassel | quassel-client | hexchat | irssi | weechat, qpdfview, gucharmap, firefox | www-browser, thunderbird | claws-mail | mutt

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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.

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

Second notice: This is not an upstream problem. So we can close this here.

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.

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

I mean, whether the user has chosen a WM or has left it blank, LXQt should behave more intelligently.

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

It should not happen at all when there is a WM that works with LXQt.

It wouldn't happen if all WMs that work with LXQt would be listed in windowmanagers.conf ...

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

If you mean /usr/share/lxqt/windowmanagers.conf, that's acceptable. Then why aren't they listed there for some users? Wrong compilation/package building? If @shirishag75 didn't use Debian, I'd say it was Ubuntu's fault. @agaida Do bad packages exist in Debian?

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

Here, /usr/share/lxqt/windowmanagers.conf is:

[KnownManagers]
openbox/Name=Openbox
openbox/Comment=Light-weight window manager

kwin/Name=KWin
kwin/Comment=Window manager of the KDE Software Compilation

kwin_x11/Name=KWin
kwin_x11/Comment=Window manager of the KDE Software Compilation

metacity/Name=Metacity
metacity/Comment=Window manager of the GNOME desktop environment

windowmaker/Name=Windowmaker
windowmaker/Comment=A classical lightweight window manager

e16/Name=Enlightenement 16

fvwm2/Name=Fvwm2
fvwm2/Comment=A classical lightweight window manager

xfwm4/Name=Xfwm4
xfwm4/Comment=A window manager for the Xfce desktop environment

sawfish/Name=Sawfish
sawfish/Comment="A lightweight, flexible window manager"

And ~/.config/lxqt/windowmanagers.conf is:

[General]
__userfile__=true

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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.

from lxqt-session.

palinek avatar palinek commented on July 19, 2024

if exactly 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.

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();
}

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

... given that we deliver in debian with preconfigured xfwm4

Probably, the problem is how that's done in Debian.

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

https://github.com/lxqt/lxqt-session/blob/master/config/session.conf - no comment without my lawyer :D

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

So, this is only about incomplete installation :D can be closed.

BTW, to @agaida's lawyer: Why doesn't Debian have audacious-qt5? I saw audacious in the recommends while audacious-qt5 has been quite stable for a long time.

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

But still: LXQt isn't intelligent enough in such cases..... So, maybe, there's still something to do.

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

Possible solution:

if (mWindowManager.isEmpty() || ! findProgram(mWindowManager.split(QL1C(' '))[0]))
{
   if (!automatically_select_an_existent_window_manager())
  { // failure
    show_selection_dialog();
  }
}

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

@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

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

@agaida IMO, showWmSelectDialog() frightens users and it's better to show it only when no WM of the list can be found.

As for audacious-qt5, I use it for a long time to listen to local music and Internet radios (sometimes. instead of Cantata). It should be compilable under Debian.

EDIT: audacious-plugins-qt5 + audacious-qt5

from lxqt-session.

E5ten avatar E5ten commented on July 19, 2024

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.

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

@E5ten Please don't start that discussion again! LXQt works with any DE-independent WM. Moreover, the subject is very different here.

from lxqt-session.

shirishag75 avatar shirishag75 commented on July 19, 2024

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 ?

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

@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.

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

As for audacious-qt5, I use it for a long time to listen to local music and Internet radios (sometimes. instead of Cantata). It should be compilable under Debian.

@tsujan: it's, but as i said - that was not the problem

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

@palinek - if i understand your comment right:

And that's exactly what happens right now ...

Wouldn't it be clever just to remove the WM setting from our default configuration?

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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.

@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)

from lxqt-session.

tsujan avatar tsujan commented on July 19, 2024

How should the lxqt-session react on the next start

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 ;)

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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:
a) we can abort the session - this would be the "nuclear" option - fallback to the DM, not wise - that will change nothing to the good - because normally we have only one session, that will lead to chaos
b) we force the user to choose a WM - bad if the windowmanagers.conf is not found - looks like the screenshot again. But the user could choose a program[1] - with a bit of knowledge a user is able to identify a window-manager πŸ˜„
c) if the windowmanger.conf is read - right now a to small window with the identified WMs pop up - not that scare, but far from good - we should select a WM as suggested and suppress the dialog. (@palinek)
d) The user deleted the current WM - the dialog would appear - we just search for an installed WM from the list and select it(@tsujan)
e) if any thing else fails - show the dialog

c) and d) would be the rightβ„’ thing to do - if this fails e)

Steps to solve

  • implement c) and d)
  • make the dialog less scary
  • implement the damn list lxqt/lxqt#1584

[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.

from lxqt-session.

shirishag75 avatar shirishag75 commented on July 19, 2024

Are there any downsides in implementing the list ?

And btw are all the windowmanagers.conf the same ?

$ apt-file search windowmanagers.conf
lxqt-branding-debian: /etc/xdg/lxqt/windowmanagers.conf
lxqt-common: /etc/xdg/lxqt/windowmanagers.conf
lxqt-session: /usr/share/lxqt/windowmanagers.conf
razorqt-data: /etc/xdg/razor/windowmanagers.conf

I also saw that lxqt-common was not installed, installing it meant uninstalling whole lot of other lxqt stuff.

~$ sudo aptitude install lxqt-common
The following NEW packages will be installed:
  lxqt-common xfwm4-theme-breeze{a} 
0 packages upgraded, 2 newly installed, 0 to remove and 4 not upgraded.
Need to get 3,246 kB of archives. After unpacking 4,113 kB will be used.
The following packages have unmet dependencies:
 lxqt-notificationd : Breaks: lxqt-common (< 0.12.0) but 0.11.2-2 is to be installed

Not sharing the whole list as that would be apparent.

I also saw the contents of /usr/share/lxqt/windowmanagers.conf and /etc/xdg/lxqt/windowmanagers.conf . It just seems you should just add the names of other window managers to the list. I didn't see any logic or something which prevents adding the other names to the list.

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

<sarcasm>oh, lxqt-common is not installable? Surprising.</sarcasm>
lxqt/lxqt#1234 <-- Thats where it starts
https://lxqt.org/release/2017/10/21/lxqt-0120/ - common is dropped in 0.12.0
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=908945
https://bugs.launchpad.net/ubuntu/+source/lxqt-common/+bug/1781287

from lxqt-session.

agaida avatar agaida commented on July 19, 2024

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

from lxqt-session.

zabbal avatar zabbal commented on July 19, 2024

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?

from lxqt-session.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.