question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Handling Gtk+ and gtk icon themes

See original GitHub issue

there is an issue in how appimage in general handle gtk themeing and this is mitigated(fixed) by using gtk-plugin of linuxdeploy fixing env variable and Bundles Gtk+ resources, however this use system version of libraries not using AppDir included libraries this specially a problem when trying in AppDir depending on different version libraries than the system is using. for instance : using linuxdeploy-plugin-gtk for AppDir that depend on libncursesw6 while the system(don’t have it) has different version (will error out). also it tried to load some icon from (/org) which is no in the system(linux mint 19.3) (bottles:19707): Gtk-WARNING **: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/bullet-symbolic.svg.

here some examples:

APPDIR=$ORIGIN/
APPIMAGE_UUID=835f16ac-fc19-4e3f-aed3-58eb5d7ac2eb
EXEC_PATH=$APPDIR/usr/bin/python3
EXEC_ARGS=$APPDIR/usr/bin/bottles $@
XDG_DATA_DIRS=$APPDIR/usr/local/share:$APPDIR/usr/share:$XDG_DATA_DIRS
XDG_CONFIG_DIRS=$APPDIR/etc/xdg:$XDG_CONFIG_DIRS
LD_PRELOAD=libapprun_hooks.so
GDK_PIXBUF_MODULEDIR=$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders
GDK_PIXBUF_MODULE_FILE=$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
APPDIR_LIBRARY_PATH=$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders
GSETTINGS_SCHEMA_DIR=$APPDIR/usr/share/glib-2.0/schemas
GST_PLUGIN_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SYSTEM_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_REGISTRY_REUSE_PLUGIN_SCANNER=no
GST_PLUGIN_SCANNER=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-plugin-scanner
GST_PTP_HELPER=$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer1.0/gstreamer-1.0/gst-ptp-helper
GTK_EXE_PREFIX=$APPDIR/usr/lib/x86_64-linux-gnu
GTK_DATA_PREFIX=$APPDIR/usr/lib
PATH=$APPDIR/usr/bin:${PATH}
LIBC_LIBRARY_PATH=$APPDIR/opt/libc/lib/x86_64-linux-gnu:$APPDIR/opt/libc/usr/lib/x86_64-linux-gnu:$APPDIR/opt/libc/lib64
APPDIR_LIBC_VERSION=2.33
SYSTEM_INTERP=/lib64/ld-linux-x86-64.so.2
PYTHONHOME=$APPDIR/usr/
PYTHONPATH=$APPDIR/usr/lib/python3/dist-packages
GTK_THEME=Adwaita
GTK_PATH=$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0

.bundle.yml:

