To answer this, you must understand what happens after you
successfully authorized yourself to the system: Depending on your
distribution, some scripts are executed, from which one should be
modified to set KDE_MODE. There is a script called
Xsession under /etc/X11/xdm or
/usr/X11R6/lib/xdm, which you could modify, or
startkde, that is located under
$KDEDIR/bin. Note however, that the variable
must be set prior to calling the kde processes.
Since we had the need to make a setup for a big environment (now
reaching 300 users) we wrote an application that enables us to
administer. It also creates the KDE Menus. It writes a file called
.env.sh in a user's home directory, that will be
sourced in Xsession. That is what you could do. So
you could put in .env.sh of that specific user's
home directory:
#!/bin/sh
KDE_MODE="restricted"
export KDE_MODE |
and add to Xsession, somewhere prior to calling startkde:
if [ -f $HOME/.env.sh ]; then
. $HOME/.env.sh
fi |
We also have two kdedirs that looks like to separate installations of
KDE, this was neccessary so "normal" users could still have a
full-featured KDE. So we have an original kdedir, and a restricted
kdedir, in which we removed entries under
share/applnk and set the variable
KDEDIR (under KDE 2 the variable KDEDIRS
was introduced but KDEDIR is still used). The files
under share/applnk make up the menu. Caution, you
cannot just remove all files there, because some are needed to
initialize KDE.
You also set the Variable KDEDIR in
Xsession, after sourcing
.env.sh like this:
case "$KDE_MODE" in
restricted)
KDEDIR=/usr/local/kde/restricted_kdedir
;;
*)
KDEDIR=/usr/local/kde
esac
export KDEDIR |
Replace /usr/local/kde with the install directory
of your KDE. The contents of
/usr/local/kde/restricted_kdedir looks like:
bin -> ../bin
cgi-bin -> ../cgi-bin
etc -> ../etc
lib -> ../lib
share
|
only share is a real directory, every other directory is a symbolic
link pointing to original
kdedir. /usr/local/kde/restricted_kdedir/share
has the following contents:
aclocal -> ../../share/aclocal
applnk
apps -> ../../share/apps
autostart -> ../../share/autostart
config -> ../../share/config
doc -> ../../share/doc
fonts -> ../../share/fonts
icons -> ../../share/icons
locale -> ../../share/locale
mimelnk -> ../../share/mimelnk
services -> ../../share/services
servicetypes -> ../../share/servicetypes
sounds -> ../../share/sounds
templates -> ../../share/templates
wallpapers -> ../../share/wallpapers
|
only applnk is a real directory. As a minimal requirement remove
everything except:
Settings/Peripherals/mouse.desktop
Settings/LookNFeel/background.desktop
/colors.desktop
/kwinoptions.desktop
/style.desktop
/virtualdesktops.desktop
|
under
/usr/local/kde/restricted_kdedir/share/applnk