Single-application mode is a modified GNOME Shell which configures the
Shell as an interactive kiosk. The administrator locks down some behavior to
make the standard desktop more restrictive for users, letting them focus on
selected features.
Set up single-application mode for a wide range of functions in a number
of fields (from communication to entertainment or education), and use it as a
self-serve machine, event manager, registration point, and so on.
Set up single-application mode
-
Lock down settings to prevent printing, terminal access, and so on.
-
Configure automatic login in the /etc/gdm/custom.conf
file for the user.
See for more information.
-
Create a new user with a name, which follows typical naming conventions
(no space or special characters, do not start with a digit or a dash).
Also, make sure the user name matches with the related names, such as when
referring to a session. A good example is kiosk-user.
-
Create a session with a name matching the user name (for example, for
the kiosk-user mentioned above, kiosk is a good match).
To do so, create a /usr/share/xsessions/kiosk.desktop
file and set the Exec line as follows:
Exec=gnome-session --session kiosk
-
Set the default session for kiosk-user by adding the following
line to the /var/lib/AccountsService/users/kiosk-user
file:
XSession=kiosk
-
Define the kiosk session by writing a custom session
definition, containing the following line:
RequiredComponents=kiosk-app;gnome-settings-daemon;kiosk-shell;
This creates a session that runs three programs: kiosk-app
(a sample application), gnome-settings-daemon (a standard
component in the GNOME session), and kiosk-shell (which is a
customized version of GNOME Shell).
-
Create a desktop file for kiosk-shell in
/usr/share/applications/kiosk-shell.desktop, containing the
following lines:
[Desktop Entry]
Exec=gnome-shell --mode=kiosk
-
Create a mode definition /usr/share/gnome-shell/modes/kiosk.json.
This is a simple json file defining the available gnome-shell
user interface.
As the starting point, look at /usr/share/gnome-shell/modes/classic.json
and /usr/share/gnome-shell/modes/initial-setup.json for
examples.