Springe zum Hauptinhalt
t.animal
Anagraphein!
t.animal
Anagraphein!

Blog

Das ist kein Blog. Ich poste hier in unregelmäßigen Abständen Dinge.

Virtuelle Hintergründe in Teams auf Linux

"Microsoft liebt Linux" angeblich. Diese Liebe geht aber nicht so weit, um Linux user mit einer ordentlichen Version von Microsoft Teams zu versorgen. Ich habe mir zB selbst nachgebaut, dass ich beliebige Bilder als Hintergrund anzeigen kann.

Zwar gibt es einen electron- build des Redmonder Kommunikationstools, aber der wird nur sehr spärlich gepflegt, erhält fast keine Updates und noch weniger Features. Dies ist umso unverständlicher, da der Webclient mehr features bietet als der Electron-client. Daher bin auch ich vor einiger Zeit zurück umgestiegen auf den Webclient. Installiert man sich diesen als Chrome-App, erhält man fast einen vollwertigen Ersatz für einen nativen Client.

Eines fehlt aber dennoch: Windows-Nutzer können Bild-Dateien in einen speziellen Ordner ablegen. Teams zieht diese dann an und man kann sie als Hintergrund verwenden, wenn man nicht gerade sein Wohnzimmer aller Welt präsentieren möchte. Im Webclient wurde zwar das Verwischen (blurring) des Hintergrunds vor einiger Zeit aktiviert und auch einige vorgegebene Hintergründe stehen zur Auswahl, der geneigt Linux-Nutzer kann aber nicht seine eigenen Fotos hochladen. Dabei wäre das aus technischer Sicht unglaublich einfach und würde für die Microsoft-Server nicht ein byte zusätzlichen Traffic oder Speicherplatz bedeuten, denn die Daten werden lokal verarbeitet.

Ich weiß das, weil ich dem Teams Web-Client mit dem Debugger zu Leibe gerückt bin und den Weg eines Hintergrundbildes durch den Code verfolgt habe. Und siehe da: Kurz, nachdem das Bild geladen wird, stopft Microsoft es in eine Browser-API, die aus einer Datei eine leichter weiter zu verarbeitende virtuelle URL macht. Jackpot! Denn die können wir überschreiben. Und so sind die folgenden zwei Funktionen entstanden.

Einfach den Code kopieren und in der Konsole des Teams Web-Client ausführen. Wenn du dann das nächste mal den Hintergrund mit den Schließfächern (zweite Zeile, linkes Bild) auswählst, erscheint ein Prompt, in dem du ein Foto hochladen kannst. Um ein neues Foto hochzuladen, führe die "upload" funktion manuell aus und wähle anschließend kurz ein anderes Foto und dann wieder die Schließfächer aus. Tada! Eigene Hintergründe in MS Teams auf Linux.

Noch einfacher wird es durch das bookmarken dieses Links mit einem bookmarklet. Du musst dann nur noch das bookmarklet anklicken, wenn du ein neues Bild hochladen willst und die Schließfächer einmal ab- und wieder auswählen.

function upload() {
    const elem  = document.createElement('input');
    elem.setAttribute('type', 'file');
    elem.click();
    elem.oninput = () => {
        const file = elem.files?.item(0) ?? null;
        if(file === null) {
            return;
        }

        const url = URL.createObjectURL(file);

        window.customBackgroundUrl = url;
    }
}

function overrideImage() {
    const lockerRoomImageSize = 4233479;

    if(URL.origCreateObjectUrl === undefined) {
        URL.origCreateObjectUrl = URL.createObjectURL;
    }

    URL.createObjectURL = (arg) => {
        if(!(arg instanceof Blob && arg.size === lockerRoomImageSize)) {
            return URL.origCreateObjectUrl(arg);
        }

        if(window.customBackgroundUrl === undefined) {
            upload();
        }

        if(window.customBackgroundUrl === undefined) {
            return URL.origCreateObjectUrl(arg);
        }

        return window.customBackgroundUrl;

    }
}

if(!window.overrideDone) {
    overrideImage();
    window.overrideDone = true;
}

upload();