Flix2Kodi und der Kioskmodus von Kodi 17: Chrome nur halb so groß

Marvin Gülker · 06.10.2017

Es kann vorkommen, dass der vom flix2kodi-Addon genutzte Browser Google Chrome im Kiosk-Modus nur halb so groß wie der Bildschirm geöffnet wird, was für den Videokonsum eher hinderlich ist. Dieser Artikel beschreibt einen Workaround für das Problem.

Kategorien: Software

Es wird darüber berichtet, dass Kodi in Zukunft (endlich) in der Lage sein wird, die Inhalte von Netflix direkt in Kodi selbst anzuzeigen. Das entsprechende AddOn wird aber erst mit der noch nicht fertiggestellten Version 18 von Kodi funktionieren, was vielleicht auch gar nicht schlecht ist, weil das AddOn so noch etwas reifen kann, bevor es auf die meisten Nutzer losgelassen wird. Wer schon mit dem stabilen Kodi 17 Netflix schauen möchte, bleibt auf die herkömmliche Methode angewiesen, die darin besteht, aus Kodi heraus einen Browser (in der Regel „Google Chrome“) zu starten, der dann Netflix aufruft und in dem die gewünschten Inhalte dann abgespielt werden. Dazu nutzt man das AddOn flix2kodi in seinem jeweils aktuellen Fork. Hier zum Einsatz kommt die verlinkte Variante aus dem GitHub-Repositorium von Yamboo-Efi in Version 0.6.9, die direkt von GitHub über dessen „Download ZIP“-Funktion heruntergeladen wurde.

Kodi läuft dabei auf Ubuntu 16.04 (Xenial Xerus) im sog. Kiosk-Modus, d.h. startet unmittelbar vom Login Manager „Lightdm“ aus und wird nicht innerhalb einer „Unity“-Sitzung ausgeführt. Dies deshalb, weil der Fenstermanager von „Unity“ ansonsten eine erhebliche Anzahl der Tastendrücke der Fernbedienung abfängt statt an Kodi weiterzuleiten.

Im Kiosk-Modus gibt es nun naturgemäß keinen Fenstermanager, was wiederum offenbar dazu führt, dass „Chrome“ nicht richtig geöffnet wird. Der Browser wird in etwa halb so groß wie der Fernsehbildschirm geöffnet. Der Grund ist nicht bekannt, es gibt aber einen Workaround. „flix2kodi“ startet „Chrome“ durch Ausführung des Skripts ~/.kodi/addons/plugin.video.flix2kodi/resources/scripts/launcher/linux/chrome.sh. In diesem Skript befindet sich folende Bedingungsklausel:

if [ $XDOTOOL -eq 0 ]; then
        # no point sleeping if xdotool is not installed.
        sleep 5
        xdotool mousemove 9999 9999 click 1
else
        echo "xdotool is not installed, can't remove cursor"
fi

xdotool(1) ist ein sehr vielseitiges Programm, welches auch über Befehle zum Verschieben von Fenstern und insbesondere auch zum Ändern der Fenstergröße verfügt. Das Anpassen der Bedingung wie folgt behebt das Problem mit dem halben „Chrome“:

if [ $XDOTOOL -eq 0 ]; then
        # no point sleeping if xdotool is not installed.
        sleep 5
        xdotool mousemove 9999 9999 click 1

    # Wait for window to start
    sleep 5
    wid=$(xdotool search --onlyvisible --class google-chrome)
    xdotool windowsize $wid 1920 1080
    xdotool windowmove $wid 0 0
else
        echo "xdotool is not installed, can't remove cursor"
fi

Die Idee ist, zunächst darauf zu warten, dass „Chrome“ gestartet ist. Anschließend werden alle sichtbaren Fenster nach dem Fenster von „Chrome“ durchsucht („Chrome“ erzeugt einige unsichtbare Fenster, die hier nicht relevant sind). Das gefundene Fenster (genauer: die X11-ID des gefundenen Fensters) wird dann genutzt, um mithilfe von xdotool(1) das Fenster auf die Position (0|0) (linke obere Bildschirmecke) zu verschieben und es dann auf 1920x1080 Pixel zu vergrößern. Diese Größe ist die native Auflösung vieler Fernseher und entspricht Full HD. Wer eine andere Auflösung benutzt, muss den Befehl entsprechend anpassen (oder gleich die aktive Auflösung aus xrandr(1) auslesen, um das Skript generisch zu halten).

Nach dem Abspeichern und einem Neustart von Kodi sollte „Chrome“ nun nach etwa fünf Sekunden in einen echten Vollbildmodus wechseln.

Diese Lösung ist leider nicht optimal, da das Skript chrome.sh beim nächsten Update von flix2kodi wieder überschrieben wird und neu angepasst werden muss.