Tobias Scheible Cyber Security & IT-Forensik Dozent
Hochhäuser

Das Design von Jitsi Meet anpassen

Das Layout der Jitsi Meet Oberfläche kann mit wenigen Schritten an das eigene Design angepasst werden. Neben dem Tausch des Logos können sehr einfach per CSS die Schriftarten und die Farben modifiziert werden.

Montag, 09. November 2020
6 Kommentare

20.01.2021 Update: Änderungen in der neuesten Version mit einbezogen.

Leider bietet Jitsi Meet keine Templates oder eine vordefinierte Methode, um das Layout anzupassen. Das Logo kann zwar einfach getauscht werden, aber alle anderen Anpassungen müssen über CSS-Anweisungen eingespielt werden. Bei meiner Jitsi Meet Instanz habe ich die Startseite angepasst:

Jitsi Meet Layout
Angepasste Startseite von Jitsi Meet
Jitsi Meet Style Angepasste Startseite von Jitsi Meet

Anpassung des Brandings

Die verwendeten Bezeichnungen und Links können in der Konfigurationsdatei interface_config.js geändert werden. Das Logo und das Favicon können einfach überspeichert werden.

Bezeichnung

Der Name der Jitsi Meet Instanz, der auf der Startseite und im Titel angezeigt wird, kann in der Konfigurationsdatei interface_config.js angepasst werden.

// /usr/share/jitsi-meet/interface_config.js
5: APP_NAME: 'Jitsi Meet',
Logo

Um die Jitsi Meet Installation anzupassen bzw. zu individualisieren, ist das Verzeichnis /usr/share/jitsi-meet/ die wichtigste Stelle. Das Logo links oben kann einfach durch eine eigene Datei überschrieben werden. Es liegt im Unterordner images und heißt watermark.png. Die Grafik ist eine PNG-Grafik mit transparentem Hintergrund und hat eine Größe von 272 x 612 Pixel.

Die Datei mit dem eigenen Logo sollte die gleiche Abmessung aufweisen, ebenfalls einen transparenten Hintergrund haben und mit watermark.png bezeichnet werden. Das Original Logo kann mit den folgenden Befehlen ersetzt werden:

# rm /usr/share/jitsi-meet/images/watermark.png
# wget -c -q -O /usr/share/jitsi-meet/images/watermark.png https://example.com/watermark.png

In der neueren Version von Jitsi Meet kommt eine SVG-Grafik zum Einsatz. Daher muss in der Konfigurationsdatei interface_config.js der Dateiname angepasst werden.

// /usr/share/jitsi-meet/interface_config.js
49: DEFAULT_LOGO_URL: 'images/watermark.png',
51: DEFAULT_WELCOME_PAGE_LOGO_URL: 'images/watermark.png',

Zusätzlich hat sich die Größe des Logos geändert. Mit dem Befehl sed, eine Möglichkeit auf der Shell bestimmte Inhalte in einer Datei zu suchen und zu ersetzen, kann die Größe wieder auf den alten Wert gesetzt werden. Dazu wird die Datei all.css geändert.

sed -i -e 's/width:71px;height:32px/width:140px;height:70px/g' /usr/share/jitsi-meet/css/all.css
Favicon

Das Favicon kann genau gleich wie das Logo getauscht werden:

# rm /usr/share/jitsi-meet/ favicon.ico 
# wget -c -q -O /usr/share/jitsi-meet/ favicon.ico https://example.com/favicon.ico
Startseite

In der neuen Version von Jitsi Meet hat sich auch die Startseite geändert. Jetzt wird hier nicht mehr der Text angezeigt, sondern ein Titel und ein Untertitel. Dieser wird nicht über die Konfigurationsdatei erstellt, sondern über die Sprachdatei. Dazu wurden die Einträge headerTitle und headerSubtitle hinzugefügt.

Stand Januar 2021 sind dafür in der deutschen Sprachdatei noch keine Einträge vorhanden. Diese können aber selbst einfach hinzugefügt werden. In der Standardsprachdatei (englisch) main.json befinden sich die Einträge unterhalb des Eintrages „goSmall“ in der Zeile 878. In der deutschen Sprachdatei main-de.json habe ich die Einträge ebenfalls direkt darunter eingefügt:

Datei: /usr/share/jitsi-meet/lang/main-de.json
"headerTitle": "Jitsi Meet",
"headerSubtitle": "Sichere und datenschutzfreundliche Online-Meetings – ohne Registrierung.",

