Assistant - missing icons on buttons

Hello.

I'm on Gnome/Wayland, and I'm trying to solve this issue following this topic, but it doesn't work as you can see here:

LANG=C pacman -Ss qt5-svg
extra/qt5-svg 5.15.3+kde+r12-1 (qt qt5) [installed]

Someone may help me?

```text
System:
  Kernel: 5.17.1-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 11.2.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen root=UUID=3387fe52-e8cb-45c6-87fb-f4e8ea30cb2c
    rw rootflags=subvol=@ quiet acpi_backlight=vendor
    cryptdevice=UUID=551e16bb-03e7-4bf4-83c3-40579df2ea66:luks-551e16bb-03e7-4bf4-83c3-40579df2ea66
    root=/dev/mapper/luks-551e16bb-03e7-4bf4-83c3-40579df2ea66 splash rd.udev.log_priority=3
    vt.global_cursor_default=0 systemd.unified_cgroup_hierarchy=1
    resume=/dev/mapper/luks-fbbf49a3-e58e-445b-a8bd-e1860d39b5f6 loglevel=3
  Desktop: GNOME v: 42.0 tk: GTK v: 3.24.33 wm: gnome-shell dm: GDM v: 42.0 Distro: Garuda Linux
    base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 20202 v: Lenovo IdeaPad Z500 serial: <superuser required>
    Chassis: type: 10 v: Lenovo IdeaPad Z500 serial: <superuser required>
  Mobo: LENOVO model: INVALID v: 31900003WIN8 STD MLT serial: <superuser required> UEFI: LENOVO
    v: 71CN52WW(V1.22) date: 01/24/2013
Battery:
  ID-1: BAT1 charge: 12.7 Wh (29.8%) condition: 42.6/38.5 Wh (110.6%) volts: 14.8 min: 14.8
    model: LENOVO PABAS0241231 type: Li-ion serial: <filter> status: charging
CPU:
  Info: model: Intel Core i7-3632QM bits: 64 type: MT MCP arch: Ivy Bridge family: 6
    model-id: 0x3A (58) stepping: 9 microcode: 0x21
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache: L1: 256 KiB
    desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB L3: 6 MiB desc: 1x6 MiB
  Speed (MHz): avg: 2937 high: 3079 min/max: 1200/3200 scaling: driver: intel_cpufreq
    governor: performance cores: 1: 2920 2: 2894 3: 2895 4: 2911 5: 2894 6: 2964 7: 2939 8: 3079
    bogomips: 35120
  Flags: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable
  Type: meltdown mitigation: PTI
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2
    mitigation: Retpolines, IBPB: conditional, IBRS_FW, STIBP: conditional, RSB filling
  Type: srbds status: Vulnerable: No microcode
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel 3rd Gen Core processor Graphics vendor: Lenovo driver: i915 v: kernel ports:
    active: LVDS-1 empty: DP-1,HDMI-A-1,VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0166 class-ID: 0300
  Device-2: NVIDIA GK208M [GeForce GT 740M] vendor: Lenovo driver: N/A
    alternate: nouveau, nvidia_drm, nvidia pcie: gen: 2 speed: 5 GT/s lanes: 8 link-max: gen: 3
    speed: 8 GT/s bus-ID: 01:00.0 chip-ID: 10de:1292 class-ID: 0302
  Device-3: Chicony Lenovo EasyCamera type: USB driver: uvcvideo bus-ID: 3-4:2
    chip-ID: 04f2:b35d class-ID: 0e02 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.3 with: Xwayland v: 22.1.1 compositor: gnome-shell
    driver: gpu: i915 display-ID: 0
  Monitor-1: LVDS-1 model: LG Display 0x03d6 built: 2012 res: 1366x768 dpi: 101 gamma: 1.2
    size: 345x194mm (13.58x7.64") diag: 396mm (15.6") ratio: 16:9 modes: 1366x768
  Message: Wayland GBM/EGL data currently not available.
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio vendor: Lenovo driver: snd_hda_intel
    v: kernel bus-ID: 00:1b.0 chip-ID: 8086:1e20 class-ID: 0403
  Sound Server-1: ALSA v: k5.17.1-zen1-1-zen running: yes
  Sound Server-2: sndio v: N/A running: no
  Sound Server-3: PulseAudio v: 15.0 running: no
  Sound Server-4: PipeWire v: 0.3.50 running: yes
Network:
  Device-1: Realtek RTL810xE PCI Express Fast Ethernet vendor: Lenovo driver: r8169 v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: 2000 bus-ID: 02:00.0 chip-ID: 10ec:8136
    class-ID: 0200
  IF: enp2s0 state: down mac: <filter>
  Device-2: Intel Centrino Wireless-N 2230 driver: iwlwifi v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0 chip-ID: 8086:0888 class-ID: 0280
  IF: wlp3s0 state: up mac: <filter>
  IF-ID-1: veth5tmfCI state: up speed: 10000 Mbps duplex: full mac: <filter>
  IF-ID-2: waydroid0 state: up speed: 10000 Mbps duplex: unknown mac: <filter>
Bluetooth:
  Device-1: Intel Centrino Bluetooth Wireless Transceiver type: USB driver: btusb v: 0.8
    bus-ID: 1-1.3:3 chip-ID: 8087:07da class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 2 state: up address: N/A
Drives:
  Local Storage: total: 1.82 TiB used: 280.3 GiB (15.0%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/sda maj-min: 8:0 vendor: Samsung model: SSD 860 EVO 1TB size: 931.51 GiB
    block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s type: SSD serial: <filter> rev: 4B6Q
    scheme: GPT
  ID-2: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST1000LM014-1EJ164 size: 931.51 GiB
    block-size: physical: 4096 B logical: 512 B speed: 3.0 Gb/s type: HDD rpm: 5400 serial: <filter>
    rev: LVD1 scheme: GPT
Partition:
  ID-1: / raw-size: 922.46 GiB size: 922.46 GiB (100.00%) used: 231.25 GiB (25.1%) fs: btrfs
    dev: /dev/dm-0 maj-min: 254:0 mapped: luks-551e16bb-03e7-4bf4-83c3-40579df2ea66
  ID-2: /boot/efi raw-size: 256 MiB size: 252 MiB (98.46%) used: 44 MiB (17.4%) fs: vfat
    dev: /dev/sda1 maj-min: 8:1
  ID-3: /home raw-size: 922.46 GiB size: 922.46 GiB (100.00%) used: 231.25 GiB (25.1%) fs: btrfs
    dev: /dev/dm-0 maj-min: 254:0 mapped: luks-551e16bb-03e7-4bf4-83c3-40579df2ea66
  ID-4: /var/log raw-size: 922.46 GiB size: 922.46 GiB (100.00%) used: 231.25 GiB (25.1%)
    fs: btrfs dev: /dev/dm-0 maj-min: 254:0 mapped: luks-551e16bb-03e7-4bf4-83c3-40579df2ea66
  ID-5: /var/tmp raw-size: 922.46 GiB size: 922.46 GiB (100.00%) used: 231.25 GiB (25.1%)
    fs: btrfs dev: /dev/dm-0 maj-min: 254:0 mapped: luks-551e16bb-03e7-4bf4-83c3-40579df2ea66
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 7.62 GiB used: 957.8 MiB (12.3%) priority: 100 dev: /dev/zram0
  ID-2: swap-2 type: partition size: 8.8 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-1
    maj-min: 254:1 mapped: luks-fbbf49a3-e58e-445b-a8bd-e1860d39b5f6
Sensors:
  System Temperatures: cpu: 75.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 415 Uptime: 1h 6m wakeups: 317 Memory: 7.62 GiB used: 3.5 GiB (45.9%) Init: systemd
  v: 250 tool: systemctl Compilers: gcc: 11.2.0 clang: 13.0.1 Packages: 1563 pacman: 1555 lib: 382
  flatpak: 8 Client: shell wrapper v: 5.1.16-release inxi: 3.3.15
Garuda (2.6.1-3):
  System install date:     2021-06-04
  Last full system update: 2022-04-19 ↻
  Is partially upgraded:   No
  Relevant software:       NetworkManager
  Windows dual boot:       Probably (Run as root to verify)
  Snapshots:               Timeshift
  Failed units:            
```

