summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorBenjamin Schlüter <bschlueter@posteo.de>2017-06-06 16:12:40 +0200
committerBenjamin Schlüter <bschlueter@posteo.de>2017-06-06 16:12:40 +0200
commit44d9d403186410e8463d8bfa28c27336cdecc712 (patch)
treec252b9e06aee75733a914cb8e56df472f5360a66 /bin
parent9d4c368415fdce3b1ecaae9e050759e991920b2a (diff)
downloadsurf-display-44d9d403186410e8463d8bfa28c27336cdecc712.tar.gz
surf-display-44d9d403186410e8463d8bfa28c27336cdecc712.tar.bz2
surf-display-44d9d403186410e8463d8bfa28c27336cdecc712.zip
Rename Project to Surf Display (Remove old files.).
Diffstat (limited to 'bin')
-rwxr-xr-xbin/midori-display349
1 files changed, 0 insertions, 349 deletions
diff --git a/bin/midori-display b/bin/midori-display
deleted file mode 100755
index 765bfba..0000000
--- a/bin/midori-display
+++ /dev/null
@@ -1,349 +0,0 @@
-#!/bin/bash
-
-# uncomment for very verbose script debugging...
-#set -x
-
-# Copyright (C) 2012-2017 by Debian Edu project, http://wiki.debian.org/DebianEdu
-# 2012-2017, Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
-# 2016, Daniel Teichmann <daniel.letsplay007@gmail.com>
-# 2017, Benjamin Schlüter <bschlueter@posteo.de>
-
-# Midori Display is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# Midori Display is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the
-# Free Software Foundation, Inc.,
-# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# dependencies:
-# wmctrl
-# matchbox-window-manager
-# pulseaudio-utils
-# xprintidle
-# xdotool
-# xmodmap
-# x11-xkb-utils
-#
-# recommendations:
-# unclutter
-# pulseaudio
-# x11-xserver-utils
-
-VERSION="0.0.2"
-
-# Can be configured at "/etc/default/midori-display"
-DEFAULT_WWW_URI="file:///usr/share/midori-display/midori-display.html"
-DEFAULT_RESOLUTION=""
-
-# all displays that need to be changed
-declare -A DISPLAYS
-
-# launch pulseaudio daemon if not already running
-WITH_PULSEAUDIO="yes"
-
-# hide idle mouse pointer
-HIDE_IDLE_POINTER="yes"
-
-# disable right and middle pointer device click in Midori sessions while keeping
-# scrolling wheels' functionality intact... (consider "pointer" subcommand on
-# xmodmap man page for details).
-POINTER_BUTTON_MAP="1 0 0 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
-
-# default screensaver settings
-SCREENSAVER_SETTINGS=""
-
-# don't use an HTTP proxy by default
-HTTP_PROXY_URL=""
-
-# URI block list, if any
-unset URI_BLOCKLIST
-
-# log to stderr, if not set to "yes" in one of the config files...
-LOG_TO_SYSLOG=no
-
-# interval of browser inactivity before the session is reset automatically (in seconds)
-INACTIVITY_INTERVAL="300"
-
-if type -p xrandr 1>/dev/null; then
- currentOutput=`echo "$(xrandr)" | grep -w 'connected' | sed -r -e 's/connected.*//' | head -n 1`
-fi
-
-if [ -r /etc/default/midori-display ] && [ ! -d /etc/default/midori-display ]; then
- . /etc/default/midori-display
-fi
-
-if [ -r $HOME/.midori-display/config ] && [ ! -d $HOME/.midori-display/config ]; then
- . $HOME/.midori-display/config
-fi
-
-if [ "x$LOG_TO_SYSLOG" = "xyes" ]; then
- OUTPUT="logger -t midori-display"
-else
- OUTPUT="echo"
-fi
-
-workdir="$HOME/.midori-display"
-mkdir -p "$workdir"
-
-session_lock="$workdir/.session-lock.$$"
-midori_lock="$workdir/.midori-lock"
-
-midori_config_dir=`mktemp -d -p "$workdir" midori-display-profile-XXXXXX`
-
-# provide pulseaudio support in the browser session, if not
-# already available...
-if ! pacmd stat 1>/dev/null 2>/dev/null; then
- if [ "x$WITH_PULSEAUDIO" = "xyes" ]; then
- if which pulseaudio 1>/dev/null; then
- pulseaudio -D -n \
- -L 'module-udev-detect' \
- --exit-idle-time=65535
- fi
- fi
-fi
-
-# launch matchbox manager
-if ! wmctrl -m 1>/dev/null 2>/dev/null; then
- if which matchbox-window-manager 1>/dev/null; then
- matchbox-window-manager 1>/dev/null 2>/dev/null&
- fi
-fi
-
-# use unclutter to hide idle mouse pointers
-if [ "x$HIDE_IDLE_POINTER" = "xyes" ]; then
- if which unclutter 1>/dev/null; then
- unclutter 1>/dev/null 2>/dev/null &
- fi
-fi
-
-# hack mouse pointer functionality to e.g. disable "right-click" in Midori session
-sanitized_pointer_button_map=$(echo ${POINTER_BUTTON_MAP//[^0-9\ ]/} | sed -e 's/^\s*//' -e 's/\s*$//')
-count_buttons_pointer_button_map=$(echo -n "${sanitized_pointer_button_map//[0-9]/}"| wc -m)
-
-if which xmodmap 1>/dev/null; then
- if [ -n "$POINTER_BUTTON_MAP" ] && [ "x$POINTER_BUTTON_MAP" = "x$sanitized_pointer_button_map" ] && \
- [ $count_buttons_pointer_button_map -lt 32 ]; then
- xmodmap -e "pointer = $POINTER_BUTTON_MAP"
- fi
-
- # furthermore... let's deactivate the "Control" modifier key to disable most hotkeys in Midori
- xmodmap -e "clear Control"
-
-else
- $OUTPUT "WARNING: Cannot strip down mouse/pointer button functionality. Make sure 'xmodmap' is installed."
-fi
-
-if which setxkbmap 1>/dev/null; then
- setxkbmap -option "terminate:ctrl_alt_bksp"
-fi
-
-# if FAKE_HOSTNAME is not empty, use that string for hostname
-THIS_HOSTNAME=$(hostname -f)
-if [ -n "$FAKE_HOSTNAME" ]; then
- THIS_HOSTNAME="$FAKE_HOSTNAME"
-fi
-
-if `echo ${!DISPLAYS[@]} | grep -q "$THIS_HOSTNAME"`; then
- $OUTPUT "INFO: $THIS_HOSTNAME has extra properties. loading them.."
-
- if echo ${DISPLAYS[$THIS_HOSTNAME]} | grep -q "www_uri="; then
- WWW_URI=`echo ${DISPLAYS[$THIS_HOSTNAME]} | sed -r -e 's/(^|.*\|)www_uri=([^|]*).*/\2/'`
- else
- WWW_URI="$DEFAULT_WWW_URI"
- fi
-
- if echo ${DISPLAYS[$THIS_HOSTNAME]} | grep -q "res="; then
- RESOLUTION=`echo ${DISPLAYS[$THIS_HOSTNAME]} | sed -r -e 's/(^|.*\|)res=([^|]*).*/\2/'`
- else
- RESOLUTION="$DEFAULT_RESOLUTION"
- fi
-else
- WWW_URI="$DEFAULT_WWW_URI"
- RESOLUTION="$DEFAULT_RESOLUTION"
-fi
-
-if ! echo "$WWW_URI" | grep -q -E "^(file://|http://|https://).*"; then
- $OUTPUT "ERROR: WWW_URI format not supported: $WWW_URI"
- $OUTPUT " Use file://<path>/<index>.<html> or http(s)://<host>/<path>/<index>.<html>."
- $OUTPUT " Doing nothing."
- exit -1
-fi
-
-# if URI_BLOCKLIST is not set, populate it and limit access to the WWW_SERVER that WWW_URI points to only.
-if [ ! -v URI_BLOCKLIST ]; then
- URI_TYPE=`echo "$WWW_URI" | sed -r -e 's@(file://|http(|s)://)[^/]+/.*@\1@'`
- WWW_SERVER=""
- if echo "$URI_TYPE" | grep -q -E "^http(|s)://([^/]+)/.*"; then
- WWW_SERVER=`echo "$WWW_URI" | sed -r -e 's@^http(|s)://([^/]+)/.*@\2@'`
- fi
- URI_BLOCKLIST='^((?!'$URI_TYPE'.*'$WWW_SERVER'/).).*$'
-fi
-
-if [ -n "$URI_BLOCKLIST" ]; then
- URI_BLOCKLIST="-b $URI_BLOCKLIST"
-fi
-
-if [ -n "${RESOLUTION}" ]; then
- if type -p xrandr 1>/dev/null; then
- xrandr -d :0 --output "$(echo $currentOutput)" --mode $RESOLUTION
- fi
-fi
-
-# Set screensaver settings
-if which xset 1>/dev/null; then
- xset s ${SCREENSAVER_SETTINGS}
-fi
-
-# set some proxy related env variables, if requested...
-if [ -n "$HTTP_PROXY_URL" ]; then
- export http_proxy="$HTTP_PROXY_URL"
- export https_proxy="$HTTP_PROXY_URL"
- export ftp_proxy="$HTTP_PROXY_URL"
-fi
-
-function cleanup {
- if type -p xrandr 1>/dev/null; then
- $OUTPUT "Info: resetting resolution"
- xrandr -d :0 --output "$(echo $currentOutput)" --auto
- fi
-
- if [ -r "$midori_lock" ]; then
- midori_pid=$(cat "$midori_lock" | sed -e 's/[^0-9]*//g')
- if [ -n "$midori_pid" ]; then
- kill -0 $midori_pid 2>/dev/null && kill "$midori_pid"
- fi
- fi
-
- if [ -d "$midori_config_dir" ]; then
- rm -R "$midori_config_dir"
- fi
-
- for rmfile in $midori_lock \
- $session_lock \
- ;
- do
- if [ -e "$rmfile" ]; then
- rm "$rmfile"
- fi
- done
-
-}
-trap "cleanup" SIGINT SIGTERM ERR EXIT
-
-function midori_loop {
- if [ "x$INACTIVITY_INTERVAL" != "x0" ]; then
- (
- while [ -e "$session_lock" ]; do
- sleep 1
- if [ `xprintidle 2>/dev/null || echo 0` -gt $(($INACTIVITY_INTERVAL*1000)) ]; then
- echo -n "RESTART" > $midori_lock
- $OUTPUT "INFO: Triggering browser restart, too much idling around..."
- # reset X11 idle counter by some harmless key event
- xdotool key Shift
- fi
- done
- ) &
- fi
-}
-
-
-function midori_session {
-
- if which midori 1>/dev/null; then
-
- while [ -e "$session_lock" ]; do
-
- $OUTPUT "INFO: Starting a new instance of the midori application."
- midori \
- -e Fullscreen \
- -e enable-plugins=false \
- -e enable-page-cache=false \
- -e open-new-pages-in=MIDORI_NEW_PAGE_CURRENT \
- -e close-buttons-on-tabs=false \
- -e show-menubar=false \
- -e show-statusbar=false \
- -e show-bookmarkbar=false \
- -e show-panel=false \
- -e show-crash-dialog=false \
- -e open-tabs-in-the-background=false \
- -e open-tabs-next-to-current=false \
- -e open-popups-in-tabs=false \
- -e enable-xss-auditor=false \
- -e enable-javascript=true \
- -e enable-developer-extras=false \
- -e enable-html5-database=true \
- -e enable-running-of-insecure-content=false \
- -e enable-display-of-insecure-content=false \
- -e javascript-can-access-clipboard=false \
- -e print-without-dialog=true \
- -c "${midori_config_dir}" \
- ${URI_BLOCKLIST} \
- -a "${WWW_URI}" 1>/dev/null 2>/dev/null &
-
- midori_pid=$!
-
- echo -n "$midori_pid" > "$midori_lock"
-
- while [ -r "$midori_lock" ] && [ "$(cat $midori_lock)" != "RESTART" ] && [ -e "$session_lock" ]; do
- sleep 1
- if ! kill -0 "$midori_pid" 2>/dev/null; then
- if [ -e ${session_lock} ]; then
- rm "${session_lock}"
- fi
- if [ -d "${midori_config_dir}" ]; then
- rm -R "${midori_config_dir}"
- fi
- break
-
- midori_config_dir=`mktemp -d -p "$workdir" midori-display-profile-XXXXXX`
-
- fi
- done
-
- kill -0 "$midori_pid" 2>/dev/null && kill "$midori_pid"
- $OUTPUT "INFO: The midori application has terminated."
-
- done
-
- else
- $OUTPUT "ERROR: The midori application is not installed."
- fi
-
-}
-
-
-function create_lock {
-
- touch "$session_lock"
-
-}
-
-### MAIN ###
-
-$OUTPUT "INFO: midori Display (version $VERSION)"
-$OUTPUT "INFO: HOSTNAME set to: $THIS_HOSTNAME"
-
-if [ -n "$WWW_URI" ]; then
-
- $OUTPUT "INFO: WWW_URI is configured. Using content from given URL: $WWW_URI"
- create_lock
- midori_loop
-
-else
-
- $OUTPUT "ERROR: WWW_URI hasn't been configured. Doing nothing."
- exit 0
-
-fi
-
-midori_session
-
-exit 0