Anpassung der Optik

Die restlichen Anpassungen der Optik von Jitsi Meet werden über CSS-Anweisungen realisiert. Ich selbst habe hierzu mit eigenen CSS-Anweisungen die bisherigen Werte überschrieben. Eine Alternative wäre die Modifikation des vorhandenen CSS-Codes. Mein Vorgehen reduziert die Gefahr, dass eine Funktion falsch dargestellt wird.

all.css

Die Anweisungen habe ich in der CSS-Datei all.css von Jitsi Meet nach dem vorhandenen Inhalt gespeichert. Hier besteht aus meiner Sicht der einfachste Weg darin, die eigenen Anweisungen in eine separate Datei zu schreiben und anschließend in die all.css zu laden.

# jitsi.css >> /usr/share/jitsi-meet/css/all.css

So sehen meine Anpassungen aus:

// /usr/share/jitsi-meet/css/all.css	
/* Custom */
.welcome{
    background-image: linear-gradient(-90deg,#171615 0,#292825 50%,#171615 100%);
}

body *{
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif !important;
}

.welcome .header .header-text-title, #x-bottom p{
	font-weight: 300;
	color: #e7dcca !important;
}

a, #x-bottom a{
    color: #f57921;
}

.welcome .welcome-page-button{
    background: #f57921;
}

.welcome .header .tab-container {
    background: #e7dcca;
}

.meetings-list .item.with-click-handler:hover{
        background: rgba(255,255,255,.25);
}
Update

Da die CSS-Datei all.css bei einem Update überschrieben wird, sollten die Änderungen per Script eingefügt werden. Dazu habe ich ein Jitsi Meet Update Script entwickelt.

Startseite

In der neuen Version 2.0.5390 von Jitsi Meet wurde die Startseite überarbeitet. Da ich die Raumliste nicht verwende, habe ich das Element dafür mit CSS ausgeblendet. Damit die Startseite ansprechender wird, habe ich zusätzlich das Foto getauscht und auf die volle Größe vergrößert.

Datei: /usr/share/jitsi-meet/css/all.css
/* Alle Cards werden ausgeblendet, auch die Raumliste */
.welcome-cards-container{
	display: none;
}
Datei: /usr/share/jitsi-meet/css/all.css
/* Das Hintergrundbild wird ausgetauscht und in voller Größe dargestellt */
.welcome .header{
    background-image: url(../images/welcome-background.jpg);
    position: absolute;
    bottom: 0;
    top: 0;
    left: 0;
    right: 0;
	height: auto;
}
Datei: /usr/share/jitsi-meet/css/all.css
/* Die Box mit dem Titel und der Eingabe wird etwas nach unten geschoben */
.welcome .header .header-container{
    margin: 15% 32px 0 32px;
}

Jitsi Meet Artikelserie

Dieser Blogbeitrag ist Teil der Artikelserie „Videokonferenzen mit Jitsi Meet“, die sich mit dem Open-Source-Webkonferenzsystem Jitsi für Video-, Web- und Telefonkonferenzen beschäftigt. Die Artikelserie zu Jitsi Meet umfasst die folgenden Themen:


Jitsi Meet Artikel für Anwender


Jitsi Meet Artikel für Administratoren

Changelog

06.01.2021Anpassung des Logos und der Bezeichnung überarbeitet.

Über Tobias Scheible

Tobias Scheible

Hallo, mein Name ist Tobias Scheible. Ich bin begeisterter Informatiker und Sicherheitsforscher mit den Schwerpunkten Cyber Security und IT-Forensik. Mein Wissen teile ich gerne anhand von Fachartikeln hier in meinem Blog. Als Referent halte ich Vorträge und Workshops für Verbände und Unternehmen u. a. auch offene Veranstaltungen für den VDI und die IHK.

Kommentare

Fabian am 16. Januar 2021 um 15:42 Uhr

Hallo Tobias,

cielen Dank für deine Mühen, anhand deiner Anleitungen konnte ich bisher sehr gut meinen jitsi Server betreiben.

Nun hab ich aber nach dem neuesten Update (heute durchgeführt) probleme mit der Startseite un dem Custom CSS:

Die folgenden Anweisungen werden gezogen, aber nicht vollständig umgesetzt:
.welcome .header .header-text-title { display:none !important }
.welcome .header .header-text-subtitle { display:none !important }

Der Titel und Subtitel wird nicht mehr angezeigt. Soweit so gut.

