This black background will soon disappear and vlc’s title bar will be rendered.
This is likely caused by VLC being a qt-based application and gnome want to apply client side decorations which doesn’t exist with a qt-based app, creating the black background which will later be repainted by the shell.
I don’t know if there is a workaround - one guess is that it could be theme related, if you are using a custom theme.
I’m just doing the personalization here, gnome47 is fine, it’s just something that comes with this update.
I don’t know - gnome is quite unpredictable - if I were actually using gnome - I would probably use a gnome based media player - and thus avoiding theme issues all along.
Qt based applications with the Gnome desktop is a not a good combination, I am sorry - is how it is.
Thank you for your attention to this issue, which gives me a little warmth and comfort. I believe that the developers of VLC software will definitely follow up, give them a little time, everything will become better and better!
It may be related to this issue:
Update:
In case somebody wants to try the GTK4 fix until we get a official update, I’ve created a patched PKGBUILD.
1:
git clone https://gitlab.archlinux.org/archlinux/packaging/packages/gtk4.git
2: replace the PKGBUILD with this one:
PKGBUILD
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Maintainer: Fabian Bornschein <fabiscafe@archlinux.org>
pkgbase=gtk4
pkgname=(
gtk4
gtk4-demos
gtk4-docs
gtk-update-icon-cache
)
pkgver=4.18.4
pkgrel=2
epoch=1
pkgdesc="GObject-based multi-platform GUI toolkit"
url="https://www.gtk.org/"
arch=(x86_64)
license=(LGPL-2.1-or-later)
depends=(
adwaita-icon-theme
at-spi2-core
cairo
cantarell-fonts
dconf
desktop-file-utils
fontconfig
fribidi
gcc-libs
gdk-pixbuf2
glib2
graphene
gst-plugins-bad-libs
harfbuzz
iso-codes
libcloudproviders
libcolord
libcups
libegl
libepoxy
libgl
libjpeg-turbo
libpng
librsvg
libtiff
libx11
libxcursor
libxdamage
libxext
libxfixes
libxi
libxinerama
libxkbcommon
libxrandr
libxrender
pango
shared-mime-info
tinysparql
wayland
)
makedepends=(
docbook-xsl
gi-docgen
git
glib2-devel
gobject-introspection
libsysprof-capture
meson
python-docutils
python-gobject
sassc
shaderc
vulkan-headers
wayland-protocols
)
checkdepends=(
gst-plugin-pipewire
gst-plugins-base
mutter
noto-fonts
pipewire
python-pydbus
vulkan-swrast
weston
wireplumber
)
source=(
"git+https://gitlab.gnome.org/GNOME/gtk.git#tag=$pkgver"
gtk-update-icon-cache.{hook,script}
gtk4-querymodules.{hook,script}
0001-HACK-Don-t-use-objcopy-for-resource-embedding.patch
"0002-8459.patch::https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8459.patch"
)
b2sums=('c27d0cd2381ca94ee6bbb08ad978cd2f352cab90c24296483b20c6736d964baea0f78f4def0e5790995b5b0d4cb68f47e0df6d9feccf33fa797aca0d93e7b276'
'136bdb410c46daf769175e8e8837286576391797a4762b8cf388217e893dd6c5087c5c91c347cbdf7d3e9dcd2c978c2fb275b5af1f3425c9f7979fbc65a81324'
'6bcd839ef82296d864587e0cc7acc0145bdea8e5235af304747cf3c0e564c2757cc67c0373dc044bec83dccfc57dc899546c2fccea96cff2bba22f09978a3814'
'dd589bd1ad2b13f0e06f6899776a083f20a1aac24d4308d666ffd0d1cff38457b8257b8366f92e767b4233b3d86b6b54fa50339faf84c4801a824986366dce30'
'4b90eb8d582509b09aab401313d4399cc139ad21b5dd7d45d79860d0764c7494c60714e0794e09823e51d1894ac032a994f27d79d1499abf24ee6f59bdb0c243'
'15eb7b0083bc673236658cb5542bd21f08a545aaaef1a5bb4573eea30ce0f813f327de91a76ce8f7ca44d4948fafa6f5f388d117280fcc67c278e34d59edded0'
'c4a1f28bbdeb88db65ab5afc309215a345607fc476babccd2a4c2c0926a56d8b4aedfdd26f64b11679911c5b05676c8c6f023b6ffcad2187a8ff527f651aab0e')
prepare() {
cd gtk
# Allow -fcf-protection to work
# https://gitlab.gnome.org/GNOME/gtk/-/issues/6153
git apply -3 ../0001-HACK-Don-t-use-objcopy-for-resource-embedding.patch
# https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/8393
git apply -3 ../0002-8459.patch
}
build() {
local meson_options=(
-D broadway-backend=true
-D cloudproviders=enabled
-D colord=enabled
-D documentation=true
-D man-pages=true
-D sysprof=enabled
-D tracker=enabled
)
CFLAGS+=" -DG_DISABLE_CAST_CHECKS"
arch-meson gtk build "${meson_options[@]}"
meson compile -C build
}
check() (
export XDG_RUNTIME_DIR="$PWD/runtime-dir"
mkdir -p -m 700 "$XDG_RUNTIME_DIR"
export WAYLAND_DISPLAY=wl-$pkgbase-$RANDOM
weston --backend=headless --socket=$WAYLAND_DISPLAY --idle-time=0 &
_w=$!
trap "kill $_w; wait" EXIT
# Test: GTK / templates fails - ignore it for now.
sed -i "s/{ 'name': 'templates' }/#{ 'name': 'templates' }/g" gtk/testsuite/gtk/meson.build
# Comparison tests fail, because thes depend on driver and how mesa was build
# https://gitlab.gnome.org/GNOME/gtk/-/issues/6383
meson test -C build --print-errorlogs --no-suite=headless --timeout-multiplier=3 ||:
)
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
package_gtk4() {
depends+=(
bash
glibc
gst-plugins-base-libs
gstreamer
gtk-update-icon-cache
vulkan-icd-loader
)
optdepends=('evince: Default print preview command')
provides=(libgtk-4.so)
meson install -C build --destdir "$pkgdir"
install -Dm644 /dev/stdin "$pkgdir/usr/share/gtk-4.0/settings.ini" <<END
[Settings]
gtk-icon-theme-name = Adwaita
gtk-theme-name = Adwaita
gtk-font-name = Cantarell 11
END
install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 gtk4-querymodules.hook
install -D gtk4-querymodules.script "$pkgdir/usr/share/libalpm/scripts/gtk4-querymodules"
cd "$pkgdir"
_pick demo usr/bin/gtk4-{demo,demo-application,node-editor,print-editor,widget-factory}
_pick demo usr/share/applications/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}.desktop
_pick demo usr/share/glib-2.0/schemas/org.gtk.Demo4.gschema.xml
_pick demo usr/share/icons/hicolor/*/apps/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}[-.]*
_pick demo usr/share/man/man1/gtk4-{demo,demo-application,node-editor,widget-factory}.1
_pick demo usr/share/metainfo/org.gtk.{Demo4,PrintEditor4,WidgetFactory4,gtk4.NodeEditor}.appdata.xml
_pick docs usr/share/doc
# Built by GTK 4, shared with GTK 3
_pick guic usr/bin/gtk4-update-icon-cache
_pick guic usr/share/man/man1/gtk4-update-icon-cache.1
}
package_gtk4-demos() {
pkgdesc+=" (demo applications)"
depends=(
cairo
dconf
gdk-pixbuf2
glib2
glibc
graphene
gtk4
harfbuzz
hicolor-icon-theme
libepoxy
librsvg
pango
)
mv demo/* "$pkgdir"
}
package_gtk4-docs() {
pkgdesc+=" (documentation)"
depends=()
mv docs/* "$pkgdir"
}
package_gtk-update-icon-cache() {
pkgdesc="GTK icon cache updater"
depends=(
bash
gdk-pixbuf2
glib2
glibc
hicolor-icon-theme
librsvg
)
mv guic/* "$pkgdir"
ln -sr "$pkgdir"/usr/bin/gtk{4,}-update-icon-cache
ln -sr "$pkgdir"/usr/share/man/man1/gtk{4,}-update-icon-cache.1
install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 gtk-update-icon-cache.hook
install -D gtk-update-icon-cache.script \
"$pkgdir/usr/share/libalpm/scripts/gtk-update-icon-cache"
}
# vim:set sw=2 sts=-1 et:
3: run makepkg -src
or similar
4: sudo pacman -U /path/to/gtk4 /path/to/gtk-update-icon-cache
etc.
5: reboot and test
It fixes the issue in my case with 200% scaling.