Rename Project to Surf Display (Remove old files.).
This commit is contained in:
parent
9d4c368415
commit
44d9d40318
36
Makefile
36
Makefile
|
@ -6,47 +6,47 @@ all: build
|
|||
build: pdflatex man
|
||||
|
||||
pdflatex::
|
||||
cd data && pdflatex midori-display.tex && pdflatex midori-display.tex
|
||||
gzip -9 -c -n data/midori-display.pdf > data/midori-display.pdf.gz
|
||||
cd data && pdflatex surf-display.tex && pdflatex surf-display.tex
|
||||
gzip -9 -c -n data/surf-display.pdf > data/surf-display.pdf.gz
|
||||
|
||||
man::
|
||||
gzip -9 -c -n data/midori-display.1 > data/midori-display.1.gz
|
||||
gzip -9 -c -n data/surf-display.1 > data/surf-display.1.gz
|
||||
|
||||
install:
|
||||
if [ ! -e data/midori-display.pdf.gz ]; then \
|
||||
if [ ! -e data/surf-display.pdf.gz ]; then \
|
||||
echo "Run 'make build' first, before running 'sudo make install'."; \
|
||||
exit -1; \
|
||||
fi
|
||||
|
||||
# script
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/bin/
|
||||
install -m 0755 bin/midori-display $(DESTDIR)$(PREFIX)/bin/
|
||||
install -m 0755 bin/surf-display $(DESTDIR)$(PREFIX)/bin/
|
||||
|
||||
# LaTeX Beamer PDF: Impressive HowTo
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/doc/midori-display/
|
||||
install -m 0644 data/*.pdf.gz $(DESTDIR)$(PREFIX)/share/doc/midori-display/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/doc/surf-display/
|
||||
install -m 0644 data/*.pdf.gz $(DESTDIR)$(PREFIX)/share/doc/surf-display/
|
||||
|
||||
# man page
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/man/man1
|
||||
install -m 0644 data/*.1.gz $(DESTDIR)$(PREFIX)/share/man/man1/
|
||||
|
||||
# man page
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/midori-display
|
||||
install -m 0644 data/midori-display.html $(DESTDIR)$(PREFIX)/share/midori-display/
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/surf-display
|
||||
install -m 0644 data/surf-display.html $(DESTDIR)$(PREFIX)/share/surf-display/
|
||||
|
||||
# register as available Xsession
|
||||
mkdir -p $(DESTDIR)$(PREFIX)/share/xsessions/
|
||||
install -m 0644 data/*.desktop $(DESTDIR)$(PREFIX)/share/xsessions/
|
||||
|
||||
clean::
|
||||
-rm data/midori-display.aux \
|
||||
data/midori-display.log \
|
||||
data/midori-display.nav \
|
||||
data/midori-display.out \
|
||||
data/midori-display.pdf \
|
||||
data/midori-display.pdf.gz \
|
||||
data/midori-display.snm \
|
||||
data/midori-display.toc
|
||||
-rm data/midori-display.1.gz
|
||||
-rm data/surf-display.aux \
|
||||
data/surf-display.log \
|
||||
data/surf-display.nav \
|
||||
data/surf-display.out \
|
||||
data/surf-display.pdf \
|
||||
data/surf-display.pdf.gz \
|
||||
data/surf-display.snm \
|
||||
data/surf-display.toc
|
||||
-rm data/surf-display.1.gz
|
||||
|
||||
.PHONY: man pdflatex
|
||||
|
|
|
@ -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
|
|
@ -1,38 +0,0 @@
|
|||
'\" -*- coding: utf-8 -*-
|
||||
.if \n(.g .ds T< \\FC
|
||||
.if \n(.g .ds T> \\F[\n[.fam]]
|
||||
.de URL
|
||||
\\$2 \(la\\$1\(ra\\$3
|
||||
..
|
||||
.if \n(.g .mso www.tmac
|
||||
.TH midori-display 1 "Mar 2017" "Version 0.0.2" "Midori Display"
|
||||
.SH NAME
|
||||
midori-display \- Fullscreen WWW Display Session Manager
|
||||
.SH SYNOPSIS
|
||||
'nh
|
||||
.fi
|
||||
.ad l
|
||||
\fBmidori-display\fR
|
||||
|
||||
.SH DESCRIPTION
|
||||
\fBmidori-display\fR is a wrapper around Midori. It can turn a system into a browser based display terminal in KIOSK mode.
|
||||
.PP
|
||||
\fBmidori-display\fR registers itself as an x-session-manager alternative
|
||||
and provides a very minimal X11 session, launching the
|
||||
matchbox-window-manager, pulseaudio (if requested) and unclutter (if
|
||||
requested) before starting the fullscreen browser session.
|
||||
.PP
|
||||
\fBmidori-display\fR locks down mouse pointer right-click behaviour and disables various keyboard shortcuts to hide Midori
|
||||
functionalities from the user. Out goal is to not let users break out of the given entry WWW site's browsing design.
|
||||
.PP
|
||||
With \fBmidori-display\fR you can configure what sites to allow the user access to and what sites to block user access from.
|
||||
.PP
|
||||
.SH OPTIONS
|
||||
\fBmidori-display\fR can easily be configured system-wide via /etc/default/midori-display. Overrides can be configure on a per-user basis
|
||||
via $HOME/.midori-display/config.
|
||||
.PP
|
||||
.SH SEE ALSO
|
||||
/etc/default/midori-display
|
||||
.SH AUTHOR
|
||||
This manual has been written by Mike Gabriel <mike.gabriel@das-netzwerkteam.de> and Benjamin Schlüter <bschlueter@posteo.de> for the IT-Zukunft-Schule
|
||||
project (https://wiki.it-zukunft-schule.de/).
|
|
@ -1,8 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Name=Midori WWW Display
|
||||
Comment=Fullscreen browser session
|
||||
Exec=midori-display
|
||||
TryExec=midori-display
|
||||
Icon=midori
|
||||
Type=Application
|
||||
Keywords=browser;kiosk;fullscreen;display;
|
|
@ -1,21 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
|
||||
<title>This page intentionally left blank (default)</title>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
.tpilb{ position:absolute; right:2px; bottom:5px; width:240px; height:30px; }
|
||||
body { background: #f0f0f0; }
|
||||
div, a { font: normal 9px Verdana, Geneva, Arial, Helvetica, sans-serif; color: #A9A9A9; }
|
||||
a:link, a:visited, a:hover, a:active { text-decoration: none; }
|
||||
-->
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="tpilb">
|
||||
Midori WWW Display: this test<br />page has been intentionally left blank
|
||||
</div>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -1,227 +0,0 @@
|
|||
\documentclass[english,smaller,t]{beamer}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage[right]{eurosym}
|
||||
\usepackage{lmodern}
|
||||
|
||||
\newcommand{\noun}[1]{\textsc{#1}}
|
||||
|
||||
\usepackage[english]{babel}
|
||||
\usepackage[babel]{csquotes}
|
||||
\MakeAutoQuote{»}{«}
|
||||
|
||||
\pdfimageresolution150
|
||||
\def\EUR{\,\euro}
|
||||
|
||||
%\usepackage{beamerthemesplit}
|
||||
%\usetheme{Warsaw}
|
||||
%\usetheme{Berkeley}
|
||||
%\usetheme{Marburg}
|
||||
%\usetheme{Goettingen}
|
||||
%\usetheme{AnnArbor}
|
||||
\usetheme{PaloAlto}
|
||||
%\usecolortheme{beaver}
|
||||
%\usecolortheme{dolphin}
|
||||
\usecolortheme{wolverine}
|
||||
\beamertemplatenumberedsquaresectiontoc
|
||||
\beamertemplatetransparentcovered
|
||||
|
||||
\title[Midori Display]{Midori Display HowTo (v0.0.2)}
|
||||
\institute[Debian Edu]{Debian Edu Dev Team}
|
||||
\author[Debian Edu \\ Dev Team]{Mike Gabriel \\ Daniel Teichmann \\ Benjamin Schlüter \\ and others}
|
||||
\date{Mar 2017}
|
||||
|
||||
\begin{document}
|
||||
|
||||
\frame{\titlepage}
|
||||
%\frame{\tableofcontents}
|
||||
|
||||
\section[About]{About Midori Display}
|
||||
|
||||
\frame[label=about]
|
||||
{
|
||||
\frametitle{About Midori Display}
|
||||
\framesubtitle{What can I use Midori Display for?}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Setup WWW Presentation Screens or Info Terminals}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->An \textbf{Midori Display} can be used to \textbf{provide controlled public internet access} while running in KIOSK mode \textbf{for passerbys and visitors}
|
||||
\item<alert@+| uncover@+->At schools for example, it can be used to enable \textbf{students and visitors} to search the school homepage or research something for \textbf{classes}
|
||||
\item<alert@+| uncover@+->At theaters or other venues, you can provide access to \textbf{a pre-configured set of websites} to e.g. make the \textbf{schedule for the next show} available
|
||||
\item<alert@+| uncover@+->Midori Display has been \textbf{designed for easy and secure access} to websites and web based information
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\frame[label=extend]
|
||||
{
|
||||
\frametitle{About Midori Display}
|
||||
\framesubtitle{How can I extend Midori Display?}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Combine Midori Display with other FLOSS Components}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->Combine Midori Display \textbf{with a display manager} (such as NoDM or LightDM) \textbf{that allows passwordless user login}
|
||||
\item<alert@+| uncover@+->Combine it with a \textbf{PXE booted diskless system} such as LTSP for \textbf{deploying a farm of info displays} at your location
|
||||
\item<alert@+| uncover@+->Combine with Xephyr (a \textbf{nested Xserver}) \textbf{while testing / preparing your setup}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\frame[label=howitworks]
|
||||
{
|
||||
\frametitle{About Midori Display}
|
||||
\framesubtitle{How does it work?}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Midori Display runs as an X11 session manager}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->\textbf{Midori Display} registers itself as an available \textbf{X session manager}. Make it the default (or the only session manager installed)
|
||||
\item<alert@+| uncover@+->Feed it with an \textbf{entry WWW\_URI}. \textbf{Configure URL\_BLOCKLIST} to prevent the user from browsing unwanted sites.
|
||||
\item<alert@+| uncover@+->Midori Display supports \textbf{host-specific configuration parameters}; you can run \textbf{various displays} presenting different WWW content \textbf{based on the same configuration} set
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
|
||||
\section[Installation]{Installation}
|
||||
|
||||
\frame[label=debinstall]
|
||||
{
|
||||
\frametitle{Installation\,\ldots}
|
||||
\framesubtitle{\ldots\,on a standalone Debian-like system.}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Installation: Debian GNU/Linux (and alike)}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->\textbf{Install a minimal} Debian (or derivative) \textbf{system without X11} / Graphical Login Manager
|
||||
\item<alert@+| uncover@+->Install Midori Display and NoDM: \\ \small \texttt{apt-get install midori-display nodm}
|
||||
\item<alert@+| uncover@+->\textbf{Edit \texttt{/etc/default/nodm}}, set \texttt{NODM\_ENABLED=true} and \texttt{NODM\_USER=midori-display}. Create this user as a system user.
|
||||
\item<alert@+| uncover@+->\textbf{Check that \texttt{midori-display} is the default X session manager}: \\ \small \texttt{update-alternatives \hbox{-}\hbox{-}config x-session-manager}
|
||||
\item<alert@+| uncover@+->\textbf{Start NoDM}: \small \texttt{sudo invoke-rc.d nodm start}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\frame[label=rpminstall]
|
||||
{
|
||||
\frametitle{Installation\,\ldots}
|
||||
\framesubtitle{\ldots\,on a standalone RPM-based system.}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Installation on Fedora, openSUSE or similar}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->The \textbf{Midori Display} tool \textbf{has not been packaged for the RPM world}
|
||||
\item<alert@+| uncover@+->\textbf{Please} contact distribution maintainers and \textbf{request packaging}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\frame[label=ltspchroot]
|
||||
{
|
||||
\frametitle{Installation\,\ldots}
|
||||
\framesubtitle{\ldots\,in an LTSP chroot.}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Install LTSP based info screen farm running Midori Display}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->Create a \textbf{minimal LTSP chroot}, uninstall or \textbf{disable the LTSP Display Manager} (aka LDM)
|
||||
\item<alert@+| uncover@+->\textbf{Make} the LTSP \textbf{chroot bootable over PXE}: the system should boot into a text-based logon screen
|
||||
\item<alert@+| uncover@+->All LTSP \textbf{client systems must have a dedicated hostnames} after PXE boot
|
||||
\item<alert@+| uncover@+->Apply \textbf{installation steps for standalone hosts to} the LTSP \textbf{chroot}
|
||||
\item<alert@+| uncover@+->\textbf{Set host-specific parameters} like standard WWW URI, display resolution, etc. via the \texttt{\$\{DISPLAYS[@]\}} associative array, \textbf{for examples see:} \\ \small \texttt{/etc/default/midori-display}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\section[Configuration]{Configuration}
|
||||
|
||||
\frame[label=systemconfig]
|
||||
{
|
||||
\frametitle{Configuration\,\ldots}
|
||||
\framesubtitle{\ldots system-wide}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Configure Midori Display -- system-wide}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->The \textbf{system-wide configuration} of Midori Display is done \textbf{in \texttt{/etc/default/midori-display}}
|
||||
\item<alert@+| uncover@+->You can \textbf{adapt various parameters}:
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->\textbf{Basic options}:Pulseaudio support, uncluttering of the pointer device, screensaver options, slide transition options, etc.
|
||||
\item<alert@+| uncover@+->\textbf{Default parameters}: Specific WWW URI, Blocklist with forbidden WWW URIs, display resolution
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\frame[label=userconfig]
|
||||
{
|
||||
\frametitle{Configuration\,\ldots}
|
||||
\framesubtitle{\ldots on a per-user basis}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Configure Midori Display -- on a per-user basis}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->The \textbf{per-user configuration} of Midori Display is done \textbf{in \texttt{\$HOME/.midori-display/config}}
|
||||
\item<alert@+| uncover@+->All \textbf{system-wide parameters can be overriden by the user}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
\section[Testing]{Testing your Setup}
|
||||
|
||||
\frame[label=testing]
|
||||
{
|
||||
\frametitle{Testing Midori Display\,\ldots}
|
||||
\framesubtitle{\ldots using a nested Xserver}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Testing your Setup}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->\textbf{Install Midori Display} locally \textbf{on your PC or notebook}; you can launch Midori Display under your normal user account
|
||||
\item<alert@+| uncover@+->\textbf{Use FAKE\_HOSTNAME variable to simulate a specifc display host} when testing infoscreen farm setups
|
||||
\item<alert@+| uncover@+->Do a \textbf{graphical login with your normal user} account; when logged in, open two Terminal windows
|
||||
\item<alert@+| uncover@+->Terminal 1: \textbf{Launch} a nested Xserver (like \textbf{Xephyr}): \\ \small \texttt{Xephyr -screen 1024x768 -ac :1}
|
||||
\item<alert@+| uncover@+->Terminal 2, also under your normal user account: \\ \small \texttt{export DISPLAY=:1 \\ FAKE\_HOSTNAME=<display-host> midori-display}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\section[Authors]{Authors and Contributors}
|
||||
|
||||
\frame[label=label]
|
||||
{
|
||||
\frametitle{Authors, Contributors \& Sponsors}
|
||||
|
||||
\begin{beamerboxesrounded}[shadow=true]{Authors \& Contributors}
|
||||
|
||||
\parbox[t][2.4in][t]{3.5in}{
|
||||
\begin{itemize}
|
||||
\item<alert@+| uncover@+->Authors (and copyright holders): \\ \ \ \ \ Mike Gabriel <mike.gabriel@das-netzwerkteam.de> \\ \ \ \ \ Daniel Teichmann <daniel.letsplay007@gmail.com> \\ \ \ \ \ Benjamin Schlüter <bschlueter@posteo.de>
|
||||
% \item<alert@+| uncover@+->Other contributors: \\ none, so far\,\ldots
|
||||
\item<alert@+| uncover@+->Development sponsored by: \\ \ \ \ \ Katharineum zu Lübeck (Germany) \\ \ \ \ \ Fritz-Reuter-Schule Eckernförde (Germany) \\ \ \ \ \ Ernst-Barlach-Gymnasium Kiel (Germany)
|
||||
\item<alert@+| uncover@+->Upstream code: \\ \ \ \ \ \scriptsize \url{https://code.it-zukunft-schule.de/cgit/midori-display/}
|
||||
\end{itemize}
|
||||
}
|
||||
\end{beamerboxesrounded}
|
||||
}
|
||||
|
||||
\end{document}
|
|
@ -1,55 +0,0 @@
|
|||
# Midori Display: Wrap around midori browser and turn your
|
||||
# system into a browser screen in KIOSK-mode.
|
||||
|
||||
# default download URI for all display screens if not configured individually
|
||||
DEFAULT_WWW_URI="file:///usr/share/midori-display/midori-display.html"
|
||||
|
||||
# Enforce fixed resolution for all displays (default: not set):
|
||||
#DEFAULT_RESOLUTION="1920x1080"
|
||||
|
||||
#FIXME: Configure individual display screens with host specific parameters:
|
||||
#DISPLAYS['display-host-0']="www_uri=https://www.displayserver.comany.net/display-1/index.html"
|
||||
#DISPLAYS['display-host-1']="www_uri=https://www.displayserver.comany.net/display-2/index.html"
|
||||
#DISPLAYS['display-host-2']="www_uri=https://www.displayserver.comany.net/display-3/index.html|res=1920x1280"
|
||||
#DISPLAYS['display-host-3']="www_uri=https://www.displayserver.comany.net/display-4/index.html"|res=1280x1024"
|
||||
#DISPLAYS['display-host-local-file']="www_uri=file:///usr/share/doc/midori-display/midori-display.html"
|
||||
|
||||
#### ^^^ use: FAKE_HOSTNAME="display-host-1" midori-display
|
||||
### to play with other hostnames and their PDF URI / resolution settings...
|
||||
|
||||
# HTTP proxy URL, if needed (default: not set).
|
||||
#HTTP_PROXY_URL="http://webcache:3128"
|
||||
|
||||
# Setting for internal inactivity timer to restart midori-display
|
||||
# if the user goes inactive/idle.
|
||||
#INACTIVITY__INTERVAL="300"
|
||||
|
||||
# log to syslog instead of .xsession-errors
|
||||
#LOG_TO_SYSLOG="no"
|
||||
|
||||
# Launch pulseaudio daemon if not already running.
|
||||
#WITH_PULSEAUDIO="yes"
|
||||
|
||||
# screensaver settings, see "man 1 xset" for possible options
|
||||
#SCREENSAVER_SETTINGS=""
|
||||
|
||||
# URI blocklist, URLs that Midori should block (default: unset)
|
||||
# If URI blocklist is unset, the midori-display script will tell
|
||||
# Midori to block access to all other servers except the one in
|
||||
# the WWW_URI.
|
||||
# (i.e. URI_BLOCKLIST='^((?!'$URI_TYPE'.*'$WWW_SERVER'/).).*$')
|
||||
#unset URI_BLOCKLIST
|
||||
|
||||
# Other example: block some famous data collection sites
|
||||
#URI_BLOCKLIST=".*(facebook|google|apple|microsoft|twitter)[^/]+/.*"
|
||||
|
||||
# Or allow access to all sites on the internet
|
||||
#URI_BLOCKLIST=""
|
||||
|
||||
# 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"
|
||||
|
||||
# Hide idle mouse pointer.
|
||||
#HIDE_IDLE_POINTER="yes"
|
Loading…
Reference in New Issue