Re: Where kde saves user settings ?
- Date: Sun, 19 Mar 2017 00:35:26 +0000 (UTC)
- From: Duncan <1i5t5.duncan@xxxxxxx>
- Subject: Re: Where kde saves user settings ?
John_82 posted on Sat, 18 Mar 2017 16:15:50 +0000 as excerpted:
> On Sat, 18 Mar 2017 07:15:35 +0000 (UTC)
> Duncan <1i5t5.duncan@xxxxxxx> wrote:
>> John_82 posted on Fri, 17 Mar 2017 13:44:58 +0000 as excerpted:
>> > Can anyone tell me where kde stores things like
>> > Start button menu content.
>> > Task bar content.
>> > The state a user left when they logged out so that windows will
>> > mostly be restored etc.
>> That's actually a broader question than you likely realize, with an
>> even broader answer as the locations have changed over the years and
>> kde versions, and frameworks-5-based apps now use the standard
>> freedesktop.org specified locations, while kde4-based apps (of which
>> there are still some around that haven't migrated yet and that might be
>> dropped in a year or two when kdelibs4 goes EOL if they still haven't
>> migrated) use the old kde location.
>> For plasma5 and frameworks5 based apps, as I said, the freedesktop.org
>> speced locations are normally used. That's $XDG_CONFIG_HOME for
>> config, and $XDG_DATA_HOME for app data. If those aren't set... well,
>> let me point you to the freedesktop.org website for the specs and you
>> can read it yourself, but try ~/.config and ~/.local/share .
>> That has lots of different specs listed, many of which may be
>> interesting reading (they certainly do here)
> I think I have managed to sort out what is going on since asking. I was
> particulary interested in start button menu's and taskbars.
I had answered more the general kde settings angle in the last post, and
basically ignored the specific function bit. This one will try to
address that a bit.
> I can summarise the start button. Desktops have menu catagory trees
> whose contents may be set by a distro. The one on opensuse contains and
> amazing number of categories eg all will have utilities. It has history,
> science and miriads of others. Along side that there is a directory with
> dot dektop files which also contain category information. These seem to
> be scaned and and linked somehow into the eventual menu.
For modern full-feature desktops (including plasma and I believe lxde as
well, but I'm not sure if the *box and similar closer to wm-only style
desktops have updated) at least, these are all standardized.
Take a look at the general freedesktop.org specs link from earlier. In
particular, you'll want to look at the *.desktop file stuff as well as
the menu stuff. Basically, the *.desktop files are the basic building
blocks for the menu, but there's a utility that grabs the information
from these and assembles (IIRC) *.menu files from them.
And yes, there's both user and system locations. The user locations will
be under the $XDG_*_HOME dirs (IIRC CONFIG but could be wrong), the
system locations under the parallel system $XDG_ dirs.
The categories are pretty standardized as well. I think the general idea
is that if you have only a few apps in a higher category, they'll be
listed directly under it in ordered to avoid lower level categories with
only an item or two, while if you're really interested in say science or
games and have a whole lot of them, the top-level category will be broken
down further into lower level ones. Additionally, there's often a "more"
entry, for the (theoretically) less used apps if the number of entries in
a category gets too high and it hasn't been broken down further. This is
all based on usability studies showing that having more than 5-7 choices
at once gets confusing for many users.
> There does seem
> to be user local taskbar set ups but also something system wide and as
> you mention some apps look after specific user settings in various ways.
> A few and the desktops seem to be doing that of ~/.configure. Seems like
> a good way forwards to me.
AFAIK, taskbar stuff hasn't been standardized, so it's each desktop for
=== Meandering a bit... thru the === below...
FWIW, I don't actually use a "taskbar" in the normal sense (the widget
under plasma), preferring alternatives such as alt-tab, the window list
with a desktop middle-click, multiple desktops and desktop switching
using scroll on the desktop or the cube or grid, etc.
And I have a /huge/ desktop, a 65-inch 4K monitor for my usual work along
with a 48-inch full-hd monitor that's often running full-screen youtube
or the like. I've used kwin window rules to standardize most of my main
windows to 1280x1080, letting me do three windows wide and two high, six
work-windows displayed at once on the 65" 4k (along with the full-screen
video window on the 48" full-hd), so I can get quite a lot on-screen at
the same time without needing a switcher other than focus-follows-mouse
and alt-tab, as well, meaning that along with multiple desktops, I only
rarely need to actually stack windows on top of each other, so I don't
normally need a switcher for that.
So I really don't /need/ an actual taskbar, and don't have one
configured. I /do/ have a small panel set to autohide, mostly for the
systray/notifier plasmoid, tho I have one each kickoff, folder/directory,
and comic-strip plasmoids, on it as well. I seldom use the kickoff menu,
however, as I've setup (non-kde as kde kept breaking it every few years
with their major version bumps) hotkey based launching for all my normal
apps. And if it's not there but I remember the name, I'll usually type
it into the runner dialog. So pretty much the only time I actually use
kickoff is when I'm bored and searching for a new game to try or
something, and that's quite rare.
But I do regularly use the systray, as I have my mail (claws-mail), feeds
(separate claws-mail instance, with its feeds plugin), and news (pan,
what I use for following mailing lists like this one, via gmane.org) apps
among others start at plasma startup and run in the tray; I use the comic
strip plasmoid, and I occasionally use the directory-view plasmoid to
access a new download or something.
=== end the meandering...
So I don't actually need or use a taskbar, as such, tho I do use a small
panel, which some people call a taskbar, in the more generic sense.
Thus, I don't know much about the taskbar, but if you're talking about
the panel in the more generic sense, those settings, along with the
desktop activity settings, are mostly found in the (config location file):
As that file contains the settings for most of the plasmoids as well, it
probably contains the taskbar settings too, unless the taskbar has split
them out into another file or files.
> I started wondering what was going on when I installed lxde as a test to
> another user account. I expectd that to give some isolation. It didn't
> my kde menu was twice the size and full of lxde apps some of which can't
> even work on a kde desktop.
That would be the fault of either lxde or the distro. The XDG *.desktop
specs (and thru that to the menu) have a specific line available for show-
only-in, and apps that work only in lxde should have that set to lxde.
Similarly of course for kde/plasma.
Tho if an app actually works in other desktops, it arguably should NOT be
restricted to show only in a specific desktop's menu, because people
might want to run it under another desktop as well.
FWIW I believe plasma uses this mechanism to label the kde settings app
generically as "system settings" under kde, but as "kde system
settings" (or these days maybe it's plasma system settings... I don't
know as the only X desktop I run is plasma/kde) under other desktops. I
don't actually agree with that at all, as I believe it should be "kde
system settings" under kde as well, because that's what /most/ of the
settings actually are. Tho there are some generic system settings, it's
still the kde tool for setting them, so kde system settings works just
fine for them, too.
But to some extent in kde4, and with frameworks5 it's now the general
rule, non-plasma-specific kde apps are specifically and deliberately
targeted at more generic use, *NOT* specifically under kde/plasma. As
such, those general apps /will/ be shown by default in lxde, etc.
This goes along with the general trend to more modularity in both qt and
kde, with apps being able to choose specific modules for their
functionality, without having to pull in the huge monolithic dependency
blocks that kdelibs4 and qt3 and to a lessor extent qt4 were. Thus the
lines between a kde app and a qt app, or a qt app and a non-qt app, are
blurred, and many apps that used to be kde-only are now either qt apps,
or general apps that pull in a couple of qt and/or kde modules, without
pulling in the rest.
And in some cases, I believe marble being one of them (I've seen it in
the marble commit logs), these apps are built and marketed as for example
android apps, qt apps, and kde apps, all three (and possibly as a windows
app as well, I'm not sure on that one for marble), depending on the
platform the user is running at the time.
> I then looked at another kde user ;-) Root.
> Same there so there is no isolation even if all users use the same
Actually, there is isolation, but it's not as you expect.
Distros normally don't mess with user-specific config, and only install
to the system location. Apps installed there will of course appear in
the apps menu for all users, with what desktops they actually show up in
being controlled by the shown-in line as described above.
But users can control their own config, editing their menus as they
wish. In plasma, this is done with kmenuedit. As it's run with user
permissions, it /can't/ write to the system location, only the user
location, so that's where its edits to the default system menu go.
Of course as a sysadmin, if you don't like the way the distro and
upstreams are setting up the default system menus, the mechanism is there
via other system locations and appropriate inheritance to add or apply
wipeout files to remove the distro-installed entries. The general
mechanism for this is described in the XDG specs, tho that's at a spec
not howto level, and I expect the kde sysadmin docs will do a bit better
at the howto level if they actually cover it (I'm not sure of the
coverage on this specific point).
Note that via the kde kiosk mechanism, it's also possible to lock down
nearly all user settings as well, enforcing system settings so the user
can't apply their own changes. The general kiosk mechanism is there and
because kde/plasma is used in quite a number of business and government
environments where individual settings must be locked down to some degree
or another, it's generally well tested and used, but if you have reason
to use it, do keep in mind that because plasma itself is under continuing
development and thus a moving target, so will be these kiosk lockdown
settings. As such, while they should keep the normal user from screwing
things up too much, like padlocks, they work best with basically honest
people who might need a reminder here or there, not the technically
literate hacker type (hacker in the neutral sense here), who is
determined to override otherwise enforced system settings (arguably black-
hat, no longer neutral).
> Something windows has coped with for a very long time.
And so does Linux/X/Unix. In fact, the mechanisms for doing so are
fairly highly developed.
But you're comparing individual user-scope installs on MS, to global
system level installs on Linux. /Naturally/ the global system level
install is going to affect all system level users. =:^)
Now try installing apps only as a specific user, in the user's locations
with the user's privs only (~/bin for executables, ~/lib or ~/lib64 for
libs, etc), and see if those installs and settings get applied system-
FWIW, this is what various projects are working on better non-tech-
literate-user automation and packaging for, now. I believe ubuntu's
snaps are designed to be statically linked and install only one or a few
files, optionally to a user's home dir instead of system-wide. There's a
less distro-specific xdg-sponsored initiative, I forgot the name ATM,
doing much the same thing, and kde is working on the same sort of
mechanism, I believe using the xdg stuff as one possible module of
several available, for the kde store, etc.
Of course the down side to all this is security, and arguably user
freedom as well. Most of these projects are designed to enable static
linking, undoing the work of decades in unbundling libs, etc, so distros
can update a single lib and by doing so secure everything in the system
that uses it. Forget that if every user has perhaps 50 copies of perhaps
a dozen versions of the library statically linked into 50 different apps
that the admin or distro trying to secure it all may have no idea were
installed in the first place!
And most of these projects encourage binary installation, with source-
code availability optional, as well. Great for the gamer more concerned
about being able to run his drm-ed-up-the-yin-yang game than about
software freedom, not so good for anyone actually concerned about that
software freedom, or anyone trying to patch some functionality that's
broken, themselves (the way free software got its start, when Richard
Stallman was trying to fix a print driver he couldn't get the sources to).
> Different desktops is one of linux's advantages but not much of one if
> it works as it does. It's a mess and one kde users menu settings
> changing anothers isn't exactly good either.
As explained above, that doesn't happen, and indeed, /couldn't/ happen,
without access to that other user's files.
You're misunderstanding global system installations in global system
locations as individual user installations. There's a big difference!
> So sorry about the long post.
As should be amply demonstrated by now, I'm not a short-post person
FWIW, I've concluded there's two types of posters, those who post the one-
time problem or solution and ONLY that, short and simple but with an
extremely poor chance of applying the next time, and those that provide
enough detail and context that there's a good chance of the info in the
post applying to a bunch of other related problems and solutions, thus
ideally allowing readers to understand and fix the problems themselves
the next time.
It should be quite obvious which one I tend to be, obviously *NOT* the
> SDDM may have a problem as well. It looks like it could log into a
> desktop using the wrong menu tree. That aspect seems to be ok though as
> the lxde one contained a lot of kde apps.
You'll need to look elsewhere for help with SSDM. I don't use a *DM at
all, preferring to login at the text console and run a wrapper script
from the CLI, that sets my preferred xsession (kde/plasma) and various
other environment stuff, then runs startx. I've not used a *DM in close
to a decade and a half, now. So no *DM installed at all here, and but
for the various discussions such as this and the commit messages and bugs
I've seen in the plasma-devel list, which I suppose do keep me somewhat
current in general, my own *DM experience is a decade and a half old now,
so unlikely to be particularly helpful. =:^\
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