bottlesdevs / Bottles

Run Windows software and games on Linux
https://usebottles.com
GNU General Public License v3.0
6.05k stars 256 forks source link

[Bug]: Theme and Font Don't Look Right in GTK4 Version #1728

Closed cachandlerdev closed 2 years ago

cachandlerdev commented 2 years ago

Describe the bug

After updating the app to GTK4, the Flatpak version of the app appears to use a strange mix of GTK4 and GTK3's Libadwaita theme. Fonts do not appear properly, and there is not enough spacing between GUI elements.

Bottles GTK4 Issues

Bottles GTK4 Settings

To Reproduce

  1. Open Bottles.
  2. (The issue is immediately visible).

Package

Flatpak from Flathub

Distribution

Manjaro Linux

Health Check

Version: 2022.6.28-brescia
Display:
    X.org: true
    X.org (port): :99.0
    Wayland: false
Graphics:
    vendors:
        nvidia:
            vendor: nvidia
            envs:
                __NV_PRIME_RENDER_OFFLOAD: '1'
                __GLX_VENDOR_LIBRARY_NAME: nvidia
                __VK_LAYER_NV_optimus: NVIDIA_only
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/nvidia_icd.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 5.17.15-1-MANJARO
Distro:
    Name: GNOME
    Version: '"42 (Flatpak runtime)"'
Disk:
    Total: 16772517888
    Free: 16772362240
RAM:
    MemTotal: 31.2GiB
    MemAvailable: 27.1GiB
Tools:
    cabextract: true
    p7zip: true
    patool: true
    glibc_min: '2.33'
Bottles_envs: null

Display Protocol

X11

Display Backend used by Bottles

I don't know

Additional context

While Bottles used GTK3, custom themes worked fine. Since the app has now been updated to GTK4 and themes no longer work, I would expect the app to follow Libadwaita's look and feel, but this is the result I am getting instead. (Also, I have removed the "GTK_THEME" variable for the app, so I know that that's not the issue.)

axtloss commented 2 years ago

can you show the output of flatpak run --command=printenv com.usebottles.bottles

