<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.trinitydesktop.net/index.php?action=history&amp;feed=atom&amp;title=Kiosk_framework</id>
	<title>Kiosk framework - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.trinitydesktop.net/index.php?action=history&amp;feed=atom&amp;title=Kiosk_framework"/>
	<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Kiosk_framework&amp;action=history"/>
	<updated>2026-05-25T03:47:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.13</generator>
	<entry>
		<id>https://wiki.trinitydesktop.net/index.php?title=Kiosk_framework&amp;diff=2586&amp;oldid=prev</id>
		<title>Blu256: Import from tdelibs/README.kiosk</title>
		<link rel="alternate" type="text/html" href="https://wiki.trinitydesktop.net/index.php?title=Kiosk_framework&amp;diff=2586&amp;oldid=prev"/>
		<updated>2022-07-18T11:42:56Z</updated>

		<summary type="html">&lt;p&gt;Import from tdelibs/README.kiosk&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;div style=&amp;quot;float: right;&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;KIOSK framework&amp;#039;&amp;#039;&amp;#039; provides an easy way to disable certain features within&lt;br /&gt;
TDE to create a more controlled environment.&lt;br /&gt;
&lt;br /&gt;
TDE&amp;#039;s KIOSK framework builds on TDE&amp;#039;s configuration framework and adds a&lt;br /&gt;
simple application API that applications can query to get authorisation&lt;br /&gt;
for certain operations.&lt;br /&gt;
&lt;br /&gt;
One of the driving forces behind TDE is to put the user in control and&lt;br /&gt;
give them a large amount of possibilities to adjust TDE to their&lt;br /&gt;
liking. However, in some situations it is required to reduce the possibilities&lt;br /&gt;
of TDE, e.g. because the system is to be used for one or more specific &lt;br /&gt;
dedicated tasks only.&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|text=The TDE kiosk-framework should be used &amp;#039;&amp;#039;&amp;#039;in addition&amp;#039;&amp;#039;&amp;#039; to the standard UNIX security measures.}}&lt;br /&gt;
&lt;br /&gt;
== A short history of the KDE configuration framework ==&lt;br /&gt;
&lt;br /&gt;
Since the very beginning TDE makes use of file-hierarchy to store resources&lt;br /&gt;
for its applications. Resources range from icons, wallpapers, fonts to &lt;br /&gt;
sounds, menu-descriptions and configuration files. &lt;br /&gt;
&lt;br /&gt;
=== KDE1 &amp;amp; KDE2 ===&lt;br /&gt;
In KDE1 there were two locations were resources could be located: The &lt;br /&gt;
resources provided by the system were located under &amp;lt;code&amp;gt;$TDEDIR&amp;lt;/code&amp;gt; and user-&lt;br /&gt;
specific resources were located under &amp;lt;tt&amp;gt;$HOME/.kde&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
In KDE2 resource management has been largely abstracted by the introduction&lt;br /&gt;
of the TDEStandardDirs class and has become much more flexible. The user /&lt;br /&gt;
administrator can now specify a variable number of locations where resources&lt;br /&gt;
can be found. A list of locations can either be specified via &amp;lt;code&amp;gt;$TDEDIRS&amp;lt;/code&amp;gt;&lt;br /&gt;
(notice the extra &amp;#039;S&amp;#039;), via /etc/tderc and even via the &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; config &lt;br /&gt;
file. The location where user-specific resources can be found can be&lt;br /&gt;
set with &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt; (The default in KDE was &amp;lt;tt&amp;gt;$HOME/.kde&amp;lt;/tt&amp;gt;,&lt;br /&gt;
in Trinity it&amp;#039;s usually &amp;lt;tt&amp;gt;$HOME/.trinity&amp;lt;/tt&amp;gt;). Changes made by the user are&lt;br /&gt;
always written back to &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Both KDE1 and KDE2 feature so called &amp;quot;cascading configuration files&amp;quot;: There&lt;br /&gt;
can be multiple configuration files with the same name in the various &lt;br /&gt;
locations for (config) resources, when that is the case, the information of &lt;br /&gt;
all these configuration files is combined on a key by key basis. If the same&lt;br /&gt;
key (within a certain group) is defined in more than one place, the value&lt;br /&gt;
of the key for the config file that was read last will override any previously&lt;br /&gt;
read values. Configuration files under &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt; are always read last. This&lt;br /&gt;
ensures that after a configuration entry is written, the same value wil be&lt;br /&gt;
read back.&lt;br /&gt;
&lt;br /&gt;
=== KDE3 &amp;amp; TDE ===&lt;br /&gt;
In KDE3 two important changes have been made:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Default values are no longer written.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
When a configuration file in a location other than &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt; defines a value &lt;br /&gt;
for a key and the application subsequently writes out a new configuration file&lt;br /&gt;
to &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt;, that configuration file will only contain an entry for the key&lt;br /&gt;
if its value differs from the value read from the other file.&lt;br /&gt;
&lt;br /&gt;
This counters the problem that changing default configuration files under &lt;br /&gt;
&amp;lt;code&amp;gt;$TDEDIR&amp;lt;/code&amp;gt; would not take effect for users, since these users would most likely&lt;br /&gt;
have their own copy of these settings under &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt;. TDE will make sure &lt;br /&gt;
not to copy these settings so changes made under &amp;lt;code&amp;gt;$TDEDIR&amp;lt;/code&amp;gt; will affect all users&lt;br /&gt;
that haven&amp;#039;t explicitly changed the affected settings to something else.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Configuration entries can be marked &amp;quot;immutable&amp;quot;.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Starting with KDE3, configuration entries can be marked &amp;quot;immutable&amp;quot;. When a&lt;br /&gt;
configuration entry is immutable it means that configuration files that are&lt;br /&gt;
read later will not be able to override its value. Immutable entries cannot&lt;br /&gt;
be changed via TDEConfig and if the entry is present under &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt;&lt;br /&gt;
it will be ignored.&lt;br /&gt;
&lt;br /&gt;
== Immutable settings ==&lt;br /&gt;
When configuration files are marked immutable in whole or in part the user will no&lt;br /&gt;
longer be able to make permanent changes to the settings that have been marked&lt;br /&gt;
immutable. Ideally the application will recognize this and will no longer offer the&lt;br /&gt;
user the possibility to change these settings. Unfortunately not all applications&lt;br /&gt;
support this at the moment. It&amp;#039;s therefor possible that the user will still be&lt;br /&gt;
presented with an option in the user interface to change a setting that is&lt;br /&gt;
immutable, changes made this way will not be saved though. In some cases the&lt;br /&gt;
user may be able to use the changed setting till the application terminates, in&lt;br /&gt;
other cases the changed setting will simply be ignored and the application will&lt;br /&gt;
continue to work with the immutable setting.&lt;br /&gt;
&lt;br /&gt;
Entries can be marked immutable on 4 different levels:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1) On an entry by entry basis by appending &amp;lt;code&amp;gt;[$i]&amp;lt;/code&amp;gt; after the key.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[MyGroup]&lt;br /&gt;
someKey[$i]=42&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2) On a group by group basis by appending &amp;lt;code&amp;gt;[$i]&amp;lt;/code&amp;gt; after the group. All entries&lt;br /&gt;
specified in the group will be marked immutable and no new entries can be added to the group.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[MyGroup][$i]&lt;br /&gt;
someKey=42&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3) On a file by file basis by starting the file with &amp;lt;code&amp;gt;[$i]&amp;lt;/code&amp;gt;.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[$i]&lt;br /&gt;
[MyGroup]&lt;br /&gt;
someKey=42&lt;br /&gt;
[MyOtherGroup]&lt;br /&gt;
someOtherKey=11&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4) On a directory basis. [Not yet implemented]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The filesystem can also be used to mark files immutable. If TDE does not &lt;br /&gt;
have write-access to the user&amp;#039;s version of a configuration file, the file&lt;br /&gt;
will be automatically considered immutable. &lt;br /&gt;
&lt;br /&gt;
To make the configration file of kicker (the panel) immutable one could for&lt;br /&gt;
example use the commands below.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
$ chown root.root /home/user/.trinity/share/config/kickerrc&lt;br /&gt;
$ chmod 644 /home/user/.trinity/share/config/kickerrc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do this, the user will be warned that the configuration file is not&lt;br /&gt;
writable. Since you will normally not want that, you can add the following&lt;br /&gt;
two lines to the application&amp;#039;s configuration file (or to &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; to&lt;br /&gt;
disable the warning for all applications):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[KDE Action Restrictions]&lt;br /&gt;
warn_unwritable_config=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the above example is not fool-proof, the user can potentially still &lt;br /&gt;
rename either the root-owned &amp;lt;tt&amp;gt;kickerrc&amp;lt;/tt&amp;gt; file or any of the directories in &lt;br /&gt;
the path to another name and create a new &amp;lt;tt&amp;gt;kickerrc&amp;lt;/tt&amp;gt; &amp;#039;&amp;#039;&amp;#039;with&amp;#039;&amp;#039;&amp;#039; write-access.&lt;br /&gt;
&lt;br /&gt;
The following applications currently detect when their configuration files have been&lt;br /&gt;
marked immutable and adjust their user interface accordingly:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;kicker&amp;#039;&amp;#039;&amp;#039; - By marking the kickerrc config file as immutable, the panel will be &lt;br /&gt;
&amp;quot;locked down&amp;quot; and it will not be possible to make any changes to it.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;kdesktop&amp;#039;&amp;#039;&amp;#039; - By marking the kdesktoprc config file as immutable, the desktop&lt;br /&gt;
will be &amp;quot;locked down&amp;quot; and it will no longer be possible to select&lt;br /&gt;
&amp;quot;Configure Desktop&amp;quot; from its menus.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;kcalc&amp;#039;&amp;#039;&amp;#039; - By marking the kcalcrc config file as immutable, the &amp;quot;Configure&amp;quot; button&lt;br /&gt;
will not be shown&lt;br /&gt;
&lt;br /&gt;
== TDE Action Restrictions ==&lt;br /&gt;
Most functionality within TDE is coupled to so called actions. For example when a user&lt;br /&gt;
selects the File-&amp;gt;Open option in the menubar of a TDE application, the &amp;lt;code&amp;gt;file_open&amp;lt;/code&amp;gt;&lt;br /&gt;
action is activated. Likewise, toolbar icons are usually also coupled to actions. TDE&lt;br /&gt;
makes it possible to disable functionality by restricting specific actions. By restricting the&lt;br /&gt;
&amp;lt;code&amp;gt;file_open&amp;lt;/code&amp;gt; action for example, the corresponding entry in the menubar and the corresponding icon on&lt;br /&gt;
the toolbar, if any, will disappear.&lt;br /&gt;
&lt;br /&gt;
To restrict access to function the &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; file should contain the &lt;br /&gt;
group &amp;lt;tt&amp;gt;[KDE Action Restrictions]&amp;lt;/tt&amp;gt;, each action can then be restricted by &lt;br /&gt;
adding &amp;lt;code&amp;gt;&amp;lt;action&amp;gt;=false&amp;lt;/code&amp;gt;. E.g. to disable the action &amp;lt;code&amp;gt;shell_access&amp;lt;/code&amp;gt; one &lt;br /&gt;
would add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[KDE Action Restrictions][$i]&lt;br /&gt;
shell_access=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Actions ===&lt;br /&gt;
Actions that refer to menu and toolbar actions are prefixed with &amp;lt;code&amp;gt;action/&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
For actions marked with &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039; see notes below.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;4&amp;quot; | &amp;lt;big&amp;gt;Standard actions&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/file_new&lt;br /&gt;
 | action/file_open&lt;br /&gt;
 | action/file_open_recent&lt;br /&gt;
 | action/file_save&lt;br /&gt;
 |-&lt;br /&gt;
 | action/file_save_as&lt;br /&gt;
 | action/file_revert&lt;br /&gt;
 | action/file_close&lt;br /&gt;
 | action/file_print&lt;br /&gt;
 |-&lt;br /&gt;
 | action/file_print_preview&lt;br /&gt;
 | action/file_mail&lt;br /&gt;
 | action/file_quit&lt;br /&gt;
 | action/edit_undo&lt;br /&gt;
 |-&lt;br /&gt;
 | action/edit_redo&lt;br /&gt;
 | action/edit_cut&lt;br /&gt;
 | action/edit_copy&lt;br /&gt;
 | action/edit_paste&lt;br /&gt;
 |-&lt;br /&gt;
 | action/edit_select_all&lt;br /&gt;
 | action/edit_deselect&lt;br /&gt;
 | action/edit_find&lt;br /&gt;
 | action/edit_find_next&lt;br /&gt;
 |-&lt;br /&gt;
 | action/edit_find_last&lt;br /&gt;
 | action/edit_replace&lt;br /&gt;
 | action/view_actual_size&lt;br /&gt;
 | action/view_fit_to_page&lt;br /&gt;
 |-&lt;br /&gt;
 | action/view_fit_to_width&lt;br /&gt;
 | action/view_fit_to_height&lt;br /&gt;
 | action/view_zoom_in&lt;br /&gt;
 | action/view_zoom_out&lt;br /&gt;
 |-&lt;br /&gt;
 | action/view_zoom&lt;br /&gt;
 | action/view_redisplay&lt;br /&gt;
 | action/go_up&lt;br /&gt;
 | action/go_back&lt;br /&gt;
 |-&lt;br /&gt;
 | action/go_forward&lt;br /&gt;
 | action/go_home&lt;br /&gt;
 | action/go_previous&lt;br /&gt;
 | action/go_next&lt;br /&gt;
 |-&lt;br /&gt;
 | action/go_goto&lt;br /&gt;
 | action/go_goto_page&lt;br /&gt;
 | action/go_goto_line&lt;br /&gt;
 | action/go_first&lt;br /&gt;
 |-&lt;br /&gt;
 | action/go_last&lt;br /&gt;
 | action/bookmarks &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | action/bookmark_add&lt;br /&gt;
 | action/bookmark_edit&lt;br /&gt;
 |-&lt;br /&gt;
 | action/tools_spelling&lt;br /&gt;
 | action/options_show_menubar&lt;br /&gt;
 | action/options_show_toolbar  &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | action/options_show_statusbar&lt;br /&gt;
 |-&lt;br /&gt;
 | action/options_save_options&lt;br /&gt;
 | action/options_configure&lt;br /&gt;
 | action/options_configure_keybinding&lt;br /&gt;
 | action/options_configure_toolbars&lt;br /&gt;
 |-&lt;br /&gt;
 | action/options_configure_notifications&lt;br /&gt;
 | action/help &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | action/help_contents&lt;br /&gt;
 | action/help_whats_this&lt;br /&gt;
 |-&lt;br /&gt;
 | action/help_report_bug&lt;br /&gt;
 | action/help_about_app&lt;br /&gt;
 | action/help_about_kde&lt;br /&gt;
 | action/fullscreen&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;TDE File Dialog&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/home&lt;br /&gt;
 | Go to home directory&lt;br /&gt;
 |&lt;br /&gt;
 | action/up&lt;br /&gt;
 | Go to parent directory&lt;br /&gt;
 |-&lt;br /&gt;
 | action/back&lt;br /&gt;
 | Go to previous directory&lt;br /&gt;
 |&lt;br /&gt;
 | action/forward&lt;br /&gt;
 | Go to next directory&lt;br /&gt;
 |-&lt;br /&gt;
 | action/reload&lt;br /&gt;
 | Reload directory&lt;br /&gt;
 |&lt;br /&gt;
 | action/mkdir&lt;br /&gt;
 | Create new directory&lt;br /&gt;
 |-&lt;br /&gt;
 | action/toggleSpeedbar&lt;br /&gt;
 | Show/hide sidebar&lt;br /&gt;
 |&lt;br /&gt;
 | action/sorting menu&lt;br /&gt;
 | Sorting options&lt;br /&gt;
 |-&lt;br /&gt;
 | action/short view&lt;br /&gt;
 | Select short view&lt;br /&gt;
 |&lt;br /&gt;
 | action/detailed view&lt;br /&gt;
 | Select detailed view&lt;br /&gt;
 |-&lt;br /&gt;
 | action/show hidden&lt;br /&gt;
 | Show/hide hidden files&lt;br /&gt;
 |&lt;br /&gt;
 | action/preview&lt;br /&gt;
 | Show/hide preview&lt;br /&gt;
 |-&lt;br /&gt;
 | action/separate dirs&lt;br /&gt;
 | Show/hide separate directories&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;Konqueror &amp;amp; KDesktop related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/editfiletype&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 | action/properties&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | action/openwith&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 | action/openintab&lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | action/kdesktop_rmb&lt;br /&gt;
 | RMB menu &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |&lt;br /&gt;
 | action/iconview_preview &lt;br /&gt;
 |&lt;br /&gt;
 |-&lt;br /&gt;
 | action/sharefile&lt;br /&gt;
 | File sharing &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |&lt;br /&gt;
 | action/sendURL&lt;br /&gt;
 | Send Link Address&lt;br /&gt;
 |-&lt;br /&gt;
 | action/sendPage&lt;br /&gt;
 | Send File&lt;br /&gt;
 |&lt;br /&gt;
 | action/devnew&lt;br /&gt;
 | Create New -&amp;gt; Device&lt;br /&gt;
 |-&lt;br /&gt;
 | action/incIconSize&lt;br /&gt;
 | Increase icon size&lt;br /&gt;
 |&lt;br /&gt;
 | action/decIconSize&lt;br /&gt;
 | Decrease icon size&lt;br /&gt;
 |-&lt;br /&gt;
 | action/go&lt;br /&gt;
 | Entire go menu&lt;br /&gt;
 |&lt;br /&gt;
 | action/configdesktop&lt;br /&gt;
 | Configure desktop in RMB menu, see also Control Module Restrictions&lt;br /&gt;
 |-&lt;br /&gt;
 | action/executeshellcommand&lt;br /&gt;
 | In Konqueror Tools menu, see also shell_access&lt;br /&gt;
 |&lt;br /&gt;
 | action/show_dot&lt;br /&gt;
 | Show Hidden Files&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;(*)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;Kicker related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/kicker_rmb&lt;br /&gt;
 | &amp;#039;&amp;#039;RMB menu&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/menuedit&lt;br /&gt;
 |&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;TWin related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/twin_rmb&lt;br /&gt;
 | &amp;#039;&amp;#039;RMB window context menu&amp;#039;&amp;#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;Screensaver related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | opengl_screensavers&lt;br /&gt;
 | &amp;#039;&amp;#039;Defines whether OpenGL screensavers are allowed to be used.&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | manipulatescreen_screensavers&lt;br /&gt;
 | &amp;#039;&amp;#039;Defines whether screensavers that manipulate an image of the screen (e.g. moving chunks of the screen around) are allowed to be used.&amp;#039;&amp;#039;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;2&amp;quot; | &amp;lt;big&amp;gt;Printing related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | print/system&lt;br /&gt;
 | Disables the option to select the printing system (backend). It is recommended to  disable this option once the correct printing system has been configured.&lt;br /&gt;
 |-&lt;br /&gt;
 | print/properties&lt;br /&gt;
 | Disables the button to change printer properties or to add a new printer.&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | print/options&lt;br /&gt;
 | Disables the button to select additional print options.&lt;br /&gt;
 |-&lt;br /&gt;
 | print/copies&lt;br /&gt;
 | Disables the panel that allows users to make more than one copy.&lt;br /&gt;
 |-&lt;br /&gt;
 | print/selection&lt;br /&gt;
 | Disables the options that allows selecting a (pseudo) printer or change any of the printer properties. Make sure that a proper default printer has been selected before disabling this option. Disabling this option also disables &amp;lt;code&amp;gt;print/system&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;print/options&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;print/properties&amp;lt;/code&amp;gt;.&lt;br /&gt;
 |-&lt;br /&gt;
 | print/dialog&lt;br /&gt;
 | Disables the complete print dialog. Selecting the print option will immediately print the selected document using default settings. Make sure that a system wide default printer has been selected. No application specific settings are honored.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;5&amp;quot; | &amp;lt;big&amp;gt;Konsole related&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | action/konsole_rmb&lt;br /&gt;
 | action/settings&lt;br /&gt;
 | action/show_menubar&lt;br /&gt;
 | action/show_toolbar&lt;br /&gt;
 |-&lt;br /&gt;
 | action/scrollbar&lt;br /&gt;
 | action/fullscreen&lt;br /&gt;
 | action/bell&lt;br /&gt;
 | action/font&lt;br /&gt;
 |-&lt;br /&gt;
 | action/keyboard&lt;br /&gt;
 | action/schema&lt;br /&gt;
 | action/size&lt;br /&gt;
 | action/history&lt;br /&gt;
 |-&lt;br /&gt;
 | action/save_default&lt;br /&gt;
 | action/save_sessions_profile&lt;br /&gt;
 | action/options_configure_notifications&lt;br /&gt;
 | action/options_configure_keybinding&lt;br /&gt;
 |-&lt;br /&gt;
 | action/options_configure&lt;br /&gt;
 | action/send_signal &lt;br /&gt;
 | action/bookmarks&lt;br /&gt;
 | action/add_bookmark&lt;br /&gt;
 |-&lt;br /&gt;
 | action/edit_bookmarks&lt;br /&gt;
 | action/clear_terminal&lt;br /&gt;
 | action/reset_clear_terminal&lt;br /&gt;
 | action/find_history&lt;br /&gt;
 |-&lt;br /&gt;
 | action/find_next&lt;br /&gt;
 | action/find_previous&lt;br /&gt;
 | action/save_history&lt;br /&gt;
 | action/clear_history&lt;br /&gt;
 |-&lt;br /&gt;
 | action/clear_all_histories&lt;br /&gt;
 | action/detach_session&lt;br /&gt;
 | action/rename_session&lt;br /&gt;
 | action/zmodem_upload&lt;br /&gt;
 |-&lt;br /&gt;
 | action/monitor_activity&lt;br /&gt;
 | action/monitor_silence&lt;br /&gt;
 | action/send_input_to_all_sessions&lt;br /&gt;
 | action/close_session&lt;br /&gt;
 |-&lt;br /&gt;
 | action/new_session&lt;br /&gt;
 | action/activate_menu&lt;br /&gt;
 | action/list_sessions&lt;br /&gt;
 | action/move_session_left&lt;br /&gt;
 |-&lt;br /&gt;
 | action/move_session_right&lt;br /&gt;
 | action/previous_session&lt;br /&gt;
 | action/next_session&lt;br /&gt;
 | action/switch_to_session_1&lt;br /&gt;
 |-&lt;br /&gt;
 | action/switch_to_session_2&lt;br /&gt;
 | action/switch_to_session_3&lt;br /&gt;
 | action/switch_to_session_4&lt;br /&gt;
 | action/switch_to_session_5&lt;br /&gt;
 |-&lt;br /&gt;
 | action/switch_to_session_6&lt;br /&gt;
 | action/switch_to_session_7&lt;br /&gt;
 | action/switch_to_session_8&lt;br /&gt;
 | action/switch_to_session_9&lt;br /&gt;
 |-&lt;br /&gt;
 | action/switch_to_session_10&lt;br /&gt;
 | action/switch_to_session_11&lt;br /&gt;
 | action/switch_to_session_12&lt;br /&gt;
 | action/bigger_font&lt;br /&gt;
 |-&lt;br /&gt;
 | action/smaller_font&lt;br /&gt;
 | action/toggle_bidi&lt;br /&gt;
 |&lt;br /&gt;
 |&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable mw-collapsible mw-collapsed&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;2&amp;quot; | &amp;lt;big&amp;gt;Other defined actions&amp;lt;/big&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | shell_access &lt;br /&gt;
 | Defines whether a shell suitable for entering random commands may be started. This also determines whether the &amp;quot;Run Command&amp;quot; option (Alt-F2) can be used to run shell-commands and arbitrary executables. Likewise, executables placed in the user&amp;#039;s Autostart folder will no longer be executed. Applications can still be autostarted by placing .desktop files in the &amp;lt;tt&amp;gt;$TDEHOME/Autostart&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;$TDEDIR/share/autostart&amp;lt;/tt&amp;gt; directory. See also &amp;lt;code&amp;gt;run_desktop_files&amp;lt;/code&amp;gt;.&lt;br /&gt;
 |-&lt;br /&gt;
 | custom_config &lt;br /&gt;
 | Defines whether the --config command line option should be honored. The --config command line option can be used to circumvent locked-down configuration files.&lt;br /&gt;
 |-&lt;br /&gt;
 | logout&lt;br /&gt;
 | Defines whether the user will be able to logout from TDE.&lt;br /&gt;
 |-&lt;br /&gt;
 | lock_screen&lt;br /&gt;
 | Defines whether the user will be able to lock the screen.&lt;br /&gt;
 |-&lt;br /&gt;
 | run_command&lt;br /&gt;
 | Defines whether the &amp;quot;Run Command&amp;quot; (Alt-F2) option is available.&lt;br /&gt;
 |-&lt;br /&gt;
 | movable_toolbars&lt;br /&gt;
 | Defines whether toolbars may be moved around by the user. See also &amp;lt;code&amp;gt;action/options_show_toolbar&amp;lt;/code&amp;gt;.&lt;br /&gt;
 |-&lt;br /&gt;
 | editable_desktop_icons&lt;br /&gt;
 | Defines whether icons on the desktop can be moved, renamed, deleted or added. You might want to set the path for the Desktop to some read-only directory as well. (Instead of &amp;lt;tt&amp;gt;$HOME/Desktop&amp;lt;/tt&amp;gt;)&lt;br /&gt;
 |-&lt;br /&gt;
 | run_desktop_files&lt;br /&gt;
 | Defines whether users may execute desktop files that are not part of the default desktop, TDE menu, registered services and autostarting services.&lt;br /&gt;
