Opened 3 years ago

Closed 10 months ago

#11679 closed enhancement (wontfix)

Move lxde to GTK3

Reported by: Pierre Labastie Owned by: Pierre Labastie
Priority: normal Milestone: 10.1
Component: BOOK Version: SVN
Severity: normal Keywords:
Cc:

Description

It seems that, using --enable-gtk3 options at several places, lxde can be built against GTK+3. This ticket is for showing progress in this direction.

Change History (26)

comment:1 by Pierre Labastie, 3 years ago

See also #11678

comment:2 by Pierre Labastie, 3 years ago

Owner: changed from blfs-book to Pierre Labastie
Status: newassigned

comment:3 by Bruce Dubbs, 3 years ago

Summary: Move lxde to GTK+3Move lxde to GTK3

comment:4 by Pierre Labastie, 3 years ago

lxpanel depends on libwnck and keybinder. There are two flavors of each of those libraries:

  • libwnck-2.x (depends on GTK+-2) and libwnck-3.x (depends on GTK+-2) are both in the book. The latter is needed if --enable-gtk3 is passed to lxpanel.
  • keybinder-0.3.1 (depends on GTK+-2) is in the book, but not keybinder-3.0-0.3.2 (depends on GTK+-3). Yet the latter is needed if --enable-gtk3 is passed to lxpanel. Note that the 3.0 flavor does not have python bindings, so that it does not depend on P2. Since the only package depending on keybinder is lxpanel, I'd be tempted to archive the keybinder page and replace with a keybinder-3.0 page. But maybe the 3.0 page could be added without archiving the former one first (according to the doc, both flavours can be installed alongside). So that lxde can still be built even if the move to GTK+3 is not completed.

comment:5 by Pierre Labastie, 3 years ago

Only tested lxsession for --enable-gtk3. If this flag is passed, several ".vala" files need to be recompiled, but they are not if the files "vala.stamp" exist. So issue "make clean" after configure. I guess this might be true also for other packages I have not tried yet...

comment:6 by Pierre Labastie, 3 years ago

keybinder-3.0 added at r21320

comment:7 by Pierre Labastie, 3 years ago

Time for report: I've built all what is in the book with GTK+3. The only difficulty has been the one identified in comment:5, but now comes testing. The first thing which strikes is that the bottom panel is not drawn in full. This is a known issue: https://sourceforge.net/p/lxde/bugs/773/ I found that if you:

  • right click on the panel to open "panel settings"
  • click on geometry/position/left (or right), then on bottom again

The panel is now displayed in full. Also as stated in the ticket, removing the desktop pager from the applets cures the problem.

The second thing is that the image in gpicview disappears when resizing the window or zooming the image. It is a known issue too: https://sourceforge.net/p/lxde/bugs/769/. The patch at https://sourceforge.net/p/lxde/patches/542/ seems to cure the problem, but maybe not fully, since the ticket is still open.

The third issue is also known (broken preview in lxappearance-obconf): https://sourceforge.net/p/lxde/bugs/768/. It is less annoying, I think. No fix seems to have been disclosed yet.

If I do not find a way to remove those problems, I'll "wontfix" this ticket. But let me search a little more.

comment:8 by Pierre Labastie, 3 years ago

Note that no work seems to have been done on bugs since 2017! The maintainer said somewhere that he hates GTK-3. <rant>Why did we remove LXQt (which works well with recent libraries, and has a nice look and feel) and keep lxde?</rant>

comment:9 by Bruce Dubbs, 3 years ago

I removed lxqt because of the overall maintenance burden. Just having to build qt with all its recommended dependencies is quite time consuming. lxde is much simpler.

comment:10 by Douglas R. Reno, 3 years ago

An interesting footnote:

Looking further ahead, the GTK version of LXDE will be dropped and all efforts will be focused on the Qt port. We, the main developers and administrators of the projects, will try to figure out where we align and where we have differences to grind out.

https://blog.lxde.org/2013/07/22/the-future-of-razor-and-lxde-qt/

I don't know if anything has changed since then, but PCManFM's creator having a serious disdain for GTK+-3 does not bode well for the future of LXDE. I get that it's lightweight, but it's not without its problems. One of those is that it doesn't start a dbus-session by default, as I have to start one myself in a terminal anytime I want to run a test suite for packages that need it (and I use LXDE to run tests for some GNOME components before I get a working GNOME Shell installed). Recent issues such as the LXPanel bug do not bode confidence either IMO. Because Qt5-based DEs start the user-session for dbus-daemon automatically upon startup, I don't have to worry about this. XFCE does it as well, but that goes into Thunar's dependency on GVFS.

