From 66c5602f5818d46f618b4dacaaf8bdc00cfacdd2 Mon Sep 17 00:00:00 2001 From: Darrell Anderson Date: Fri, 31 Jan 2014 14:03:54 -0600 Subject: Move Administrator Guide from User Guide to standalone handbook. --- doc/userguide/tde-for-admins.docbook | 2732 ---------------------------------- 1 file changed, 2732 deletions(-) delete mode 100644 doc/userguide/tde-for-admins.docbook (limited to 'doc/userguide/tde-for-admins.docbook') diff --git a/doc/userguide/tde-for-admins.docbook b/doc/userguide/tde-for-admins.docbook deleted file mode 100644 index 815e69d45..000000000 --- a/doc/userguide/tde-for-admins.docbook +++ /dev/null @@ -1,2732 +0,0 @@ - - -&tde; for Administrators - - -&tde; Internals - - -Overview -to be written - - - -Directory Layout - -&tde; defines a filesystem hierarchy which is used by the &tde; -environment itself as well as all &tde; applications. In general &tde; -stores all its files in a directory tree with a fixed structure. - - -By default &tde; uses two directory trees: - - -One at the system level (for example /opt/trinity). -One at the user level in the user's home directory -(usually -~/.trinity) - - -As a system administrator you can create additional trees. Such -additional trees can be used for profiles - -&SuSE; &Linux; for example uses: - - -$HOME/.trinity -/opt/trinity. (This is -&SuSE;-specific; other distributions may use -/usr or /usr/trinity) -/etc/opt/trinity. (This was added by -&SuSE;). - - -If you have the KIOSK Admin tool v0.7 or later installed you can -check which directory trees are used with the following command: -kiosktool-tdedirs - - - -&tde; and &tde; applications look up files by scanning all the -&tde; directory trees. The directory trees are checked in order of -precedence. When a file is present in multiple directory trees, the -file from the last tree takes precedence. Normally, the tree -located in the user's home directory has the highest precedence. This -is also the directory tree to which changes are written. - - -For information about the text/plain &MIME; type -the following files are searched: - - -$HOME/.trinity/share/mimelnk/text/plain.desktop -/opt/trinity/share/mimelnk/text/plain.desktop -/etc/opt/trinity/share/mimelnk/text/plain.desktop - - -If a user makes a change, the change is written to $HOME/.trinity/share/mimelnk/text/plain.desktop - - -For configuration files the story is slightly different. If -there are multiple configuration files found in the directory trees -with the same name, their content is combined. The precedence order of -the directory trees plays a role here. When two files define the same -configuration key, the file with the highest precedence determines -which value is used for the key. - - -For example, if the following two files exist, with these contents: - -$HOME/.trinity/share/config/foobar - -Color=red -Shape=circle - - - - - -/etc/opt/trinity/share/config/foobar - -Color=blue -Position=10,10 - - - - - -The files will be merged to result in: - - -Color=red -Shape=circle -Position=10,10 - - - - - - -Specifying Directories - - - - -Environment Variable -Example Setting(s) -Comment - - -TDEHOME -~/.trinity - - - - -TDEROOTHOME -/root/.trinity -Different variable to prevent -root writing to $TDEHOME of the user after running -su. - - - -TDEDIR -/opt/trinity, /usr, /usr/trinity -Vendor dependent. Used by &tde; 2. If not set, falls back to -compiled-in default. - - - -TDEDIRS -/opt/trinity, /usr, /usr/trinity -New in &tde;3. Can list multiple locations separated by a -colon. If not set, falls back to $TDEDIR - - - - -Don't need to be set, defaults work just fine. -Running &tde;2 next to &tde;3? Point $TDEDIR to -&tde; 2 and $TDEDIRS to &tde; 3. - - -A staff member at a university could have the following -settings: - -TDEHOME='~/.trinity' -TDEROOTHOME='/root/.trinity' -TDEDIRS='/opt/kde_staff:/opt/trinity' - - - - - - - -User Profiles - -In the previous example /opt/kde_staff contained additional settings -and applications for staff members. User Profiles allow you -to add this directory only for certain users and not for others. Add the -following to /etc/tderc: - - -[Directories-staff] -prefixes=/opt/kde_staff - - -This creates a profile named staff that adds the -/opt/kde_staff directory -tree. (Note that &SuSE; &Linux; uses -/etc/kde3rc instead of -/etc/tderc. Now that we have a named profile it -can be assigned to users. - -To map profiles to users a mapping file needs to be specified in -/etc/tderc: - - -[Directories] -userProfileMapFile=/etc/kde-user-profile - - -It is now possible to assign a profile based on either the user name -or based on the &UNIX; group the user is part of. - -To assign the staff profile to all users that are a member of the -&UNIX; group staff_members add the following to -/etc/kde-user-profile: - - -[General] -groups=staff_members -[Groups] -staff_members=staff - - -It is also possible to assign a profile to a single user: - - -[Users] -bastian=staff - - - - - -Directory Layout Revisited - -Each directory tree used by &tde; has a fixed directory structure. -Directories that are not relevant for a certain tree, or simply not used can -be left out though. For example, directories used for temporary files are -usually only found under $TDEHOME but not in any other -directory tree. - - - - -Architecture-specific Directories - -Architecture (OS and CPU type) specific directories: - - - -bin -Used for &tde; executables. - - - -lib -Used for &tde; libraries. - - - - -lib/trinity -This directory contains components, plugins, and other -runtime loadable objects for use by &tde; 3.x -applications. - - - - - - -Shared Directories - -Shared: Not architecture specific, can be shared between different -archs. - - - -share/applnk -.desktop files for -&tde;-menu (old) - - - -share/applications -.desktop files for -&tde;-menu - - - - -share/apps -Contains application-specific data files. Each -application has a sub-directory here for storing additional data -files. - - - -share/config -Configuration files. Configuration files are normally -named after the application they belong to plus the letters -rc. A special case is kdeglobals. -This file is read by all &tde; applications. - - - -share/config/session -This directory is used by session management and is -normally only available under $TDEHOME. At the end of a -session &tde; applications store their state here. The file names -consist of the name of the application followed by a number. The -session manager ksmserver stores references to -these numbers when saving a session in -ksmserverrc. - - - -share/doc/tde/HTML -This directory contains documentation for &tde; -applications. Documentation is categorized by language and the -application it belongs to. Normally at least two files can be found in -a directory: index.docbook, which contains the -documentation in the unformatted DocBook format, and -index.cache.bz2, which contains the same -documentation formatted as bzip2-compressed -&HTML;. The &HTML; version is used by &khelpcenter;. If the &HTML; -version is missing, &khelpcenter; will regenerate it from the DocBook -version but this is a time-consuming process. - - - - -share/icons -Under this directory icons are stored. Icons are -categorized by theme, dimension and usage category. - - - -share/mimelnk -In this directory,.desktop files that describe &MIME; types -are stored. &tde; uses &MIME; types to identify the type of a -file. - - - - -share/services -This directory contains .desktop files that describe services. Services -are like applications but are usually launched by other applications instead -of the user. Services do not appear in the &tde; menu. - - - - -share/servicetypes -This directory contains .desktop files that describe -servicetypes. A servicetype usually represents a certain programming -interface. Applications and Services include in their >.desktop files the servicetypes that they -provide. - - -share/sounds -This directory contains sound files. - - - -share/templates -This directory contains templates for creating files -of various types. A template consists of a .desktop file that describes the file and -that includes a reference to a file in the .source sub-directory. The templates in -this directory appear in the Create New menu -available on the desktop and in the file browser. When a user selects -a template from the menu its source file is copied. - - - - -share/wallpapers -This directory contains images that can be used as -background picture - - - - - - - -Host-specific Directories - -There are three host-specific directories that are usually -symlinked to other locations. If the directories do not already exist, -the following symlinks and directories will be created using the -lnusertemp utility: - - - - -$TDEHOME/socket-$HOSTNAME -Usually /tmp/tdesocket-$USER/, this -is used for various &UNIX; sockets. - - - - -$TDEHOME/tmp-$HOSTNAME -Usually /tmp/kde-$USER/, this is used for temporary files. - - - - -$TDEHOME/cache-$HOSTNAME -Usually /var/tmp/tdecache-$USER/, -this is used for cached files. - - - - -Since both /tmp and -/var/tmp are world writable, -there is a possibility that one of the above directories already -exists but is owned by another user. In that case the -lnusertemp utility will create a new directory with -an alternative name and link to that instead. - - - - -Configuration Files &tde; uses a simple -text-based file format for all its configuration files. It consists of -key-value pairs that are placed in groups. All &tde; configuration -files use UTF-8 encoding for text outside the -ASCII range. - -The start of a group is indicated by a group name that is placed -in square brackets. All the key-value entries that follow belong to -the group. The group ends when either another group starts or when the -end of the file is reached. Entries at the top of the -file that are not preceded by a group name belong to the default -group. - -The following example shows a configuration -file that consists of two groups. The first group contains the keys -LargeCursor and SingleClick, the -second group contains the keys Show hidden files -and Sort by: - - -[TDE] -LargeCursor=false -SingleClick=true - - - -[KFileDialog Settings] -Show hidden files=false -Sort by=Name - - - -Entries in a group consist of a key and value separated by an equals -sign. The key can contain spaces and may be followed by options placed in -square brackets. The part after the equals sign is the value of the -entry. Any white space surrounding the equals sign is ignored, as is any -trailing white space. Put more concisely, the format is: - - -entry=value - - -If a value is supposed to include a space at the begin or end -then this can be achieved by using a backslash followed by an -s. - -There are several other backslash codes; here is a complete -list: - -\s can be used as space - -\t can be used to include a tab - -\r for a carriage return character - -\n for a linefeed character (new line) - -\\ to include the backslash itself - - - -In the following example the value of the -Caption entry starts with two spaces while the -Description entry contains three lines of -text. Linefeeds in backslash notation are used to separate the -different lines. - - -[Preview Image] -Caption=\s My Caption -Description=This is\na very long\ndescription. - - - -Empty lines in configuration files are ignored, as are lines that -start with a hash mark (#). The hash mark can be used to add -comments to configuration files. It should be noted that when a &tde; -application updates a configuration file the comments are -not preserved. - -There can be multiple configuration files with the same name in the -share/config sub-directory of the -various &tde; directory trees. In this case the information of all these -configuration files is combined on a key-by-key basis. If the same key -within a certain group is defined in more than one place, the key value read -from the directory tree with the highest precedence will be used. -Configuration files under $TDEHOME always have the highest -precedence. If a key in a certain group is defined multiple times in a -single file, the value of the last entry is used. - - -If $HOME/.trinity/share/config/foobar -contains: - -[MyGroup] -Color=red -Shape=circle - -and /etc/opt/trinity/share/config/foobar contains - -[MyGroup] -Color=blue -Position=10,10 - -the result will be: - -[MyGroup] -Color=red -Shape=circle -Position=10,10 - - - - - -If - $HOME/.trinity/share/config/foobar - contains - -[MyGroup] -Color=red -Shape=circle -[MyGroup] -Color=green - -and /opt/kde_staff/share/config/foobar contains - -[MyGroup] -Color=purple -Position=20,20 - -and /etc/opt/trinity/share/config/foobar contains - -[MyGroup] -Color=blue -Position=10,10 - -the result will be: - -[MyGroup] -Color=green -Shape=circle -Position=20,20 - - - - -To prevent users being able to override default settings, -settings can be marked immutable. Settings can be made immutable -individually, per group or per file. An individual entry can be locked -down by adding [$i] behind the key, ⪚: - -Color[$i]=blue - - -A group of entries can be locked down by placing -[$i] behind the group name, ⪚: - -[MyGroup][$i] - - -To lock down the entire file, start the file with -[$i] on a single line, &ie;: - -[$i] - - - - -If - $HOME/.trinity/share/config/foobar - contains: - -[MyGroup] -Color=red -Shape=circle - -and /etc/opt/trinity/share/config/foobar contains: - -[MyGroup][$i] -Color=blue -Position=10,10 - -the result will be: - -[MyGroup] -Color=blue -Position=10,10 - - - - -If - $HOME/.trinity/share/config/foobar - contains: - -[MyGroup] -Color=red -Shape=circle - -and /opt/kde_staff/share/config/foobar contains - -[MyGroup] -Color=purple -Shape=rectangle - -and /etc/opt/trinity/share/config/foobar contains - -[MyGroup][$i] -Color=blue -Position=10,10 - -the result will be - -[MyGroup] -Color=purple -Shape=rectangle -Position=10,10 - - - - - -So-called Shell Expansion can be used to provide more -dynamic default values. With shell expansion the value of a configuration -key can be constructed from the value of an environment variable or from the -output of a shell command. To enable shell expansion for a configuration -entry, the key must be followed by [$e]. Normally the -expanded form is written into the user's configuration file after first use. -To prevent that, it is recommend to lock the configuration entry down by -using [$ie]. The user can't change it then of course. - - -In the following example the value for the Host -entry is determined by the output of the hostname -program. This setting is also locked down to ensure that the value is always -determined dynamically. - -The value for the Email entry is determined by -filling in the values of the $USER and $HOST -environment variables. When joe is -logged in on joes_host this will -result in a value equal to joe@joes_host. The setting is -not locked down. - - -[Mail Settings] -Host[$ie]=$(hostname) -Email[$e]=${USER}@${HOST} - - - -Most configuration entries can be indexed with a language code. In -this case, the language that the user has selected for use on the desktop is -used to look up the key value. If the default language (American English) -has been selected or if there is no index that corresponds to the selected -language, the key entry without index is used. - - -In the following example the value of the Caption -entry depends on the language. If the user has selected French as language -(language code fr) the value of the entry will be -Ma Légende. In all other cases the value My -Caption will be used. - - -[Preview Image] -Caption=My Caption -Caption[fr]=Ma Légende - - - - -In this example the value of the Caption entry -depends on the language. If the user has selected French as language -(language code fr) the value of the entry will be -Ma Légende. In all other cases the value My -Caption will be used. - - -[Preview Image] -Caption=My Caption -Caption[fr]=Ma Légende - - - -In general the entries that can appear in a configuration file are not -documented. With &tde; 3.2 a start has been made to change this. In -$TDEDIR/share/config.kcfg, files -can be found that provide a formal description of the possible entries in a -configuration file. These are used by the new &tde; Configuration Editor -when available. - - -Here is an example &XML; configuration file: - - -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE kcfg SYSTEM "http://www.kde.org/standards/kcfg/1.0/kcfg.dtd"> -<kcfg> - <kcfgfile name="korganizerrc"/> - <group name="General"> - <entry type="Bool" key="Auto Save"> - <label>Enable automatic saving of calendar</label> - <default>true</default> - </entry> - <entry type="Int" key="Auto Save Interval"> - <default>10</default> - </entry> - </group> -</kcfg> - - - -It has the same effect as: - -[General] -Auto Save=false -Auto Save Interval=25 - - - - - - - -&tde; Startup Sequence - - -&tdm; - -Always runs as root! Uses -$TDEDIR/share/config/tdmrc and -/etc/X11/xdm/Xservers. The latter contains entries -like: - - -:0 local /usr/X11R6/bin/X :0 vt07 - - -Relevant startup files are also: - - -[X-*-Core] section in tdmrc - - -Setup - /etc/X11/xdm/Xsetup - - -User enters username & password - - -Startup - /etc/X11/xdm/Xstartup - prepare as root - - -Session - /etc/X11/xdm/Xsession - starts session as user - - -= For a TDE session: kde or starttde - - -= If present ~/.xsession or ~/.xinitrc - - -Reset - /etc/X11/xdm/Xreset - after session finished - - - - - - -The &tde; Startup Script: <command>starttde</command> - -The &tde; startup sequence starts with the -starttde script. In most cases this script gets called -from the display manager (&tdm;) once the user has been authenticated. Their -are two very important lines in the starttde -script: - - -LD_BIND_NOW=true tdeinit +kcminit +knotify and kwrapper -ksmserver $TDEWM - - -The first line starts the tdeinit master process. -The tdeinit master process is used to start all other -&tde; processes. It show up in the output of ps - as tdeinit: -Running.... The arguments after tdeinit -are the names of additional processes to be started. The + -indicates that tdeinit needs to wait till the process has -finished. tdeinit also starts -dcopserver, tdelauncher and -kded. - -The second of the two lines asks tdeinit to start -the ksmserver session manager process. The session -manager determines the lifetime of the session. When this process exits, the -user is logged out. - - - - - -Background Processes - -All &tde; background services are user-specific: unlike system daemons -they are not shared between users. As well as being unique per user they are -also unique per X-server display. The processes are: - - - -dcopserver -Desktop communication - - - - -kded -Generic service daemon. -Triggers Sycoca database updates when -needed - - - - -kcminit -Initialization service -See for more information. - - - - -tdelauncher -Program launch (this is not the -&Alt;F2 -dialog!) -See for more information. - - - - -knotify -User notifications. -See for more information. - - - - -ksmserver -Session management -See for more information. - - - - - - -<command>tdeinit</command> -tdeinit is used to start all other &tde; -programs. tdeinit can start normal binary program files -as well as tdeinit loadable modules -(KLMs). KLMs work just like binary -program files but can be started more efficiently. KLMs -live in $TDEDIR/lib/trinity - -The drawback is that programs started this way appear as -tdeinit in the output of -top and ps. Use top - or ps -to see the actual program name: - - -%ps - -waba 23184 0.2 2.1 23428 11124 ? S 21:41 0:00 tdeinit: Running... -waba 23187 0.1 2.1 23200 11124 ? S 21:41 0:00 tdeinit: dcopserver --nosid -waba 23189 0.2 2.4 25136 12496 ? S 21:41 0:00 tdeinit: tdelauncher -waba 23192 0.7 2.8 25596 14772 ? S 21:41 0:00 tdeinit: kded -waba 23203 0.8 3.4 31516 17892 ? S 21:41 0:00 tdeinit: -knotify - - - -tdeinit: Running... indicates the -master tdeinit process. The other processes listed are -programs started as KLMs. - -When tdeinit starts for the first time it will -launch dcopserver, tdelauncher, and -kded, as well as any additional programs specified on its -command line in the starttde script, normally -kcminit and knotify. - - - - -<command>dcopserver</command> - -dcopserver is a daemon which provides inter-process -communication (&DCOP;) facilities to all &tde; applications. The &DCOP; -facilities are accessible from the command shell via the -dcop command line tool. &DCOP; is essential for all &tde; -applications. - -Some related files: - - - -$HOME/.DCOPserver_$HOSTNAME_$DISPLAY -.DCOPserver_linux__0. Controlled by $DCOPAUTHORITY - - - - -/tmp/.ICE-unix/dcoppid-number -dcop7634-1069677856. This is -the file that the DCOPserver file above points to. - - - - -$HOME/.ICEauthority -Authorization information controlled by -$ICEAUTHORITY - - - - - - - -kcminit - -kcminit executes initialization services during -startup. Initialization services are specified in the .desktop files of -applications or services via the X-TDE-Init line: - - -[Desktop Entry] -Encoding=UTF-8 -Exec=tdecmshell energy -Icon=energy_star -Type=Application -X-TDE-Library=energy -X-TDE-Init=energy - - -Initialization services are typically used for initializing -hardware based on user-specified settings. - -kcminit - can be used to show all -initialization services and kcminit -service can be used to -execute a single service explicitly. This can be useful when investigating -startup problems. - - - - -<command>tdelauncher</command> - -tdelauncher is a daemon which is responsible for -service activation within &tde;. It operates in close connection with the -tdeinit master process to start new processes. &tde; -applications communicate with tdelauncher over &DCOP; in -order to start new applications or services. - -Best known from the error message: -TDELauncher could not be reached via DCOP which -either indicates a serious problem with the dcopserver or -that tdelauncher crashed. - -tdelauncher can be restarted by restarting -tdeinit from a console window. Make sure that -$HOME, $DISPLAY and the various -$TDEDIR(S) are set correctly when doing so! - - - - -<command>knotify</command> - -The primary task of knotify is to relay sound -notifications to the sound server, it also provides alternative notification -methods. - - - - - - - -KSMServer - -ksmserver is &tde;'s session manager. On startup -the session manager launches auto-start applications and restores -applications from the previous session. The applications to auto-start are -indicated by .desktop files in the -$TDEDIR/share/autostart -directory. Whether or not to auto-start an application can be made -conditional upon some configuration entry determined by the -X-TDE-autostart-condition entry in the .desktop file. - - -The ktip.desktop file for example -contains: - - -X-TDE-autostart-condition=ktiprc:TipOfDay:RunOnStart:true - - -This means that the ktiprc configuration -file is checked for a RunOnStart entry in the -[TipOfDay] section. If no such entry is found, -true is assumed, which means that -ktip is one of the applications that is -auto-started by default. - - -Some of the applications auto-started by ksmserver -are: - - - - -kdesktop -The &tde; desktop - - - - -&kicker; -The &tde; panel - - - - -ktip -A tip of the day program - - - - -kwrited -A utility to receive system messages sent to the user - - - - -&klipper; -A clipboard utility that docks in the panel - - - - -kalarm -A utility that warns about upcoming events and appointments - - - - - -kdesktop in its turn automatically starts -applications stored in $TDEHOME/Autostart. kdesktop -will automatically open any files stored in this directory including -documents, binary files or applications in the form of .desktop files. - -The &tde; session manager also restores one of the previous -sessions. A session contains a collection of applications as well as -application-specific information that reflects the state of the applications -at the time the session was saved. Sessions are stored in the -ksmserverrc configuration file which contains -references to application-specific state information. The -application-specific state information is saved in $TDEHOME/share/config/session. -The state information of &twin; contains the location of the application -windows of all the other applications in the session. - - - - - -Environment variables - -Some important environment variables used by &tde;: - - - - -$TDEDIR -Has to be set if -TDEDIRS is not set and has to point to the root of the -&tde; installation tree. Allows &tde; to find its data like icons, -menus and libraries. - - - -$TDEDIRS -Overrides TDEDIR and allows you to specify -multiple directories where &tde; searches for its data. Useful if you want -or have to install some programs to a different prefix than the rest of -&tde;. - - - -$TDEHOMEIf -not set, &tde; uses ~/.trinity as -the directory where personal data is stored. - - - -$TDEROOTHOMEIf -not set, &tde; uses ~root/.trinity -as the directory for root's -personal data. Was introduced to prevent &tde; from accidently -overwriting user data with root permissions when the user runs a &tde; -program after switching with su to root. - - - -$TDEWMIf the -TDEWM environment variable has been set, then it will -be used as &tde;'s window manager within the -starttde script instead of &twin;. - - - -$TDE_LANGOverrides -the &tde; language configuration, ⪚ TDE_LANG=fr kprogram -& starts a program with French translation if the -necessary files are installed. - - - -$TDE_MULTIHEADSet -this variable to true to indicate that &tde; is running -on a multi-head system. - - - -$TDE_FORK_SLAVES -Set this variable to spawn -TDEIO-slaves directly from the application process -itself. By default TDEIO-slaves are spawned using -tdelauncher/tdeinit. This option is -useful if the TDEIO-slave should run in the same -environment as the application. This can be the case with -Clearcase. - - - -$TDE_HOME_READONLY -Set this variable to indicate that your home directory is -mounted as read-only. - - - -$TDE_NO_IPV6 -Set this variable to disable IPv6 -support and IPv6 DNS -lookups. - - - -$TDE_IS_PRELINKED -Set this variable to indicate that you have prelinked -your &tde; binaries and libraries. This will turn off -tdeinit. - - - -$TDE_UTF8_FILENAMESIf -this environment variable is set, &tde; assumes all filenames are in -UTF-8 encoding regardless of the current C -locale. - - - -$TDE_FULL_SESSION -Automatically set to true by &tde; startup, it is used -by ⪚ &konqueror; to know if it should consider remaining in memory -for future re-use when being closed. If not set, &konqueror; will exit -after being closed (⪚ &tdesu; does that, it's also useful for -debugging). - - - -$TDESYCOCAAllows -you to specify the path and the name of the generated &tde; system -configuration cache file. - - - -$TDETMPAllows -to specify another path than /tmp where &tde; stores its temporary -files. - - - -$TDEVARTMPAllows -to specify another path than /var/tmp where &tde; stores its variable -files. - - - -$XDG_DATA_HOME -Defines the base directory relative to which user-specific -data files should be stored. Default is $HOME/.local/share - - - -$XDG_DATA_DIRS -Defines the preference-ordered set of base directories to -search for data files in addition to the $XDG_DATA_HOME base -directory. Default is -/usr/local/share/:/usr/share/ - -&tde; adds locations from $TDEDIRS and profiles -as well. Used for .desktop and -.directory menu files. .desktop files under $XDG_DATA_DIRS/applications. -.directory files under -$XDG_DATA_DIRS/desktop-directories - - - - -$XDG_CONFIG_HOME -(&tde; 3.2) - Defines the base directory relative to which user -specific configuration files should be stored. Default is -$HOME/.config. - - - -$XDG_CONFIG_DIRS -(&tde; 3.2) - Defines the preference-ordered set of base directories -to search for configuration files in addition to the $XDG_CONFIG_HOME -base directory. The default is /etc/xdg &tde; adds locations from -$TDEDIRS and profiles as well. Used by .menu descriptions in -$XDG_CONFIG_DIRS/menus. - - - - - - - - -The tdeinit Mystery - - - -tdeinit is used to start all other &tde; -programs. tdeinit can start normal binary program f iles -as well as tdeinit loadable modules -(KLMs). KLMs work just like binary -program files but can be started more efficiently. KLMs -live in $TDEDIR/lib/trinity - -The drawback is that programs started this way appear as -tdeinit in the -output of top and ps. Use -top or ps - to see the actual program name: - - -% ps aux | grep bastian - -bastian 26061 0.0 2.2 24284 11492 ? S 21:27 0:00 tdeinit: Running... -bastian 26064 0.0 2.2 24036 11524 ? S 21:27 0:00 tdeinit: dcopserver -bastian 26066 0.1 2.5 26056 12988 ? S 21:27 0:00 tdeinit: tdelauncher -bastian 26069 0.4 3.2 27356 16744 ? S 21:27 0:00 tdeinit: kded -bastian 26161 0.2 2.7 25344 14096 ? S 21:27 0:00 tdeinit: ksmserver -bastian 26179 1.1 3.4 29716 17812 ? S 21:27 0:00 tdeinit: kicker -bastian 26192 0.4 3.0 26776 15452 ? S 21:27 0:00 tdeinit: klipper -bastian 26195 1.0 3.5 29200 18368 ? S 21:27 0:00 tdeinit: kdesktop - - -As you might have noticed, this has another side effect, making it -difficult to kill a process that is causing trouble: - -% killall kdesktop -kdesktop: no process killed - -You might be tempted to try killall -tdeinit, but killing all tdeinit processes will have -the effect of shutting down all of &tde;. In effect, total -destruction! - -There are two simple solutions to this: - -% tdekillall kdesktop -or good old -% kill 26195 -tdekillall is part of the &tde; SDK -package. - - - - - - -Customizing &tde; - - - -Desktop Icons - -&tde; uses several types of icons: - -Documents - -Links to Websites (using .desktop file) - -Links to Applications (using .desktop file) - -Devices - Disks, Partitions & Peripherals: - -Explicit using .desktop file - -Automatic via devices:// io-slave - - - - -Vendor-specific (⪚ &SuSE;'s My Computer) - - - - -Websites - -Links to Websites using .desktop -file: Create -NewFileLink to -Location (URL). Change Icon using -Properties dialogs. The resulting .desktop file: - -[Desktop Entry] -Encoding=UTF-8 -Icon=/opt/trinity/share/apps/kdesktop/pics/ksslogo.png -Type=Link -URL=http://www.kde.org/ - - - - - -Applications - -Links to Applications using .desktop file: Create -NewFileLink to -Application. You must provide details -yourself. Drag from &tde; Menu: Either copy or link (creates symlink), -much easier - - - - - - -[Desktop Entry] -Encoding=UTF-8 -GenericName=IRC Client -GenericName[af]=Irc Kliët -GenericName[de]=IRC Programm -... -GenericName[zu]=Umthengi we IRC -SwallowExec= -Name=KSirc -Name[af]=Ksirc -Name[de]=KSirc -... - - - -Boiler plate - -Translated generic description, not used on desktop - -Legacy, can be removed - -Translated name as it appears on desktop - - - -Desktop Icons - -... -Name[zu]=Ksirc -MimeType= -Exec=ksirc %i %m -Icon=ksirc -TerminalOptions= -Path= -Type=Application -Terminal=0 -X-TDE-StartupNotify=true -X-DCOP-ServiceType=Multi -Categories=Qt;TDE;Network - - - -Supported &MIME; types, not used on -desktop - -The command line to execute - -The icon, from icon theme or full path - -Only used if terminal is -needed - -Working directory for command - -More boiler plate - -Use true if terminal is needed, -text application - -Show bouncy cursor, -disable if it doesn't work. - -Has app started ok? -Remove if it doesn't work - -Categories for &tde; Menu, not -used on desktop - - - - - - - - -The <varname>Exec</varname> option in <literal -role="extension">.desktop</literal> files - -Following the command, you can have several place holders which will -be replaced with the actual values when the actual program is run: - - -%f A single file name; used when dropping -file on icon, or with file associations. - - - - -%F -A list of files; use for applications that can -open several local files at once. - - - - -%u -A single &URL;: if the app can -handle ⪚ &FTP; or &HTTP; &URL;s itself, otherwise &tde;. - - - - -%U -A list of -&URL;s; will download the file first and pass a local file to the app -(!!) - - - - -%d -The folder of the file to open; useful if app needs to -have file in current working directory. - - - - -%D -A list of folders, not very practical. - - - - -%i -The icon; option; &tde; app -will use icon from Icon= line in taskbar. - - - - -%m -The mini-icon; legacy. - - - - -%c -The caption; option; &tde; -app will use name from Name= line in -taskbar. - - - - - - - -Examples: - -Exec line -Command executed -ksirc %iksirc --icon ksirc - -cd %d; kedit $(basename %f)cd /tmp; kedit file.txt - - - - - - - - - - - -Devices - -Links to Devices using .desktop file: -o Create New -> Device - - - - - -Where to Define - -Many places to define Desktop Icons: - - -~/Desktop: -copied from /etc/skel/Desktop - -$TDEDIR/apps/kdesktop/Desktop -(merged) - -$TDEDIR/apps/kdesktop/DesktopLinks -(copied) - -Device Icons (dynamically -merged) - -Distribution Specific SUSE Linux copies certain icons -in starttde.theme from /opt/trinity/share/config/SuSE/default/ - - - - - - - -&tde; Menu - - -How it Works - -In &tde; 3.2 a common menu format is introduced at -http://freedesktop.org/Standards/menu-spec/ -Before &tde; 3.2: - - -Directory structure under share/applnk - -Directory structure represents menu -structure - -Each .desktop file -represents a single application - - - - -It was difficult to rearrange the structure in &tde; 3.2 so the -new menu format: - -Defines structure in a single .menu file -Is based on categories -is shared between GNOME and &tde; -Supports applnk style menus as well - - - - -Example from kde-applications.menu: - - - <Menu> - <Name>Office</Name> - <Directory>suse-office.directory</Directory> - <Include> - <Filename>Acrobat Reader.desktop</Filename> - <Filename>tde-kpresenter.desktop</Filename> - <Filename>tde-kword.desktop</Filename> - </Include> - <Menu> - - - -Menu entry with 3 applications: - - -/usr/share/applications/Acrobat -Reader.desktop - -/opt/trinity/share/applications/tde/kpresenter.desktop - -/opt/trinity/share/applications/tde/kword.desktop - - - - - - - -Stored Where? - -.menu files describing the -menu structure. The files are stored in $TDEDIR/etc/xdg/menus and -/etc/xdg/menus. These store the -system-wide menu structure and are controlled by -$XDG_CONFIG_DIRS. $HOME/.config/menus stores -user-specific changes to the menu structure and is controlled by -$XDG_CONFIG_HOME. For more information, see http://www.freedesktop.org/Standards/basedir-spec. - -.desktop files describe the -applications and are stored in: $TDEDIR/share/applications, -/usr/share/applications, -/usr/local/share/applications. These are -the system-wide application .desktop files which are controlled by -$XDG_DATA_DIRS. - -$HOME/.local/applications -contains user-specific .desktop -files and user-specific changes. It is controlled by -$XDG_DATA_HOME. For more information, see http://www.freedesktop.org/Standards/basedir-spec - - -.directory files describing -the sub-menus are stored in: $TDEDIR/share/desktop-directories, -/usr/share/desktop-directories, /usr/local/share/desktop-directories. -These are the system-wide menu .directory files, controlled by -$XDG_DATA_DIRS. The user-specific changes are stored in $HOME/.local/desktop-directories. -These are controlled by $XDG_DATA_HOME. For more -information, see http://www.freedesktop.org/Standards/basedir-spec - - -Example from kde-applications.menu: - - - <Menu> - <Name>Art</Name> - <Directory>suse-edutainment-art.directory</Directory> - <Include> - <Category>X-SuSE-Art</Category> - </Include> - </Menu> - - - - -Art is the internal name for this -menu. suse-edutainment-art.directory defines the -name and icon for this menu, and the menu includes all applications -that have X-SuSE-Art listed as a category, ⪚: - -Categories=Qt;TDE;Education;X-SuSE-Art - - -suse-edutainment-art.directory defines the -name and icon for this menu: - -[Desktop Entry] -Name=Art and Culture -Icon=kcmsystem - - - - - - -Common Pitfalls - -Applications not in the menu do -not exist with regard to other applications or -file associations: If you remove an application from the menu, &tde; assumes you don't want to use it. - -When applications are unwanted in the menu, either place them in -.hidden menu or a dedicated menu with - -NoDisplay=true - in the .directory file - - - -Essential Menus - -$TDEDIR/etc/xdg/menus/applications-merged/ -contains kde-essential.menu which includes some -essential menus that are normally not shown in the &tde; menu itself: - -Control Center has a hidden Settings menu whose -contents are defined by kde-settings.menu and -whose icon and name are defined by kde-settings.directory - -Info Center has a hidden Information menu whose -contents are defined by kde-information.menu and -whose icon and name are defined by kde-information.directory. - - -Screensavers contains a hidden System/Screensavers menu, -whose contents are defined by -kde-screensavers.menu and whose icon and name -are defined by -kde-system-screensavers.directory. -$TDEDIR/share/desktop-directories/kde-system-screensavers.directory -contains: - -NoDisplay=true - - - - - - - -Old-Style Menus - -&tde; continues to support old-style menus that are defined by -the directory structures in $TDEDIR/share/applnk -(system wide) and $HOME/.trinity/share/applnk -(user specific). This is observed unless the .desktop file has a Categories= line. In that case the categories determine the location in the menu. - - - -<application>KSycoca</application> -KSycoca caches menu structure and -information about all available applications. You can rebuild the -database with -tdebuildsycoca. The database -which is built lives in /var/tmp/tdecache-${USER}/tdesycoca. -It is automatically updated by KDED, -checked during &tde; login, and KDED -watches for changes while logged in. - -To disable watching for changes (since it may hurt over NFS) add -the following to kdedrc: - -[General] -CheckSycoca=false - - - -To force regeneration, run touch $TDEDIR/share/services/update_tdesycoca. - - - - -&kmenuedit; - -&kmenuedit; is aimed at a single user setup. Changes to menu -structure are saved to -~/.config/menus/applications-tdemenuedit.menu, -changes to applications are saved in ~/.local/share/applications/ and changes -to sub-menus (icon, name) are saved in ~/.local/share/desktop-directories/. The -KIOSK Admin Tool uses &kmenuedit; and copies the above changes to -profile- or system-wide locations. - - - - - - - - -&tde; Panel - -The &tde; panel is also known as &kicker;. It is modular and -consists of the following components: - -Applets -Application buttons -Special Buttons - - - -By default, the panel contains the following applets: - -Pager - shows the virtual desktops -Taskbar -System Tray -Clock - -and the following special buttons: - -&tde; menu -Desktop Button - - - -Various application buttons are also added, space permitting: - -Home Button -Browser Button -KMail Button - - - - - -File Associations - -File associations associate a file type with an application or -applications. The type of a file is established by determining its -&MIME; type. &MIME; types known by &tde; are stored in $TDEDIR/share/mimelnk and -each application's .desktop file -contains a list of &MIME; types supported by that application. - - -kview.desktop: - -MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg; -image/x-bmp;image/png;image/x-ico;image/x-portable-bitmap; -image/x-portable-pixmap;image/x-portable-greymap; -image/tiff;image/jp2 - - - -kuickshow.desktop: - -MimeType=image/gif;image/x-xpm;image/x-xbm;image/jpeg; -image/png;image/tiff;image/x-bmp;image/x-psd;image/x-eim; -image/x-portable-bitmap;image/x-portable-pixmap; -image/x-portable-greymap - - - -Both can open image/gif Which one is used to open a .gif file? - -The application with highest -preference!. kview.desktop contains - -InitialPreference=3 - -whereas kuickshow.desktop contains - -InitialPreference=6 - -Therefore, &kuickshow; will be used to open .gif files. - - -How can we make &kview; default? - -A user can change file association in the -&kcontrolcenter;. These changes are stored in -$HOME/.trinity/share/config/profilerc. -To use the same settings for multiple users, store these settings in -user profile directory or the global &tde; config directory to use as -default for multiple users. - - - - - - - - -Locking Down &tde; - - -How It Works - The Basics - -&tde;'s lock down features are centered around the following -options: - - -Make -configuration options immutable -Restriction of specific -actions -Restrict access to certain -&URL;s -Restrict access to -certain configuration modules - - - - - -Immutable Configuration Options -Locking Down &tde; - -Immutable options allow system administrator to provide default -settings that can not be changed by the user. - -Pre-existing configuration options of the user will be ignored once a -configuration option is made immutable. - -Options can be controlled either on a per entry basis, per group of -entries or on a file by file basis. - -If a file or group is immutable, all configuration options for that -file or group are immutable, even those options for which the system -administrator has no default provided. - -The support in applications for immutable options may vary from -application to application. Although the user will not be able to make -permanent changes to immutable configuration options, the user may still be -presented with an user interface option to make such change. - - - - -Action Restrictions - -&tde; applications are built around the action-concept. Actions can be -activated in various ways, typically via the menu-bar, one of the toolbars -or a keyboard shortcut. Save Document is an example of an -action. If you know the internal action name it is possible to restrict an -action. When an action is restricted it will no longer appear in the -menu-bar or toolbar. The internal name for the Save -Document action is . The lock -down framework also provides a set of more abstract restrictions which can -be used to disable functionality not covered by a single action. An example -is the restriction which disables all -functionality that would offer the user access to a &UNIX; shell. - - -Restrict User Access to Shells - -In order to prevent the user access to a command shell we can restrict -the action by adding the following to -kdeglobals: - - -[TDE Action Restrictions] -shell_access=false - -Since this affects the &tde; menu and the available applications, we -must force an update of the sycoca database: - -touch $TDEDIR/share/services/update_tdesycoca - -Now re-login to &tde; and check the following points: - - -The &kmenu; -In &konqueror;, -ToolsOpen -Terminal -The &Alt;F2 run -command - - -Full documentation about available actions can be found on http://www.kde.org/areas/sysadmin/. - -A few of the more interesting actions are listed below: - - - - -The Configure option form the -Settings menu - - - -The Report Bug/Request Enhancement... option from the -Help menu. - - - -&RMB; mouse button menu on the desktop. - - - -&RMB; mouse button menu on the panel. - - - -Hide all actions or applications that require root access. - - - -Hides all actions or applications that provide shell -access. - - - -Disables the option to select the printing system -(backend). - - - -Whether the user will be able to lock the -screen - - - -Whether the user may start a second X session (see also -&tdm;) - - - -Whether OpenGL screensavers are allowed to be -used. - - - -Permit screensavers that do not hide the entire -screen - - - - - - -&URL; Restrictions - -There are three types of restrictions that can be applied to -&URL;s: - - - -list -To control whether a directory listing is -allowed. - - -open -To control whether certain &URL;s can be -opened - - -Redirect -To control whether one &URL; can open another &URL;, either -automatically or via a hyperlink. - - - -Rules are checked in the order in which they are defined. The last -rule that is applicable to a &URL; defines whether the &URL; may be -accessed. - -The following rules disable opening http and https &URL;s outside -.ourcompany.com: - - - - - - -[TDE URL Restrictions] -rule_count=2 -rule_1=open,,,,http,,,false -rule_2=open,,,,http,*.ourcompany.com,,true - - - -The first four commas skip over the selection criteria with respect to -the originating &URL;. This part is only needed with redirect type -rules. - - forbids the -opening of any http or https &URL; - allows the -opening of any http and https &URL; in the .ourcompany.com domain. Note the wildcard -* is only allowed at the start of a domain. - - -The following rules makes that the user can no longer browse -directories on the local file system that are outside his -$HOME directory: - - - - - -[TDE URL Restrictions] -rule_count=2 -rule_1=list,,,,file,,,false -rule_2=list,,,,file,,$HOME,true - - - forbids the -listing of any local directory - allows listing -directories under the users own $HOME -directory. - - -$HOME and $TMP are special values to -indicate the users home directory and the &tde; temporary directory of the -user, ⪚ /tmp/kde-bastian - -The following rules makes that the user can no longer open local files -that are outside his $HOME directory: - - - - - - -[TDE URL Restrictions] -rule_count=3 -rule_1=open,,,,file,,,false -rule_2=open,,,,file,,$HOME,true -rule_3=open,,,,file,,$TMP,true - - - forbids the -opening of any local file - allows opening -files under the users own $HOME directory. - allows opening -files in the &tde; temporary directory of the user. This is needed by -certain &tde; applications that first download a file or document to the -temporary directory and then open it in an application. - - - -The redirection option controls whether documents from a certain -location can refer, either automatically or manually via a hyperlink, to a -certain other location. A set of default rules is present as a general -security measure. For example documents located on the Internet may not -refer to locally stored documents. - -For example, if we want to give the intranet-server www.mycompany.com the possibility to refer -to local files we could add the following rule: - -[TDE URL Restrictions] -rule_count=1 -rule_1=redirect,http,www.mycompany.com,,file,,,true - -Instead of listing a protocol by name, it is also possible to specify -a whole group of protocols. For that the following groups have been -defined: - - - -:local -Protocols that access locally stored information, examples -are file:/, man:/, fonts:/, floppy:/ - - -:internet -Common internet protocols such as http and -ftp - - - -Information about protocols is stored in *.protocol files stored in -$TDEDIR/share/services. - -The = entry defines the group a protocol is part -of: -grep -$TDEDIR/share/services/*.protocol - -General rules: - - -The :local protocols may refer to any other -protocol -It's always allowed to refer to an :internet -protocol -Not all protocols are part of a group, fish:/ for -example. - - - - - -Configuration Modules - -&tde; has configuration modules to configure various aspects of the -&tde; environment. Configuration modules appear in the Control Center, in the -Configuration dialog of an application or in both. - - -The proxy configuration module appears in the Control Center but also -as part of the Configure Konqueror dialog in -&konqueror; - -Individual configuration modules can be started with -tdecmshell module - -To start the Proxy module use: - -tdecmshell -tde-proxy.desktop -tdecmshell proxy - - -Not all applications use configuration modules, often the -configuration dialog is an integral part of the application -itself. - - -All configuration modules are strictly speaking part of the &tde; -menu. - - - -The modules that are visible in the Control Center normally -have a .desktop file in $TDEDIR/share/applications/tde -and are sorted under the hidden Settings-Modules menu by -the kde-settings.menu, included from -kde-essential.menu -tdebuildsycoca 2> /dev/null | grep Settings-Modules - - -Application specific modules normally have a .desktop file under -$TDEDIR/share/applnk/.hidden which -corresponds to the hidden .hidden menu, included as a result of -<KDELegacyDirs/> -tdebuildsycoca 2> /dev/null | grep .hidden - -In &tde; 3.3 it is possible to edit the Control Center with -kcontroledit. -kcontroledit works just like -kmenuedit, changes for current user only. Use -kiosktool to make changes for -everyone. - - -Individual configuration modules can be disables by adding the -following to kdeglobals: - -[TDE Control Module Restrictions] -module-id=false -For example, to disable the proxy module use -[TDE Control Module Restrictions] -tde-proxy.desktop=false -Check the Control Center and the Configure -Konqueror dialog if the proxy configuration is still -there. - - - - - - -The Lazy Admin - - - - - - - -Remote Desktop Sharing - -Remote desktop sharing allows remote users to view and optionally -control the desktop of the current user. The remote user needs to be sent -an invitation, and it is possible to create a password protected standing -invitation. This is ideal for tech support teams or administrators to gain -access to users desktops in order to troubleshoot or remedy a problem or -guide a user through a procedure. - -Remote desktop sharing involves two applications: &krfb; (&tde; remote -frame buffer, a VNC server) and &krdc; (&tde; remote desktop connection; a -VNC client.) - -&krfb; can be used by any user to create and manage invitations. -Invitations create a one time password that allows the recipient to connect -to your desktop. By default it is valid for only one successful connection, -and expires after one hour if not used. - -Incoming connections are handled by the kinetd kded module. You can -use the command dcop kded kinetd -services to see if it is running. &krfb; waits for connections -on port 5900 by default. When an incoming connection is made, a dialog will -appear to ask for confirmation by the current user. - - - - - - -&tde; DIY - Building Your Own Tools - - -DCOP - - -Desktop COmmunication Protocol, DCOP, is a lightweight mechanism for inter-process communication. -DCOP allows the user to interact with programs that are currently running. -&tde; supplies two programs to utilitize DCOP: -dcop, a command-line program, and -kdcop, a GUI program. - - -A few notes about using dcop: - - - - - - -dcop [options] [application [object [function [arg1] [arg2] ... ] ] ] - - - - -Applications that can open more than one window at a time will be listed as -<application>-PID - - - - -All the arguments are case-sensitve. setFullScreen and setfullscreen are two different functions. - - - - -The regular expression token * can be used in the application and object arguments. -% dcop -konqueror-16006 -konsole-8954 - - - - - - - - -Some example commands and their output are below: - - - -% dcop -konsole-8954 - -One &konsole; is running with a PID of 8954. - -% dcop -KBookmarkManager-.../share/apps/tdefile/bookmarks.xml -KBookmarkManager-.../share/apps/konqueror/bookmarks.xml -KBookmarkNotifier -KDebug -MainApplication-Interface -konsole (default) -konsole-mainwindow#1 -tdesycoca -session-1 -session-2 -session-3 -session-4 - -Here you see that there are four sessions running. - -% dcop -QCStringList interfaces() -QCStringList functions() -int sessionCount() -QString currentSession() -QString newSession() -QString newSession(QString type) -QString sessionId(int position) -void activateSession(QString sessionId) -void nextSession() -void prevSession() -void moveSessionLeft() -void moveSessionRight() -bool fullScreen() -void setFullScreen(bool on) -ASYNC reparseConfiguration() - -Here are the options for the main &konsole; program. - - -% dcop -QCStringList interfaces() -QCStringList functions() -bool closeSession() -bool sendSignal(int signal) -void clearHistory() -void renameSession(QString name) -QString sessionName() -int sessionPID() -QString schema() -void setSchema(QString schema) -QString encoding() -void setEncoding(QString encoding) -QString keytab() -void setKeytab(QString keyboard) -QSize size() -void setSize(QSize size) - -Here are the options for the first session, session-1. - -% dcop true - -This sets &konsole; to full screen. - - - - -When there is more than one application/object, which one should you use? - Got a reference? - -% echo -DCOPRef(konsole-7547,konsole) - -% dcop -session-6 - -% dcopstart -konsole-9058 - - -#!/bin/sh -konsole=$(dcopstart konsole-script) -session=$(dcop $konsole konsole currentSession) -dcop $konsole $session renameSession Local - -session=$(dcop $konsole konsole newSession) -dcop $konsole $session renameSession Remote - -session=$(dcop $konsole konsole newSession) -dcop $konsole $session renameSession Code -dcop $konsole $session sendSession 'cd /my/work/directory' - - - - - - -KDialog -&tde; DIY - Building Your Own Tools - -You can use &tde; dialogs from your own scripts, to combine the power -of &UNIX; shell scripting with the ease of use of &tde;. - -kdialog - -kdialog - -The KDialog part can be replaced via - option - -kdialog - -Saves whether to show again in -$TDEHOME/share/config/myfile (by writing -into this file the following lines: - -[Notification Messages] -mykey=false - -Instead of you can also use - and , as appropriate. For -instance, you might use kdialog or kdialog -. - -It is also possible to create message boxes that accept a yes or no -answer. - -kdialog echo $? - - - - - -Return Value -Meaning - - - -0Yes, OK, Continue -1No -2Cancel - - - - -Make sure to store the result in a variable if you do not use it -directly, the next command will fill $? with a new value You can use - here as well, it will remember the users choice -and returns it the next times without showing the dialog any more. - -Further variations are: - - - - - -like but with a different -icon - - - - -With Continue and -Cancel buttons. - - - - -With Yes, No -and Cancel button. For example: -kdialog - - - - -kdialog - -The result is printed to stdout, to put it in a variable you can use -name=$(kdialog --inputbox "Enter your name:" -"YourName"). The last argument is optional, it is used to -pre-fill the dialog. - -password=$(kdialog ) - -The option does not work with - or - -There are two dialogs that let the user make a choice from a -list: - - - - - -Lets the user select a single item from a list. - - - - - -Lets the user select one or more items from a list. - - - - -city=$(kdialog ) - -$city will a, b, c or d. - -city=$(kdialog ) - -Madrid and Paris will be pre-selected. The result with Madrid and -Paris selected will be "b" -"c". - -If you add the option, it will put -b and c each on a line -of its own, making the result easier to process. - -file=$(kdialog --getopenfilename $HOME) -file=$(kdialog --getopenfilename $HOME "*.png *.jpg|Image Files") -file=$(kdialog --getsavefilename $HOME/SaveMe.png) -file=$(kdialog --getexistingdirectory $HOME) - - - - - - - -&groupware-with-kontact; - - - - -- cgit v1.2.1