Synced files: - Session log 2026-03-19 updated (autostart, ScreenConnect, Flarum forum, theme, Node.js) - docs/forum-posts/ recovered from old btrfs home (7 forum post guides) Machine: acg-guru-5070 Timestamp: 2026-03-19 19:25:24 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
5.6 KiB
Fix: ConnectWise ScreenConnect Client on Arch Linux with Wayland
Environment
- OS: CachyOS (Arch-based), kernel 6.19.x
- DE: KDE Plasma 6 (Wayland session)
- Java: OpenJDK 25.x
- ScreenConnect: Access Host client (Linux .sh installer)
Problem
The ScreenConnect .sh installer fails on Arch Linux because it only supports dpkg (Debian) and rpm (Red Hat) package managers. Even after getting it installed, the client connects but produces no visible window on Wayland desktops.
There are three separate issues that must be fixed in sequence.
Issue 1: Installer Doesn't Work on Arch
The ScreenConnect.ClientSetup.sh installer checks for dpkg or rpm, neither of which exist on Arch by default. The script contains two embedded installers — "Guest" (uses package managers) and "Host" (self-contained tar.gz). The Guest installer's exit 0 at line ~557 prevents the Host installer from running if a package manager isn't found.
Fix: Install dpkg so the installer's detection logic succeeds:
sudo pacman -S dpkg
Then run the installer as your regular user (not root):
~/Downloads/ScreenConnect.ClientSetup.sh
Gotcha: If you run with sudo, it installs to /root/.local/share/applications/ instead of your home directory. To fix this:
sudo mv /root/.local/share/applications/connectwisecontrol-* ~/.local/share/applications/
sudo chown -R $USER:$USER ~/.local/share/applications/connectwisecontrol-*
The installed location is: ~/.local/share/applications/connectwisecontrol-<hash>/
Alternative: PKGBUILD Approach
There's a community PKGBUILD on GitHub that repackages the .deb as a proper Arch package with a systemd service. This is a good option if you want pacman-managed installs and pacman -Rs uninstallation. However, the simpler dpkg approach above works well for the Access Host client.
Issue 2: Java Headless — No GUI Support
The ScreenConnect client is a Java Swing application. CachyOS (and many Arch installs) ships jre-openjdk-headless by default, which lacks AWT/Swing libraries.
Error in logs (~/.local/share/applications/connectwisecontrol-<hash>-logs):
java.awt.HeadlessException:
No X11 DISPLAY variable was set,
or no headful library support was found
Fix: Install the full (headful) JRE:
sudo pacman -S --ask 4 jre-openjdk
# --ask 4 allows replacing the conflicting headless package
Issue 3: Wayland Incompatibility
Java AWT/Swing does not support Wayland natively. Even with the full JRE, the ScreenConnect window fails to create on a Wayland session because the Java toolkit can't open an X11 display.
Error in logs:
java.lang.NullPointerException: Cannot invoke "com.screenconnect.client.ScreenFrame.getScreenPanel()"
because "this.screenFrame" is null
Fix: Force X11 (XWayland) backend by patching the launcher script:
sed -i '1a export GDK_BACKEND=x11\nexport _JAVA_AWT_WM_NONREPARENTING=1' \
~/.local/share/applications/connectwisecontrol-*/ClientLauncher.sh
GDK_BACKEND=x11forces the Java process to use XWayland instead of native Wayland_JAVA_AWT_WM_NONREPARENTING=1is recommended by the Archjre-openjdkpackage for tiling/non-reparenting window managers, and fixes rendering issues on KDE Plasma under Wayland
Autostart on Login
To have ScreenConnect start automatically when you log in, copy the .desktop file to your autostart directory:
cp ~/.local/share/applications/connectwisecontrol-*.desktop ~/.config/autostart/
Complete Setup (TL;DR)
# 1. Install dependencies
sudo pacman -S dpkg jre-openjdk
# 2. Run installer as your user (NOT sudo)
~/Downloads/ScreenConnect.ClientSetup.sh
# 3. Patch launcher for Wayland
sed -i '1a export GDK_BACKEND=x11\nexport _JAVA_AWT_WM_NONREPARENTING=1' \
~/.local/share/applications/connectwisecontrol-*/ClientLauncher.sh
# 4. Enable autostart
cp ~/.local/share/applications/connectwisecontrol-*.desktop ~/.config/autostart/
# 5. Launch
sh ~/.local/share/applications/connectwisecontrol-*/ClientLauncher.sh
Verification
Check the log file for errors:
cat ~/.local/share/applications/connectwisecontrol-*-logs
A clean run should show only these non-fatal warnings:
WARNING: A restricted method in java.lang.System has been called
WARNING: java.lang.System::loadLibrary has been called by com.screenconnect.Extensions
WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning
WARNING: Restricted methods will be blocked in a future release unless native access is enabled
Important Notes
- Updates overwrite the patch. The
ClientLauncher.shWayland fix will be lost if ScreenConnect updates itself or you reinstall. Reapply thesedcommand after any update. - Logs location:
~/.local/share/applications/connectwisecontrol-<hash>-logs - Desktop entry:
~/.local/share/applications/connectwisecontrol-<hash>.desktop - Applies to all Arch-based distros on Wayland: CachyOS, Manjaro, EndeavourOS, etc.
- Applies to all Wayland compositors: KDE Plasma, GNOME, Sway, Hyprland, etc.
What Doesn't Work (Online Suggestions to Avoid)
- IcedTea / Java Web Start (JNLP): Frequently recommended in forums but broken with modern Java versions. Only works for the web viewer, not the persistent Access Host agent.
- Switching to X11 globally: Works, but defeats the purpose of running Wayland. The per-app
GDK_BACKEND=x11fix is better. - Debtap: Can convert the
.debbut doesn't create a systemd service or handle the Wayland issue. More steps for the same result.