KDE's rough edges... what are your experiences?
Duncan
1i5t5.duncan at cox.net
Sun Oct 27 16:47:08 GMT 2013
Michael posted on Sun, 27 Oct 2013 07:54:09 +0100 as excerpted:
> Hi peops,
>
> I somewhat force myself to use KDE (once again), even though I am very
> likely to get annoyed rather fast when it comes to the KDE-specific kind
> of issues. Issues, I have never seen with any other project to that
> extent. And I ask myself, if others are annoyed too there or am I just a
> whiny little bitch and no one else really bothers there?
There are certainly issues with most desktop environments. But I've yet
to find one I like in its default state and I doubt I ever will, which by
definition means I tend to be a *HEAVY* customizer, and kde does tend to
support a higher level of customization than most desktops.
But that doesn't by any means mean I don't have my own frustrating
issues...
> To describe the kind of issues I am referring to, some examples:
> 1.) KSysGuard: I just closed a program via its own menu (file ->
> close), wondered why even after several minutes (and even now, half an
> hour later) KSysGuard still showed that process, so I did look with "ps"
> and to my surprise, the process is *not* there anymore, but KSysGuard
> shows it nevertheless in the "process table".
> https://bugs.kde.org/show_bug.cgi?id=261255
ksysguard is an interesting one. There's a couple points I can make
about it, with the second leading into a rather wider discussion, and
finally a third point/hunch that might be worth investigating, just in
case.
First point, most directly apropos to that bug, while I'd /think/ it
would be obvious enough to note as it was my immediate first question
upon reading the above, you didn't above and nobody seems to have noted
it specifically in any of the bug comments either...
What do you have the sheet/tab properties update interval set for? If
it's set to zero, it's not going to update and of course the information
will ultimately go stale. Similarly if the interval is maxed out... here
the max it will let me enter is 1000 seconds, aka 16 minutes 40 seconds.
You do mention half an hour so it should have updated in that time, but
perhaps only once.
Given the importance of the question I can't see why nobody on that bug
(or you above) specifically mentions that they do NOT have the update
interval set to zero and what they DO have it set at. Similarly, nobody
mentions whether OTHER processes are updating or whether it's essentially
a static display of a one-shot sample, which would explain... That may
or may not be the issue, but if it isn't, how can such basic information
be overlooked in the bug report or here? That implies people simply
haven't checked, which means it well COULD be the issue!
The second point is a MUCH more general point, applying both to ksysguard
and to kde, specifically kde4, in general.
ksysguard was in fact one of my early kde4 pain points. Back in the late
kde3 era, I had the ksysguard kicker applet running constantly on one of
my kicker panels, real-time graphing various system statistics and
performance metrics including cpu (user/system/nice stacked together in a
single plotter so the total of all three was also the total CPU usage),
memory (app/cache/buffer stacked), network traffic, etc.
In early kde4, not only was there no plasmoid replacement for what I
considered a very vital kicker applet, but even simply running ksysguard
with the various plotters, etc I wanted and forcing the window position
and always-on-top didn't work, as ksysguard itself was horribly broken!
I remember that plotters didn't work well, for one thing, but there were
a couple other problems with it too, that I've forgotten now.
Now it should be noted that while I said "early" kde4, this was *NOT* the
kde 4.0/4.1 era, when the kde devs themselves admitted kde4 wasn't ready
for ordinary use. This was in fact late 4.2 and into 4.3, when the
message was that kde4 was supposed to be ready for ordinary users,
despite all sorts of horribly broken behavior remaining (and filed as
bugs so the devs knew about them), including ksysguard's problems! In
fact, at the same time they were insisting that kde4 was ready for normal
(as in, not beta testing!) users and that they weren't supporting kde3
any more, on some bugs they were still saying that functionality critical
to the way various users used kde hadn't yet been ported from kde3 yet!
Well, I've been running alphas/previews/pre-releases from the early MS
Windows days when MS-DOS was still the primary OS (tho FWIW I left
proprietary servantware behind and switched to Linux when eXPrivacy came
out, as it crossed lines I simply wasn't going to cross!), both big money
commercial stuff and single developer level, freedomware and servantware,
and one thing I know about pre-release software is that if critical
functionality isn't yet implemented, it's *NOT* considered release
quality, ready for normal users, in fact it's not even BETA, that's ALPHA
quality. (Beta is commonly defined as the functionality basically there
but still quite buggy, including critical bugs that may break the
functionality for some; alpha as some functionality not yet there yet.
Release candidate (rc) status is commonly defined as all functionality
there and generally working, but some polishing still being done.) So
*FAR* from being release quality, kde 4.2 remained what is commonly
defined as alpha, some stuff works, sort of, but critical bits of
functionality remain unimplemented/missing. 4.3 arguably reached beta,
most functionality was there but much of it was still broken. 4.4
arguably reached rc status, almost everything worked, but some of it
still needed polishing, and 4.5 was actually the first kde4 that I really
considered proper release quality.
Of course making the problem many times worse was the fact that a kde
spokesperson (Aaron S., president of KDE.e.v. at the time, IIRC, so about
as authoritative a spokesperson as kde had) had pledged that kde3 would
be supported as long as there were users... and then kde turned right
around and dropped support after promising not to, despite all the users
yelling that kde4 was still VERY VERY BROKEN, not yet fit to upgrade to.
Given all that... I along with many others ended up having to find all
sorts of workarounds and alternative solutions as I was forced onto the
still very broken kde4, and one of the things I ended up finding an
alternative for was ksysguard, including the ksysguard kicker applet. So
as a result, I've not actually used ksysguard much in years, tho from
your report, it's apparently still broken in pretty critical ways
(assuming it's /not/ something as simple as tab/sheet update timing set
to zero, point one).
So what ARE these alternative solutions?
For my more or less constant system status monitoring, I first turned to
the YASP-scripted plasmoid (yasp being yet-another-system-monitor),
available on kde-look. Since it can be configured to print and/or graph
the output from any command (such as sensors, from the lm_sensors
package) that can be issued at the commandline, including the output from
various scripts the user might wish to hack up, and it's quite flexible
in how it can be configured to display that information yet somewhat
simpler and easier to learn to setup than superkaramba, and I was under
pressure to find and setup a suitable replacement for the kde3 ksysguard
kicker applet, that was my first alternative solution. It actually works
very well, and if you look it up on kde-look, you'll note that some of my
scripts still ship with it as samples that others can modify to their own
needs.
Later, I switched to superkaramba, which is the same general idea as yasp-
scripted but somewhat more powerful and thus a bit more complex to setup
and to learn. Basically, a yasp-scripted applet stacks all configured
output in the order it appears in its config file, so there's no
positioning to learn and while you can control vertical order, to control
horizontal layout you simply configure and run more yasp-scripted
plasmoids side-by-side. Superkaramba takes the same basic idea and adds
layout elements, so it's possible to position any output anywhere in the
superkaramba theme window. To setup multiple plotters in the same graph,
you simply set them all to appear at the same location. That makes
superkaramba even more flexible and powerful than yasp-scripted, but also
more complicated to learn and setup. However, having learned the basic
concepts in yasp-scripted, superkaramba was then just a small step to
learn, and I was able to do it at my convenience instead of having to do
it under the time pressure of a forced and very broken kde4 upgrade
because kde was dropping support for kde3.
I still use superkaramba for that purpose today. A screenshot (warning,
I run triple monitors in stacked config so it's big, 1920x3240 px, 4.5
MB) with my superkaramba setup shown can be found here:
http://wstaw.org/m/2013/05/11/duncan-fullscreen.png
For the general process table functionality, I normally use htop in a
konsole window (tho I've a short list, the top six CPU users and the top
three memory users, displayed in the right superkaramba panel, but that's
display-only), which someone mentions in a comment on that bug. And of
course ksysguard's process table (only) is available from krunner, where
I activate it to check something or other from time to time. But
normally I'll just open a konsole window (I have a hotkey for that) and
run htop.
For short term specific purpose monitoring I'll occasionally still open
ksysguard, but really, most of what I'd monitor is already displayed in
superkaramba, and I could probably uninstall ksysguard and wouldn't miss
it much.
Finally, the third point/suspicion/hunch you might investigate, tho
admittedly I've no real reason to point fingers in this direction except
a hunch, and some people might view it as an unjustified accusation. But
I call it just one more possible lead worth checking out, just in case:
Namely, systemd, or more accurately, ksysguard's interaction with it, or
possibly control-groups, part of the kernel but necessary for proper
systemd functioning.
It's my general opinion (as an admittedly biased non-systemd-user, so
take it for what it's worth) that systemd is growing too fast and has
become too complex too fast for its own good, and the way it reaches deep
into the system and interacts with control-groups, etc, is definitely
rather far from the traditional POSIX methods, such that ksysguard may be
interacting badly with it due to mis-matched expectations of how a Unix/
Linux based system and the processes on it are supposed to behave.
If for some reason various system resource tracking is being maintained
by the cgroups or systemd (say total cpu time used by the cgroup,
including processes now long gone), even after an application has
finished running and no longer appears in the process list as seen by htop
or ps, and ksysguard happens to be tracking those resources as it
certainly does track at least /some/ application resources, it's
/conceivable/ that ksysguard is somehow getting confused by the continued
existence of those resources /due/ to that tracking, after the app itself
is gone.
Additionally, systemd replaces the traditional init as PID 1, and part of
what it does in that role (which init does traditionally) is become the
parent of otherwise orphaned processes. And one of the things a parent
does is harvest various information (exit status, etc) from a finished
app, before the kernel cleans it up. If you've ever seen an app listed
as zombie status in htop or ps, it's that harvesting and cleanup that
isn't finished yet.
And it may well be that systemd behaves differently than traditional init
in how it harvests such apps. If ps and htop don't list them as zombie,
then they are being cleaned up, but it's possible some aspect of that
behavior differs from what ksysguard expects, thus leading to ksysguard
continuing to see these ghost processes even after they're cleaned up and
no longer reported at all by ps/htop/etc.
That could explain why it seems to be only ksysguard affected, not htop
or ps or the like, since ksysguard's application detail display reports
various stats that htop and ps don't track. And of course ps is single-
shot, while ksysguard sticks around for possible errors to accumulate.
Tho htop sticks around, but it's likely the person who reported that it
didn't show the applications didn't run it for long enough to see if it
was affected over the longer term as well, only long enough to check
whether the apps that ksysguard was still showing were listed in htop
too, which they presumably wouldn't be if it was started after those apps
had finished.
Finally, it's worth mentioning that various process information is also
made available by the kernel in procfs, generally mounted as /proc.
Someone who knew a bit more about how procfs works and what is supposed
to be exposed there could check there to see if there's anything left
around from these dead processes that shouldn't be, that ksysguard might
be picking up. At minimum, check that the PID for the dead process in
question is no longer listed as a directory in /proc.
So perhaps compare notes with all the people on the bug, and see if
you're all on systemd, and perhaps even all on the same distro (I saw
fedora mentioned but didn't look closely enough to see if others were on
say opensuse, gentoo, debian, arch, etc, or not). Note that some distros
(debian and gentoo that I know of) allow switching between initsystems as
well, tho I wouldn't consider it an easy process. But if per chance
everyone on the bug is on systemd, and someone's on a distro that has a
systemd alternative available, if they're up to trying to switch to
something else to check if the problem persists or not, that might yield
another clue.
But I'd consider everything speculated here in point #3 to be a
relatively remote possibility; probably nothing to it at all. However,
SOMETHING is causing the issue, so SOMETHING is obviously not as
expected, and these are just a couple more possible leads to check up
on. Maybe you'll get lucky and find that SOMETHING.
> 2.) Panels: Changed the "alignment" on one panel (for DualHead
> "mirrored" panel setup), one should think now the alignment is changed
> like in any other tool (mostly word processing tools I guess) but well,
> it is not, widgets and stuff still want to "fall" to the left. I guess
> because of that and other "bugs" there, several issues arise.
FWIW, I'd not think that at all.
In fact, quite the contrary, just because I switch a panel from one end
of the edge its on to the other, does NOT mean I want or expect the
individual plasmoids to change alignment within the panel as well! I'd
go so far as to consider it a bug if they did!
> http://forum.kde.org/viewtopic.php?f=67&t=94642
> https://bugs.kde.org/show_bug.cgi?id=248186
> http://askubuntu.com/questions/116040/how-to-right-align-widgets-in-
panel-in-kubuntu-11-10
In general panel plasmoid alignment and spacing in kde4 plasma has ALWAYS
been buggy at best. At this point I'm not sure it's even possible to
make it work correctly. I've simply resigned myself to it and gradually
found my own workarounds and/or configurations that work "well enough"
for my usage, despite the continued spacing behavior issues.
One of the workarounds for me is that I don't put much on the plasma
panels any more. In fact, I only have one single plasma panel, quite
small and set to autohide, bottom left. I run superkaramba as a stand-
alone app, instead of running it as a plasmoid and trying to place it on
a desktop or in a panel as is also possible, as that allows me to
configure it as a docking top "panel" of its own, always-on-top, covering
almost all of my top monitor (of three), as seen in that screenshot I
linked above. Superkaramba in standalone mode seems to behave rather
better as a panel than it would as a plasmoid, so that's how I run it.
(Among other things, plasma panels appear to be limited to 1/3 of the
monitor they're on, and my superkaramba theme takes up about 90% of its
monitor, with only a bit of desktop exposed below it to give me a spot to
desktop-scroll between virtual desktops (scroll-wheel-only, as configured
here) or activities (ctrl-scroll-wheel) when both bottom monitors are
covered.
My single small plasma panel is docked to the bottom, positioned left,
perhaps 25% the length of the bottom edge, and set autohide. It has only
the kickoff icon, a classic launcher set for bookmarks only, notification
and systray, a spacer, and clear to the right, a quicklaunch plasmoid
(from kde-look, it's a variant of the folderview shipped with kde, that I
like a bit better). The spacer is set to flexible size so that it'll
absorb the expanding size of the systray as more icons appear in it, and
at least on 4.11 (and 4.10 before that), with the help of the spacer, the
quicklaunch icon seems to behave itself and stay far right.
(I don't use a task manager plasmoid at all, instead using the primary
and alternate window switchers (alt-tab and win-tab), desktop-center-
click-activated-windowlist, virtual-desktop-switching, and the fact that
I have a HUGE triple-monitor desktop with two of the monitors actually 42-
inch full-HD TVs (!!) taking up the full wall they're mounted on in front
of me and the third a smaller but same resolution monitor logically
stacked on top but physically off to the side (that's the superkaramba
monitor), thus giving me room for four half-maxed windows, with focus-
follows-mouse, to avoid needing a task manager.)
If the quicklaunch to the far right didn't work, however, I'd work around
the problem by ordering the notifier/systray last, but perhaps for the
spacer. I'm glad it's working as I prefer the quicklaunch off to the
right by itself, but I wouldn't consider it /too/ horrible if that didn't
work and I had to do the workaround thing.
What's worth noting, however, is that other than the flexible spacer,
there's only one dynamically sizing plasmoid in that list, the systray,
and from my experience, that helps a GREAT deal. Once you get a second
dynamically sizing plasmoid on a panel, plasma doesn't seem to be able to
reasonably allocate space any longer, and everything seems to go
haywire. So the fact that I only have the one dynamic sizing plasmoid in
my panel could be called a workaround, or it could be called me simply
finding a layout that works for me, which happens to work around a
spacing/alignment problem as part of the bargain, but either way, it IS a
solution that works well for me, so I'm happy. =:^)
> 3.) Widgets, plasmoids, generel KDE features: Yeah well, really nice
> design (mostly), but from a usability standpoint? Often a mess. First
> one sees a feature and thinks "Great" and later on he might realize how
> bad that feature is implemented. I don't want to get into details yet,
> as this mail is going to be long enough already, but if there is any
> need and someone has no idea what I am talking about here, just ask. But
> remember, I don't say all and everything is implemented badly, with
> KDE-stuff it just looks to me the tendency is there that stuff gets
> implemented in a rather weird / bad / less- to un-usable way.
FWIW, my thinking on this is that it just happens that the kde devs (and
in particular the plasma devs, since that's the desktop kde uses) have a
particularly bad case of one of the traits very common to free and open
source application development and the developers behind them -- the
"developer scratches his own itch and stops when it stops itching for
him" phenomenon. As you're likely aware, this is in fact one of the
criticisms leveled at free and open source software by proprietary
servantware and commercial software developers -- that the "scratch your
own itch" model doesn't properly serve the non-developer user.
Those commercial/proprietary model proponents do have a point, that IS a
weakness of FLOSS, but I believe it's a rather limited point, because in
practice, the negatives of proprietary servantware such as the fact that
it's designed with the owner's interest in mind *NOT* the user's
interest, thus things like DRM, ad-ware, spyware, register-or-deactivate-
ware (eXPrivacy and later being the headline example), call-home-for-
permission-to-run-ware (eXPrivacy and later again), tend to FAR exceed
the to me rather small in comparison problem that much FLOSS is scratch-
your-own-itch-ware.
Anyway, yes, I think that a lot of the user-visible problems with plasma
in particular, as well as early kde4 fiasco beyond plasma and to some
extent kde4 even as it exists today, are the result of developers with a
WORKSFORME, it /must/ be ready to ship, attitude. And that problem,
apparent in kde4 as a whole especially in the early days, seems to be
particularly bad with plasma.
> 4.) Weird messages and... stuff: Be it annoying phonon messages that a
> audio device was removed, though it definitely was NOT, power-manager
> framework telling me it doesn't work because of... yada yada, but it
> does work nevertheless, starting others DEs stuff while KDE is running
> (or the other way around) might screw things up bigtime, configuration
> tends be be trashed every now and then, from one moment to the next (in
> the process of configuring KDE for example, so no change to the
> installed packages or other changes to the system) KDE may start to
> behave "weird". Like starting KDE-apps (dolphin) takes several minutes
> while other apps just start fast as before, context-menu might need
> *minutes* to open, shutdown-, reboot-, logout-popup takes minutes to
> show...
Remember up top where I said I'm a *HEAVY* customizer? It reflects in my
distro choice -- gentoo, as well as my desktop choice -- kde. =:^)
One of the great things about Gentoo's customization is that on gentoo,
various compile-time support and resulting dependencies can be configured
on or off via USE flags, which make it a relatively simple process.
And with gentoo/kde, one of those USE flags is semantic-desktop (tho the
gentoo/kde folks tried to remove it and hard-enable semantic-desktop at
compile time for kde 4.11, and I was for a time forced to carry my own
patches to force-disable it, but fortunately sanity eventually returned
and it's again an option).
I've also disabled the policykit USE flag as well as upower, udisks,
etc. There are some functionality tradeoffs, but it makes for a far less
complex and buggy kde, and I prefer stuff like manual mounts and my own
hibernate scripts in any case.
And you know what? Without all that junk even built at compile time, the
problems I had with kde went down DRAMATICALLY, and performance went up
as well. That's why there was NO WAY I was going back to semantic-
desktop when gentoo/kde went temporarily insane and tried to hard-enable
them, even if it meant switching to some other desktop as a result.
Fortunately, however, I'm now experienced enough that I was able to find
and carry the patches necessary to disable it, so I didn't have to leave
kde, and even more fortunately, the gentoo/kde insanity proved to be only
temporary, and semantic-desktop is once again a supported togglable USE
flag. =:^)
But plasma, in particular, still likes to lose settings once in awhile.
Workaround time! I ended up setting $KDEHOME/config/plasma-desktop-
appletsrc readonly, and fortunately kde respects that, and I don't lose
my plasma settings any more. =:^) There's a couple minor side effects
such as the comicstrip plasmoid not updating its record of the current
strip, so when plasma starts it has to figure that out on its own each
time and it might take a bit to do so, but it works. I also have to
remember to set it read-write temporarily if I want desktop wallpaper
changes to "stick", but with the picture-of-the-day wallpaper plugins,
that's not too bad, and now I can do things like temporarily add a new
plasmoid to my setup for the in-memory plasma only, to test it for a
reply to a message here, say, without having to worry about the
possibility of that screwing my normal config, since all I have to do is
restart plasma and it's back the way it was.
And there's a number of folks now cced on a bug I filed back during the
kde 4.11 betas about plasma forgetting its configured activities and
starting up with a default new activity, as it's happening to others too,
now that kde 4.11 is hitting the big distros. But restarting plasma
after kde gets running works fine -- I get my old activities back. So
the workaround there is two-part, another file ($KDEHOME/config/
activitymanagerrc, IIRC) set read-only, so I don't keep getting more and
more new default activities added to the existing activities each time I
restart kde, and a script setup in the startup dir, that sleeps a couple
seconds, then kills and restarts plasma, so I get the customized
activities along with the new default activity it still insists on
creating.
And... another bit of fallout from the early kde4 fiasco that hasn't been
resolved yet. I happen to have one of those newfangled "internet/media"
keyboards with all the extra keys, and in kde3, I had khotkeys setup to
use one of them (XDG_HOMEPAGE, IIRC) as trigger or menu key, for a bunch
of others. So for example, I could hit homepage, b, to launch the
browser, homepage, p, to launch kpat, homepage, c, to launch konsole,
etc. Without the ability to setup that multi-key hotkey with the trigger/
menu key followed by something else, I'd only be able to assign a single
app to that hotkey, or perhaps a couple more if I used modifier-key
sequences as well, instead of the dozens I had multiplexed on the same
trigger key!
But khotkeys4 could no longer handle multiple keys like that, and all my
carefully multiplexed two-stroke hotkeys broke! =:^(
It took me a while to figure out, but eventually I realized that if I
could setup a configurable menu on just the homepage key, with that menu
in turn taking another key, I could chain the effects together and get it
to work very nearly like it did in kde3.
But I'm a user and sysadmin, not a coder, so I couldn't just hack up an
app in C/C++ to launch the desired secondary menu. =:^(
Workaround time!
Eventually I hacked up a multi-part solution. I set a first-stage khotkey
with the XDG_HOMEPAGE key, to launch a bash script (as a sysadmin I CAN
code those up!) in konsole, that reads and displays the menu I've
configured and waits for exactly one key. When it sees a key, it
compares that to its list, and launches the application associated with
that key.
I ended up chaining three keys deep, HOMEPAGE activates the menu script
with the default menu, which is simply a list of other menus based on
category (g=games, n=net, m=media, etc). Then I press the second key,
say g for games, which calls the script again, this time with the games
menu. There I press say p for kpat, or (shift-)P for palapeli, and it'll
launch the associated app, kpat (p) or palapeli (P), in this case.
So the full sequence is HOMEPAGE (first menu), g (games menu), p (kpat).
Three keys to launch kpat or any other command I use frequently enough to
be worth configuring a hotkey for. =:^)
But while it works, the fact that its a shell script means the response
isn't as fast as a C/C++ based app would be, and of course I get the
"ugly" text-base menus instead of something graphical, with icons, etc.
It's definitely a hacked up workaround, but unlike khotkeys4 which
*STILL* can't manage multikeys, it actually WORKS!
> And a bunch of other stuff that might just happen when using KDE that
> somewhat feels... well... awkward, weird, annoying. Bottom line, it
> feels like a lot of rough edges and that those edges might be smoothed
> out eventually, but apparently it looks like they don't, as where I
> pointed out links to bugtracker or forum-posts, the issues are as old as
> Methusalems grandpa.
I'm snipping the rest, but I definitely agree with most of it, and while
my sore points are different than yours, I certainly do have them, rubbed
raw by all those kde rough edges! So I definitely feel the pain!
--
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