* The default desktop includes the files under &amp;lt;tt&amp;gt;$TDEDIR/share/kdesktop/Desktop&amp;lt;/tt&amp;gt; but &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; the files under &amp;lt;tt&amp;gt;$HOME/Desktop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* The TDE menu includes all files under &amp;lt;tt&amp;gt;$TDEDIR/share/applnk&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$XDGDIR/applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Registered services includes all files under &amp;lt;tt&amp;gt;$TDEDIR/share/services.&amp;lt;/tt&amp;gt; &lt;br /&gt;
* Autostarting services include all files under &amp;lt;tt&amp;gt;$TDEDIR/share/autostart&amp;lt;/tt&amp;gt; but &amp;#039;&amp;#039;&amp;#039;NOT&amp;#039;&amp;#039;&amp;#039; the files under &amp;#039;&amp;#039;&amp;#039;$TDEHOME/Autostart&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You probably also want to activate the following resource restictions:&lt;br /&gt;
  {|&lt;br /&gt;
   | appdata_kdesktop&lt;br /&gt;
   | To restrict the default desktop.&lt;br /&gt;
   |-&lt;br /&gt;
   | apps&lt;br /&gt;
   | To restrict the TDE menu.&lt;br /&gt;
   |-&lt;br /&gt;
   | xdgdata-apps&lt;br /&gt;
   | To restrict the TDE menu.&lt;br /&gt;
   |-&lt;br /&gt;
   | services&lt;br /&gt;
   | To restrict registered services.&lt;br /&gt;
   |-&lt;br /&gt;
   | autostart&lt;br /&gt;
   | To restrict autostarting services.&lt;br /&gt;
   |}&lt;br /&gt;
