Skip to content
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

Unable to open [Customize Look and Feel] (lxappearance) in Bullseye #4687

Closed
pinipon opened this issue Aug 24, 2021 · 22 comments
Closed

Unable to open [Customize Look and Feel] (lxappearance) in Bullseye #4687

pinipon opened this issue Aug 24, 2021 · 22 comments

Comments

@pinipon
Copy link

pinipon commented Aug 24, 2021

Creating a bug report/issue

Required Information

  • DietPi version | cat /boot/dietpi/.version
    G_DIETPI_VERSION_CORE=7
    G_DIETPI_VERSION_SUB=5
    G_DIETPI_VERSION_RC=2
    G_GITBRANCH='master'
    G_GITOWNER='MichaIng'

  • Distro version | echo $G_DISTRO_NAME or cat /etc/debian_version
    bullseye

  • Kernel version | uname -a
    Linux ifmtvpi2 5.10.52-v7+ #1441 SMP Tue Aug 3 18:10:09 BST 2021 armv7l GNU/Linux

  • SBC model | echo $G_HW_MODEL_NAME or (EG: RPi3)
    RPi 3 Model B+ (armv7l)

  • Power supply used | (EG: 5V 1A RAVpower)
    5V 3A

  • SDcard used | (EG: SanDisk ultra)
    ADATA HC I

Additional Information (if applicable)

  • Software title:
    LXDE

  • Was the software title installed freshly or updated/migrated?
    freshly

  • Can this issue be replicated on a fresh installation of DietPi?
    Yes

  • Bug report ID | echo $G_HW_UUID

Steps to reproduce

  1. Bullseye freshly installed, LXDE, autologin user => dietpi
  2. Once in LXDE, click on Preferences->Customize Look and Feel
  3. Nothing happens
  4. Running command "lxappearance" on terminal returns "Segementation fault
  5. Same procedure repeated as user root: same result as above

Expected behaviour

  • openning [Customize Look and Feel / lxappearance] should open a window similar in previous release (Buster)

Actual behaviour

  • No window appears.
  • Segmentation fault

Extra details

  • please ask me
@Joulinar
Copy link
Collaborator

@MichaIng
I'm not sure if there is any relation to #1558
At least I found some statements about hanging lxappearance

@MichaIng
Copy link
Owner

MichaIng commented Aug 25, 2021

Probably there are additional packages pulled from the RPi repo related to the RPi desktop which we need to exclude now. I set the pins conservative, only blocking those packages known to cause issues or being installed by default with LXDE, but it seems better to block a larger range of everything that is related to the RPi desktop to be future prove and have a pure Debian LXDE desktop. Quite nasty that this is not an own repository component anymore so that it can be added and removed easily.

I'll run some tests, but @pinipon could you show the output of the following command, please:

dpkg -l | grep 'rpt'

@pinipon
Copy link
Author

pinipon commented Aug 25, 2021

