Consider how to unify Latte and Plasma Panels
Open, Needs TriagePublic

Description

Currently, there's a redundancy in KDE Panels offering. There are many features both offered by Plasma Panels and Latte, but since they are different projects, they are offered in a inconsistent way. Furthermore, something Latte could benefit from being more integrated with Plasma (e.g.: super key working by default) and it could offer many features currently missing in normal panels such as dynamic spacers.

It would be necessary to discuss how the two could be unified, and what features / things are missing from one or another.

Currently, Latte offers the following features over Plasma panels:

  • Sidebars
  • Multiple visibility mode (Dodge Active, Dodge Fullscreen, Dodge Windows, Auto Hide, Always Visible, Windows Go Below)
  • Multiple layouts simultaneously and download community layouts
  • Smart Dynamic Background based on windows and background
  • Smart colors based on background
  • Dock color can change based on active window
  • Selection of new ‘Running Indicator’ styles, including Unity
  • Shortcut badges
  • Customizable actions, delay, appearance
  • Simple/Advanced mode
  • A simple way to add a Dock
  • New features every release, very active developer
  • Latte panels are aware of each other

On the other hand, Plasma Panels offer the following over Latte:

  • Shipped by default
  • Possibly less RAM usage than Latte (hard to measure exactly, but booting with just latte gives me ~50Mib more than just Plasma panels, and opening the Latte settings is another ~70Mib at least)
  • More stable, fewer reported crashes
  • Configuration menu is more user-friendly and consistent with Plasma style
  • Way more performant on low-end machines
niccolove added a project: Latte Dock.
ngraham updated the task description. (Show Details)Dec 27 2019, 5:41 PM

Personally I don't see a problem that needs solving here. The advantages of each product are perfectly suited to their current roles and users: Plasma panels are shipped by default, lighter in resource usage, more stable and less buggy, and have a more conventional and comprehensible configuration interface. This is perfect for the average user for whom the default appearance is fine, and who focuses on using apps instead of tweaking the shell UI. Latte is focused on the "ricer" crowd who wants to tweak every pixel to achieve visual perfection or mimic the UI style of an alternative platform (GNOME, macOS, ElementaryOS, even iPad OS, etc), and offers these people enough options to do it.

There are a few things that maybe each could learn from the other (e.g. dynamic spacers in Plasma panels, super key working by default in Latte) but I don't think that either the "simple by default" oor the "powerful when needed" crowd would really be happy from merging the two into one.

I would disagree on that because the points where both excel aren't mutually exclusive; Latte features could be implemented in normal Panels and Latte could be improved in RAM usage (if needed?), stability and performance. Having two different products will keep the situation as it is today: two different kind of dock/panels, each failing in some spot. Unifying them would instead give the opportunity to focus on a single, great product that could be a selling point of Plasma. If you look Latte long list of features, you will notice that there are some that the current panel would highly need (shortcut and notification badges, spacers, dodge windows, ...) that I don't think will ever implemented on the Plasma Panels based on its recent history of improvements; furthermore, there are a lot of features that, although not used by default, would definitively be appreciated by lots of users. Having those features by default instead would improve discoverability and the number of people actually using them by orders of magnitude: many people would enjoy the smart background, but they probably wouldn't want to install and having to configure a third party app to get that. Furthermore, having two different product has two other consequences; in the first place, Latte is not well integrated into Plasma, and you can see that by how the super key has to be added in a file to work, extremely not user-friendly; plus, Latte cannot be a selling point of Plasma: this issue was also raised when doing the kde.org/plasma-desktop webpage, as Latte could've been a great feature but was only mentioned in a sub-section. Furthermore, Latte itself follows KDE motto: it is simple by default, and powerful when needed. What is not simple by default and powerful when needed is having a feature-limited product by default and having to install a different one which does not integrate well immediately, that does the same things but with more features but less stable. If Latte was to be chosen as a default (e.g.), the developer and user attention alone would help the developers find many of the bugs and instabilities that it currently has, thus giving Plasma Panels no reason to exist anymore really.
The above reasoning is very specific to the Latte/Panels situation, but I think the point are those, more generally, of lack of consistency: you get product A which is good at X and product B good at Y; people who value X more will go with A and suffer for lack of Y, and people who value Y more will go with B and suffer for the lack of X, although X and Y could be implemented in the same product; but since A target is people who mostly like X, developers will not focus on Y, and B developers won't focus on X. Making the two a single product could help to get both features. And I think that Latte features would really improve Plasma experience for the majority of users that will not search for a third party app, install it, remove normal panels, and find the FAQ to fix the super key, and will help promoting the Plasma environment as maker of quality products.