Otherwise users can still execute .desktop files by placing them in e.g. &amp;lt;tt&amp;gt;$TDEHOME/share/kdesktop/Desktop&amp;lt;/tt&amp;gt;.&lt;br /&gt;
 |-&lt;br /&gt;
 | lineedit_text_completion&lt;br /&gt;
 | Defines whether input lines should have the potential to remember any previously entered data and make suggestions based on this when typing. When a single account is shared by multiple people you may wish to disable this out of privacy concerns.&lt;br /&gt;
 |-&lt;br /&gt;
 | start_new_session&lt;br /&gt;
 | Defines whether the user may start a second X session. See also the tdm configuration.&lt;br /&gt;
 |-&lt;br /&gt;
 | switch_user&lt;br /&gt;
 | Defines whether user switching via tdm is allowed&lt;br /&gt;
 |-&lt;br /&gt;
 | skip_drm&lt;br /&gt;
 | Defines if the user may omit DRM checking. Currently only used by kpdf&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{{TipBox|caption=Notes|text=&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/options_show_toolbar&amp;lt;/code&amp;gt; will also disable the &amp;quot;Toolbars&amp;quot; submenu if present.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/bookmarks&amp;lt;/code&amp;gt; also disables &amp;lt;code&amp;gt;action/bookmark_add&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;action/bookmark_edit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/help&amp;lt;/code&amp;gt; is not yet fully implemented&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/kdesktop_rmb&amp;lt;/code&amp;gt; disables the RMB menu but some actions may still be accessible via keyboard shortcuts: cut/copy/rename/trash/delete&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/iconview_preview&amp;lt;/code&amp;gt; disables the option to toggle previews on or off in icon mode but the actual preview settings remains unaffected. To disable previews you also need to add the following lines to &amp;lt;tt&amp;gt;konqiconviewrc&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Settings]&lt;br /&gt;
PreviewsEnabled[$i]=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/show_dot&amp;lt;/code&amp;gt; disables the option to toggle showing hidden files, the actual setting remains unaffected. To disable showing hidden files, add the following lines to &amp;lt;tt&amp;gt;konqiconviewrc&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[Settings]&lt;br /&gt;
ShowDotFiles[$i]=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;action/sharefile&amp;lt;/code&amp;gt; disables file sharing from the UI, but you may also want to disable file sharing altogether.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Applications may use additional actions that they defined themselves.&lt;br /&gt;
You can get a list of the actions used by a certain applications by using the&lt;br /&gt;
following dcop command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
$ dcop &amp;lt;dcopid&amp;gt; qt objects | grep TDEActionCollection/ | cut -d &amp;#039;/&amp;#039; -f 3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or with&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell-session&amp;quot;&amp;gt;&lt;br /&gt;
$ dcop &amp;lt;dcopid&amp;gt; &amp;lt;maindwindowid&amp;gt; actions&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Actions that refer to applications that need to be run as a different user&lt;br /&gt;
are prefixed by &amp;lt;code&amp;gt;user/&amp;lt;/code&amp;gt; and identified by the username. For example, this will&lt;br /&gt;
disable all application entries that require root access:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
user/root=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Application .desktop files can have an additional field &amp;quot;X-TDE-AuthorizeAction&amp;quot;.&lt;br /&gt;
If this field is present the .desktop file is only considered if the action(s) &lt;br /&gt;
mentioned in this field has been authorized. If multiple actions are listed&lt;br /&gt;
they should be separated by commas (&amp;#039;,&amp;#039;). So if the .desktop file of an application&lt;br /&gt;
lists one or more actions this way and the user has no authorization for one&lt;br /&gt;
of these actions then the application will not appear in the TDE menu and will not&lt;br /&gt;
be used by KDE for opening files.&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|caption=Important note|text=&lt;br /&gt;
Changing restrictions may influence the data that is cached in the tdesycoca&lt;br /&gt;
database. Since changes to &amp;lt;tt&amp;gt;.../share/config/kdeglobals&amp;lt;/tt&amp;gt; do not trigger an&lt;br /&gt;
automatic tdesycoca update you need to force an update manually.&lt;br /&gt;
To force an update of the tdesycoca database touch the file &lt;br /&gt;
&amp;lt;tt&amp;gt;.../share/services/update_tdesycoca&amp;lt;/tt&amp;gt;. This will force a user&amp;#039;s sycoca database&lt;br /&gt;
to be rebuild the next time the user logs in.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== TDE URL Restrictions ==&lt;br /&gt;
It is also possible to restrict URL related actions. The restriction framework &lt;br /&gt;
can disable URL actions based on the action, the URL in question and in some cases &lt;br /&gt;
the referring URL. URLs can be matched based on protocol, host and path.&lt;br /&gt;
&lt;br /&gt;
The syntax for adding URL action restrictions to &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[KDE URL Restrictions]&lt;br /&gt;
rule_count=&amp;lt;N&amp;gt;&lt;br /&gt;
rule_1=&amp;lt;action&amp;gt;,&amp;lt;referingURL_protocol&amp;gt;,&amp;lt;referingURL_host&amp;gt;,&amp;lt;referingURL_path&amp;gt;,&amp;lt;URL_protocol&amp;gt;,&amp;lt;URL_host&amp;gt;,&amp;lt;URL_path&amp;gt;,&amp;lt;enabled&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
rule_N=&amp;lt;action&amp;gt;,&amp;lt;referingURL_protocol&amp;gt;,&amp;lt;referingURL_host&amp;gt;,&amp;lt;referingURL_path&amp;gt;,&amp;lt;URL_protocol&amp;gt;,&amp;lt;URL_host&amp;gt;,&amp;lt;URL_path&amp;gt;,&amp;lt;enabled&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The following actions are supported:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Action&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 | &amp;#039;&amp;#039;&amp;#039;Description&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
 |-&lt;br /&gt;
 | redirect&lt;br /&gt;
 | e.g. a html-page obtained via HTTP could redirect itself to file:/path/some-file. This is disabled by default but could be explicitly enabled for a specific HTTP host. This also applies to links contained in html documents. Example: &amp;lt;code&amp;gt;rule_1=redirect,http,myhost.acme.com,,file,,,true&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | list&lt;br /&gt;
 | This controls which directories can be browsed with KDE&amp;#039;s file-dialogs. If a user should only be able to browse files under home directory one could use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
rule_1=list,,,,file,,,false&lt;br /&gt;
rule_2=list,,,,file,,$HOME,true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first rule disables browing any directories on the local filesystem. The second rule then enables browsing the users home directory.&lt;br /&gt;
 |-&lt;br /&gt;
 | open&lt;br /&gt;
 | This controls which files can be opened by the user in applications. It also affects where users can save files. To only allow a user to open the files in his own home directory one could use:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
rule_1=open,,,,file,,,false&lt;br /&gt;
rule_2=open,,,,file,,$HOME,true&lt;br /&gt;
rule_3=open,,,,file,,$TMP,true&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that with the above, users would still be able to open files from the Internet and that the user is also given access to &amp;lt;tt&amp;gt;$TMP&amp;lt;/tt&amp;gt; in order to ensure correct operation of TDE applications. &amp;lt;tt&amp;gt;$TMP&amp;lt;/tt&amp;gt; is replaced with the temporary directory that TDE uses for this user.&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
Some remarks:&lt;br /&gt;
* empty entries match everything&lt;br /&gt;
* host names may start with a wildcard, e.g. &amp;lt;code&amp;gt;*.acme.com&amp;lt;/code&amp;gt;&lt;br /&gt;
* a protocol also matches similar protocols that start with the same name, e.g. &amp;lt;code&amp;gt;http&amp;lt;/code&amp;gt; matches both http and https. You can use &amp;quot;http!&amp;quot; if you only want to match http (and not https)&lt;br /&gt;
* specifying a path matches all URLs that start with the same path. For better results you should not include a trailing slash. If you want to specify one specific path, you can add an exclamation mark. E.g. &amp;lt;code&amp;gt;/srv&amp;lt;/code&amp;gt; matches both &amp;lt;tt&amp;gt;/srv&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/srv/www&amp;lt;/tt&amp;gt; but &amp;quot;/srv!&amp;quot; only matches &amp;lt;tt&amp;gt;/srv&amp;lt;/tt&amp;gt; and not &amp;lt;tt&amp;gt;/srv/www&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== TDE Resource Restrictions ==&lt;br /&gt;
Most TDE applications make use of additional resource files that are typically&lt;br /&gt;
located in directories under &amp;lt;tt&amp;gt;$TDEDIR/share&amp;lt;/tt&amp;gt;. By default TDE allows users to&lt;br /&gt;
override any of these resources by placing files in the same location &lt;br /&gt;
under &amp;lt;tt&amp;gt;$TDEHOME/share&amp;lt;/tt&amp;gt;. For example, Konsole stores profiles under &lt;br /&gt;
&amp;lt;tt&amp;gt;$TDEDIR/share/apps/konsole&amp;lt;/tt&amp;gt; and users can add additional profiles by &lt;br /&gt;
installing files in &amp;lt;tt&amp;gt;$TDEHOME/share/apps/konsole&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
TDE Resource Restrictions make it possible to restrict the lookup of files&lt;br /&gt;
to directories outside of &amp;lt;code&amp;gt;$TDEHOME&amp;lt;/code&amp;gt; only.&lt;br /&gt;
&lt;br /&gt;
The following resources are defined:&lt;br /&gt;
{|&lt;br /&gt;
 | autostart&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/autostart&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | data&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/apps&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | html&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/doc/tde/HTML&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | icon&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/icon&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | config&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/config&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | pixmap&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/pixmaps&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | apps&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/applnk&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | xdgdata-apps&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/applications&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | sound&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/sounds&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | locale&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/locale&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | services&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/services&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | servicetypes&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/servicetypes&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | mime&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/mimelnk&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | wallpaper&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/wallpapers&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | templates&lt;br /&gt;
 | &amp;lt;tt&amp;gt;share/templates&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | exe&lt;br /&gt;
 | &amp;lt;tt&amp;gt;bin&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | lib&lt;br /&gt;
 | &amp;lt;tt&amp;gt;lib&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
For the purpose of resource restrictions there are two special resources:&lt;br /&gt;
{|&lt;br /&gt;
 | all&lt;br /&gt;
 | &amp;lt;tt&amp;gt;covers all resources&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | data_&amp;lt;code&amp;gt;&amp;amp;lt;appname&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
 | &amp;lt;tt&amp;gt;covers the sub section for &amp;lt;code&amp;gt;&amp;amp;lt;appname&amp;amp;gt;&amp;lt;/code&amp;gt; in the data resource.&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
To restrict resources the &amp;lt;tt&amp;gt;kdeglobals&amp;lt;/tt&amp;gt; file should contain the&lt;br /&gt;
group &amp;lt;code&amp;gt;[KDE Resource Restrictions]&amp;lt;/code&amp;gt;, each resource can then be restricted by&lt;br /&gt;
adding &amp;lt;code&amp;gt;&amp;amp;lt;resource&amp;amp;gt;=false&amp;lt;/code&amp;gt;. E.g. to restrict the &amp;quot;wallpaper&amp;quot; resource to &lt;br /&gt;
&amp;lt;tt&amp;gt;$TDEDIR/share/wallpapers&amp;lt;/tt&amp;gt; one would add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[KDE Resource Restrictions][$i]&lt;br /&gt;
wallpaper=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And to prevent a user from adding additional konsole profiles, one would add:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[KDE Resource Restrictions][$i]&lt;br /&gt;
data_konsole=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Control Module Restrictions ==&lt;br /&gt;
It is possible to restrict access to particular control modules.&lt;br /&gt;
Although it is possible to remove control modules from the Control&lt;br /&gt;
Center by editing the menu structure, such modules will then still&lt;br /&gt;
be available to applications. A better way is to use the control&lt;br /&gt;
module restrictions offered by KIOSK:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[TDE Control Module Restrictions][$i]&lt;br /&gt;
&amp;lt;menu-id&amp;gt;=false&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some example menu-ids are:&lt;br /&gt;
 tde-display.desktop&lt;br /&gt;
 tde-proxy.desktop&lt;br /&gt;
 tde-screensaver.desktop&lt;br /&gt;
&lt;br /&gt;
See also &amp;lt;code&amp;gt;$ tdecmshell --list&amp;lt;/code&amp;gt; for a list of all the base names.&lt;br /&gt;
&lt;br /&gt;
== Expansion of environment variables in TDE config files ==&lt;br /&gt;
&lt;br /&gt;
In TDE arbitrary entries in configuration files can contain environment&lt;br /&gt;
variables. In order to use this the entry must be marked with [$e]. &lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
Name[$e]=$USER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the &amp;lt;tt&amp;gt;Name&amp;lt;/tt&amp;gt; entry is read &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; will be replaced&lt;br /&gt;
with the value of the &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; environment variable. Note that&lt;br /&gt;
the application will replace &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; with the value of the&lt;br /&gt;
environment variable after saving. To prevent this combine the &amp;lt;code&amp;gt;$e&amp;lt;/code&amp;gt;&lt;br /&gt;
option with &amp;lt;code&amp;gt;$i&amp;lt;/code&amp;gt; (immmutable) option.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
Name[$ei]=$USER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above will make that the &amp;quot;Name&amp;quot; entry will always return the value of&lt;br /&gt;
the &amp;lt;code&amp;gt;$USER&amp;lt;/code&amp;gt; environment variable. The user will not be able to&lt;br /&gt;
change this entry.&lt;br /&gt;
&lt;br /&gt;
The following syntax is also supported:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
Name[$ei]=${USER}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TDE Kiosk Application API ==&lt;br /&gt;
Three new methods have been added to &amp;lt;tt&amp;gt;TDEApplication&amp;lt;/tt&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
 ! Method&lt;br /&gt;
 ! Description&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;code&amp;gt;bool authorize(TQString action);&amp;lt;/code&amp;gt;&lt;br /&gt;
 | Generic actions&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;code&amp;gt;bool authorizeTDEAction(TQString action);&amp;lt;/code&amp;gt;&lt;br /&gt;
 | For TDEActions exclusively&lt;br /&gt;
 |-&lt;br /&gt;
 | &amp;lt;code&amp;gt;bool authorizeURLAction(TQString, referringURL, destinationURL);&amp;lt;/code&amp;gt;&lt;br /&gt;
 | URL Handling&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
== Automatic Logout ==&lt;br /&gt;
Since KDE 3.4 it is possible to automatically logout users that have been idle&lt;br /&gt;
for a certain period of time.&lt;br /&gt;
&lt;br /&gt;
{{WarningBox|text=Be careful with this option, logging out a user may result in data loss!}}&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;tt&amp;gt;kdesktoprc&amp;lt;/tt&amp;gt; you can use the following entry to enable automatic logout:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[ScreenSaver]&lt;br /&gt;
AutoLogout=true&lt;br /&gt;
AutoLogoutTimeout=600&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The AutoLogoutTimeout is the time in seconds that the user has to be idle before&lt;br /&gt;
their session is logged out.&lt;/div&gt;</summary>
		<author><name>Blu256</name></author>
	</entry>
</feed>