dietpi@DietPi:~$ dpkg -l | grep 'rpt'
ii  alsa-utils                     1.2.4-1+rpt1                   armhf        Utilities for configuring and using ALSA
ii  gpicview                       0.2.5-3+rpt1                   armhf        lightweight image viewer
ii  gtk-update-icon-cache          3.24.24-4+rpt2                 armhf        icon theme caching utility
ii  libasound2:armhf               1.2.4-1.1+rpt1                 armhf        shared library for ALSA applications
ii  libasound2-data                1.2.4-1.1+rpt1                 all          Configuration files and profiles for ALSA drivers
ii  libatopology2:armhf            1.2.4-1.1+rpt1                 armhf        shared library for handling ALSA topology definitions
ii  libcairo-gobject2:armhf        1.16.0-5+rpt1                  armhf        Cairo 2D vector graphics library (GObject library)
ii  libcairo2:armhf                1.16.0-5+rpt1                  armhf        Cairo 2D vector graphics library
ii  libfm-data                     1.3.2-1+rpt2                   all          file management support (common data)
ii  libfm-extra4:armhf             1.3.2-1+rpt2                   armhf        file management support (extra library)
ii  libfm-gtk-data                 1.3.2-1+rpt2                   all          file management support (GTK+ library common data)
ii  libgtk-3-0:armhf               3.24.24-4+rpt2                 armhf        GTK graphical user interface library
ii  libgtk-3-common                3.24.24-4+rpt2                 all          common files for the GTK graphical user interface library
ii  libgtk2.0-0:armhf              2.24.33-2+rpt1                 armhf        GTK graphical user interface library - old version
ii  libgtk2.0-common               2.24.33-2+rpt1                 all          common files for the GTK graphical user interface library
ii  libobrender32v5                3.6.1-9+rpt1+deb11u1           armhf        rendering library for openbox themes
ii  libobt2v5                      3.6.1-9+rpt1+deb11u1           armhf        parsing library for openbox
ii  libpolkit-agent-1-0:armhf      0.105-31+rpt1                  armhf        PolicyKit Authentication Agent API
ii  libpolkit-gobject-1-0:armhf    0.105-31+rpt1                  armhf        PolicyKit Authorization API
ii  lxlock                         0.5.5-2+rpt2                   all          simple locking utility for LXDE
ii  lxpolkit                       0.5.5-2+rpt2                   armhf        LXDE PolicyKit authentication agent
ii  lxsession                      0.5.5-2+rpt2                   armhf        LXDE default session manager
ii  lxsession-data                 0.5.5-2+rpt2                   all          Common files for lxsession
ii  lxsession-edit                 0.5.5-2+rpt2                   armhf        configure what application start up automatically in LXDE
ii  lxsession-logout               0.5.5-2+rpt2                   armhf        utility to logout from a LXDE or an Openbox session
ii  lxterminal                     0.4.0-1+rpt2                   armhf        LXDE terminal emulator
ii  openbox                        3.6.1-9+rpt1+deb11u1           armhf        standards-compliant, fast, light-weight and extensible window manager
ii  policykit-1                    0.105-31+rpt1                  armhf        framework for managing administrative policies and privileges

Same output on both images 32-bit ARMv6 and ARMv7. In 64-bit ARMv8 image I'm able to open lxappearance correctly.

@MichaIng MichaIng added this to the v7.6 milestone Aug 26, 2021
@MichaIng
Copy link
Owner

MichaIng commented Aug 26, 2021

I changed the blacklist to a wider range of packages via wildcards: ccd551f
On my tests this fixed lxappearance and as well another error on LXDE start, as the RPi desktop guys added a new option to package A which was excluded but used by package B which was not excluded...

A pain that the RPi desktop uses the "main" component of the repo without having package names adjusted and becoming more and more incompatible with plain LXDE... And I'm not sure which parts are only related to the desktop design choices and which parts may include hardware acceleration enhancements. E.g. I also checked what changes to ALSA were made, and there it is an additional config file for the RPi onboard soundcard, which we want to keep. Don't ask me why this is not shipped as a single file via pi-gen or raspberrypi-sys-mods or so, but the whole alsa-utls, libasound2 etc shipped for this single added file...

... sorry for my little frustration here, so this is how you can apply the fix on your running system:

sed -i '/^Package:/c\Package: openbox obconf libob* pcmanfm libfm* libgtk* lxpanel* lxsession*' /etc/apt/preferences.d/dietpi-lxde
dpkg -r --force-depends libfm-data libfm-extra4 libfm-gtk-data libgtk-3-0 libgtk-3-common libgtk2.0-0 libgtk2.0-common libobrender32v5 libobt2v5 lxsession lxsession-data lxsession-edit lxsession-logout openbox
apt -f install

I didn't test every setting and desktop tool, so would be great if you could apply the fix and report back if there is any issue left or introduced by it.

Changelog: dfce08c

MichaIng added a commit that referenced this issue Aug 26, 2021
+ CHANGELOG | LXDE: Resolved an issue on Raspberry Pi, where calling lxappearance (Customize Look and Feel) failed due to incompatible RPi desktop packages. Many thanks to @pinipon for reporting this issue: #4687
@pinipon
Copy link
Author

pinipon commented Aug 26, 2021

lxappearance issue is solved with your fix above but breaks ["Desktop Pager" Settings] which is managed by package obconf (installed after LXDE installation).