https://blog.lxde.org/2013/03/26/pcmanfm-qt-0-1-0-released/

This is just my 0.02c though. As the guy who does GNOME, I will have different opinions than others.

comment:11 by Bruce Dubbs, 3 years ago

It looks to me like lxde-qt has died, although lxde has not. The references to lxde-qt are all dated 2013.

comment:12 by Douglas R. Reno, 3 years ago

LXDE-QT became LXQT. Sorry for the confusion on that.

comment:13 by Pierre Labastie, 3 years ago

Looks like I had almost all the bugs: https://build.opensuse.org/project/show/home:jcsl:LXDE-GTK3, and there is no hope they'll get fixed. So we need gtk2, but this brings in a couple of unmaintained deps (keybinder, libunique, python2 and pygtk, etc). lxde itself will become unmaintained in the near future, I guess.

So we should really put lxqt back (and remove lxde). It can be built with a lightweight Qt (only 4 modules IIRC), only a few kf5 libraries, and one plasma library. How we do that exactly, in order to minimize maintenance burden, I am not sure. Maybe have a page for lightweight Qt (maybe with more modules than just needed for lxqt, perhaps enough for building kf5 modules allowing to run our preferred KDE apps (k3b, kate, konsole), then another page for supplementary modules needed for full plasma and Falkon (this would not introduce more maintenance burden, since we already have two pages for Qt and qtwebengine). The only thing is that we would have two pages for kf5: one for the modules needed for lxqt and preferred KDE apps, and aonther one for full plasma. But if somebody tells me it puts too much maintenance burden, I'll tell her to just drop plasma from the book :)

comment:14 by Pierre Labastie, 3 years ago

Resolution: wontfix
Status: assignedclosed

I have not found fixes for the above bugs. Closing as "wontfix".

comment:15 by Bruce Dubbs, 2 years ago

Milestone: 8.59.0

Milestone renamed

comment:16 by Pierre Labastie, 12 months ago

Milestone: 9.010.1
Resolution: wontfix
Status: closedreopened

Reopening since, according to http://lists.linuxfromscratch.org/pipermail/blfs-dev/2020-September/037663.html, some bugs have been fixed.

comment:17 by Pierre Labastie, 12 months ago

Status: reopenednew

comment:18 by Pierre Labastie, 12 months ago

Status: newassigned

comment:21 by Pierre Labastie, 12 months ago

Thanks bdubbs. A list of the other known bugs: https://wiki.archlinux.org/index.php/LXDE#GTK_3_version.

comment:22 by Pierre Labastie, 12 months ago

Patch for gpicview at http://wiki.linuxfromscratch.org/patches/changeset/4200/ We do not use lxlauncher. There does not seem to be a patch for lx-appearance.

comment:23 by Pierre Labastie, 12 months ago

lxappearance-obconf bug is there, otherwise, everything seems ok. I am running a gtk2-free and moreover python2-free lxde desktop (including lxdm). Summary of modifications:

  • libfm: add --with-gtk=3
  • pcmanfm: add --with-gtk=3
  • lxpanel: use the patch and add --enable-gtk3. This allows to depend on libwcnk-3 and keybinder-3, so keybinder-2 and libwcnk-2 can be removed (or archived)
  • lxappearance: add --enable-gtk3
  • lxsession: remove *.stamps files in the top build directory, and add --enable-gtk3. Remove also dependency on libunique, which is bogus
  • all the applications, including lxdm: add --enable-gtk3. vte2 is not needed and can be removed (archived). Note that the optional dependency of qemu on vte2 is bogus.

comment:24 by Pierre Labastie, 12 months ago

Forgot to say the the gpicview patch is needed in addition to use --enable-gtk3.

comment:25 by Bruce Dubbs, 12 months ago

This looks very encouraging.

comment:26 by Pierre Labastie, 10 months ago

Resolution: wontfix
Status: assignedclosed

It has been decided that the lxappearance-obconf bug is a stopper. Closing as wontfix. We should move to lxqt, but find a way to not build a whole qt5...

Note: See TracTickets for help on using tickets.