Skip to content

Instantly share code, notes, and snippets.

@demaisj
Created May 9, 2019 06:46
Show Gist options
  • Select an option

  • Save demaisj/60b8f868dd143fad82b5b9a4d83aac7c to your computer and use it in GitHub Desktop.

Select an option

Save demaisj/60b8f868dd143fad82b5b9a4d83aac7c to your computer and use it in GitHub Desktop.

Revisions

  1. demaisj created this gist May 9, 2019.
    67 changes: 67 additions & 0 deletions msteams.patch.user.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,67 @@
    // ==UserScript==
    // @name Microsoft Teams Settings Patcher (Webcam + Screenshare) QUITE BROKEN
    // @namespace http://tampermonkey.net/
    // @version 0.1
    // @description try to take over the world!
    // @author You
    // @match https://teams.microsoft.com/*
    // @grant none
    // ==/UserScript==

    (function() {
    'use strict';

    console.log('[PATCHER] HELLO!');

    // https://github.com/IsmaelMartinez/teams-for-linux/blob/develop/app/browser/index.js
    function patch() {
    console.log('[PATCHER] PATCHING!');

    setTimeout(() => {
    console.log('[PATCHER] TIMED OUT!');

    let injector = angular.element(document).injector();

    if(injector) {
    enableChromeVideoAudioMeetings(injector);
    disablePromoteStuff(injector);

    injector.get('settingsService').settingsService.refreshSettings();

    }
    // Future tests can be done in here...
    // angular.element(document).injector().get('settingsService').appConfig.replyBoxFocusAfterNewMessage = true;
    //last I look is enableIncomingVideoUnsupportedUfd groing from down to up.
    }, 3000);
    }

    function enableChromeVideoAudioMeetings(injector) {
    injector.get('callingSupportService').oneOnOneCallingEnabled = true;
    injector.get('callingSupportService').isChromeMeetingSingleVideoEnabled = true;
    injector.get('callingSupportService').isChromeVideoOneOnOneEnabled = true;
    injector.get('callingSupportService').isChromeVideoMultipartyEnabled = true;
    injector.get('settingsService').appConfig.enableCallingChromeOneOnOne = true;
    injector.get('settingsService').appConfig.callingEnableChromeMeetingSingleVideo = true;
    injector.get('settingsService').appConfig.callingEnableChromeMultipartyVideo = true;
    injector.get('settingsService').appConfig.enableChromeScreenSharing = true;
    injector.get('settingsService').appConfig.enableAddToChatButtonForMeetings = true;
    injector.get('settingsService').appConfig.enableSharingOnlyCallChrome = true;
    injector.get('settingsService').appConfig.enableScreenSharingToolbar = true;
    injector.get('settingsService').appConfig.enableCallingScreenPreviewLabel = true;
    injector.get('settingsService').appConfig.callingEnableChromeOneToOneVideo = true;
    injector.get('settingsService').appConfig.enableMeetingStartedNotificationWeb = true;
    injector.get('settingsService').appConfig.enableMicOSUnmuteOnUnmute = true;
    injector.get('settingsService').appConfig.enableModeratorsSupport = true;
    injector.get('settingsService').appConfig.enableRecordPPTSharing = true;
    }

    function disablePromoteStuff(injector) {
    injector.get('settingsService').appConfig.promoteMobile = false;
    injector.get('settingsService').appConfig.promoteDesktop = false;
    injector.get('settingsService').appConfig.hideGetAppButton = true;
    injector.get('settingsService').appConfig.enableMobileDownloadMailDialog = false;
    }

    patch();

    })();