About Articles Projects Software love Feed

Running Teams on Linux

Various options and solutions for running Teams on Linux

Some at my work place wondered how I access Teams…

divan-teams.jpeg

Well unfortunately it’s not via “a terminal”, unlike my Telegram client. This “terminal” my colleagues refer to is actually GNU Emacs in a X GUI.

If the corporate world was perfect we wouldn’t need MS teams and would instead run jitsi meet in the Matrix, with a nice client like Riot or matrix-client.el.

But of course, the real world requires various proprietary software.

Fortunately, for now, there is quite good support to run Teams on Linux.

I’ll discuss 3 options here:

  1. There is the free software client Teams for Linux client by Ismael Martinez.

    To get that going install it:

    flatpak --user install com.github.IsmaelMartinez.teams_for_linux
    flatpak run com.github.IsmaelMartinez.teams_for_linux
    

    Pros are it’s free software. Downside is the app is not up to date in flathub, but there is an AppImage for it. I don’t install apps that way on my distro so I mostly gave this software a skip.

  2. The official Microsoft Teams Linux desktop client. To get that going one can:

    flatpak --user install com.microsoft.Teams
    flatpak run com.microsoft.Teams --filesystem=~/tmp/teams
    

    I’m not a fan of the official MS Teams on Linux desktop client.

    The reasons:

    • It’s heavy on resources, especially CPU.
    • Drains battery.
    • It’s proprietary.
    • It requires pulseaudio due to the flatpak bundle.
    • Hasn’t got the latest Teams features. Lags behind the Windows and Mac equivalent unsurprisingly. For instance you can’t put up your hand to speak and many other little things.
    • It’s got it’s own notification system. One can’t integrate this into your desktop. So it’s an eye sore and you can’t manage all your notifications centrally.
  3. The other option, which is the best for me is via the web. Yes one could just browse to https://teams.microsoft.com, but there is a better way.

    Let’s call this “web app client”. (BTW, this idea can be extended to wrap a lot more apps then just Teams.)

    Basically install this script at ~/.local/bin/teams. Obviously ~/.local/bin should be in your PATH.

    #!/bin/sh
    chrome --app="https://teams.office.com" "$@"
    

    This launches the Teams application in via Chrome browser in App mode, which works and looks great! Especially in a window manager desktop like EXWM or i3.

    The benefits here:

    • Integrated notifications.
    • Much less CPU usage.
    • Doesn’t drain your battery.
    • You get the latest Teams features.
    • Doesn’t require pulseaudio.

    I have also tested this teams setup with a free Google Chrome alternative like ungoogled-chromium yet and the results were exactly the same, which is great.

    One issue I noticed with this web app client setup is getting a Teams invite via email or in another browser would not open it in my “teams app” (which is a shell script).

    That was resolved by installing this file ~/.local/share/applications/teams.desktop:

    [Desktop Entry]
    Version=1.0
    Type=Application
    Name=Teams
    Exec=teams
    Terminal=false
    StartupNotify=true
    Categories=AudioVideo;Network;
    MimeType=x-scheme-handler/msteams;
    X-KDE-Protocols=teams
    

    I also added this to ~/.mailcap:

    x-scheme-handler/msteams; teams %s
    

    Now clicking a Teams link on any app should launch it perfectly.

    The other issue I noticed with this method of launching Teams is that the desktop screen sharing doesn’t work as well as the official client.

    That is the “web app client” can’t share an application, only a chrome tab, or your “desktop”.

    When doing screen sharing I normally would share a single screen from my desktop. This works great in the official client, but in this option it shares your entire virtual screen. So if you have two or 3 monitors attached it shares that wide screen view which is unusable.

    The workaround for me turns out to be very simple. I simply switch off the monitor of the screen(s) I’m not sharing before starting the screen sharing session:

    xrandr --output DP-2 --off
    

    I don’t normally share a single application, though that would be a nice option to have. I’ve tried installing this Chrome extension, but that didn’t solve it for me. If you manage to get it working, let me know.

    Happy hacking!

Comments

Date: 2020-06-19 (Last update: 2020-07-28)

Made with Emacs 26.1 (Org mode 9.1.9)

Creative Commons License