Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

icysapphire's Fix for people appearing appearing on top of each other #282

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
90202a4
v1.38: Workaround for bug (isPinned)
icysapphire Jul 6, 2020
f8ef426
v1.39: Bugfix
icysapphire Jul 10, 2020
42f65c4
Improved Spanish and Catalan localizations
buenoudg Sep 7, 2020
050c51e
Fixed typo in the Spanish localization
buenoudg Sep 7, 2020
285ff55
Fixed typo in Catalan localization
buenoudg Sep 7, 2020
b7c3d75
y
icysapphire Sep 7, 2020
041c6a5
y
icysapphire Sep 7, 2020
1e35e2f
y
icysapphire Sep 7, 2020
f26af2c
y
icysapphire Sep 7, 2020
fb288c5
Merge pull request #1 from buenoudg/master
icysapphire Sep 7, 2020
d3127e2
v1.40: fixes
icysapphire Sep 10, 2020
aa8cd3c
Y
icysapphire Sep 10, 2020
966b49c
Merge
icysapphire Sep 10, 2020
fc2db45
Some localizations (en, es, ca) for new strings
buenoudg Sep 11, 2020
e119cd7
Merge pull request #5 from buenoudg/patch-2
icysapphire Sep 12, 2020
9d26aea
Some spanish localization fixes
buenoudg Sep 13, 2020
4fe4824
Merge pull request #6 from buenoudg/patch-2
icysapphire Sep 17, 2020
a4f9298
Update README.md
icysapphire Feb 11, 2021
7413628
Update README.md
icysapphire Feb 15, 2021
a6bffbb
y
icysapphire Feb 21, 2021
d76e3d7
y
icysapphire Feb 23, 2021
afeb90e
y
icysapphire Feb 23, 2021
f42d4fa
improvements
icysapphire Feb 24, 2021
d03e9ad
y
icysapphire Feb 24, 2021
adfb051
bugfix + better tile layout
icysapphire Mar 3, 2021
d60a328
own presentation show
icysapphire Mar 8, 2021
bbec4c7
fix
icysapphire Mar 8, 2021
e252607
y
icysapphire Mar 8, 2021
cd97e11
y
icysapphire Mar 11, 2021
f95bb8e
y
icysapphire Mar 24, 2021
3ff8eb7
y
icysapphire Mar 30, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/funding.yml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
custom: ["https://paypal.me/fugiman"]
custom: ["https://paypal.me/SimoneMarullo"]
4 changes: 0 additions & 4 deletions .github/pull_request_template.md

This file was deleted.

17 changes: 6 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,14 @@ This extension forcibly loads every participant's video when grid view is enable

Includes a variety of options to enhance your meeting: include your own video, highlight who is speaking, and hide participants without video!

## Official Releases
## Unofficial Release
Chrome Extension: https://chrome.google.com/webstore/detail/dakebdbeofhmlnmjlmhjdmmjmfohiicn

## Official Releases (Broken)
Chrome Extension: https://chrome.google.com/webstore/detail/kklailfgofogmmdlhgmjgenehkjoioip

Firefox Add-on: https://addons.mozilla.org/en-US/firefox/addon/google-meet-gridview

Microsoft Edge Extension: https://microsoftedge.microsoft.com/addons/detail/ogbbehbkcmdciebilbkpjgopohnpfolj