Most likely this is not solving the problem, but I see you just updated but haven’t reboot…

The kernel should have changed, so a reboot is anyway necessary.

1 Like

Indeed.
Rebooted, but nothing changed.

Can you describe your method for enabling the Wayland session?

Have you seen this post? Issue with Qt Apps after enabling GDM Wayland via Garuda Assistant (among other things)

4 Likes

Thanks for the link.

It's a long and complex post.
I need time to read and understand it.

That's my /etc/environment:

File: /etc/environment
#
# This file is parsed by pam_env module
#
# Syntax: simple "KEY=VAL" pairs on separate lines
#
MOZ_ENABLE_WAYLAND=1
QT_QPA_PLATFORM="wayland;xcb"

Ah, so could you also include the contents of /etc/gdm/custom.conf? The linked thread has some details that might be relevant, and there's a little section at the bottom of the new wiki page for GNOME that me be of some help. This section of the ArchWiki page could also shed a little light.

There's some kind of weird interplay between Qt, Wayland, Icons/Themes that I don't completely understand. From those screenshots, it looks like you're trying to use Kvantum - if I recall correctly, you may need to explicitly set QT_QPA_PLATFORMTHEME=kvantum, or maybe install qt5ct alongside and set that var to =qt5ct.

It's also possible that since that var isn't set, Qt is either: actually trying to pull whatever icons are set for GNOME via Tweaks, OR Kvantum is expecting icons that don't exist? I've found "Tela" at least seems to have them rendering right.