@niccolove personally I dont have any opinion in this, except that any help that would improve Latte it is more than appreciated!

concerning the Super key case, since Latte v0.9, Super key can be easily configured through:

in upcoming Latte v0.10.x that window discoverability will be easily found through right click context menu:

niccolove updated the task description. (Show Details)Jan 13 2020, 5:58 PM
ognarb added a subscriber: ognarb.

-1 from my side. Latte is awesome for a ricer who want to customize is desktop, but for the average user it isn't an improvement over Plasma. Anybody who want to use Latte can easily install it from Discover.

And I think Plasma opinion is quite important

And I think Plasma opinion is quite important

Of course. I absolutely value opinions of everybody. That's why I discuss. Let me say why I think Latte would be an improvement, and propose a possible win-win solution:

Let's divide Plasma users into three groups: Default, Tweaker, Ricer.

  • The Default users usually leaves everything as it is. It is at risk of accidentally getting stuck by clicking the wrong button, e.g.: remove panel.
  • The Tweaker user goes into the LnF KCM store and download already-done configurations to use. He's able to get out from situations such as no panels. He adds widgets.
  • The Ricer has complete control over the machine.

Of course, users are not equally divided into these groups, the first two are bigger for sure. You said in the chat that the Default user is the "Average" one. I think that the "Average Plasma user" is more like the Tweaker user, while the "Average Computer user" is a lot more like the Default one. The question is: will Latte benefit those users:

  • Default user: yes, a bit but. I do think that the Default user can benefit from Latte as a) it has some little features that could help them navigate around, such as shortcut badges when holding the meta key b) Most importantly, it has an "Advanced" toggle that hides to the default user what he should not touch. Currently, there's no option to remove the last panel which is instead very prominent on Plasma Panels. Even if it were to be added, it would be in the advanced mode and would be hardly clicked by mistake. In this case, the use of an "Advanced" toggle is very useful and justified in my opinion. Of course, there's the "but": if Latte were to be more slow or buggish than PPanels, as it might be now, this would be a downside for the Default user. I will get back on this later.
  • Tweaker user: a lot. Currently, there's either the choice to install a different application, manually replace the default panel, re-add widgets to make it look as before, or live without the small feature X the user was looking for. Instead, having Latte by default would greatly improve their workflow as they would only need to open the setting and change the specific thing. Furthermore, there are many features of Latte that benefit this kind of user, such as using justification instead of really buggy spacers.
  • Ricer users: yes, a bit. They are able to install Latte anyway, but it's easier for them to just have it by default and thus spending less time installing and configuring packages.

Thus, I think having Latte would generally benefit users. Even if you disagree and it does not benefit the Default user, this is no reason to dismiss the benefits to other users. Of course, there's the "but": will it be able to be stable and fast? I've heard complaints about this in the Plasma chat and I was of course very worried myself, so I tried to search for Latte bugs online and on the bugtracker. What I found is that most reported bug are fixed and there are few waiting for a fix; the developer is also very active and answers in various forums with advice. This is of course a good base, but not enough by itself. So, I propose this possibly win-win situation:

  • If people and the especially the developer is okay with it, we go through the following points:
  • Either me or mvourlakos (aka Latte dev) implement basic stuff that's required for Latte to be in Plasma (such as the config window actually being a window or following the theme)
  • We find, inside or outside the KDE Community, a good amount of people (=20/40 at least) that are okay with doing some QA. If someone think Latte is buggy, they're especially needed
  • Members of QA group could use Latte daily and report on bugs.
  • In this way, mvourlakos can get more feedback on what is going wrong and could improve Latte more easily
  • In this way, nobody's time is wasted, as the members of that QA group should only report bugs, and mvourlakos con work on Latte
  • Some months before Plasma 6, we ask all the members if latest Latte version is flawless for them and without any regression (and, eventually, anybody can check as well really!)
  • If they say that it's perfect, then it would probably be a good idea to ship it by default with Plasma 6, without downsides. Everybody gets something, so this is a win situation
  • If they say that it is still too buggy/slow/not-user-friendly/whatever, we keep Plasma Panels. Still, this would help improve Latte, and since nobody wasted their time anyway, this is also a win situation

