# Kiosk Mode

The Kiosk mode is a special mode where iCab blocks the access to the rest of the system, switches off the menu bar and where only one window is available which covers the whole screen. This mode is meant for a so called "Kiosk Environment" which is usually a computer terminal that is located at a public place (like an information terminal in a station, in a hotel lobby, in exhibitions, museums etc) and offers certain information to the user. The user should be able to access only the information that is provided but should be unable to gain access to the system or be able to access other information from the internet. The Kiosk mode in iCab can offer all this, but it can be also configured to be much less strict if it is only used in a private environment where many of the security features are not needed.

## Activating the Kiosk Mode

The Kiosk Mode can be activated using the menu item `Tools > Kiosk Mode`. You have to option to protect the Kiosk mode with a password, so you can't leave this mode without entering the correct password again. It is possible to omit the password protection, but this should only by done for private usage where you do not need any special protection of the system.

## Leaving the Kiosk Mode

To leave the Kiosk Mode again, you have to use the keyboard shortcut Cmd + Shift + K (Because the menu is not available in Kiosk mode, you can't use the menu item).

If the Kiosk is protected with a password, you have to enter the correct password to proceed.

There are two ways to leave the Kiosk: The `OK` button will return to the normal mode again, the `Quit` button will remain in Kiosk mode internally and will quit the App so you can access the Finder and the rest of the system again. But because the App is still in Kiosk mode internally, it will directly activate the Kiosk mode again when launched the very next time.

In case you want to make sure that iCab will stay in Kiosk mode internally even if someone accidently switches to normal mode, you can do the following: After quitting iCab from within the "Leave Kiosk" dialog box, locate the file `~/Library/Preferences/de.icab.iCab.plist` in the Finder and write-protect this file in the Finder "File Info" window. Then iCab can no longer change this file and all the preferences can't be modified anymore, including the status of the Kiosk mode.

## Kiosk Mode settings

In the Preferences dialog you'll find a Preferences panel where you can configure the Kiosk in detail.

In case the Kiosk Terminal uses a touch screen it is possible to hide the mouse cursor completely. The mouse cursor is not needed in this case because the user is using his own finger to "point and click". Also usefuly is the virtual keyboard which can be enabled in the Kiosk mode. So even without a keyboard attached, the user is able to enter text in form fields or in the URL field. The virtual keyboard can be revealed on the screen using a button in the Toolbar. So the user is able to open or close the virtual keyboard at any time.

It is possible to deactivate the keyboard shortcut to enable the Kiosk mode. This can be useful if you tend to accidently type in this keyboard shortcut but do not want to enter the Kiosk mode at all.

The macOS provides the special keyboard shortcut Cmd + Alt + ESC which can be used to force-quit any running application. This is usually not acceptable for a public Kiosk terminal, so there's an option to disable this shortcut, and also other system shortcuts like for "Exposé" which could allow access to other applications.

It is possible to switch on or off the toolbars (Navigation toolbar, Favorites Toolbar, Status bar etc.) in the Kiosk mode.

The Kiosk mode has its own homepage which will be automatically loaded when entering the kiosk mode and when a user of the kiosk system ends his "session". The Kiosk homepage is a very easy way to provide a well defined starting point for all users of the Kiosk system. It is possible to add a "End Session" button in the browser toolbar. This button allows the user to manually end his session so that iCab will go back to the kiosk homepage. It's also possible to define an "idle" timeout. This means that iCab will automatically go back to the Kiosk home page when the computer was idle for a certain time (there's no user input for a certain time), assuming that no user is using the Kiosk at the moment. This helps if the user "forgets" to click the "End Session" button. It's even possible to define a time which triggers after a certain time, regardless if the computer is currently in use. This is only useful if you want to limit the time each user is allowed to use the Kiosk system. All these features can be combined and be active at the same time. For security and privacy reasons iCab can be also configured to delete all cookies, the history and other private data that was collected within a session, whenever iCab goes back to the Kiosk homepage via "End Session Button" or one of the timers. This is done by enabling the "Private Mode" option for the Kiosk.

The filters option for the Kiosk mode makes it possible to restrict the browser to visit only very specific web sites. So users trying to access other sites that are not allowed will only get an error message. When adding an URL into the "allowed web pages" list, you can use the wildcard characters "*" (stands for any number of characters) and "?" (stands for one character) to make a URL valid for a whole web site. Without using the wildcard characters a URL will only match a single web page. For example the URL "http://www.icab.de/" in the list of allowed web pages will only allow access to the start page of the iCab web site. No other subpage will be allowed because these subpage have a different URL. But when using the URL "http://www.icab.de/*" in the list of allowed web pages, then access to the whole iCab web site is allowed. The "*" at the end of the URL will match all URLs which start with "http://www.icab.de/", so you can also access "http://www.icab.de/info.html" etc. Using the wildcards makes it easy to restrict the access to certain web sites or even to certain folders of a site without the need to define a large number of individual URLs.