My procedure for [Desktop Pager]:

  1. 32-bit fresh install with LXDE
  2. lxappearance not working
  3. Right click on Task bar => Panel Settings => Panel Applets => Add => Desktop Pager
  4. Right click on Desktop Pager => Desktop Pager Settings : not available (which is normal behaviour because obconf is not installed)
  5. sudo apt install obconf
  6. repeat step 4 => Desktop Pager Settings / obconf window is opened => ok
  7. Run your fix above
  8. lxappearance works
  9. repeat step 4 => Desktop Pager Settings / obconf doesn't open obconf window anymore
  10. running obconf in terminal result in Segmentation fault

Another issue is Preferences => Setup Hot Keys: result in Error: Window manager Openbox isn't supported now, sorry. in both 32-bit and 64-bit Bullseye images (tested in fresh install)

@MichaIng
Copy link
Owner

Ah, so obconf needs to be appended to the first line of /etc/apt/preferences.d/dietpi-lxde as well. In your case:

sed -i '/^Package:/c\Package: openbox obconf libob* pcmanfm libfm* libgtk* lxpanel* lxsession*' /etc/apt/preferences.d/dietpi-lxde
dpkg -r --force-depends obconf
apt install obconf

@pinipon
Copy link
Author

pinipon commented Aug 27, 2021

Thank you for your fix. Now it works.
Remaining LXDE desktop issue is Preferences => Setup Hot Keys which is managed by package lxhotkey. Running this package results in error window: Error: Window manager Openbox isn't supported now, sorry. (this issue is both on 32 and 64-bit images)

@MichaIng
Copy link
Owner

MichaIng commented Aug 28, 2021

I was thinking to block all lx* packages, was just afraid there may be some below which are not related to LXDE. But actually it is easy to verify that there is no need to worry: https://archive.raspberrypi.org/debian/pool/main/l/
Those lxplug- panel plugin packages do not exist on Debian, but they also are specific for the Raspberry Pi desktop, network stack etc, e.g. the network one is for configuring dhcpcd (which we do not use), cputemp for sure invokes vcgencmd, while the generic /sys tunable (and hence the default CPU temp plugin) work exactly the same way, also with less overhead. I didn't test the others, but I do not think they would be used much anyway (as not pre-installed) and everything can be configured via dietpi-tools or native Debian/LXDE plugins, and there is no guarantee these work (or will work in the future) with the Debian lxpanel. So better to block all together, so be on the same side.

But lxhotkey (I guess you mean lxhotkey-gtk)? Is not part of those. Probably it is conflicting with one of the other still installed rpt packages on your system. Can you check again which one is still there?

dpkg -l | grep 'rpt'

EDIT: I further generalised the block to cover also *-dev, *-dbgsym and similar packages: b2b3390

EDIT2: Live patch PR up: #4696
It patches dietpi-software for new LXDE installs as well as existing blocklists.

@pinipon
Copy link
Author

pinipon commented Aug 28, 2021

Yes it's lxhotkey-gtk (sorry, my mistake).

dietpi@DietPi:~$ dpkg -l | grep 'rpt'
ii  alsa-utils                     1.2.4-1+rpt1                   armhf        Utilities for configuring and using ALSA
ii  gpicview                       0.2.5-3+rpt1                   armhf        lightweight image viewer
ii  gtk-update-icon-cache          3.24.24-4+rpt2                 armhf        icon theme caching utility
ii  libasound2:armhf               1.2.4-1.1+rpt1                 armhf        shared library for ALSA applications
ii  libasound2-data                1.2.4-1.1+rpt1                 all          Configuration files and profiles for ALSA drivers
ii  libatopology2:armhf            1.2.4-1.1+rpt1                 armhf        shared library for handling ALSA topology definitions
ii  libcairo-gobject2:armhf        1.16.0-5+rpt1                  armhf        Cairo 2D vector graphics library (GObject library)
ii  libcairo2:armhf                1.16.0-5+rpt1                  armhf        Cairo 2D vector graphics library
ii  libpolkit-agent-1-0:armhf      0.105-31+rpt1                  armhf        PolicyKit Authentication Agent API
ii  libpolkit-gobject-1-0:armhf    0.105-31+rpt1                  armhf        PolicyKit Authorization API
ii  lxlock                         0.5.5-2+rpt2                   all          simple locking utility for LXDE
ii  lxpolkit                       0.5.5-2+rpt2                   armhf        LXDE PolicyKit authentication agent
ii  lxterminal                     0.4.0-1+rpt2                   armhf        LXDE terminal emulator
ii  policykit-1                    0.105-31+rpt1                  armhf        framework for managing administrative policies and privileges