cachandlerdev commented 2 years ago
XDG_RUNTIME_DIR=/run/user/1000
container=flatpak
ALSA_CONFIG_DIR=/usr/share/alsa
ALSA_CONFIG_PATH=/usr/share/alsa/alsa-flatpak.conf
AT_SPI_BUS_ADDRESS=unix:path=/run/flatpak/at-spi-bus
COLORFGBG=15;0
COLORTERM=truecolor
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/flatpak/bus
DBUS_SYSTEM_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket
DESKTOP_SESSION=plasma
DISPLAY=:99.0
DOTNET_BUNDLE_EXTRACT_BASE_DIR=/home/cachandler/.cache/dotnet_bundle_extract
DOTNET_ROOT=/usr/share/dotnet
FLATPAK_ID=com.usebottles.bottles
FLATPAK_SANDBOX_DIR=/home/cachandler/.var/app/com.usebottles.bottles/sandbox
GI_TYPELIB_PATH=/app/lib/girepository-1.0
GRADLE_HOME=/usr/share/java/gradle
GST_PLUGIN_SYSTEM_PATH=/app/lib/gstreamer-1.0:/usr/lib/extensions/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GTK2_RC_FILES=/etc/gtk-2.0/gtkrc:/home/cachandler/.gtkrc-2.0:/home/cachandler/.config/gtkrc-2.0
GTK3_MODULES=xapp-gtk3-module
GTK_MODULES=canberra-gtk-module:appmenu-gtk-module
GTK_RC_FILES=/etc/gtk/gtkrc:/home/cachandler/.gtkrc:/home/cachandler/.config/gtkrc
GTK_THEME=
HOME=/home/cachandler
KDE_APPLICATIONS_AS_SCOPE=1
KDE_FULL_SESSION=true
KDE_SESSION_UID=1000
KDE_SESSION_VERSION=5
KONSOLE_DBUS_SERVICE=:1.317
KONSOLE_DBUS_SESSION=/Sessions/1
KONSOLE_DBUS_WINDOW=/Windows/1
KONSOLE_VERSION=220402
LANG=en_US.UTF-8
LANGUAGE=
LC_ADDRESS=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_TIME=en_US.UTF-8
LD_LIBRARY_PATH=/app/lib:/app/lib32
LESS=-R
LOGNAME=cachandler
LSCOLORS=Gxfxcxdxbxegedabagacad
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=00:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.avif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.webp=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:*~=00;90:*#=00;90:*.bak=00;90:*.old=00;90:*.orig=00;90:*.part=00;90:*.rej=00;90:*.swp=00;90:*.tmp=00;90:*.dpkg-dist=00;90:*.dpkg-old=00;90:*.ucf-dist=00;90:*.ucf-new=00;90:*.ucf-old=00;90:*.rpmnew=00;90:*.rpmorig=00;90:*.rpmsave=00;90:
MAIL=/var/spool/mail/cachandler
MOTD_SHOWN=pam
OLDPWD=/home/cachandler
PAGER=less
PAM_KWALLET5_LOGIN=/run/user/1000/kwallet5.socket
PATH=/app/bin:/app/utils/bin:/usr/bin:/usr/lib/extensions/vulkan/MangoHud/bin/:/usr/bin:/usr/lib/extensions/vulkan/OBSVkCapture/bin/
PROFILEHOME=
PS1=[📦 $FLATPAK_ID \W]\$ 
PULSE_CLIENTCONFIG=/run/flatpak/pulse/config
PULSE_SERVER=unix:/run/flatpak/pulse/native
PWD=/home/cachandler
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_LINUX_ACCESSIBILITY_ALWAYS_ON=1
QT_SCREEN_SCALE_FACTORS=DP-0=1;DP-1=1;HDMI-0=1;DP-2=1;DP-3=1;DP-4=1;DP-5=1;
SESSION_MANAGER=local/cachandler-computer:@/tmp/.ICE-unix/1335,unix/cachandler-computer:/tmp/.ICE-unix/1335
SHELL=/bin/sh
SHELL_SESSION_ID=82d54d9b7e8340fa86582d7bca105de0
SHLVL=1
SYSTEMD_EXEC_PID=1201
TERM=xterm-256color
UBUNTU_MENUPROXY=1
USER=cachandler
WINDOWID=113246215
XAUTHORITY=/run/flatpak/Xauthority
XCURSOR_SIZE=24
XCURSOR_THEME=breeze_cursors
XDG_CACHE_HOME=/home/cachandler/.var/app/com.usebottles.bottles/cache
XDG_CONFIG_DIRS=/app/etc/xdg:/etc/xdg
XDG_CONFIG_HOME=/home/cachandler/.var/app/com.usebottles.bottles/config
XDG_CURRENT_DESKTOP=KDE
XDG_DATA_DIRS=/app/share:/usr/share:/usr/share/runtime/share:/run/host/user-share:/run/host/share
XDG_DATA_HOME=/home/cachandler/.var/app/com.usebottles.bottles/data
XDG_SEAT=seat0
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
XDG_SESSION_CLASS=user
XDG_SESSION_DESKTOP=KDE
XDG_SESSION_ID=2
XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session1
XDG_SESSION_TYPE=x11
XDG_VTNR=1
ZSH=/home/cachandler/.oh-my-zsh
_=/usr/bin/flatpak
__EGL_EXTERNAL_PLATFORM_CONFIG_DIRS=/etc/egl/egl_external_platform.d:/usr/lib/x86_64-linux-gnu/GL/egl/egl_external_platform.d:/usr/share/egl/egl_external_platform.d
jannuary commented 2 years ago

1663 dupe?

jannuary commented 2 years ago

GTK_THEME=

Oh yeah, it does that if GTK_THEME is empty or invalid. Unset it, as explained in linked issue

cachandlerdev commented 2 years ago

I see. Unfortunately, the command shown in the linked issue (sudo flatpak override --unset-env=GTK_THEME com.usebottles.bottles) did not reset the GTK_THEME variable, and when I tried sudo flatpak override --reset to see if resetting everything would solve the problem, it didn't work either.

axtloss commented 2 years ago

sudo flatpak override --unset-env=GTK_THEME com.usebottles.bottles wasn't the only command I asked to execute in the comment, you also have to run flatpak override --unset-env=GTK_THEME com.usebottles.bottles, since the override may be just locally.

cachandlerdev commented 2 years ago

I tried that as well. In my case, Bottles seems to be installed system-wide (it's located at /var/lib/flatpak/app/), so I'm guessing that's why I got a "Failed to create file: Permission denied" error. I also just tried sudo flatpak override --unset-env=GTK_THEME to see if that would help, but to no avail. flatpak run --command=printenv com.usebottles.bottles still shows GTK_THEME= .

axtloss commented 2 years ago

That's weird, have you tried reinstalling bottles?

cachandlerdev commented 2 years ago

I tried, but that didn't resolve the issue either. In the end, the solution was to go to ~/.local/share/flatpak/overrides/com.usebottles.bottles and remove GTK_THEME= from there. I'm guessing that Flatpak wasn't updating the local overrides for some reason, since removing that line fixed it.

Thank you for your help anyway!