#!/bin/bash -- sourced # prepares and run chromium as kiosk browser command -v chromium-browser || return 0 # clear state of previous sessions if [ "$(whoami)" = "demo" ]; then rm -rf -- "$HOME/.config/chromium" mkdir -p "$HOME/.config/chromium/Default" fi cert_to_nssdb /etc/ssl/certs/ "${HOME}/.pki/nssdb" & nss_pid=$! # Helper to decode URL-encoded strings # e.g. urldecode http%3A%2F%2Ffoobar.com -> http://foobar.com urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}" } # Helper to json'ize bookmarks given as arguments in the form: # , -> e.g. Google,https://www.google.com json_bookmarks() { local cur=0 local name url while [ $# -ne 0 ]; do name="$( urldecode "${1%%,*}" )" url="$( urldecode "${1#*,}" )" jq --null-input --join-output --compact-output --arg id "$(( cur++ ))" --arg name "$name" --arg url "$url" \ '{"id": $id, "type": "url", "name": $name, "url": $url}' shift [ $# -ne 0 ] && printf "," done } # Pass SLX_BROWSER_BOOKMARKS without quotes for splitting into arguments cat > "$HOME/.config/chromium/Default/Bookmarks" <