Updated: 2013-02-08
Created: 2005-05-16
The K[ool] Desktop Environment is a both a framework for the execution of GUI applications, and a collection of GUI applications based on that framework.
Its structure for both KDE 3 and the KDE SC 4) can be described so:
binutils (which is
also used on most others free software operating systems like
the BSD variants).dcopserver.The KDE SC4 contains a new and fairly complex and vast sbusystem to hold information about people and files, in three layers:
Some details:
Some links:
dcopserver_shutdown
dcop app MainApplication-Interface quit
dcop kicker kicker restart
dcop kwin KWinInterface refresh
dcop kicker kicker showKMenu
dcop kdesktop KScreensaverIface lock
kdesktop_lock
kwrapper app ....
kcmshell ioslaveinfo. This
will also give some documentation on some of the
slaves, and hints (sometimes) on how to configure them.kcmshell --list.kcmshell --list
will not list some useful modules, so to list all of
them first find the directory where the file
kcm_style.so is contained (for example
/usr/lib/kde3), and all the available
modules will be in that directory, list them with
ls kcm_*.so./var/tmp/KDEVARTMP to something else,
e.g. $HOME/tmp or /tmp itself.KHTML you must have visited
a web site (thanks to Sho for this note).
You can access the extensions you enabled mostly via
the Tool menu.Personal Toolbar Folder. Whatever its
name it must be tagged by starting
KEditBookmarks (e.g. with
Bookmarks:Edit) and marking it as the
Toolbar Folder by right clicking on it and selecting
Set as Toolbar Folder.Trash/share/config/kdeglobals
the section [Paths] setting Trash
to the path of the directory you want..protocol file (somewhat
similar to .desktop files) and put
it in the appropriate services/
directory. You can fine examples of .protocol
files in the system services/ directory,
which is for example /usr/share/services/
for me.ARTS_SERVER must be set on
the clients./share/config/kioslaverc
and add at the top (not in any section) a line setting
Languages, using a syntax suitable for
the Accept-Languages HTTP header, for example:
Languages=en-gb;q=0.8,en;q=0.6,fr;q=0.4,it;1=0.2
Settings Menu, Print System
Menu, Konqueror Profiles Menu,
Terminal Sessions Menu, and the Run
command, Desktop Preview &
Pager, Taskbar, System
Tray and Klipper applets.focus policies(configurable in the Control Center's Desktop:Window Behaviour:Focus panel) and focus
stealing prevention(configurable in the Control Center's Desktop:Window Behaviour:Advanced panel) levels. However not all combinations of the two make sense:
Focus Follows Mouse or
Click To Focus the focus stealing prevention
level should be Normal, Low or
more usually None, otherwise newly created
windows and popups will be stacked below the currently
active windows.Focus Under Mouse or Focus
Strictly Under Mouse the stealing prevention levels
that make sense are only High and
Extreme or else often the focus will not be
under the mouse.The Konqueror advanced web shortcuts have been introduced by Andreas Hochsteger in 2002, but the corresponding documentation update seems not to have made it to the Konqueror handbook, do this is a much updated version of the documentation update by the original author.
Every web shortcut is a template where the parts
to be replaced with user input are marked with the
substitution syntax \{...}.
The most commonly used is \{@} which works well
for most of the query URIs on the web. But there are several
more advanced substitution specifiers:
@ is substituted by all words of the user
query, which were not used for another substitution.0 is substituted by the whole (unmodified)
user query.n is substituted by the
n-th string of the user query (the words after the
separator, usually :).name is substituted by the
value of the user query string of the form
name=value."value" is substituted by
value....,...,....
is substituted by the first non-empty specifier beginning
with the leftmost specifier. This allows specifying defaults.
For example
Advanced Google Search
can be accessed with the web shortcut ggx with
this template (displayed on multiple lines, even if it is
just one string):
http://www.google.com/search?num=\{num,"10"}&safe=\{safe,"active"}&lr=\{lang}
&as_epq=\{exact}&as_oq=\{any}&as_eq=\{without}&as_qdr=\{date,"all"}&as_occt=\{occ,"any"}
&as_ft=\{ft,"i"}&as_filetype=\{filetype}&as_dt=\{siteop,"i"}&as_sitesearch=\{site}
&as_q=\{all,@}
The various subtitutions in the template mean:
num=\{num,"10"} returns pages with the given
number of results per page.safe=\{safe,"active"} activates active or
deactivate off
SafeSearch content filtering.lr=\{lang} returns only pages written in the
specified language (lang_en, lang_de, ...).as_epq=\{exact} returns results containing
the exact phrase (note that in general you must manually
type + or %20 for spaces here).as_oq=\{any} returns results with at least
one of the given words.
as_eq=\{without} returns results not
containing the given words.as_qdr=\{date,"all"} returns pages updated
the last 3 months m3, the last 6 months
m6 or the last year y.as_occt=\{occurence,"any"} returns results
where the term occours anywhere any, in the
title title, in the text body, in
the URL url or in the links links
of the page.as_ft=\{ft,"i"} returns only results
including i or excluding e
the specified filetype.as_filetype=\{filetype} searches for pages
with/without the specified filetype (pdf,
ps, rtf, ...).as_dt=\{siteop,"i"} returns results including
i or excluding e the specified
domain.as_sitesearch=\{site} returns results
including or excluding the specified domain.as_q=\{all,@} returns results with words you
want to search for. You can specify them either with the
prefix all= or simply by typing words separated
with space (but then all following words are taken to be
part of the query).An example use of the Advanced Google Search shortcut could be:
ggx:num=20 site=kde.org date=m3 kde konqueror
The resulting URI after substitution of the web shortcut values is then (displayed on multiple lines, even if it is just one string):
http://www.google.com/search?&num=20&safe=active&lr= &as_epq=&as_oq=&as_eq=&as_qdr=m3&as_occt=any &as_ft=i&as_filetype=&as_dt=i&as_sitesearch=kde.org &eas_q=kde+konqueror
KDE was initially designed as a lean, high performance desktop environment, where thanks to the use of a single widget library and set of common resources and libraries would lead to decreased memory usage and better UI consistency.
The KDE has greatly expanded in scope, and in
particular it is now aiming to support a number of
standards
that do not necessarily help, and to
be a leading
desktop environment, which
implies a high degree of newbie-oriented
wow factor
which leads to eye-candy being
enabled by default over speedy operation.
But fundamentally the KDE still has some elements of architectural integrity that mean that (relatively) lean, efficient operation is possible. What follows is a collection my own discoveries on how to improve KDE performance, and in particular under recent versions of the Linux kernel and within recent GNU/Linux distributions.
The main performance problems with the KDE are mostly caused by:
binutils, the
GNU LIBC, the X window system, the Fontconfig/Xft2 library,
but also the Linux kernel.wow factorsettings that might impress the on a first look but not add much (or even reduce) usability.
KDE performance issues can be tweaked therefore at several different levels:
kdeinit and
then with kwrapper or kfmclient
for Konqueror./proc/sys/vm/swappiness kernel
parameter to a lower value, like 20 to 40./proc/sys/vm/page-cluster
kernel parameter is set to zero for single, swapped page
fetches.deadline or cfq elevator
rather than the anticipatory one. The
noop one is worth trying too.kdeinit.-fvisibility
hack.nice priorities to
embedded media and to scripts and thus making browsing
everything hudeously slow while they are running.man-pages, or options
at all.The KDE was designed on the premise that using a single set of widgets was more consistent and efficient than the mixed variety then prevalent with X applications.
It was also founded by Europeans using largely European developed tools.
In its evolution the KDE has remained largely true to its origins; the whole KDE is based not just on a common widget library, but also a common set of higher level libraries.
The common set of higher level libraries has been with time supplemented by an RPC mechanism and a set of daemons that provide active shared services too.
The KDE developers have also managed by and large to restrain themselves from making a whole mess like GNOME, and to maintain some degree of consistency and discipline in the implementation.
Non-graphical commands from layers below KDE:
qdbus org.kde.kded /kded quit
qdbus org.kde.kwin /KWin \ org.kde.KWin.cascadeDesktop
qdbus org.kde.kded /modules/networkstatus \ setNetworkStatus ntrack 4
Graphical commands from layers below KDE:
Non-graphical KDE commands:
Graphical KDE commands:
.INI file syntax.