TeamViewer Support on Wayland - Experimental State

JeanK
JeanK Posts: 7,052 Community Manager 🌍
edited October 17 in Blog

It's a fact: Wayland gets more and more prominent as a display server protocol. Many Linux distributions, including Ubuntu, are adopting Wayland as the default display server.

Now it's time for TeamViewer to support also incoming connections when using Wayland in the first experimental state!

📌Note: Before getting started, make sure you are using the latest TeamViewer version. You can update your TeamViewer client by following the instructions in the article below:

📄 Update TeamViewer on Linux via repository

Wayland support

To be sure you are using a client supporting Wayland you should see a message like the following in the Remote Control view.

If you can see this message, you are signed in on Wayland and your client is ready to support the incoming sessions with Wayland.

Experimental state

Wayland support is currently available in a first version. The overall feature package is still limited, and 100% stability cannot be guaranteed. Please note that Wayland support is also still under heavy development in Linux distributions. Still, we encourage you to try it out and give us feedback for further improvements and a final release.

The following functionality is already provided:

  • Permission request for screen sharing
  • Screen sharing of the main monitor
  • Mouse and keyboard input

What is not ready yet:

  • Connection to login screen
  • Session to unattended devices
  • Change monitor resolution
  • Clipboard synchronization
  • Black screen

Wayland's security concept

Give permission to share your screen / inject input events

Before your screen can be shared and input events like keyboard and mouse input can be transmitted to your computer you need to give permission due to Wayland's security concept. Without this acknowledgement your screen will never get shared with any other person nor can they control your computer.

See when your screen is shared

Due to Wayland's security concept, it's now always visible if your screen is currently shared, in addition to the visual indications TeamViewer is already providing.

Older clients

If you see this message on the startup [...]

[...] it means you are using an old client that does not yet support Wayland.

Please update your client to the latest version (at least 15.29.x) or sign in with Xorg on Linux startup.

(Example from Ubuntu sign in window)

See also some more discussions about it in the following thread: 📑State of Wayland TeamViewer

Trouble Shooting / Known Issues

KDE/Plasma

On KDE/Plasma with Wayland, it might be necessary to install the xdg-desktop-portal-kde package first. Rebooting after installation is advised.

Raspberry Pi OS (Debian 12 “bookworm”) compatibility with TeamViewer

The latest release of Raspberry Pi OS, based on Debian 12 “bookworm”, defaults to using a Wayland compositor when running on Raspberry Pi 4 or 5. For more details, visit the official Raspberry Pi announcement.

Issue

The Wayfire compositor, which is part of the new Raspberry Pi OS, currently lacks certain functionalities required by TeamViewer for screensharing over Wayland.

Solution

To enable TeamViewer screensharing on a Raspberry Pi running this OS, switch to the traditional X11/Openbox display system. Follow these steps:

  1. Open the terminal.
  2. Run the raspi-configtool: sudo raspi-config
  3. Navigate to 6 Advanced Options.
  4. Select A6 Wayland.
  5. Choose w1 X11.

After completing these steps, reboot your system to apply the changes. TeamViewer should now function correctly with the X11 display system.

Input stops working / Crashes on xdg-desktop-portal

On some systems, remote control of the mouse and keyboard might stop working and the TeamViewer log file will show many lines similar to

2022/04/20 16:51:39.890 3526 140237246535232 DW2!! RemoteDesktopPortal: call NotifyPointerMotionAbsolute failed: DBus: 'org.freedesktop.DBus.Error.AccessDenied' (Invalid session) when calling 'org.freedesktop.portal.RemoteDesktop.NotifyPointerMotionAbsolute' on '/org/freedesktop/portal/desktop', Errorcode=11

This is caused by a problem in xdg-desktop-portal (for further details please see this bug report).

The issue was fixed with xdg-desktop-portal versions 1.12.4 and 1.14.3, but your distribution might still use an older version.

If you encounter this problem, you can check which version of xdg-desktop-portal your system uses by executing

/usr/libexec/xdg-desktop-portal --version


General Wayland issues

Depending on the environment (Gnome/Plasma, distribution, hardware) there might be problems that are not related to TeamViewer as the Wayland support, in general, is not yet too stable.

If you have Firefox installed, you can check if the Wayland support is working in general by selecting "Screen capture".

We are counting on you

We would be happy to get your first impressions and feedback such as:

1) What is already working

2) Which issues you are facing

3) Which functionalities you are missing the most

⚠ Important note: As we are still in an experimental state, we still recommend using Xorg in production.

