RQuickShare (github.com) is an open-source Linux client for Google’s Quick Share protocol. After installing it on CachyOS, the app either crashed immediately or showed a blank window. Even after getting the GUI working, file transfers still failed silently.
Two independent problems were causing this.
Installing RQuickShare
RQuickShare is available in the CachyOS repositories. Install it via pacman:
sudo pacman -S rquickshare
Alternatively, you can install it through CachyOS Hello — it’s listed under the applications section.
Fix 1: Wayland rendering crashes
This one needs to be fixed first, because without it you can’t even use the app to test anything else.
RQuickShare uses a WebKit-based GUI (Tauri). On CachyOS with Wayland, it either crashes outright or renders a blank window, depending on which workaround you try first.
Crash: Wayland protocol error
Running rquickshare without any environment overrides:
$ rquickshare 2>&1
Gdk-Message: 11:40:15.494: Error 71 (Protocol error) dispatching to Wayland display.
The app exits immediately.
Blank window: GBM buffer failure
Setting GDK_BACKEND=x11 avoids the Wayland crash, but the window renders completely empty:
$ GDK_BACKEND=x11 rquickshare 2>&1
Failed to create GBM buffer of size 900x600: Invalid argument
Failed to create GBM buffer of size 900x600: Invalid argument
The app runs but you can’t see or interact with anything.
The fix: two environment variables
Both issues go away with:
WEBKIT_DISABLE_DMABUF_RENDERER=1 GDK_BACKEND=x11 rquickshare
GDK_BACKEND=x11— forces XWayland, avoids the Wayland protocol errorWEBKIT_DISABLE_DMABUF_RENDERER=1— disables the DMA-BUF renderer in WebKitGTK, fixing the blank window caused by GBM buffer allocation failures
With both set, the app starts cleanly and the window renders correctly.
Fix 2: Static port for UFW
With the app actually visible, the next problem: file transfers still fail. CachyOS ships with UFW enabled by default, and RQuickShare picks a random port on every launch:
$ rquickshare 2>&1
TcpListener on: 0.0.0.0:38767
Next restart it might be 41023, then 55891. UFW blocks all of them because no rule matches.
The fix is to pin a static port in the RQuickShare config and open that port in the firewall.
Edit ~/.local/share/dev.mandre.rquickshare/.settings.json:
{
"port": 49152,
"download_path": "~/Downloads/QuickShare",
"realclose": false,
"visibility": 0,
"startminimized": true,
"autostart": false
}
I also set download_path to a dedicated subfolder — by default RQuickShare dumps everything into ~/Downloads, and I prefer keeping Quick Share files separate.
I picked 49152 because it’s the start of the IANA dynamic/private port range — unlikely to conflict with anything.
autostart is false here on purpose — RQuickShare’s internal autostart toggle creates a problem on Wayland that I’ll cover in Autostart below. We’ll set up autostart manually instead.
Then allow it through UFW, scoped to the local network only:
sudo ufw allow from 192.168.0.0/16 to any port 49152 proto tcp
sudo ufw allow from 192.168.0.0/16 to any port 49152 proto udp
After restarting RQuickShare:
TcpListener on: 0.0.0.0:49152
Fixed port, firewall lets it through. File transfers now work in both directions.
Desktop integration
Setting environment variables on the command line works, but you also want it to apply when RQuickShare autostarts at login and when you launch it from the app menu.
Autostart
There’s a trap here. RQuickShare creates its own autostart entry at ~/.config/autostart/RQuickShare.desktop when autostart: true, and it actively manages that file on every launch:
- With
autostart: trueit rewrites the file using a plainExec=/usr/bin/rquickshare— dropping any env vars you added by hand. - With
autostart: falseit deletes the file outright.
Either way, editing RQuickShare.desktop directly doesn’t survive a restart. The symptom is sneaky: backend services (TCP listener, mDNS) come up fine and log success, but the WebKit GUI silently dies under Wayland. Combined with startminimized: true and realclose: false, the broken instance hangs invisibly in the tray. Clicking the tray icon then tries to bring up a window that no longer exists — blank or crash.
The workaround: turn RQuickShare’s internal autostart off and create a separate .desktop under a name it doesn’t recognize.
"autostart": false is already set in .settings.json from Fix 2. Now create ~/.config/autostart/rquickshare-wayland.desktop:
[Desktop Entry]
Type=Application
Version=1.0
Name=RQuickShare (Wayland)
Comment=RQuickShare with Wayland/WebKit workaround env vars
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 GDK_BACKEND=x11 /usr/bin/rquickshare
StartupNotify=false
StartupWMClass=rquickshare
Terminal=false
X-GNOME-Autostart-enabled=true
Plasma honors any .desktop in ~/.config/autostart/ — the filename doesn’t matter, only that RQuickShare doesn’t recognize it as its own.
After a reboot, verify the env vars actually reached the running process:
$ pgrep -af rquickshare
1774 /usr/bin/rquickshare
$ tr '\0' '\n' < /proc/1774/environ | grep -E 'WEBKIT|GDK_BACKEND'
WEBKIT_DISABLE_DMABUF_RENDERER=1
GDK_BACKEND=x11
The cmdline shows just /usr/bin/rquickshare because env exec’d into the binary in the same PID — the env vars are there, you just have to look in /proc/<pid>/environ to see them.
App menu
The system-wide .desktop file lives at /usr/share/applications/rquickshare.desktop. Don’t edit that — the package manager owns it and will overwrite your changes on the next update.
Instead, copy it to the user-local override path:
cp /usr/share/applications/rquickshare.desktop ~/.local/share/applications/
Then edit ~/.local/share/applications/rquickshare.desktop and change the Exec line:
Exec=env WEBKIT_DISABLE_DMABUF_RENDERER=1 GDK_BACKEND=x11 rquickshare
Files in ~/.local/share/applications/ take priority over /usr/share/applications/, so your override survives package updates.
Conclusion
Two unrelated issues, both required. Without the static port and UFW rule, the firewall silently drops all Quick Share traffic. Without the environment variables, the app crashes or renders blank under Wayland. Once both are in place, Quick Share works as expected — phone-to-PC and PC-to-phone file transfers, autostart at login, proper GUI rendering through XWayland.
Update 2026-04-28
The original autostart instructions in this post said to edit ~/.config/autostart/RQuickShare.desktop directly. That doesn’t actually work — RQuickShare rewrites or deletes that file on every launch depending on its autostart setting, silently dropping the env vars. The post has been updated with the correct workaround: set autostart: false in settings and create your own .desktop under a different filename so RQuickShare leaves it alone. See Autostart for details.