How to learn about all those configuration file values?

Duncan 1i5t5.duncan at cox.net
Wed Apr 3 09:14:05 BST 2013


adrelanos posted on Tue, 02 Apr 2013 22:10:50 +0000 as excerpted:

> Hi!
> 
> There is an Ubuntu Package kde-settings-lowfat. The creator of that
> package must have somehow learned how to configure and/or deactivate
> certain things to his liking in a clean way, i.e. not "just copy your
> whole ~/.kde folder". I plan on activating most changes from
> kde-settings-lowfat for my own distribution, but before doing so, I must
> understand (not just guess) what these settings actually do. So I am
> asking form a distro packager perspective, must use the text
> configuration files and can not just copy the whole ~/.kde folder.
> 
> At the bottom is a list of settings I can hardly make head of tail of. I
> am not asking to tell me what each any any values do, I am just asking
> about the best approach to learn all those things.

That's an interesting question.  As an advanced kde user, I know most of 
these, but I can't exactly say how/where I picked up that knowledge.  I 
believe for the most part, however, that I've actually simply integrated 
a factoid here and another there, combining that with the experience of 
having run kde since the kde2 era, and done enough bisect-style 
troubleshooting along the way so that I have a good idea where settings 
are, and what they do, and can quickly back that up with a change-and-
test if I'm in doubt. =:^)

But you'll definitely want to pay attention to a couple sources, the kde 
sysadmin's guide at techbase.kde.org, and, assuming your distro (Ubuntu, 
it would seem) splits kde packages up and describes them well enough for 
that to be useful, the package descriptions along with the files they 
contain.  I know gentoo's pretty good with this, and of course there, the 
USE flags for each package along with their descriptions are of help.  
Also useful are the list of dependencies, which can give a hint of actual 
functionality.

Meanwhile, you mention search engines, but didn't specifically mention 
wikipedia.  It can be quite helpful as well.  Take your example below, 
dnssdwatcher.  A quick wikipedia search on dnssd (wp:dnssd, entered in 
krunner, if the appropriate web shortcut is enabled, as I believe it is 
by default...) doesn't yield a direct hit, but returns some very useful 
search results.

FWIW, dns-sd is a zeroconf-related technology, DNS service discovery (DNS 
of course meaning the same thing it does in IP networking, domain name 
system).

An educated guess, then, is that combining the wikipedia results with the 
results of a few package management and package file queries will confirm 
that dnssd-watcher is a kde daemon that "watches" for dns-sd events on 
the network, keeping the kde core informed of what network-based services 
are available, and where (on what machines).

So from wikipedia you can get a good idea what zeroconf and dns-sd are 
all about.  Now let's mine our package management database for useful 
data.  (The below example is of course gentoo-based since that's what I'm 
on, but presumably you have similar queries you can run against your 
package manager and package database. $>> indicates my command prompt, 
thus distinguishing input from output.)

$>>esearch dnssd (general info about the package, whether it's installed, 
its homepage, sources size, description, etc, listing the relevant hit, 
of two)

*  kde-base/kdnssd
      Latest version available: 4.10.1
      Latest version installed: 4.10.1
      Size of downloaded files: 8,839 kB
      Homepage:    http://www.kde.org/
      Description: A DNSSD (DNS Service Discovery - part of Rendezvous) 
ioslave and kded module
      License:     GPL-2

$>>equery files kdnssd (files the package contains... if installed of 
course)

 * Contents of kde-base/kdnssd-4.10.1:
/usr
/usr/lib64
/usr/lib64/kde4
/usr/lib64/kde4/kded_dnssdwatcher.so
/usr/lib64/kde4/kio_zeroconf.so
/usr/share
/usr/share/apps
/usr/share/apps/remoteview
/usr/share/apps/remoteview/zeroconf.desktop
/usr/share/dbus-1
/usr/share/dbus-1/interfaces
/usr/share/dbus-1/interfaces/org.kde.kdnssd.xml
/usr/share/kde4
/usr/share/kde4/services
/usr/share/kde4/services/kded
/usr/share/kde4/services/kded/dnssdwatcher.desktop
/usr/share/kde4/services/zeroconf.protocol