Of course, this is just an idea I was considering, not an official/well-thought plan or whatever, so I'm really open to suggestions

There's another category of user you're missing: the productivity user. This person uses their computer for work. This person may or may not be a technical expert, but they know more about their computer than the novice. Because this person's computer is a work machine, they have better things to do than tweak things. This person is sensitive to good defaults and wants to be able to turn on the machine and immediately get to work. They may customize some things, but the customizations are more likely to be functional than visual. Because of this, if they go to customize something but find a huge number of visual tweak settings, they will get frustrated.

However clearly Latte's genesis was for people dissatisfied with the default appearance and functionality and wanting more control and a better look. So it makes sense that it targets tweakers and ricers. If Latte were to become the default panel solution, clearly it would be adapted to become more user-friendly for the default and productivity users.

I suppose the question is whether it makes more sense to make Latte more suitable for these people than it does to fix bugs in the default panel and add missing features to it, and accept that people who want more customizability and visual appeal can use Latte instead.

However clearly Latte's genesis was for people dissatisfied with the default appearance and functionality and wanting more control and a better look. So it makes sense that it targets tweakers and ricers. If Latte were to become the default panel solution, clearly it would be adapted to become more user-friendly for the default and productivity users.

I suppose the question is whether it makes more sense to make Latte more suitable for these people than it does to fix bugs in the default panel and add missing features to it, and accept that people who want more customizability and visual appeal can use Latte instead.

Personally, I think that it's technically easier to fix latte rather than plasma panel, especially since it's already quite user-friendly for beginners IMO. I guess you have the opposite opinion here?

There's another category of user you're missing: the productivity user. This person uses their computer for work. This person may or may not be a technical expert, but they know more about their computer than the novice. Because this person's computer is a work machine, they have better things to do than tweak things. This person is sensitive to good defaults and wants to be able to turn on the machine and immediately get to work. They may customize some things, but the customizations are more likely to be functional than visual. Because of this, if they go to customize something but find a huge number of visual tweak settings, they will get frustrated.

I had considered the productivity user as a Default user, but I get what you mean.

However clearly Latte's genesis was for people dissatisfied with the default appearance and functionality and wanting more control and a better look. So it makes sense that it targets tweakers and ricers. If Latte were to become the default panel solution, clearly it would be adapted to become more user-friendly for the default and productivity users.

I suppose the question is whether it makes more sense to make Latte more suitable for these people than it does to fix bugs in the default panel and add missing features to it, and accept that people who want more customizability and visual appeal can use Latte instead.

Personally, I think that it's technically easier to fix latte rather than plasma panel, especially since it's already quite user-friendly for beginners IMO. I guess you have the opposite opinion here?

Technically I have no idea actually. I'm not familiar with the codebase for wither Latte or Plasma panels. This would be a question for Plasma people.

gikari added a subscriber: gikari.Jan 13 2020, 10:28 PM
kkoma added a subscriber: kkoma.Jan 17 2020, 12:24 PM

There's another category of user you're missing: the productivity user. This person uses their computer for work. This person may or may not be a technical expert, but they know more about their computer than the novice. Because this person's computer is a work machine, they have better things to do than tweak things. This person is sensitive to good defaults and wants to be able to turn on the machine and immediately get to work. They may customize some things, but the customizations are more likely to be functional than visual. Because of this, if they go to customize something but find a huge number of visual tweak settings, they will get frustrated.

The productivity user described here would benefit a little from Latte's customization options. This is where the Advanced toggle really kicks in. If they only want to do minimal customization, and more functional than visual, the "Basic" mode is perfect for them. If they want more, they know to turn on Advanced mode and Advanced mode communicates clearly that they will have way more options to play with, so they expect it to be more cluttered.
Adding widgets is really easy without even opening Latte settings.

My addition is that I love the Plasma Panels customization overlay with the draggable handles and few buttons, but I love Latte's options and awareness of its surroundings. The benefit of the merge would be, according to my proposal, that when a Latte Panel is right-clicked, an "Edit Panel" option is shown, which brings up an edit overlay very similar to current Plasma panel editor. Inside are the "Add Widgets" and "Remove Panel" options, as well as a "More Options" button which opens the Latte config window of that specific panel. This would really harmonize with the KDE motto, and this way the merge wouldn't come as big a shock for people who are used to Plasma Panels. They would just think "Oh cool, panels have more options now and they are smarter". People who don't customize their panels would continue using their computers without noticing.

