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.