Recently I started to have three issues with DaVinci Resolve Studio on Garuda Linux, Mokka edition with KDE and Wayland:
- Keyboard not working. In the main window, only Ctrl, Alt, Shift and the letter D work.
- The letter D only works for enable/disable clips on the Edit page.
- But in the Help menu at the top there’s a search box. In there, the entire keyboard is working fine.
- When Resolve is running, the keyboard doesn’t work in the Brave browser either, if Brave is started with ozone-platform=x11
- After update to Resolve 20.0.1, it doesn’t start at all. Downgrading to
20.0
doesn’t fix the issue.- The errors are about
libpango
, mostlyundefined symbol: g_once_init_leave_pointer
and a few more.
- The errors are about
I don’t know what caused this because I did a garuda-update
but I was also fiddling with udev and some configs, trying to get the Speed Editor to work again over Bluetooth, after it stopped working.
I did find some workarounds/fixes and I thought I should share them with everyone, just in case anyone else is experiencing this.
TL;DR Workarounds / Fixes
Resolve:
In the .desktop file that I use to start Resolve, my Exec
line is:
Exec=env -u XDG_RUNTIME_DIR -u DBUS_SESSION_BUS_ADDRESS LIBVA_DRIVER_NAME=nvidia QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_QPA_PLATFORM=xcb QT_IM_MODULE=xim LD_PRELOAD=/usr/lib64/libglib-2.0.so:/usr/lib64/libgdk_pixbuf-2.0.so.0:/usr/lib64/libgio-2.0.so:/usr/lib64/libgmodule-2.0.so /opt/resolve/bin/resolve
Brave:
In the .desktop file that I use to start Brave, my Exec
line is:
Exec=env LIBVA_DRIVER_NAME=nvidia MOZ_DISABLE_RDD_SANDBOX=1 VDPAU_DRIVER=nvidia GBM_BACKEND=nvidia-drm __GLX_VENDOR_LIBRARY_NAME=nvidia XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland GTK_IM_MODULE=wayland QT_IM_MODULE=wayland XMODIFIERS= /opt/brave-bin/brave --enable-features=WaylandWindowDecorations,VaapiVideoDecoder,VaapiVideoEncoder,UseOzonePlatform --ozone-platform=wayland --ignore-gpu-blocklist --enable-zero-copy --disable-features=UseChromeOSDirectVideoDecoder %U
That’s it. Only read below if you’re curious why/how does this work.
I’m also going to include the full .desktop file for Resolve, I’ll also explain all the env vars that you see in this line, because all of them are important for DaVinci Resolve on Linux.
Details
For issue 1, keyboard not working
You need to:
- Unset 2 environment variables:
XDG_RUNTIME_DIR
DBUS_SESSION_BUS_ADDRESS
.
- Set another 2 env vars, but this is optional and it might work fine without them:
QT_QPA_PLATFORM=xcb
QT_IM_MODULE=xim
How to do it:
- Find the .desktop file that you use to start Resolve. Usually in
~/.local/share/applications/davinci-resolve.desktop
- On the Exec line, make sure the command starts with
env -u XDG_RUNTIME_DIR -u DBUS_SESSION_BUS_ADDRESS
- For the optionals, include them in the env line, so now your Exec line should look like
Exec=env -u XDG_RUNTIME_DIR -u DBUS_SESSION_BUS_ADDRESS QT_QPA_PLATFORM=xcb QT_IM_MODULE=xim LIBVA_DRIVER_NAME=nvidia QT_AUTO_SCREEN_SCALE_FACTOR=1 [OTHER_ENV_STUFF_THAT_YOU_USE_HERE] /opt/resolve/bin/resolve
.
For issue 2, Brave not having keyboard input while Resolve is running
Don’t start Brave with X11 ozone platform. Let it run on Wayland.
- Find the .desktop file that you use to start Brave. Usually in
~/.local/share/applications/brave-browser.desktop
- In it, find the Exec line and make sure there’s nothing about
x11
in it. - Env vars: to be sure, you can set a few env vars in it to force wayland:
- `XDG_SESSION_TYPE=wayland
GDK_BACKEND=wayland
GTK_IM_MODULE=wayland
QT_IM_MODULE=wayland
- It’s also helpful to set some brave-specific arguments:
--enable-features=WaylandWindowDecorations,UseOzonePlatform
--ozone-platform=wayland
My full exec line, including some things that help a bit with playing videos a bit better than stock:
Exec=env LIBVA_DRIVER_NAME=nvidia MOZ_DISABLE_RDD_SANDBOX=1 VDPAU_DRIVER=nvidia GBM_BACKEND=nvidia-drm __GLX_VENDOR_LIBRARY_NAME=nvidia XDG_SESSION_TYPE=wayland GDK_BACKEND=wayland GTK_IM_MODULE=wayland QT_IM_MODULE=wayland XMODIFIERS= /opt/brave-bin/brave --enable-features=WaylandWindowDecorations,VaapiVideoDecoder,VaapiVideoEncoder,UseOzonePlatform --ozone-platform=wayland --ignore-gpu-blocklist --enable-zero-copy --disable-features=UseChromeOSDirectVideoDecoder %U
For issue 3, Resolve not starting
To fix this, there’s just one thing that you need to add to the env section of the Exec line in the .desktop file: LD_PRELOAD=/usr/lib64/libglib-2.0.so:/usr/lib64/libgdk_pixbuf-2.0.so.0:/usr/lib64/libgio-2.0.so:/usr/lib64/libgmodule-2.0.so
.
Explanation of the env vars for Resolve:
-u XDG_RUNTIME_DIR
: Needed to get the keyboard working. Removes the XDG_RUNTIME_DIR environment variable.-u DBUS_SESSION_BUS_ADDRESS
: Needed to get the keyboard working. Removes the DBUS_SESSION_BUS_ADDRESS environment variable.QT_QPA_PLATFORM=xcb
: Optional. Tells QT Platform Abstraction to use the X protocol C-language Binding library. Basically nudge Resolve to use X, even if you’re on Wayland.QT_IM_MODULE=xim
: Optional. Tells QT to use the X Input Method for text input. Although xim is older, it’s pretty standard and solid.QT_AUTO_SCREEN_SCALE_FACTOR=1
. Mandatory on 4k and high-dpi screens. Fixes the scaling issues that Resolve has on Linux. Basically use this if you want Resolve’s UI to actually be usable on these screens.LIBVA_DRIVER_NAME=nvidia
: Use nvidia for vaapi. You need thenvidia-vaapi-driver
package to be installed for this to work. Useful for dual-gpu laptops (intel + nvidia).LD_PRELOAD=/usr/lib64/libglib-2.0.so:/usr/lib64/libgdk_pixbuf-2.0.so.0:/usr/lib64/libgio-2.0.so:/usr/lib64/libgmodule-2.0.so
. Fixes the “resolve not starting issue” by forcing it to use system libraries from /usr/lib64, and this fixes incompatibilities between the libraries of Resolve and some potentially newer libraries that you might have on your system like glib2.
My full .desktop file for Resolve:
[Desktop Entry]
Version=1.0
Type=Application
Name=DaVinci Resolve Studio
Comment=Professional video editing software
Exec=env -u XDG_RUNTIME_DIR -u DBUS_SESSION_BUS_ADDRESS LIBVA_DRIVER_NAME=nvidia QT_AUTO_SCREEN_SCALE_FACTOR=1 QT_QPA_PLATFORM=xcb QT_IM_MODULE=xim LD_PRELOAD=/usr/lib64/libglib-2.0.so:/usr/lib64/libgdk_pixbuf-2.0.so.0:/usr/lib64/libgio-2.0.so:/usr/lib64/libgmodule-2.0.so /opt/resolve/bin/resolve
Icon=/opt/resolve/graphics/DV_Resolve.png
Terminal=false
Categories=AudioVideo;Video;Application;
StartupWMClass=resolve
Garuda inxi:
System:
Kernel: 6.15.5-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 15.1.1 clocksource: tsc
avail: acpi_pm parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=28bd6bff-8598-41ce-bec6-ae24465d3bca rw rootflags=subvol=@
vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166
vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173
vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200 quiet
nvidia-drm.modeset=1 rd.luks.uuid=316249cc-7193-456f-89c1-f3206c9aa185
rd.luks.key=316249cc-7193-456f-89c1-f3206c9aa185=/.docs/2025.jpg:UUID=C676-0984
rd.luks.options=316249cc-7193-456f-89c1-f3206c9aa185=keyfile-timeout=10s
rd.luks.uuid=eafba6ea-1842-45d3-8af3-5ce617c6f478
resume=/dev/mapper/luks-eafba6ea-1842-45d3-8af3-5ce617c6f478 loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.4.2 tk: Qt v: N/A info: frameworks v: 6.15.0 wm: kwin_wayland vt: 1
dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Laptop System: ASUSTeK product: ZenBook Pro Duo UX582HS_UX582HS v: 1.0
serial: <superuser required>
Mobo: ASUSTeK model: UX582HS v: 1.0 serial: <superuser required> uuid: <superuser required>
UEFI: American Megatrends LLC. v: UX582HS.303 date: 04/21/2022
Battery:
ID-1: BAT0 charge: 92.6 Wh (100.0%) condition: 92.6/92.6 Wh (100.0%) volts: 15.9 min: 15.9
model: ASUSTeK ASUS Battery type: Li-ion serial: N/A status: not charging cycles: 11
Device-1: hidpp_battery_0 model: Logitech MX Ergo Multi-Device Trackball serial: <filter>
charge: 55% (should be ignored) rechargeable: yes status: discharging
Device-2: hidpp_battery_1 model: Logitech Marathon Mouse/Performance Plus M705 serial: <filter>
charge: 50% (should be ignored) rechargeable: yes status: N/A
CPU:
Info: model: 11th Gen Intel Core i9-11900H bits: 64 type: MT MCP arch: Tiger Lake gen: core 11
level: v4 note: check built: 2020 process: Intel 10nm family: 6 model-id: 0x8D (141) stepping: 1
microcode: 0x56
Topology: cpus: 1x dies: 1 clusters: 8 cores: 8 threads: 16 tpc: 2 smt: enabled cache:
L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 10 MiB desc: 8x1.2 MiB L3: 24 MiB desc: 1x24 MiB
Speed (MHz): avg: 2186 min/max: 800/4900:4800 scaling: driver: intel_pstate
governor: performance cores: 1: 2186 2: 2186 3: 2186 4: 2186 5: 2186 6: 2186 7: 2186 8: 2186
9: 2186 10: 2186 11: 2186 12: 2186 13: 2186 14: 2186 15: 2186 16: 2186 bogomips: 79872
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel TigerLake-H GT1 [UHD Graphics] vendor: ASUSTeK driver: i915 v: kernel
alternate: xe arch: Xe process: Intel 10nm built: 2020-21 ports: active: DP-2,DP-3,eDP-1
empty: DP-1,HDMI-A-2 bus-ID: 0000:00:02.0 chip-ID: 8086:9a60 class-ID: 0300
Device-2: NVIDIA GA104M [GeForce RTX 3080 Mobile / Max-Q 8GB/16GB] vendor: ASUSTeK
driver: nvidia v: 575.64.03 alternate: nouveau,nvidia_drm non-free: 550-570.xx+ status: current
(as of 2025-04; EOL~2026-12-xx) arch: Ampere code: GAxxx process: TSMC n7 (7nm)
built: 2020-2023 ports: active: none empty: HDMI-A-1 bus-ID: 0000:01:00.0 chip-ID: 10de:249c
class-ID: 0300
Device-3: IMC Networks USB2.0 HD UVC WebCam driver: uvcvideo type: USB rev: 2.0 speed: 480 Mb/s
lanes: 1 mode: 2.0 bus-ID: 3-9:4 chip-ID: 13d3:56eb class-ID: fe01 serial: <filter>
Display: wayland server: X.org v: 1.21.1.18 with: Xwayland v: 24.1.8 compositor: kwin_wayland
driver: X: loaded: modesetting,nvidia unloaded: nouveau,vesa alternate: fbdev,intel,nv dri: iris
gpu: i915 d-rect: 3840x5420 display-ID: 0
Monitor-1: DP-2 pos: primary,top model: ASUS PA279 serial: <filter> built: 2022 res:
mode: 3840x2160 hz: 60 scale: 150% (1.5) to: 2560x1440 dpi: 163 gamma: 1.2
size: 597x336mm (23.5x13.23") diag: 685mm (27") ratio: 16:9 modes: max: 3840x2160 min: 640x480
Monitor-2: DP-3 pos: bottom model: BOE Display 0x085f built: 2021 res: mode: 3840x1100 hz: 60
scale: 150% (1.5) to: 2560x733 dpi: 284 gamma: 1.2 size: 344x99mm (13.54x3.9")
diag: 358mm (14.1") modes: max: 3840x1100 min: 1920x550
Monitor-3: eDP-1 pos: middle model: Samsung 0x415f built: 2019 res: mode: 3840x2160 hz: 60
scale: 200% (2) to: 1920x1080 dpi: 284 gamma: 1.2 size: 344x194mm (13.54x7.64")
diag: 395mm (15.5") ratio: 16:9 modes: 3840x2160
API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris device: 2 drv: swrast gbm:
drv: iris surfaceless: drv: iris wayland: drv: iris x11: drv: iris inactive: device-1
API: OpenGL v: 4.6 compat-v: 4.5 vendor: nvidia mesa v: 575.64.03 glx-v: 1.4 direct-render: yes
renderer: NVIDIA GeForce RTX 3080 Laptop GPU/PCIe/SSE2 memory: 7.81 GiB display-ID: :1.0
API: Vulkan v: 1.4.313 layers: 11 device: 0 type: integrated-gpu name: Intel UHD Graphics (TGL
GT1) driver: mesa intel v: 25.1.5-arch1.1 device-ID: 8086:9a60 surfaces: N/A device: 1
type: discrete-gpu name: NVIDIA GeForce RTX 3080 Laptop GPU driver: nvidia v: 575.64.03
device-ID: 10de:249c surfaces: N/A device: 2 type: cpu name: llvmpipe (LLVM 20.1.7 256 bits)
driver: mesa llvmpipe v: 25.1.5-arch1.1 (LLVM 20.1.7) device-ID: 10005:0000 surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo de: kscreen-console,kscreen-doctor
gpu: gputop, intel_gpu_top, lsgpu, nvidia-settings, nvidia-smi wl: wayland-info x11: xdriinfo,
xdpyinfo, xprop, xrandr
Audio:
Device-1: Intel Tiger Lake-H HD Audio vendor: ASUSTeK driver: sof-audio-pci-intel-tgl
alternate: snd_hda_intel, snd_soc_avs, snd_sof_pci_intel_tgl bus-ID: 0000:00:1f.3
chip-ID: 8086:43c8 class-ID: 0401
Device-2: NVIDIA GA104 High Definition Audio vendor: ASUSTeK driver: snd_hda_intel v: kernel
bus-ID: 0000:01:00.1 chip-ID: 10de:228b class-ID: 0403
API: ALSA v: k6.15.5-zen1-1-zen status: kernel-api tools: alsactl,alsamixer,amixer
Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
Server-2: PipeWire v: 1.4.6 status: active with: 1: pipewire-pulse status: active
2: wireplumber status: active 3: pipewire-alsa type: plugin 4: pw-jack type: plugin
tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Tiger Lake PCH CNVi WiFi driver: iwlwifi v: kernel bus-ID: 0000:00:14.3
chip-ID: 8086:43f0 class-ID: 0280
IF: wlo1 state: up mac: <filter>
Device-2: Realtek USB 10/100/1G/2.5G LAN driver: r8152 type: USB rev: 3.2 speed: 5 Gb/s
lanes: 1 mode: 3.2 gen-1x1 bus-ID: 4-1:2 chip-ID: 0bda:8156 class-ID: 0000 serial: <filter>
IF: enp0s20f0u1 state: up speed: 2500 Mbps duplex: full mac: <filter>
Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
Bluetooth:
Device-1: Intel AX201 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0 speed: 12 Mb/s lanes: 1
mode: 1.1 bus-ID: 3-14:7 chip-ID: 8087:0026 class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 2 state: up address: N/A
RAID:
Hardware-1: Intel Volume Management Device NVMe RAID Controller driver: vmd v: 0.6 port: N/A
bus-ID: 0000:00:0e.0 chip-ID: 8086:9a0b rev: class-ID: 0104
Drives:
Local Storage: total: 1.82 TiB used: 587.27 GiB (31.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 2TB size: 1.82 TiB
block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 5B2QGXA7 temp: 39.9 C scheme: GPT
Partition:
ID-1: / raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 105.25 GiB (25.7%) fs: btrfs
dev: /dev/dm-0 maj-min: 253:0 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) used: 776 KiB (0.3%) fs: vfat
dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 105.25 GiB (25.7%) fs: btrfs
dev: /dev/dm-0 maj-min: 253:0 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
ID-4: /var/log raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 105.25 GiB (25.7%)
fs: btrfs dev: /dev/dm-0 maj-min: 253:0 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
ID-5: /var/tmp raw-size: 410.15 GiB size: 410.15 GiB (100.00%) used: 105.25 GiB (25.7%)
fs: btrfs dev: /dev/dm-0 maj-min: 253:0 mapped: luks-316249cc-7193-456f-89c1-f3206c9aa185
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: partition size: 34.14 GiB used: 0 KiB (0.0%) priority: -2 dev: /dev/dm-1
maj-min: 253:1 mapped: luks-eafba6ea-1842-45d3-8af3-5ce617c6f478
ID-2: swap-2 type: zram size: 31.03 GiB used: 0 KiB (0.0%) priority: 100 comp: zstd
avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 74.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Memory: total: 32 GiB note: est. available: 31.03 GiB used: 14.95 GiB (48.2%)
Processes: 433 Power: uptime: 9h 44m states: freeze,mem,disk suspend: s2idle avail: deep
wakeups: 0 hibernate: platform avail: shutdown, reboot, suspend, test_resume image: 12.36 GiB
services: org_kde_powerdevil, power-profiles-daemon, upowerd Init: systemd v: 257
default: graphical tool: systemctl
Packages: 1704 pm: pacman pkgs: 1697 libs: 428 tools: octopi,paru,yay pm: rpm pkgs: 0
pm: flatpak pkgs: 7 Compilers: clang: 20.1.7 gcc: 15.1.1 alt: 14 Client: Unknown Client: electron
inxi: 3.3.38
Garuda (2.7.3-1):
System install date: 2025-06-26
Last full system update: 2025-07-08
Is partially upgraded: No
Relevant software: snapper NetworkManager dracut
Windows dual boot: No/Undetected
Failed units: afc.service