[kde-linux] Locking widgets doesn't work correctly

Duncan 1i5t5.duncan at cox.net
Tue Sep 1 18:34:48 UTC 2009


JD posted on Tue, 01 Sep 2009 09:23:21 -0700 as excerpted:

> On 09/01/2009 09:01 AM, Anne Wilson wrote:
>> On Tuesday 01 September 2009 16:17:50 Abos Undso wrote:
>>    
>>> I had tried that already. The result is that after restarting the
>>> desktop, the panel is messed up and the file plasma-desktop-appletsrc
>>> is recreated with the default panel layout. If then I replace the new
>>> one with the previously saved one, it is not taken into consideration
>>> unless I restart the desktop which jumbles up the icons as usual.
>>> Maybe my personalization went too far with the spaces and all that?
>>>      
>> Connie, please don't top-post 

Seconded.  (Also, not a problem here but in case someone else comes 
across it, plain text, not HTML, is best.) 

>> If you replace the new one with the previously saved one you are
>> restoring the problem you originally had.  From the blank canvas you
>> must re-set any program launchers or widgets as though it was a new
>> install.
>>
>> I'm not sure what you mean by 'the spaces', but this jumbling behaviour
>> I haven't seen since KDE 4.0, so I can only think that it is a
>> corruption somewhere.

FWIW, I know what Connie's referring to by spaces -- the spacer plasmoids 
that appeared in kde-look first, but with 4.3, are available in kde by 
default.

I believe I know the problem, too, at least part of it, and was 
disappointed myself when the spacers didn't work to fix it, but evidently 
there's nothing yet available that will, and trying to use the spacers 
for it simply doesn't work.

The root problem is that the space available inside panels is too plastic 
-- there's no way to absolutely place the various applets.  Some of them 
are simply space hogs. taking up WAY more space than they should given 
the size of the panel, making them look WAY bigger than other plasmoids, 
or simply insisting on a whole bunch of unused blank space between them 
and the next plasmoid.

The digital clock, for one, can do that, requiring more blank space 
around it than it really needs, when it's in a shared panel.  (FWIW, I've 
solved the specific digital clock problem here by putting it in its own 
panel, but of course that doesn't solve the root issue.)  While it's not 
a default plasmoid and maybe this is why, yaWP (yet another Weather 
Plasmoid) similarly misbehaves.  Get them both on the same panel, and it 
can make for REAL fun trying to fit anything else on there and getting it 
to look right, in limited space.  (FWIW I gave up on yaWP in a panel and 
it's a desktop plasmoid here, now.)

At a somewhat lower level the problem is that many plasmoids seem to 
adapt to available panel space in one dimension only -- on a horizontal 
panel they'll adapt to the height, on a vertical one they'll adapt to the 
width.  They ignore the other dimension (width on a horizontal, height on 
a vertical), ignoring how many other plasmoids share the space with them, 
etc.  They really need to respond to limits in both dimensions, shrinking 
if necessary to fit another plasmoid on the panel.

When I read about spacers, I was hoping they'd be able to impose some 
discipline on the other plasmoids, as they would if they could be placed 
in absolute locations with absolute "space" values.  Alas, it was not to 
be.  While they can be helpful in some instances, they are extremely 
timid in asserting their "space rights" more so than any other plasmoid, 
when I was hoping they'd be more assertive, forcing other plasmoids to 
conserve space.  The space hogs continue to insist on taking up way more 
than their reasonable space (with lots of blank space around them and/or 
visually oversizing themselves), making the dedicated spacers all but 
useless in trying to impose some order, as the spacers yield way too fast 
to the hogs.

I've come to the conclusion that it can't be properly addressed at the 
plasmoid level, plasma itself is going to need changed so that it asserts 
space limitations in both dimensions, not just one.  Note that doing so 
will likely have implications for earlier plasmoids that expect to be 
able to spread out in the one dimension, regardless of how limited the 
space is.  For backward compatibility, therefore, I'd propose that plasma 
be equipped to lie to these plasmoids, telling them they're in the other 
orientation and/or that the panel is smaller than it actually is, in 
ordered to get the plasmoids to behave.

The UI wouldn't be as complex as it sounds, however.  The context menu 
for each plasmoid (possibly in panel settings mode only, thus overriding 
the plasmoid's own context menu) would include an orientation option, 
vertical/horizontal, with the default always the same as the panel, thus 
that of the current implementation.  But toggle it and the plasmoid would 
be told its in the other orientation.  Second, implement a small version 
of the panel sizing widget, effectively making each plasmoid inhabit its 
own little panel, from the perspective of the plasmoid, limiting it to 
the size of of that "panelet" so it has to draw itself in that smaller 
space, regardless of how much space the larger panel has.

That would finally impose some order on things.

Basically, that's what I was hoping the spacer plasmoids would do, as a 
different and less complex implementation than that described above but 
more complex than they are, with the spacers effectively made "super-
plasmoids", forcing the contents of the panel on either side of the 
spacer to live with the space it was given, effectively telling the other 
plasmoids that's all the space they have, giving the spacers the power to 
assert themselves over the hogs and make the hogs actually behave!

Unfortunately, that's not how it worked.  I expect that's at least part 
of what Connie's getting frustrated by, trying to use the spacers for 
more than they can actually do, since they're way too yielding, and the 
plasmoid hogs continue to be greedy and overrule the spacers.

> For experimentation's sake, how about creating a brand new user, and
> logging in as that user - that way you are starting with a clean slate.
> See if that users has same problems.

That's sort of what Anne was suggesting, except for the plasma 
configuration only.  Either way, see if starting with a "clean" 
configuration works when reconfigured to the desired layout -- IOW, 
whether it's something else broken in the current user's configuration 
that's screwing this up too, or whether it's endemic to the entire system.

That's a good idea, and it may indeed solve one aspect of the issue, the 
broken save and restore functionality.  However, if I'm correct, the real 
problem is deeper than that, as Connie is I think, like me, trying to use 
spacers to achieve functionality that plasma simply doesn't have at this 
point in time.

-- 
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




More information about the kde-linux mailing list