apt:
  packages:
  - libsoup2.4-1:amd64=2.72.0-3
  - libtasn1-6:amd64=4.16.0-2
  - libnettle8:amd64=3.7-2.1
  - libuuid1:amd64=2.36.1-7ubuntu2
  - hicolor-icon-theme:all=0.17-2
  - liblzo2-2:amd64=2.10-2build1
  - libdatrie1:amd64=0.2.13-1ubuntu2
  - libkrb5support0:amd64=1.18.3-4
  - libtiff5:amd64=4.2.0-1
  - libwayland-egl1:amd64=1.18.0-2~exp1.1
  - gvfs-libs:amd64=1.47.90-1ubuntu1
  - dbus:amd64=1.12.20-1ubuntu3
  - libgtk-3-0:amd64=3.24.25-1ubuntu2
  - libunwind8:amd64=1.3.2-2
  - libjbig0:amd64=2.1-3.1build1
  - libpng16-16:amd64=1.6.37-3build2
  - libjpeg-turbo8:amd64=2.0.6-0ubuntu1
  - libdevmapper1.02.1:amd64=2:1.02.175-2ubuntu3
  - libidn2-0:amd64=2.3.0-5
  - libxfixes3:amd64=1:5.0.3-2build1
  - libpam0g:amd64=1.3.1-5ubuntu6
  - libkeyutils1:amd64=1.6.1-2ubuntu1
  - libgtk-3-common:all=3.24.25-1ubuntu2
  - fonts-dejavu-core:all=2.37-2build1
  - librsvg2-common:amd64=2.50.3+dfsg-1
  - python3:amd64=3.9.1-1
  - libdconf1:amd64=0.38.0-2
  - glib-networking:amd64=2.66.0-2
  - libpopt0:amd64=1.18-2build2
  - libgck-1-0:amd64=3.38.1-2
  - libpsl5:amd64=0.21.0-1.2
  - libtinfo6:amd64=6.2+20201114-2build1
  - libicu67:amd64=67.1-6ubuntu1
  - libthai-data:all=0.1.28-4
  - dbus-user-session:amd64=1.12.20-1ubuntu3
  - ubuntu-mono:all=20.10-0ubuntu1
  - libparted2:amd64=3.4-1
  - libkrb5-3:amd64=1.18.3-4
  - gtk2-engines-pixbuf:amd64=2.24.33-1ubuntu2
  - libatk-bridge2.0-0:amd64=2.38.0-1build1
  - libpython3-stdlib:amd64=3.9.1-1
  - libcom-err2:amd64=1.45.7-1ubuntu2
  - libexpat1:amd64=2.2.10-2
  - gcc-11-base:amd64=11-20210306-1ubuntu1
  - libglib2.0-0:amd64=2.67.5-2
  - libxrender1:amd64=1:0.9.10-1build2
  - libgssapi-krb5-2:amd64=1.18.3-4
  - libxrandr2:amd64=2:1.5.2-0ubuntu1
  - libjson-glib-1.0-common:all=1.6.2-1
  - zlib1g:amd64=1:1.2.11.dfsg-2ubuntu5
  - libxcursor1:amd64=1:1.2.0-2build2
  - tzdata:all=2021a-1ubuntu1
  - libgdk-pixbuf-xlib-2.0-0:amd64=2.40.2-2build2
  - libblkid1:amd64=2.36.1-7ubuntu2
  - libpcre2-8-0:amd64=10.36-2ubuntu4
  - libreadline8:amd64=8.1-1
  - libpixman-1-0:amd64=0.40.0-1build2
  - libblockdev-part2:amd64=2.25-2
  - gir1.2-glib-2.0:amd64=1.66.1-1build1
  - libss2:amd64=1.45.7-1ubuntu2
  - libudev1:amd64=247.3-1ubuntu4
  - libthai0:amd64=0.1.28-4
  - e2fsprogs:amd64=1.45.7-1ubuntu2
  - libcap2:amd64=1:2.44-1build1
  - libdeflate0:amd64=1.7-1ubuntu1
  - libpangoft2-1.0-0:amd64=1.48.2-1build2
  - libcairo-gobject2:amd64=1.16.0-5build1
  - libzstd1:amd64=1.4.8+dfsg-2build1
  - libxcomposite1:amd64=1:0.4.5-1
  - libpolkit-agent-1-0:amd64=0.105-30
  - librsvg2-bin:amd64=2.50.3+dfsg-1
  - libparted-fs-resize0:amd64=3.4-1
  - libatk1.0-data:all=2.36.0-0ubuntu2
  - parted:amd64=3.4-1
  - libext2fs2:amd64=1.45.7-1ubuntu2
  - libfreetype6:amd64=2.10.4+dfsg-1build1
  - libblockdev-loop2:amd64=2.25-2
  - libsoup-gnome2.4-1:amd64=2.72.0-3
  - libxext6:amd64=2:1.3.4-0ubuntu3
  - libblockdev-swap2:amd64=2.25-2
  - libxml2:amd64=2.9.10+dfsg-6.3build1
  - gdisk:amd64=1.0.6-1.1
  - libpython3.9-stdlib:amd64=3.9.2-1
  - libudisks2-0:amd64=2.9.2-1
  - libblockdev-fs2:amd64=2.25-2
  - python3-minimal:amd64=3.9.1-1
  - libaudit-common:all=1:3.0-2ubuntu1
  - gvfs:amd64=1.47.90-1ubuntu1
  - sound-theme-freedesktop:all=0.8-2ubuntu1
  - glib-networking-services:amd64=2.66.0-2
  - libxdamage1:amd64=1:1.1.5-2
  - libpango-1.0-0:amd64=1.48.2-1build2
  - libcairo-script-interpreter2:amd64=1.16.0-5build1
  - libcrypt1:amd64=1:4.4.17-1ubuntu2
  - libcanberra0:amd64=0.30-7ubuntu2
  - libvorbis0a:amd64=1.3.7-1
  - lsof:amd64=4.93.2+dfsg-1.1
  - libxi6:amd64=2:1.7.10-1build2
  - libgstreamer1.0-0:amd64=1.18.3-1
  - libnsl2:amd64=1.3.0-0ubuntu3
  - liblcms2-2:amd64=2.12~rc1-2
  - libfribidi0:amd64=1.0.8-2ubuntu1
  - librsvg2-2:amd64=2.50.3+dfsg-1
  - libgdk-pixbuf2.0-0:amd64=2.40.2-2build2
  - gnome-themes-extra-data:all=3.28-1ubuntu1
  - readline-common:all=8.1-1
  - libwayland-client0:amd64=1.18.0-2~exp1.1
  - libcap-ng0:amd64=0.7.9-2.2build1
  - libsqlite3-0:amd64=3.34.1-2
  - dmidecode:amd64=3.3-1build1
  - libavahi-common-data:amd64=0.8-5ubuntu1
  - libmpdec3:amd64=2.5.1-1
  - desktop-file-utils:amd64=0.26-1ubuntu1
  - gvfs-common:all=1.47.90-1ubuntu1
  - libbz2-1.0:amd64=1.0.8-4ubuntu2
  - libharfbuzz0b:amd64=2.7.4-1ubuntu1
  - libjpeg8:amd64=8c-2ubuntu8
  - libstdc++6:amd64=11-20210306-1ubuntu1
  - libk5crypto3:amd64=1.18.3-4
  - libatasmart4:amd64=0.19-5
  - libacl1:amd64=2.2.53-10build1
  - libltdl7:amd64=2.4.6-15
  - libdw1:amd64=0.183-4
  - libncursesw6:amd64=6.2+20201114-2build1
  - librest-0.7-0:amd64=0.8.1-1.1
  - python3.9:amd64=3.9.2-1
  - libcanberra-gtk3-0:amd64=0.30-7ubuntu2
  - libsecret-common:all=0.20.4-2
  - udisks2:amd64=2.9.2-1
  - libwayland-cursor0:amd64=1.18.0-2~exp1.1
  - libgtk-3-0:amd64=4.0.1-0build1
  - libvulkan1:amd64=1.2.162.0-1
  - dconf-gsettings-backend:amd64=0.38.0-2
  - gnome-themes-standard:all=3.28-1ubuntu1
  - libgraphite2-3:amd64=1.3.14-1
  - libsystemd0:amd64=247.3-1ubuntu4
  - libaudit1:amd64=1:3.0-2ubuntu1
  - libelf1:amd64=0.183-4
  - libwebp6:amd64=0.6.1-2
  - libgtk-3-common:all=4.0.1-0build1
  - libtirpc-common:all=1.3.1-1build1
  - libgirepository-1.0-1:amd64=1.66.1-1build1
  - liblz4-1:amd64=1.9.3-1build1
  - libgpg-error0:amd64=1.38-2build1
  - libsecret-1-0:amd64=0.20.4-2
  - xkb-data:all=2.29-2build1
  - fontconfig-config:all=2.13.1-4.2ubuntu3
  - libc6:amd64=2.33-0ubuntu2
  - libmount1:amd64=2.36.1-7ubuntu2
  - libapparmor1:amd64=3.0.0-0ubuntu6
  - libpangocairo-1.0-0:amd64=1.48.2-1build2
  - libgdk-pixbuf2.0-common:all=2.42.2+dfsg-1build1
  - libogg0:amd64=1.3.4-0.1
  - libffi8ubuntu1:amd64=3.4~20200819gead65ca871-0ubuntu5
  - libpam-systemd:amd64=247.3-1ubuntu4
  - libcolord2:amd64=1.4.5-3
  - libxinerama1:amd64=2:1.1.4-2build2
  - logsave:amd64=1.45.7-1ubuntu2
  - libtirpc3:amd64=1.3.1-1build1
  - gtk-update-icon-cache:amd64=3.24.25-1ubuntu2
  - libgcr-base-3-1:amd64=3.38.1-2
  - libgdk-pixbuf-2.0-0:amd64=2.42.2+dfsg-1build1
  - libgcrypt20:amd64=1.8.7-2ubuntu2
  - python3.9-minimal:amd64=3.9.2-1
  - udev:amd64=247.3-1ubuntu4
  - libatk1.0-0:amd64=2.36.0-0ubuntu2
  - liblzma5:amd64=5.2.5-1.0build1
  - libssl1.1:amd64=1.1.1j-1ubuntu1
  - libgudev-1.0-0:amd64=1:234-1
  - libdb5.3:amd64=5.3.28+dfsg1-0.6ubuntu3
  - libdbus-1-3:amd64=1.12.20-1ubuntu3
  - libavahi-common3:amd64=0.8-5ubuntu1
  - libgcc-s1:amd64=11-20210306-1ubuntu1
  - libasound2:amd64=1.2.4-1.1
  - libblockdev-utils2:amd64=2.25-2
  - libgmp10:amd64=2:6.2.1+dfsg-1ubuntu1
  - python3-gi:amd64=3.38.0-2
  - libgraphene-1.0-0:amd64=1.10.4+dfsg1-1
  - libjson-glib-1.0-0:amd64=1.6.2-1
  - libatspi2.0-0:amd64=2.39.90.1-1
  - media-types:all=4.0.0
  - libcups2:amd64=2.3.3op2-3ubuntu1
  - libhandy-1-0:amd64=1.1.90-2
  - libbrotli1:amd64=1.0.9-2build2
  - libepoxy0:amd64=1.5.5-1build1
  - gnome-themes-extra:amd64=3.28-1ubuntu1
  - gsettings-desktop-schemas:all=3.38.0-1ubuntu1
  - libfontconfig1:amd64=2.13.1-4.2ubuntu3
  - libkmod2:amd64=28-1ubuntu2
  - adwaita-icon-theme:all=3.38.0-1ubuntu2
  - libvorbisfile3:amd64=1.3.7-1
  - libunistring2:amd64=0.9.10-4
  - libasound2-data:all=1.2.4-1.1
  - libp11-kit0:amd64=0.23.22-1
  - libavahi-client3:amd64=0.8-5ubuntu1
  - libxkbcommon0:amd64=1.0.3-2
  - dconf-service:amd64=0.38.0-2
  - libproxy1v5:amd64=0.4.17-1
  - libcairo2:amd64=1.16.0-5build1
  - libcanberra-gtk3-module:amd64=0.30-7ubuntu2
  - glib-networking-common:all=2.66.0-2
  - libselinux1:amd64=3.1-3build1
  - libpolkit-gobject-1-0:amd64=0.105-30
  - libblockdev2:amd64=2.25-2
  - libgnutls30:amd64=3.7.0-5ubuntu1
  - libhogweed6:amd64=3.7-2.1
  - libpcre3:amd64=2:8.39-13build2
  - libblockdev-part-err2:amd64=2.25-2
  - gvfs-daemons:amd64=1.47.90-1ubuntu1
  - libpython3.9-minimal:amd64=3.9.2-1
  - libtdb1:amd64=1.4.3-1build1
  sources:
  - deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ groovy main restricted universe
    multiverse