$equery depends kdnssd (what else tha's installed depends on the package)

 * These packages depend on kdnssd:
kde-base/kcontrol-4.10.1 (>=kde-base/kdnssd-4.10.1:4[aqua=])

$equery uses kdnssd (what USE flags, aka build-time-options, the package 
exposes)

[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for kde-base/kdnssd-4.10.1:
 U I
 - - debug    : Enable extra debug codepaths, like asserts and extra 
output. If you want to
                get meaningful backtraces see
                http://www.gentoo.org/proj/en/qa/backtraces.xml
 - - zeroconf : Support for DNS Service Discovery (DNS-SD)

$>>

(I did an equery depgraph as well, what kdnssd depends on, but the 
results weren't particularly enlightening in terms of this discussion -- 
it was just the usual kdelibs/qt/X deps, plus the usual cmake/automake/
etc build-time deps.)

OK, the above confirms that dnssdwatcher is a shared object (*.so) and 
desktop services file (*.desktop) provided by the kdnssd package.

A quick cat of the desktop file reveals these two lines (among others):

Name=DNS-SD Service Discovery Monitor
Comment=Monitors the network for DNS-SD services

That confirms what I stated above, that this service "monitors the 
network for DNS-SD services". =:^)

> I can't understand each change in the kde-settings-lowfat package by
> putting them into a search engine one by one. For example when searching
> for "Module-dnssdwatcher", I find some bug discussions and can vaguely
> guess what it's about, but there is no real technical reference what
> this module does. Also searching for "site:kde.org dnssdwatcher" only
> brings unrelated bug reports and forum posts.
> 
> My approach with search engines, reading random vaguely related bug and
> other discussions on random pages is really ineffective and
> non-authoritative.
> 
> I also tried entering the search term "kwrited" into quickgit.kde.org,
> but to no avail. Also seaching for "site:quickgit.kde.org kwrited",
> didn't help. I assumed to phrase a configuration file which contains
> "[Module-kwrited]" you must somewhere use the word "kwrited" in the
> sources and at least by reading the source I should get an idea what it
> does, but I also don't find references for it in "kwrited", so I am
> really lost on how to find reliable information.
> 
> Please tell me how I can find best information about these settings.
> 
> Cheers,
> adrelanos
> 
> /kde/share/config/kdedrc

You can find background on kded, kde-daemon, in the previously mentioned 
sysadmin's guide on techbase.kde.org.  Basically, it's the bit of kde 
that coordinates all the different bits and pieces of kde.  It starts 
early in the kde startup process, collects the config information from 
all the various text-based config files and generates a faster binary 
cache thereof (ksycoca, KDE SYstem COnfig CAche), then monitors them for 
config changes and notifies kde apps about them as kde runs.  

Additionally, it has all these modules, collecting dynamic information 
from various sources, integrating it with the previously collected config 
information and again notifying kde apps of changes as appropriate.

It's also worth noting kcmshell4, kcm=kcontrol-module, kcontrol being the 
more accurate kde3 term for what they now call system settings... except 
that it's mostly user specific kde specific settings that have little to 
do with non-kde operation of the system, so the old kcontrol name was 
**FAR** more accurate.

Anyway, kcmshell4 is a handy way to run individual kcontrol modules from 
the (konsole) command line.  As with most kde executables (and indeed, as 
standard across much of *ix-land, particularly GNU/Linux),
kcmshell4 --help yields a listing of options, etc.  Take special note of 
the --list option, which lists all available modules.  If in doubt you 
can then run them from the command line to see what each one actually is/
does. =:^)

And... kcmshell4 kcmkded (which is also available in kcontrol under 
startup and shutdown, service manager)... is the GUI method of 
configuring which kded modules start with kde... or of simply seeing 
their descriptions! =:^)

> [Module-bluedevil]
> autoload=false

(Quick package-manager query...)

Bluetooth.  Useful only for users who actually /have/ bluetooth hardware, 
and who actually activate it.  Otherwise, just a useless drain on memory 
and initialization time.


> [Module-device_automounter]
> autoload=false