Of course for the merge to be feasible, Latte performance needs to be on par with Plasma performance (if it isn't already; benchmarks and profilings need to be done). Sane defaults have to be defined too, which cater for the needs of people in the Default/Productivity user category.

I also offer my help with testing Latte and translating to Hungarian.

Talking about replacing X with Y is a very binary decision to a non-binary problem.

There are things Latte does really well that are implemented well.
There are things that are more on the creative/R&D side of things that aren't in the same situation.

I would like us to work closer together and a Plasma6/KF6 is a good opportunity to see what ideas Latte had that we can see if we can do at a more correct layer (like the recolouring).
For Layouts and spacers I would like both of us sharing an implementation based on ContainmentLayoutManager. For panel awareness, I would like us all to be using an implementation of layer-shell.

On a more general point of view latte being the default for Plasma 6 would effectively mean latte moving forward would not have the freedom to do creative and experimental things. Upstream has to be safe, backwards compatible and "boring". That really stays as a question for @mvourlakos

alex-l added a subscriber: alex-l.Mar 8 2020, 7:53 PM

Please consider making Latte Dock just more integrated, for example presenting it as an "advanced panel" with its menu entry: right click on the desktop > add new panel > advanced panel. Maybe the process could still be "plasmashell" if possible. It could be shipped with an additional package ("plasma-advanced-panel" or something like that according to distro naming system) and each distro could decide to ship it by default or not. The release could be the same as Plasma to make clear that Latte Dock (or whatever would be it's name) 5.x.y is meant to work with Plasma 5.x.y. Maybe the layout manager could include classic Plasma panels.

Ok, my opinion on this...

Latte is an official kde project so I am not against it but I am a little skeptic about it. It would need massive work for Latte to become an official Plasma project. I am sorry but I can not personally guarantee my commitment. I prefer to not have time constraints because that is a hobby for me for my free time so I dont know if my involvement can follow the Plasma rhythms. Of course if such a decision is taken I will try to help as much as I can.

I would like us to work closer together and a Plasma6/KF6 is a good opportunity to see what ideas Latte had that we can see if we can do at a more correct layer (like the recolouring).

The recolouring is a good example... If Plasma provides an alternative solution of course and Latte will support it. only thing missing is a QML ColorScope that provides custom colours that can be set independetly of color groups. The colours/options that Latte is providing to applets can be observed at: https://phabricator.kde.org/source/latte-dock/browse/master/app/wm/schemecolors.h . The schemeFile property was needed from Window Buttons applet in order to forward it to KDecoration2 to paint its buttons.

For Layouts and spacers I would like both of us sharing an implementation based on ContainmentLayoutManager.

I dont know if this is feasible. The current Layout manager Latte is using was chosen in order to be able to survive with the Parabolic Effect. Any approach using GridLayout for applets like Plasma panels are doing could not survive with the parabolic effect. Instead, THREE independednt Grids where chosen for LEFT / CENTER / RIGHT applets placement. So what Latte is doing in order to support Plasma applets is that is REIMPLEMENTING the entire QML Layouts approach and it makes it work with Grids. Latte Justify Splitters are not really used in the Grids, they are only used in order to distinguish in which Grid each applet should be added. I have even found situations that Qt's Layouts where ignoring some Layout values from Layout.minimum/preferred/maximum/fill... that did not make any sense to ignore them...

For panel awareness, I would like us all to be using an implementation of layer-shell.

makes sense... except panel geometries lately I think that borders should be also provided through such API. It is the only way for panels to adjust to each other if they belong to different processes.

On a more general point of view latte being the default for Plasma 6 would effectively mean latte moving forward would not have the freedom to do creative and experimental things.
Upstream has to be safe, backwards compatible and "boring". That really stays as a question for @mvourlakos

yeah, I know... there are even chances that some of the features should be dropped...
I dont know if it would be feasible to split Latte in two different versions, one stable to be added in Plasma and one that could be on the edge...
The two versions could exchange code of course...

niccolove updated the task description. (Show Details)Mar 9 2020, 8:15 AM