I've found the most success with Qt apps on Wayland actually just not using kvantum/qt5ct, nor setting QT_QPA_PLATFORMTHEME or QT_QPA_PLATFORM at all. Under 42 at least, Qt apps seem to pretty much determine what they need for themselves and non-root Qt apps should even follow light/dark on your system.

You could also try setting QT_QPA_PLATFORMTHEME=gtk3 or =gnome to see what that does.

I'm planning to look into how further theming Qt apps under GNOME/Wayland can be pulled off, so if you have any successes there do let me know!

Sorry, I know that's a lot of info but if you read that linked thread above I've done a lot of messing around on this. Keep us posted!

(small side note - if you want to use Xorg at any point, you might also wanna set MOZ_ENABLE_WAYLAND to something other than 1 in ~/.profile so that FireFox+etc will use the Wayland backend only under Wayland. This works because .profile only gets pulled under Xorg, and will override overlapping vars in environment)

5 Likes

Whoa!!! A lot of information! :heart_eyes:

Thank you so much for your effort!
Probably even too much for my knowledge, but I'm trying to follow you and I really appreciate it!

I'll let you know my progress in accordance with my poor free time! :blush:

cat /etc/gdm/custom.conf 
File: /etc/gdm/custom.conf
# GDM configuration storage

[daemon]
AutomaticLoginEnable=False
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=true
DefaultSession=gnome-wayland.desktop

[security]

[xdmcp]

[chooser]

[debug]
# Uncomment the line below to turn on debugging
#Enable=true

1 Like

This particular application uses embedded icons. Theme issues shouldn’t impact it.

On the miscellaneous tab did you uncheck “Respect current DE if possible”?

4 Likes

yes I did.
Otherwise you can’t flag “iconless push buttons” in kvantum

Bingo!

That’s my .profile
I replace qt5ct with kvantum

cat .profile
File: .profile
export AMD_VULKAN_ICD=RADV
export EDITOR=/usr/bin/micro
export BROWSER=firefox
export TERM=alacritty
export MAIL=thunderbird
export QT_QPA_PLATFORMTHEME="kvantum"
export GTK2_RC_FILES="$HOME/.gtkrc-2.0"
export QT_QPA_PLATFORM="wayland;xcb"

2 Likes

I marked the relevant suggestion as Solution.
Hope this is OK.

1 Like

Indeed, it works if I replace with gtk3, gnome, and comment the line as well.
So, what is your advise?
If I understand, you prefer let qt apps determine themselves what they need, so that means the better solution is comment the line in .profile. Right?

1 Like

I mean, if it works without setting the variables at all, it doesn’t need to be in environment or .profile. Making different edits to .profile is only necessary if you notice different behavior under Xorg than you do under Wayland.

In general, I’m of the opinion that the less environment variables you’re setting globally, the better. It’s probably fine, and if it makes something work that’s sometimes the only way to do it, but it will occasionally cause problems if it forces a Qt app to use something it doesn’t like. Garuda’s GNOME edition ships with all the Qt platform and theme plugins Qt apps need to (mostly) play nice with GNOME without setting any variables.

So, if you’re happy with what unsetting all of them achieves, I’d leave it that way, and remove Kvantum/qt5ct. If you do want the more granular Qt-specific theming Kvantum offers, nothing wrong with that, you’ll just probably need to be setting QT_QPA_PLATFORMTHEME=kvantum in you /etc/environment. :person_shrugging:

Unrelated side note: that second line, DefaultSession=gnome-wayland.desktop in your custom.conf is probably unnecessary. Without it, GDM should just remember which one you used last time, and sometimes does anyway for some reason. Doesn’t really matter but just noticed it.

You should see my personal notes on GNOME :rofl:

5 Likes

:joy: :joy: :joy:

Ok, thank you so much for your support! :v:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.