kcmshell4 --list | grep mount, gives me device_automounter_kcm, with a 
description: "Configure automatic handling of removable storage media".   
kcmshell4 device_automounter_kcm give me... well you can try it.  

Of course that's the Removable Device Automounter, as listed in the 
services configuration (kcmkded).

Without this module running the new removable device should still show up 
in device-notifier, but the configured automount actions won't occur.  
This one will strongly depend on whether the user is willing to jump thru 
manual hoops to mount a newly plugged removable storage device, or would 
prefer that kde handled it even at the expense of a bit of kde startup 
speed and memory for the automounting service.  Of course people like me 
don't like kde mounting stuff behind their back anyway, so turning it off 
is an easy choice here, but a lot of users want the system to handle 
it... if they even know anything about mounting to begin with.

> [Module-dnssdwatcher]
> autoload=false

Dealt with in the initial examples above.  If there's no zeroconf 
services on the LAN in any case, might as well not load it.

> [Module-freespacenotifier]
> autoload=false

Is a warning when /home is getting low on space worth the memory and 
startup cost?

> [Module-kwrited]
> autoload=false

The description in kcmkded says it all.  Waits for messages from local 
users sent with write/wall.  If that doesn't apply, why run it?

> [Module-nepomuksearchmodule]
> autoload=false

FWIW, I install kde with USE=-semantic-desktop here, no nepomuk installed 
at all... and no nepomuk search modules listed in kcmkded, either! =:^)

Talk about cutting the fat!  Cutting out all the semantic-desktop fat is 
a good start!  But do note that at least on gentoo, akonadi is part of 
semantic-desktop, thus disabled along with the semantic-desktop USE flag, 
and of course pretty much all of kdepim is either already akonadified or 
there's plans for it.  So cutting the semantic-desktop fat may well mean 
killing kmail, knode, korganizer, knotes, akregator...  But FWIW I found 
claws-mail a very good kmail and akregator replacement, here.  
Considerably faster and more reliable than the akonadified kmail, for 
sure, altho to be fair, I killed all of kdepim in the kde 4.7 era, and 
they say it's much improved by now.  IMO, still not worth resurrecting 
the entire semantic-desktop for, however, and actually, I prefer claws-
mail to even the old pre-akonadified kmail, now that I'm familiar with 
it, so...

> [Module-networkmanagement]
> autoload=false

I /think/ this is Network Status in kcmkded.  But as I don't run network-
manager or the like at all, instead using initscripts for my network 
management, I have absolutely no experience with this.

> [Module-obexftpdaemon]
> autoload=false

No idea at all as AFAIK I've never seen it, except that it would appear 
to be a kde-integrated ftp daemon of some sort.  Off would seem to be a 
very sensible default, however.

> [Module-randrmonitor]
> autoload=false

kcmkded says display management change monitor.  Probably useful for 
laptop users that often plug external monitors or who frequently change 
resolution, not so much for folks who always run the same monitor config 
and resolution.

> [Module-remotedirnotify]
> autoload=false

Remote URL change notifier.  For those with network folders this is 
probably useful.  Otherwise, not so much.


> /kde/share/config/krunnerrc
> 
> [Plugins]
> PowerDevilEnabled=false
> bookmarksEnabled=false
> calculatorEnabled=false
> desktopsessionsEnabled=false
> installerEnabled=false
> killEnabled=false
> locationsEnabled=false
> nepomuksearchEnabled=false
> org.kde.windowedwidgetsEnabled=false
> placesEnabled=false
> plasma-desktopEnabled=false
> recentdocumentsEnabled=false
> servicesEnabled=true
> shellEnabled=true
> solidEnabled=false
> webshortcutsEnabled=false
> windowsEnabled=false

These correspond to the krunner modules.  They can be configured and 
their descriptions can be found in krunner.  Click the wrench icon to 
configure krunner.  Of course krunner lets you quickly test them, too. 
=:^)


-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

___________________________________________________
This message is from the kde mailing list.
Account management:  https://mail.kde.org/mailman/listinfo/kde.
Archives: http://lists.kde.org/.
More info: http://www.kde.org/faq.html.




More information about the kde mailing list