We thank you in advance for contributing to the development and hope that you'll already have a great user experience using TeamViewer on Wayland. https://bugs.kde.org/show_bug.cgi?id=456025

Community Manager

Tagged:
«13

Comments

  • Which functionalities you are missing the most

    Thank you for attending to Wayland. For me, the most valuable missing function is, "Show remote cursor".

  • kuooki
    kuooki Posts: 1


    TeamViewer on Ubuntu 22.04 Wayland with Nvidia drivers looks like this for me at least.

    In gui.log, there's always this following line that doesn't appear with xorg-session:

    QSGContext::initialize: depth buffer support missing, expect rendering errors.

    This is not new a new behaviour to this beta version. But all versions that i've tried work flawlessly on Xorg.

  • illialinux
    illialinux Posts: 3
    edited April 2022

    Thank you for starting to add support for Wayland!

    I connected to Ubuntu 22.04 on Wayland and noticed two issues:

    • clicking "Ctrl + Alt + T" to open a terminal does not work ("Send key combinations" is checked.)
    • Caps Lock in a terminal window does not work; as well as "Ctrl + C", "Ctrl + U" and similar terminal shortcuts.
  • Also, a signing key of TeamViewer's package is stored in a deprecated way leading to some warnings on Ubuntu 22.04. A similar issue and a solution are described here https://askubuntu.com/questions/1403556/key-is-stored-in-legacy-trusted-gpg-keyring-after-ubuntu-22-04-update.

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Hi @PaddyLandau , @kuooki , @illialinux ,

    thanks a lot for your valuable feedback so far.

    • I will upvote the remote cursor topic internally - it's already on the roadmap
    • We will have a look into the behavior with Nvidia drivers.
    • We will have a closer look into the Caps Lock issues and key combinations. @illialinux could you maybe provide me the operating system you are using on the client/supporter side?
    • We will have a look into the warning / storing the signing key.

    Best

    Kerstin

    Product Owner TeamViewer Core
  • @Kerstin_PO it was Ubuntu 20.04 (X.Org)

  • JorgeRF
    JorgeRF Posts: 3
    edited April 2022

    Thank you for Wayland support!

    I noticed the following and I don't know if it's intended behavior. Let's say I want to connect remotely to my PC to do something quick. I'll find that to be impossible as I have to physically give permission to share. It kind of defeats the purpose of remote control.

    Would it be possible to add a setting to the permission window to remember my choice? Like OBS does:

    Another issue is that I can only connect with the preview version, not the stable 15.29.4. This happens when connecting from an Android phone and I couldn't replicate it when connecting from my laptop to my PC. Pardon my english if you can!

    PS: edited to add more info.

    Jorge

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Hi @Jorge,

    thanks a lot for your feedback and the proposal. We will check, if we can include it in a next version - makes definitely sense.

    What's the issue with the 15.29.4 version? Could you maybe share more details what is working / what is not working? Is there some error message?

    Best,

    Kerstin

    Product Owner TeamViewer Core
  • JorgeRF
    JorgeRF Posts: 3

    The issue with 15.29.4 only happens when connecting from an Android phone so it might be the mobile version. It says it's connected but nothing happens. When I tried to connect with my laptop it worked with no issues.

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Thanks a lot, @JorgeRF! This information helps a lot to look into it. We will have a look.

    Best, Kerstin

    Product Owner TeamViewer Core
  • I really appreciate that you finally care about Wayland users, however i can't confirm that it's working for me.

    I am using Manjaro Linux with KDE Plasma 5.24.4 and Qt 5.15.4 (i guess Teamviewer is a Qt app, so this might be important).

    I got my package from the AUR, but it takes the official Teamviewer Debian package and repackages it. It's version 15.29.4.

    When i receive an incoming connection, no prompt to give access to my screen is opened, which is always the case when i start sharing my screen in Firefox for example.

    The Teamviewer control panel appears on the top right of my screen, but on the other end the screen just stays black.

    I think what Teamviewer tries to do, is simply screencast the existing XWayland screens, that are still there for compatibility reasons but show the real desktop with the native Wayland applications.

    I also noticed that Teamviewer is still running in XWayland mode, because it's still blurry on HiDPI screens (double checked that with xeyes).

    This might be intentional tho, because absolute positioning of the Teamviewer windows would be quite complicated otherwise.

    You can find my logs here (it's a bit annoying that you can't just attach them) : https://nc.horbach5x.de/s/t6EKcQ5r5StpCzT

    I hope that it helps and the bugs can be fixed :)

  • I also tested the new 15.30 package, but it didn't change the situation, unfortunately.

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Thanks a lot for the feedback @Major_Mayer , we will try to reproduce internally and have a look at your logs.

    Product Owner TeamViewer Core
  • Jovo
    Jovo Posts: 1

    Hello

    These commands should resolve the problem.

    cd /opt/teamviewer/tv_bin/RTlib/qt/plugins/xcbglintegrations/

    sudo mv libqxcb-glx-integration.so libqxcb-glx-integration.so.old

    sudo ln -s /usr/lib64/qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so

  • JorgeRF
    JorgeRF Posts: 3

    Hello

    It is working really good on Ubuntu 22.04/Fedora 36, but mouse cursor is not visible, on both OS. Android connection to Wayland sessions now works really well, except the aforementioned bug.

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Hi @JorgeRF , thanks a lot for trying out and providing your feedback. The mouse cursor should be visible with the next release coming this month.

    For Android I will double check again for the status.

    Best, Kerstin

    Product Owner TeamViewer Core
  • Bconstant
    Bconstant Posts: 1

    Is it in the wishlist to allow for unattended access while using Wayland? Or are there technical limitations of Wayland that make this impossible or impractical? I'm just wondering if I should continue to wait to see this support added, or if it is not currently planned.


    Thanks!

  • Kerstin_PO
    Kerstin_PO Posts: 77 Staff member 🤠

    Hi @Bconstant,

    thanks a lot for sharing your needs.

    Actually, it's a limitation on Wayland to get unattended access done straight forward as it requires the user to accept the connection by the security concept.

    But we have it on our roadmap to investigate if there are any possibilities. I will keep you posted as soon as we have any additional information.

    Best, Kerstin

    Product Owner TeamViewer Core
  • JonasE_TV
    JonasE_TV Posts: 7 Staff member 🤠

    Hello Major_Mayer,

    thank you very much for your feedback. Regarding the issues with KDE Plasma, I investigated this and have some good news and some bad news.

    It turned out that the reason for the dialog not appearing is actually a problem in KDE Plasma, not TeamViewer. I did a fix for that and opened a merge request. The good news is that this was already accepted and merged. So with the next KDE Plasma releases this should be resolved.

    The bad news is that I also found out that keyboard input will not work in connections to KDE Plasma at the moment as there is some functionality not implemented (for details, see the bug report). It looks like someone from KDE has already started to work on that, but I don't know how much needs to be done to resolve this.

    Best regards

    Jonas

  • buresu
    buresu Posts: 3

    Hi, Thank you for working on wayland support.

    Regarding the client-side issue, it seems that the key mapping is broken in the non-English environment.

    In my japanese environment, I can't type characters like '\'.

    With other Qt applications such as obs I can type correctly.

    I tested with GNOME 42.2 and KDE Plasma 5.25.2 on archlinux.

    TeamViewer version is 15.30.3.

    Thanks!

  • Sevada
    Sevada Posts: 1

    sound not working 22.04

  • buresu
    buresu Posts: 3
    edited July 2022

    I found the hidpi solution.

    It seems that the following qt library and plugins are required to enable hidpi.

    libQt5WaylandClient.so
    platforms/libqwayland-*
    wayland-decoration-client/*
    wayland-graphics-integration-client/*
    wayland-shell-integration/*
    

    Probably need to enable hidpi in application.

    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
    

    Similarly, the keymap problem was due to the lack of qt plugin.

    platforminputcontexts/libfcitx5platforminputcontextplugin.so
    
  • buresu
    buresu Posts: 3

    I have enabled wayland and successfully connected to nvidia ubuntu.

    However, it still have crashes probably due to I mixed the Qt versions.

    Also, QT_QPA_PLATFORM=wayland is required to run.

  • I'm curious how much, if any, testing had been done with wlroots compositors such as Sway or Wayfire. Since the connection is using xdg-desktop-portal, I would assume that some degree of functionality is provided by xdg-desktop-portal-wlr, but I'm curious what the experience looks like.

  • Aaditya
    Aaditya Posts: 2

    I am using Teamviewer to control remote PC which has Ubuntu 22.04. Everytime I leave the teamviewer window unattended on my laptop, it locks in 5 minutes and I have to give permission to grant access( by physically accepting the access request on the Ubuntu device). So I cannot leave my Ubuntu PC and work from remotely, as once the screen locks/ display switches off the access is lost.

    Also, what are the plans for Unattended access for remote Ubuntu system? Any updates regarding that?

  • MikaTolvanen
    MikaTolvanen Posts: 1
    edited August 2022

    I just moved to Ubuntu 22.04, installed latest Teamviewer and noticed this Wayland problem. It asks permission on remote screen every time when connection is attempted, in practice disabling the remote support.

    Also, connecting from Ubuntu to Windows computer did not work properly. It connects but the content of remote app windows is a mess.

    Both these started to work when I selected "Ubuntu on Xorg" from the small cogwheel on the lower right corner of the login screen. Selecting just "Ubuntu" will use Wayland.

    Is it now so that TeamViewer is unusable with Ubuntu 22.04 and Wayland?

  • kode54
    kode54 Posts: 17

    I am attempting to use this Wayland support from Arch, using Wayfire with xdg-desktop-portal-wlr-git. I have verified that the xdg-desktop-portal works with OBS Studio, and is able to capture 4K60 with minimal CPU and GPU usage.

    TeamViewer, on the other hand, cannot connect to the desktop. From the log:

    2022/08/29 12:15:37.245 453587 140460371080896 S   AcceptServer::HandleAccept: new connection from 127.0.0.1:54796
    2022/08/29 12:15:37.287 453587 140460429829824 S   IpcInitConnection::Received_Control_InitIPC: Connecting process: 454145
    2022/08/29 12:15:37.287 453587 140460429829824 S!  IpcInitConnectionLinux::GetOsSessionForProcessId: received unknown os session 4294967295 for process 454145!
    2022/08/29 12:15:37.288 453587 140460429829824 S!! IpcInitConnection::Received_Control_InitIPC: IPC connection failed, session not found: type = 4 pid = 454145, Errorcode=11
    2022/08/29 12:15:37.288 453587 140460429829824 S!  InterProcessNetwork::HandleCommand: Could not send to target because session ID is unknown: CC=1 CT=1
    2022/08/29 12:15:53.245 453587 140460446615232 S   TcpProcessConnector::HandleRead(): Socket gracefully closed (PID=454145)
    2022/08/29 12:15:53.245 453587 140460446615232 S   TcpProcessConnector::CloseConnection(): PID=454145
    

    Incidentally, I have to manually run the following to make Wayfire work properly with dbus apps, but I'm not sure if there's more needed:

    0_environment = dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY SWAYSOCK
    1_environment = systemctl --user import-environment
    
  • kode54
    kode54 Posts: 17

    I'm also unable to run with QT_QPA_PLATFORM=wayland, this causes it to simply crash on startup.

  • kode54
    kode54 Posts: 17

    I can't get an iOS client to connect to the desktop session (as a test) from either Gnome Wayland or KDE/Plasma Wayland. So for all intents and purposes, Wayland support is non-functional.

  • HamburgerJungeJr
    HamburgerJungeJr Posts: 1
    edited August 2022

    I'm unable to connect to a KDE-Wayland session on Fedora36 with Teamviewer 15.33.7 and Plasma 5.25.4-1.

    The window for allowing access to the screen is not showing. The connecting client shows continously the message "connecting to partner", the client I want to connect to doesn't change the status from "Ready" to "Connecting" so I assume the Teamviewer-UI is not aware of the incoming connection.

    Screensharing is possible from a chromium-browser. I tested it with MS-Teams as well as the mentioned testpage.

    The teamviewer log gives the following messages:

    [removed per Community Guidelines]

    The following xdg-packages are installed

    xdg-dbus-proxy.x86_64                                                                                                     0.1.3-1.fc36                                                                                             @anaconda
    xdg-desktop-portal.x86_64                                                                                                 1.12.6-1.fc36                                                                                            @updates  
    xdg-desktop-portal-gnome.x86_64                                                                                           42.3-1.fc36                                                                                              @updates  
    xdg-desktop-portal-gtk.x86_64                                                                                             1.12.0-5.fc36                                                                                            @fedora   
    xdg-desktop-portal-kde.x86_64                                                                                             5.25.4-1.fc36                                                                                            @updates  
    xdg-user-dirs.x86_64                                                                                                      0.17-10.fc36                                                                                             @anaconda
    xdg-utils.noarch                                                                                                          1.1.3-11.fc36                                                                                            @anaconda
    


Leave a Comment

Rich Text Editor. To edit a paragraph's style, hit tab to get to the paragraph menu. From there you will be able to pick one style. Nothing defaults to paragraph. An inline formatting menu will show up when you select text. Hit tab to get into that menu. Some elements, such as rich link embeds, images, loading indicators, and error messages may get inserted into the editor. You may navigate to these using the arrow keys inside of the editor and delete them with the delete or backspace key.