dependencies:
- ld-linux-x86-64.so.2
- libxcb-render.so.0
- libgcc_s.so.1
- libxcb-shm.so.0
- libX11.so.6
- libcrypt.so.1
- libresolv.so.2
- libpthread.so.0
- libm.so.6
- librt.so.1
- libxcb.so.1
- libstdc++.so.6
- libgdk-x11-2.0.so.0
- libdl.so.2
- libc.so.6
- libutil.so.1
- libz.so.1
- libgtk-x11-2.0.so.0

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:15 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
azubietacommented, Mar 19, 2021

The generate commands runs the application using the binaries in the system therefore the system sources list must be used. Otherwise it may include packages that provides the wrong binary version. The runtime dependencies may vary from one system to other depending on your runtime configuration. I wonder why snapd is being included in your bundle, the good thing is that you can edit those dependencies latter.

Opt out those packages that may look weird to you (like snapd) and use the test cases to validate that the resulting bundle is still portable.

Regarding the integration script. We recommend using appimagelauncher or appimaged as they rely on libappimage and generated an “standardized” desktop launcher. Other tools may generate a working desktop launcher but may not work well with the mentioned tools

1reaction
azubietacommented, Mar 17, 2021

For libhandy to be properly loaded you need to setup GI_TYPELIB_PATH. This is my whole env setup.

  runtime:
    env:
      # Set python home
      PYTHONPATH: '${APPDIR}/usr/lib/python3/dist-packages'
      GTK_THEME: Adwaita
      GTK_PATH: $APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0
      GI_TYPELIB_PATH: $APPDIR/usr/lib/x86_64-linux-gnu/girepository-1.0
Read more comments on GitHub >

github_iconTop Results From Across the Web

Gtk.Settings:gtk-icon-theme-name
Name of the icon theme to use. See GtkIconTheme for details about how GTK handles icon themes. Type: gchar* ...
Read more >
GTK - ArchWiki
This article will explore the tools used to configure the GTK theme, style, icon, font and font size, and also detail manual configuration....
Read more >
Auto-connection of gtk3-themes, icon-themes, and sound ...
The Ubuntu Desktop team has created the gtk-common-themes snap which provides common gtk3, icon and sound themes. These themes are exposed ...
Read more >
How to set GTK icon theme in i3? - Unix & Linux Stack Exchange
1. use LXAppearance ... LXAppearance can change the GTK2/3 icons (and themes, fonts, etc.). LXAppearance is part of the LXDE desktop environment, ...
Read more >
Installing, Obtaining, and Making GTK Themes | Linux.org
Users can change the theme to make the desktop look different. Usually, users also change the icons. However, the theme and icon-pack are...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found