.welcome .header .header-text:before { content:’Meetingserver der Freiwilligen Feuerwehr Sehnde – Ortswehr Rethmar‘; color: #e7dcca; font-size: 2.5rem; font-weight: 500; line-height: 1.18; }

Der neue Titel wird leider nicht angezeigt, genausowenig der neue Subtitel…
Auch das Überschreiben des Hintergrunds geht nicht mehr korrekt… (Siehe meine Website)

.welcome{
background-image: linear-gradient(-90deg,#171615 0,#292825 50%,#171615 100%) !important;

Hast du eine Idee dazu?

Helge am 23. Januar 2021 um 14:07 Uhr

Hallo Tobias,

wirklich tolle Artikelserie über Jitsi Meet!

Es gibt übrigens eine weitere elegante Methode eigenen CSS-Code zu implementieren: Man schreibt diesen einfach in die Datei /usr/share/jitsi-meet/plugin.head.html:

<style>
.welcome-cards-container{  
    display: none;  
...
</style>

Der Inhalt wird dann automatisch geladen. Das Kopieren in die <code>all.css</code> entfällt.

Grüße
Helge

Daniel am 24. Januar 2021 um 21:04 Uhr

Hallo Tobias,

kann es sein, dass die aktuelle Version einige Probleme bei den Anpassungen hat?

Innerhalb der WelcomePageAdditionalsCard werden bei mir keine Links umgesetzt und WelcomePageAdditionalContent wird gar nicht mehr angezeigt.

Viele Grüße

Daniel

Tobias am 26. Januar 2021 um 17:53 Uhr

Hallo Daniel,
mit der neuen Version kann die Option DISPLAY_WELCOME_PAGE_CONTENT: true in der Datei /usr/share/jitsi-meet/interface_config.js aktiviert werden. Dann kann in der Datei /usr/share/jitsi-meet/static/welcomePageAdditionalContent.html die Links untergebracht werden. So habe ich es bei meet3.scheible.it gelöst.
Grüße Tobias

Jochen Breiter am 26. Januar 2021 um 22:24 Uhr

Hallo zusammen, ich würde gerne diese weniger schönen Berge als Hintergrundbild auf der Startseite loswerden. Gibt es bereits Erfahrungen, wie man das bewerkstelligen kann?

Tobias am 26. Januar 2021 um 22:39 Uhr

Hallo Jochen,
steht im Artikel 😉 Entweder das Foto images/welcome-background.png überspeichern oder (wie im Artikel) per CSS ein anderes Foto verwenden:

.welcome .header{  
    background-image: url(../images/welcome-background.jpg);  
}

Oder mit background-image: none; es einfach deaktivieren.
Grüße Tobias

Schreibe einen Kommentar!

Hilfe zum Kommentieren

Um kommentieren zu können, geben sie bitte mindestens ihren Namen und ihre E-Mail-Adresse an. Bitte nutzen Sie die Kommentarfunktion nicht dazu, andere zu beleidigen oder Spam zu verbreiten. Trolle und Spammer sind hier unerwünscht! Unangemessene Kommentare, die zum Beispiel gegen geltendes Recht verstoßen oder eine Gefährdung anderer Besucher darstellen, werden gelöscht oder angepasst.

Name: Ihr Name, der oberhalb des Kommentars steht, gerne auch Ihren echten Namen, das erleichtert die Kommunikation für alle. Sollte ein Spam-Keyword als Name verwendet werden, kann dieses entfernt oder korrigiert werden.

E-Mail: Ihre E-Mail Adresse dient zur Identifizierung weiterer Kommentare und sie haben die Möglichkeit, ein Avatar-Bild zu verwenden. Dazu müssen Sie mit Ihrer E-Mail Adresse bei Gravatar angemeldet sein. Die E-Mail Adresse wird natürlich nicht veröffentlicht und nicht weitergegeben.

Website: Hier können Sie ihren eigenen Blog bzw. ihre eigene Website eintragen, dadurch wird Ihr Name und Ihr Avatar-Bild verlinkt. Werden rein kommerzielle Angebote offensichtlich beworben, setze ich den Link auf nofollow und unangemessene werden einfach entfernt.

Erlaubte HTML-Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <hr> <big> <small> <sub> <sup> <u>

Ihre E-Mailadresse wird nicht veröffentlicht. Mit dem Absenden anerkennen Sie die Datenschutzhinweis des Blogs.