In the meantime, I solved the issue of lxhotkey-gtk by simply installing the package lxhotkey-plugin-openbox:
sudo apt install lxhotkey-plugin-openbox
Now it works.

@MichaIng
Copy link
Owner

Okay, I guess this is expected. lxhotkey-plugin-openbox is a recommendation but not a dependency of lxhotkey-gtk > lxhotkey-core, and on DietPi recommendations are not installed by default.

@pinipon
Copy link
Author

pinipon commented Aug 29, 2021

Yes lxhotkey-plugin-openbox is a recommendation, not a dependency. But, once one install LXDE, as lxhotkey-gtk is installed by default and create an entry menu in [Preferences] section, you will get this error window/message by default if you click [Setup Hot Keys] and have to spend some time investigating how to correct this error. Now the question is: do you prefer to leave this situation in place at the price to maintain a strictly minimal image or could you sacrifice the installation of one recommended package to avoid this situation and to be ready OTB?
Look, despite the fact that not all my RPi projects where I use/need LXDE need hotkeys, in my case I could simply edit the file home/dietpi/.config/openbox/lxde-rc.xml and add my hotkeys in it, but it is not convenient and it is really working under the hood... and I don't like to leave my users with entries generating errors.

Anyway, I want to thank you for your very valuable support and quick replies on these issues, and this why I made a good choice to work exclusively with DietPi images on all my RPi Projects (with and without LXDE).

From my side you can close the topic.

@pinipon
Copy link
Author

pinipon commented Aug 30, 2021

Well... I'm struggling now to change icon theme to papirus-icon-theme. I don't know if it is related to the issues above, but when I'm installing the package:

apt install papirus-icon-theme

the icon theme is not correctly loaded in [Customize Look and Feel] (lxappearance).
Same issue in 32 and 64-bit Bullseye image. This not happens in Buster images, it worked well in previous release.

Do you have an idea to solve this issue?

@MichaIng
Copy link
Owner

In your 2nd last post, I'll verify this on VM, as actually I tested every menu entry once on Bullseye LXDE, a while ago. When verified, I agree then the plugin should be installed by default. Not nice to have a menu entry when it cannot be used.

About the icon theme: What do you mean by "not correctly loaded"? Can you check the X server logs for errors, in case? When its a root session, /var/log/Xorg.0.log, when its a non-root user session, it should be in ~/.local/share/xorg/Xorg.0.log.

Another idea to get error outputs: Start lxappearance from terminal emulator, so it should contain outputs afterwards.

We could go through the remaining RPi desktop packages, starting with gtk-update-icon-cache and then the cairo libs, blacklisting and replacing them with the Debian ones step by step and see whether this helps.

@MichaIng
Copy link
Owner

Both verified: I'll add the lxhotkey plugin to be installed by default with LXDE.

Not sure about the icon theme, so its not an issue with the RPi desktop, but a general Bullseye issue (if it worked on Buster). Not sure if this bug report is related: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=982901

Switching between Adwaita and nuoveXT works well. breeze-icon-theme doesn't work either, but faenza-icon-theme works. Breeze is for KDE plasma desktop, so probably it is expected to miss the icons for LXDE/pcmanfm.

The is a newer Papirus version available via backports: https://packages.debian.org/bullseye-backports/papirus-icon-theme
But this doesn't fix the issue. I tend to think that it is an issue with LXDE. As I have not really an idea what the issue is, we should report it to the Debian bug tracker: https://www.debian.org/Bugs/Reporting

@pinipon
Copy link
Author

pinipon commented Aug 31, 2021

apt install librsvg2-common

solve the issue with any icon-theme. So, it would be nice if you could install this package by default when one choose LXDE desktop on dietpi-software

