\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[Impressive Display]{Impressive Display HowTo (v0.4.1)} \institute[Debian Edu]{Debian Edu Dev Team} \author[Debian Edu \\ Dev Team]{Mike Gabriel \\ Daniel Teichmann \\ and others} \date{Dec 2016} \begin{document} \frame{\titlepage} %\frame{\tableofcontents} \section[About]{About Impressive Display} \frame[label=about] { \frametitle{About Impressive Display} \framesubtitle{What can I use Impressive Display for?} \begin{beamerboxesrounded}[shadow=true]{Setup PDF presentation Screens at School, University \& your Office} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemAn \textbf{Impressive Display} can \textbf{show information} provided as PDF, images or videos \textbf{to people passing by} \itemAt schools for example, it can be used to display \textbf{substitute teacher schedules} to students and teachers \itemAt theaters or other venues, you can provide \textbf{information screens} about what's going on at your location \itemUse it to \textbf{present slide shows, photo collections, etc.} at a Linux Day presentation booth \itemImpressive Display has been \textbf{designed for automatic display} of PDF based information \end{itemize} } \end{beamerboxesrounded} } \frame[label=extend] { \frametitle{About Impressive Display} \framesubtitle{How can I extend Impressive Display?} \begin{beamerboxesrounded}[shadow=true]{Combine Impressive Display with other FLOSS Components} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemCombine Impressive Display \textbf{with a display manager} (such as NoDM or LightDM) \textbf{that allows passwordless user login} \itemCombine it with a \textbf{PXE booted diskless system} such as LTSP for \textbf{deploying a farm of info displays} at your location \itemCombine with Xephyr (a \textbf{nested Xserver}) \textbf{while testing / preparing your setup} \end{itemize} } \end{beamerboxesrounded} } \frame[label=howitworks] { \frametitle{About Impressive Display} \framesubtitle{How does it work?} \begin{beamerboxesrounded}[shadow=true]{Impressive Display runs as an X11 session manager} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \item\textbf{Impressive Display} registers itself as an available \textbf{X session manager}. Make it the default (or the only session manager installed) \itemFeed it with a presentation-like PDF file or a list of image and video files. The \textbf{PDF} can be obtained \textbf{from} the \textbf{local file system or} from a \textbf{webserver} \itemServe a \textbf{dynamic or static list of such files} from any web-based backend \itemImpressive Display supports \textbf{host-specific configuration parameters}; you can run \textbf{various displays} presenting different PDF 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\textbf{Install a minimal} Debian (or derivative) \textbf{system without X11} / Graphical Login Manager \itemInstall Impressive Display and NoDM: \\ \small \texttt{apt-get install impressive-display nodm} \item\textbf{Edit \texttt{/etc/default/nodm}}, set \texttt{NODM\_ENABLED=true} and \texttt{NODM\_USER=impressive-display}. Create this user as a system user. \item\textbf{Check that \texttt{impressive-display} is the default X session manager}: \\ \small \texttt{update-alternatives \hbox{-}\hbox{-}config x-session-manager} \item\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} \itemThe \textbf{Impressive Display} tool \textbf{has not been packaged for the RPM world} \item\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 Impressive Display} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemCreate a \textbf{minimal LTSP chroot}, uninstall or \textbf{disable the LTSP Display Manager} (aka LDM) \item\textbf{Make} the LTSP \textbf{chroot bootable over PXE}: the system should boot into a text-based logon screen \itemAll LTSP \textbf{client systems must have a dedicated hostnames} after PXE boot \itemApply \textbf{installation steps for standalone hosts to} the LTSP \textbf{chroot} \item\textbf{Set host-specific parameters} like PDF download URI, display resolution, etc. via the \texttt{\$\{DISPLAYS[@]\}} associative array, \textbf{for examples see:} \\ \small \texttt{/etc/default/impressive-display} \end{itemize} } \end{beamerboxesrounded} } \section[Configuration]{Configuration} \frame[label=systemconfig] { \frametitle{Configuration\,\ldots} \framesubtitle{\ldots system-wide} \begin{beamerboxesrounded}[shadow=true]{Configure Impressive Display -- system-wide} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemThe \textbf{system-wide configuration} of Impressive Display is done \textbf{in \texttt{/etc/default/impressive-display}} \itemYou can \textbf{adapt various parameters}: \begin{itemize} \item\textbf{Basic options}:Pulseaudio support, uncluttering of the pointer device, screensaver options, slide transition options, etc. \item\textbf{Default parameters}: PDF download URI, display resolution \item\textbf{Display specific}: PDF download URI, display resolution, based on the display system's hostname \item\textbf{Rush hours} (phases of frequent PDF content changes), \textbf{sleep hours} (phases of no PDF content updates) \end{itemize} \end{itemize} } \end{beamerboxesrounded} } \frame[label=userconfig] { \frametitle{Configuration\,\ldots} \framesubtitle{\ldots on a per-user basis} \begin{beamerboxesrounded}[shadow=true]{Configure Impressive Display -- on a per-user basis} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemThe \textbf{per-user configuration} of Impressive Display is done \textbf{in \texttt{\$HOME/.impressive-display/config}} \itemAll \textbf{system-wide parameters can be overriden by the user} \itemFor URIs that require \textbf{authentication before PDF content retrieval}, put \textbf{credentials into}: \\ \small \texttt{\$HOME/.impressive-display/secrets/default.secrets} \item\textbf{Credentials} can also be \textbf{specified per info screen}: \\ \small \texttt{\$HOME/.impressive-display/secrets/.secrets} \itemThe \textbf{\texttt{*.secrets} files use the \texttt{.netrc} file format} (see \texttt{man 5 netrc}) \end{itemize} } \end{beamerboxesrounded} } \frame[label=listbackend] { \frametitle{Configuration\,\ldots} \framesubtitle{\ldots of multiple URLs from a backend} \begin{beamerboxesrounded}[shadow=true]{Configure list of files -- from a web backend} \parbox[t][2.4in][t]{3.5in}{ \begin{itemize} \itemUse any server-side tool you like (PHP script, Flask app, etc.) to serve a list of URIs \itemServe it with a \texttt{.txt} extension ans as \texttt{text/plain} \itemThe list can contain an arbitrary number of URLs pointing to PDFs, images, videos, or further lists \itemThe AlekSIS® School Information System contains a backend with UI to manage content \end{itemize} } \end{beamerboxesrounded} } \section[Testing]{Testing your Setup} \frame[label=testing] { \frametitle{Testing Impressive 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\textbf{Install Impressive Display} locally \textbf{on your PC or notebook}; you can launch Impressive Display under your normal user account \item\textbf{Use FAKE\_HOSTNAME variable to simulate a specifc display host} when testing infoscreen farm setups \itemDo a \textbf{graphical login with your normal user} account; when logged in, open two Terminal windows \itemTerminal 1: \textbf{Launch} a nested Xserver (like \textbf{Xephyr}): \\ \small \texttt{Xephyr -screen 1024x768 -ac :1} \itemTerminal 2, also under your normal user account: \\ \small \texttt{export DISPLAY=:1 \\ FAKE\_HOSTNAME= impressive-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} \itemAuthors (and copyright holders): \\ \ \ \ \ Mike Gabriel \\ \ \ \ \ Daniel Teichmann \\ \ \ \ \ Dominik George % \itemOther contributors: \\ none, so far\,\ldots \itemDevelopment sponsored by: \\ \ \ \ \ Katharineum zu Lübeck (Germany) \\ \ \ \ \ Fritz-Reuter-Schule Eckernförde (Germany) \\ \ \ \ \ Ernst-Barlach-Gymnasium Kiel (Germany) \\ \ \ \ \ Teckids e.V. (Germany) \itemUpstream code: \\ \ \ \ \ \scriptsize \url{https://code.it-zukunft-schule.de/cgit/impressive-display/} \end{itemize} } \end{beamerboxesrounded} } \end{document}