Userscript: https://greasyfork.org/en/scripts/397862-google-meet-grid-view
- **Chrome and Firefox supported.** Every update is tested on both Chrome and Firefox before release.
- **TamperMonkey, GreaseMonkey, and ViolentMonkey supported.** All these extensions have been tested and verified working on Chrome & Firefox.
- Chromium browsers *may* work. They are not explicitly tested, but probably work. Please file an issue with your browser & userscript extension if you encounter issues.
- **Safari does NOT work!** Safari does not respect the Content-Security-Policy spec in regards to extensions, so Tampermonkey can not inject scripts into Google Meets ([citation](https://github.com/Tampermonkey/tampermonkey/issues/296#issuecomment-222356524)). There is nothing I can do about this, please do not try to use the script on Safari.
## Donation: Support Grid View!
The extension continues working due to continuous maintenance work (in order to keep up with changes from Google). If it is useful for your daily life and you're happy about it, consider making a small donation at https://paypal.me/SimoneMarullo 🙃

## Privacy Policy

Expand All @@ -26,7 +21,7 @@ Your data can not be stored, as it does not exist.
Your data can not be shared, as it does not exist.
Your data can not be sold, as it does not exist.

If this is insufficient please email fugiman47+grid-view-extension@gmail.com . Please note that I do not have a scanner and therefore can't sign physical documents.
If this is insufficient please email webber975+grid-view-extension@gmail.com . Please note that I do not have a scanner and therefore can't sign physical documents.

## License

Expand Down
Empty file modified build.sh
100644 → 100755
Empty file.
Binary file modified extension/icon128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified extension/icon24.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified extension/icon36.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified extension/icon48.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions extension/manifest.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"manifest_version": 2,
"name": "Google Meet Grid View",
"name": "Google Meet Grid View (fix)",
"description": "Adds a toggle to use a grid layout in Google Meets",
"version": "1.37.0",
"author": "Chris Gamble",
"homepage_url": "https://github.com/Fugiman/google-meet-grid-view",
"version": "1.39.0",
"author": "Simone Marullo",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The changes in the manifest file should probably be pulled out before merging.

"homepage_url": "https://github.com/icysapphire/google-meet-grid-view",
"icons": {
"24": "icon24.png",
"36": "icon36.png",
Expand Down
95 changes: 67 additions & 28 deletions grid.user.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// ==UserScript==
// @name Google Meet Grid View
// @namespace https://fugi.tech/
// @version 1.37
// @version 1.39.1
// @description Adds a toggle to use a grid layout in Google Meets
// @author Chris Gamble
// @include https://meet.google.com/*
Expand All @@ -10,6 +10,9 @@
// @inject-into content
// ==/UserScript==

// v1.39 Summer 2020 bug fix by https://github.com/icysapphire
// v1.39.1 Improved Spanish and Catalan localizations by https://github.com/buenoudg

;(function () {
// If included by our extension's icon page, export translation factory
if (document.currentScript && document.currentScript.src === window.location.href.replace('popup.html', 'grid.user.js')) {
Expand Down Expand Up @@ -47,6 +50,7 @@
screenCaptureMode: 'Activa el mode captura de pantalla',
screenCaptureModeDescription: 'Força 16:9, desactiva els noms, bloqueja els vídeos al seu lloc',
unauthorizedWarning: "ATENCIÓ: es tracta d'una extensió no autoritzada. Instal·leu l'extensió oficial fent clic aquí.",
duplicateWarning: 'Multiples extensions Grid View detectades. Si us plau, desinstal·leu els duplicats.',
hideParticipant: 'Amaga el participant',
showParticipant: 'Mostra el participant',
advancedSettingsLink: 'Mostra la configuració avançada',
Expand All @@ -69,6 +73,12 @@
mnNative: 'Sense canvis ("Marta Vila Puig")',
mnFirstSpace: 'Mou la primera paraula al final ("Vila Puig, Marta")',
mnLastSpace: 'Mou l\'última paraula al principi ("Puig, Marta Vila")',
forceQuality: 'Qualitat del vídeo',
fqAuto: 'Automàtica segons la mida del vídeo i el nombre de participants',
fqGood: 'Bona',
fqMediocre: 'Mediocre',
fqBad: 'Dolenta',
fqWorst: 'La pitjor'
},
da: {
showOnlyVideo: 'Vis kun deltagere med video',
Expand All @@ -81,7 +91,7 @@
sourceCode: 'Kildekoden er tilgængelig på GitHub',
screenCaptureMode: 'Aktiver skærmoptager',
screenCaptureModeDescription: 'Gennemtvinger 16:9, Deaktiverer navne, Låser video-positioner',
unauthorizedWarning: 'Advarsel: Dette er ikke en autoriseret tilføjelse. Installer venligst den officielle, ved at klikke her.',
unauthorizedWarning: 'Advarsel: Dette er ikke en autoriseret tilføjelse. Installer venligst den officielle, ved at klikke her.'
},
de: {
showOnlyVideo: 'Nur Teilnehmer mit Video anzeigen',
Expand All @@ -96,7 +106,7 @@
screenCaptureModeDescription: 'Erzwingt 16:9, entfernt Namen, fixiert Videoposition',
unauthorizedWarning: 'WARNUNG: Dies ist keine autorisierte Erweiterung. Bitte installieren Sie die offizielle Version. Klicken Sie dafür hier.',
hideParticipant: 'Teilnehmer verbergen',
showParticipant: 'Teilnehmer anzeigen',
showParticipant: 'Teilnehmer anzeigen'
},
en: {
showOnlyVideo: 'Only show participants with video',
Expand Down Expand Up @@ -138,20 +148,49 @@
fqGood: 'Good',
fqMediocre: 'Mediocre',
fqBad: 'Bad',
fqWorst: 'Worst',
fqWorst: 'Worst'
},
es: {
showOnlyVideo: 'Mostrar solo participantes con vídeo',
highlightSpeaker: 'Resaltar los que hablan',
includeOwnVideo: 'Incluir mi vídeo en la cuadrícula',
autoEnable: 'Habilitar vista en cuadrícula por defecto',
showOnlyVideo: 'Muestra solo participantes con vídeo',
highlightSpeaker: 'Resalta los que hablan',
includeOwnVideo: 'Incluye mi vídeo en la cuadrícula',
autoEnable: 'Habilita vista en cuadrícula por defecto',
notRunning: 'La vista en cuadrícula no funciona en esta página',
noMeeting: 'La vista en cuadrícula no funciona hasta que no estés en una llamada',
enabled: 'Habilitar vista en cuadrícula',
enabled: 'Habilita vista en cuadrícula',
sourceCode: 'Código fuente disponible en GitHub',
screenCaptureMode: 'Habilitar modo captura de pantalla',
screenCaptureModeDescription: 'Forzar 16:9, deshabilita nombres, fija el vídeo en su lugar',
screenCaptureMode: 'Habilita modo captura de pantalla',
screenCaptureModeDescription: 'Fuerza 16:9, deshabilita nombres, fija el vídeo en su lugar',
unauthorizedWarning: 'ATENCIÓN: Esta es una extensión no autorizada. Por favor, instale la versión oficial haciendo clic aquí.',
duplicateWarning: 'Multiples extensiones Grid View detectadas. Por favor, desinstale los duplicados.',
hideParticipant: 'Oculta el participante',
showParticipant: 'Muestra el participante',
advancedSettingsLink: 'Muestra la configuración avanzada',
advancedSettingsTitle: 'Configuración avanzada de Google Meet Grid View',
bottomToolbarBehavior: "Comportamiento de la barra de herramientas inferior",
btbNative: "Tapa la cuadrícula cuando se muestre la barra de herramientas",
btbResize: "Cambia el tamaño de la cuadrícula cuando se muestre la barra de herramientas",
btbForce: "Muestra siempre la barra de herramientas y cambia el tamaño de la cuadrícula",
rightToolbarBehavior: 'Comportamiento del chat y el listado de personas',
rtbNative: 'Tapa la cuadrícula cuando se muestre el chat',
rtbResize: 'Cambia el tamaño de la cuadrícula cuando se muestre el chat',
ownVideoBehavior: 'Comportamiento del propio vídeo',
ovbNative: "Mantén el efecto espejo",
ovbFlip: 'Muestra el vídeo tal y como te ven los demás',
presentationBehavior: 'Comportamiento de la propia presentación',
pbNever: 'No muestres nunca la presentación en la cuadrícula',
pbOwnVideo: 'Muestra la presentación en la cuadrícula cuando se haya seleccionado "Incluye mi vídeo en la cuadrícula"',
pbAlways: 'Muestra siempre la presentación en la cuadrícula',
modifyNames: 'Cambio de los nombres de los participantes',
mnNative: 'Sin cambios ("Marta Villa Pérez")',
mnFirstSpace: 'Mueve la primera palabra al final ("Villa Pérez, Marta")',
mnLastSpace: 'Mueve la última palabra al principio ("Pérez, Marta Villa")',
forceQuality: 'Calidad de video',
fqAuto: 'Automática según el tamaño del video y el número de participantes',
fqGood: 'Buena',
fqMediocre: 'Mediocre',
fqBad: 'Mala',
fqWorst: 'La peor'
},
fr: {
showOnlyVideo: 'Ne montrer que les participants avec caméra',
Expand All @@ -166,12 +205,12 @@
screenCaptureModeDescription: "Force l'affichage 16:9, désactive les noms, vérrouille les positions des vidéos",
unauthorizedWarning: "ATTENTION : Il s'agit d'une extension non autorisée. Installez la version officielle en cliquant ici.",
hideParticipant: 'Cacher le participant',
showParticipant: 'Afficher le participant',
showParticipant: 'Afficher le participant'
},
hr: {
showOnlyVideo: 'Prikaži samo sudionike sa kamerom',
highlightSpeaker: 'Naglasi govornike',
includeOwnVideo: 'Uključi sebe u mrežnom prikazu',
includeOwnVideo: 'Uključi sebe u mrežnom prikazu'
},
id: {
showOnlyVideo: 'Hanya tampilkan peserta dengan video',
Expand All @@ -186,7 +225,7 @@
screenCaptureModeDescription: 'Paksa 16:9, Nonaktifkan nama, kunci video pada tempatnya',
unauthorizedWarning: 'PERINGATAN: Ini adalah ekstensi yang tidak resmi. Silakan pasang rilis resmi dengan mengklik di sini.',
hideParticipant: 'Sembunyikan Peserta',
showParticipant: 'Tampilkan Peserta',
showParticipant: 'Tampilkan Peserta'
},
it: {
showOnlyVideo: 'Mostra solo i partecipanti con videocamera',
Expand Down Expand Up @@ -222,15 +261,15 @@
modifyNames: 'Modifica il nome dei partecipanti',
mnNative: 'Nessuna modifica ("Alfa Bravo Charlie")',
mnFirstSpace: 'Sposta la prima parola alla fine ("Bravo Charlie, Alfa")',
mnLastSpace: 'Sposta l\'ultima parola all\'inizio ("Charlie, Alfa Bravo")',
mnLastSpace: 'Sposta l\'ultima parola all\'inizio ("Charlie, Alfa Bravo")'
},
ja: {
showOnlyVideo: 'カメラをオンにしている参加者のみ',
highlightSpeaker: '発言者をハイライト',
includeOwnVideo: '自分を含める',
autoEnable: '初期状態でグリッド表示を有効化',
screenCaptureMode: '画面キャプチャモードを有効化',
screenCaptureModeDescription: '画面比率を16:9, 名前を非表示, ビデオの位置を固定にします。',
screenCaptureModeDescription: '画面比率を16:9, 名前を非表示, ビデオの位置を固定にします。'
},
nl: {
showOnlyVideo: 'Toon alleen deelnemers met video',
Expand Down Expand Up @@ -261,12 +300,12 @@
modifyNames: 'Deelnemersnamen aanpassen',
mnNative: 'Niet aanpassen ("Jantje van de Berg")',
mnFirstSpace: 'Eerste woord als laatste ("van de Berg, Jantje")',
mnLastSpace: 'Laatste woord als eerste ("Berg, Jantje van de")',
mnLastSpace: 'Laatste woord als eerste ("Berg, Jantje van de")'
},
pl: {
showOnlyVideo: 'Pokaż tylko uczestników z wideo',
highlightSpeaker: 'Wyróżnij osobę prezentującą',
includeOwnVideo: 'Uwzględnij siebie',
includeOwnVideo: 'Uwzględnij siebie'
},
pt: {
showOnlyVideo: 'Mostrar apenas participantes com vídeo',
Expand All @@ -279,7 +318,7 @@
sourceCode: 'Código fonte disponível no GitHub',
screenCaptureMode: 'Ativar captura de ecrã',
screenCaptureModeDescription: 'Forçar aspeto 16:9, Remover nomes, Parar posição dos vídeos',
unauthorizedWarning: 'ATENÇÃO: Esta é uma extensão não autorizada. Por favor, clique aqui para instalar a versão oficial.',
unauthorizedWarning: 'ATENÇÃO: Esta é uma extensão não autorizada. Por favor, clique aqui para instalar a versão oficial.'
},
'pt-BR': {
showOnlyVideo: 'Mostrar somente participantes com vídeo',
Expand Down Expand Up @@ -315,7 +354,7 @@
modifyNames: 'Modificar nomes de participantes',
mnNative: 'Nenhuma modificação ("Alpha Bravo Charlie")',
mnFirstSpace: 'Mover o primeiro nome para o final ("Bravo Charlie, Alpha")',
mnLastSpace: 'Mover o último nome para o início ("Charlie, Alpha Bravo")',
mnLastSpace: 'Mover o último nome para o início ("Charlie, Alpha Bravo")'
},
ru: {
showOnlyVideo: 'Показывать участников только с видео',
Expand All @@ -328,7 +367,7 @@
sourceCode: 'Исходный код доступен на GitHub',
unauthorizedWarning: 'ВНИМАНИЕ: Это не авторизированное расширение. Пожалуйста, установите оффициальную версию тут.',
hideParticipant: 'Скрыть участника',
showParticipant: 'Показать участника',
showParticipant: 'Показать участника'
},
sv: {
showOnlyVideo: 'Visa endast deltagare med video',
Expand All @@ -341,23 +380,23 @@
sourceCode: 'Källkod tillgänglig på GitHub',
screenCaptureMode: 'Slå på skärminspelnings läge',
screenCaptureModeDescription: 'Tvingar 16:9, Inaktiverar namn, Låser videor på plats',
unauthorizedWarning: 'VARNING: Detta är inte ett auktoriserat tillägg. Installera det officiella tillägget genom att klicka här.',
unauthorizedWarning: 'VARNING: Detta är inte ett auktoriserat tillägg. Installera det officiella tillägget genom att klicka här.'
},
uk: {
showOnlyVideo: 'Показати лише учасників з відео',
highlightSpeaker: 'Виділити ведучого',
includeOwnVideo: 'Включити себе',
includeOwnVideo: 'Включити себе'
},
zh: {
showOnlyVideo: '仅显示有视讯的与会者',
highlightSpeaker: '强调发言者',
includeOwnVideo: '将自己的视讯显示于网格中',
includeOwnVideo: '将自己的视讯显示于网格中'
},
'zh-TW': {
showOnlyVideo: '僅顯示有視訊的與會者',
highlightSpeaker: '強調發言者',
includeOwnVideo: '將自己的視訊顯示於網格中',
},
includeOwnVideo: '將自己的視訊顯示於網格中'
}
}

const T = key =>
Expand Down Expand Up @@ -983,7 +1022,7 @@
return {
set: function (obj, prop, value) {
if (value && typeof value === 'function') {
const m = /\.([A-Za-z]+)\([a-zA-Z,.]+\{[^\x05]*?this\.([A-Za-z]+)=[A-Za-z]+\(this\)/.exec(value.toString())
const m = /\.([A-Za-z]+)\([a-zA-Z,.]+\{[^\x05]*?this\.([A-Za-z]+)=[A-Za-z0-9]+\(this\)/.exec(value.toString())
if (m) {
console.log('[google-meet-grid-view] Successfully hooked into rendering pipeline v3', value)
value = new Proxy(value, RefreshVideoProxyHandlerV3(m[2], m[1]))
Expand Down Expand Up @@ -1358,7 +1397,7 @@
ordering.sort((a, b) => a.name.localeCompare(b.name) || a.id.localeCompare(b.id))

// Set Pinned Index for use in CSS loop. If there is no pin, use the presenter if available
let pinnedIndex = ret.findIndex(v => v[magicKey].isPinned())
let pinnedIndex = -1
if (pinnedIndex < 0) {
pinnedIndex = ret.findIndex(v => v.__gmgvIsPresentation)
}
Expand Down