@MichaIng
Copy link
Owner

MichaIng commented Sep 1, 2021

Great find. How did you find out about this?

This package was pulled as dependency with the Adwaita icon theme until Buster: https://packages.debian.org/buster/adwaita-icon-theme
But it has been degraded to a recommendation with Bullseye and is hence not automatically installed anymore: https://packages.debian.org/bullseye/adwaita-icon-theme

Actually best would be if all icon themes, which depend on this additional SVG library, pull it as dependency. Adwaita works without it (probably not every icon, not sure), so the degradation makes sense. But breeze and papirus do not even apply at all, so to me it looks like they should have it added.
EDIT: Makes sense as breeze and papirus are 100% SVG icons, while Adwaita is mostly PNG, only a small number of "actions" icons are SVGs. I actually wonder why librsvg2-2 is not sufficient, which is pulled in with LXDE on Bullseye as well.

@pinipon
Copy link
Author

pinipon commented Sep 2, 2021

I decided to install each icon theme on the repository and issues are solved after installing gnome-icon-theme. Looking at the logs, librsvg2-common is installed as a dependency of gnome-icon-theme, so I tried a fresh install+librsvg2-common and it solved breeze-icon-theme and papirus-icon-theme as well.

@MichaIng
Copy link
Owner

MichaIng commented Sep 2, 2021

Awesome. So gnome-icon-theme can be taken as a good example to open requests on the bug tracker for having it added as dependency with the other two icon themes as well, and others which make heavy use of SVGs.

@MichaIng MichaIng mentioned this issue Sep 11, 2021
MichaIng added a commit that referenced this issue Sep 12, 2021
- DietPi-Software | LXDE: Resolved an issue on Bullseye where some icon themes could not be applied due to a missing SVG library. Many thanks to @pinipon for reporting the issue and solution: #4687
- DietPi-Software | LXDE: Resolved an issue where the hotkey setup didn't work because of a missing openbox plugin. Many thanks to @pinipon for reporting the issue and solution: #4687
- DietPi-Software | LXDE: Merged install and config code blocks and moved some commented Firefox settings into the Firefox install block for future review.
@MichaIng
Copy link
Owner

Both packages are now installed by default: 53651b0

I rechecked on Buster and hotkey setup wasn't working there either, so this makes sense on all distro versions. Many thanks for reporting those issues and finding solutions as well 👍.

This was referenced Sep 15, 2021
@melonius
Copy link

try "sudo apt install pipanel"
it works for me.

@MichaIng
Copy link
Owner

This was not about the "RPi desktop" but about a regular LXDE on RPi, i.e. the command is lxappearance. The RPi desktop packages from the RPi repo are conflicting with a regular LXDE, but it all got fixed already last year.

@MichaIng
Copy link
Owner

MichaIng commented Mar 4, 2024

Reviewing some dependencies, I rechecked whether it makes sense to ask adding librsvg2-common as hard dependency to icon theme packages which make much use of SVGs. Adwaita, Papirus and Breeze are all almost only SVG themes, so at first few it makes sense. At 2nd view: The question is whether all applications which make use of these icon themes make use of librsvg2-common as well. On the Gnome icon theme, there was no discussion about this, but on Papirus: https://bugs.debian.org/1029056

Two valid points:

  1. An icon theme might be used with software which uses another library or has embedded SVG support.
  2. Software which allows to select an icon theme cannot know which image format the icon theme uses.

So unless/until best practice has been declared somewhere, adding it as recommendation only seems sane. It is then on desktop environments or other parent packages, which add both, applications who require librsvg2-common to make use of SVGs, as well as SVG-providing icon themes, to declare the dependency for now, or on those who assemble the desktop images or installation scripts, like us.

Adwaita had it as hard dependency in the past, but degraded it to a recommendation, worrying about architectures which do not support librsvg2-common:

  • debian/control.in: Downgrade librsvg2-common to recommends
    librsvg2-common is an arch:any package and is not built on all
    architectures as it's written in rust. This should allow one to install
    the package on the architectures without rust support

In the meantime, it is supported by all architectures supported by Debian, including Sid and all inofficial ports. The other arguments remain, hence I'm not going to open a report about this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants