#!/bin/bash
# desc: Configuración de Chromium como navegadore Web por defecto
# Se le pueden pasar como parámetros el desktop

# Para ello en teoría se puede usar:
# 1) update-alternatives (es a nivel global)
# 2) xdg-settings (a nivel de usuario)

# Las opciones on update-alternatives son:
# update-alternatives --list x-www-browser
# /usr/bin/chromium-browser
# /usr/bin/firefox
# /usr/bin/midori
# /usr/bin/google-chrome-stable

# Las opciones con xdg-settings: (es el que lo impone correctamente a nivel de usuario)
# xdg-settings get default-web-browser
# xdg-settings set default-web-browser chromium-browser.desktop

# 0) Definimos variables de uso:
[ -z "${1}" ] && \
NAVEGADOR_WEB_DEFECTO="chromium-browser.desktop" || \
NAVEGADOR_WEB_DEFECTO="${1}"
[ -z "${2}" ] && \
RUTA_NAVEGADOR_WEB_DEFECTO="/usr/bin/chromium-browser" || \
RUTA_NAVEGADOR_WEB_DEFECTO="${2}"
USUARIO_GRAFICO="$(vx-usuario-grafico)"

# 1) Comprobamos quien ejecuta el script para decidir que hacer:
if [[ "$(whoami)" == "root" ]] ; then
    # 2) Chequeamos cual es navegador por defecto y comprobamos si es el deseado:
    # NAVEGADOR="$(su "${USUARIO_GRAFICO}" -c "xdg-settings get default-web-browser")"
    NAVEGADOR="$(vx-runas "${USUARIO_GRAFICO}" "xdg-settings get default-web-browser")"
    echo "#> ${USUARIO_GRAFICO}: Tiene preconfigurado como navegador por defecto ${NAVEGADOR}"
    if [[ "${NAVEGADOR}" != "${NAVEGADOR_WEB_DEFECTO}" ]] ; then
        # 2) Asignamos el navegador Web por defecto deseado por el centro educativo:
        update-alternatives --install /usr/bin/x-www-browser x-www-browser "${RUTA_NAVEGADOR_WEB_DEFECTO}" 200
        # su "${USUARIO_GRAFICO}" -c "xdg-settings set default-web-browser ${NAVEGADOR_WEB_DEFECTO}"
        vx-runas "${USUARIO_GRAFICO}" "xdg-settings set default-web-browser ${NAVEGADOR_WEB_DEFECTO}"
        echo "#> ${NAVEGADOR_WEB_DEFECTO}: Se ha configurado como navegador por defecto"
    else
        echo "#> ${NAVEGADOR_WEB_DEFECTO}: Ya esta correctamente configurado"
    fi
else
    NAVEGADOR="$(xdg-settings get default-web-browser)"
    echo "#> ${USUARIO_GRAFICO}: Tiene preconfigurado como navegador por defecto ${NAVEGADOR}"
    if [[ "${NAVEGADOR}" != "${NAVEGADOR_WEB_DEFECTO}" ]] ; then
        xdg-settings set default-web-browser "${NAVEGADOR_WEB_DEFECTO}"
        echo "#> ${NAVEGADOR_WEB_DEFECTO}: Se ha configurado como navegador por defecto"
    else
        echo "#> ${NAVEGADOR_WEB_DEFECTO}: Ya esta correctamente configurado"
    fi
fi