0
0
mirror of https://github.com/libretro/Lakka-LibreELEC.git synced 2025-01-18 20:42:09 +00:00
2023-12-01 10:05:23 +00:00

115 lines
2.9 KiB
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-or-later
# Copyright (C) 2009-2014 Stephan Raue (stephan@openelec.tv)
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
. /etc/profile
oe_setup_addon browser.chrome
# check if chrome is already successful installed
if [ ! -f "$ADDON_DIR/extract.ok" ]; then
cd $ADDON_DIR
chrome-downloader
fi
if [ -e $ADDON_HOME/env ]
then
. $ADDON_HOME/env
fi
# fix file permissons (zip packaging)
chmod +x $ADDON_DIR/chrome-bin/chrome
chmod 4755 $ADDON_DIR/chrome-bin/chrome-sandbox
# make sure we use "own" gtk/pango/nss/etc
export LD_LIBRARY_PATH=$ADDON_DIR/lib.private
# configure pango/pixbuf
export PANGO_RC_FILE=$ADDON_DIR/config/pangorc
export GDK_PIXBUF_MODULE_FILE=$ADDON_DIR/config/pixbuf.loaders.cache
# font rendering in gtk widgets is broken with nvidia blob. use our Xdefaults
export XENVIRONMENT=$ADDON_DIR/config/Xdefaults
# start unclutter
if [ "$HIDE_CURSOR" == "true" ]
then
unclutter &
UNCLUTTER_PID=$!
fi
# vaapi
LIBVA_DRIVERS_PATH="/usr/lib/dri:$ADDON_DIR/lib.private"
LIBVA_DRIVER_NAME=''
case $VAAPI_MODE in
'intel')
LIBVA_DRIVER_NAME='i965'
chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder"
;;
'amd')
LIBVA_DRIVER_NAME='vdpau'
chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder"
;;
'nvidia')
LIBVA_DRIVER_NAME='vdpau'
chrome_OPTS="$chrome_OPTS --use-gl=desktop --enable-features=VaapiVideoDecoder --allow-no-sandbox-job --disable-gpu-sandbox"
;;
*)
LIBGL_ALWAYS_SOFTWARE='1'
export LIBGL_ALWAYS_SOFTWARE
esac
export LIBVA_DRIVER_NAME LIBVA_DRIVERS_PATH
# windowed
case $WINDOW_MODE in
'maximized') chrome_OPTS="$chrome_OPTS --start-maximized";;
'kiosk') chrome_OPTS="$chrome_OPTS --kiosk";;
esac
# rasterization
case $RASTER_MODE in
'off') chrome_OPTS="$chrome_OPTS --disable-accelerated-2d-canvas --disable-gpu-compositing";;
'force') chrome_OPTS="$chrome_OPTS --enable-gpu-rasterization --enable-accelerated-2d-canvas --ignore-gpu-blacklist";;
esac
# alsa
if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
# stop pulseaudio when using an Alsa device
systemctl stop pulseaudio
if [ ! -z $ALSA_DEVICE ]; then
chrome_OPTS="$chrome_OPTS --alsa-output-device=$ALSA_DEVICE"
fi
fi
# dark mode
if [ "$DARK_MODE" == "true" ]
then
chrome_OPTS="$chrome_OPTS --force-dark-mode"
fi
# User-Agent
if [ ! -z "$USER_AGENT" ]; then
USER_AGENT="--user-agent=$USER_AGENT"
fi
# start chrome
LD_PRELOAD=/usr/lib/libGL.so $ADDON_DIR/chrome-bin/chrome \
$chrome_OPTS \
"$USER_AGENT" \
--no-sandbox \
--user-data-dir=$ADDON_HOME/profile \
--test-type $@ \
2>&1 | tee $ADDON_LOG_FILE
# kill unclutter
if [ "$HIDE_CURSOR" == "true" ]
then
kill $UNCLUTTER_PID
fi
sleep 5
if [ "$AUDIO_DEVICE_TYPE" == "ALSA" ]; then
# restart pulseaudio when using an Alsa device
systemctl start pulseaudio
fi