[Kicker] Only show "Add to Panel (Widget)" When there's no Task Manager
ClosedPublic

Authored by ngraham on May 18 2018, 5:20 PM.

Details

Summary

Users get confused by the difference between "Pin to Task Manager" and "Add to Panel (Widget)", and we get bugs about this.

This patch resolves that confusion by only showing "Add to Panel (Widget)" when there's no Task Manager widget.

BUG: 390817
FIXED-IN: 5.14.0

Test Plan

Dragging-and-dropping an app from Kicker or Kickoff pins it to the Task Manager if there's a Task Manager, or creates a Panel launcher if there's no Task Manager.

Context menu items:

Task Manager, widgets unlocked:

Task Manager, Widgets locked:

No Task Manager, Widgets unlocked:

Task Manager, Widgets unlocked:

Diff Detail

Repository
R119 Plasma Desktop
Branch
no-add-to-panel-as-widget-when-theres-a-task-manager (branched from Plasma/5.13)
Lint
No Linters Available
Unit
No Unit Test Coverage
ngraham created this revision.May 18 2018, 5:20 PM
Restricted Application added a project: Plasma. · View Herald TranscriptMay 18 2018, 5:20 PM
Restricted Application added a subscriber: plasma-devel. · View Herald Transcript
ngraham requested review of this revision.May 18 2018, 5:20 PM
ngraham edited the test plan for this revision. (Show Details)May 18 2018, 5:21 PM
ngraham edited the test plan for this revision. (Show Details)May 18 2018, 5:28 PM
davidedmundson added inline comments.
applets/kicker/plugin/actionlist.cpp
156

I assume you have a second patch in p-f for this?

(which means this is Plasma 5.14 material)

ngraham added inline comments.May 19 2018, 12:47 AM
applets/kicker/plugin/actionlist.cpp
156

This patch worked just for me all by itself, so I wasn't aware this required a plasma-framework change (I just moved the conditional around a bit, basically). Did I miss something?

davidedmundson resigned from this revision.May 20 2018, 8:08 PM
davidedmundson added inline comments.
applets/kicker/plugin/actionlist.cpp
156

My bad.

Kicker had a class ContainmentInterface which was different from the containmentinterface is p-f. I knew the one in p-f didn't have the method, and got confused.

ngraham marked 3 inline comments as done.May 20 2018, 8:09 PM
mart accepted this revision.May 21 2018, 12:55 PM
mart added a subscriber: mart.

now became 5.14 for sure, but i think it's safe to go

This revision is now accepted and ready to land.May 21 2018, 12:55 PM
ngraham edited the summary of this revision. (Show Details)May 21 2018, 12:57 PM
ngraham closed this revision.May 21 2018, 12:58 PM
hein added a subscriber: hein.May 22 2018, 12:08 PM

I veto this patch, sorry. These are different features and they're both intended to be there. Task Manager pinning is not a replacement for permanent launchers.

That's disappointing to hear and a bit frustrating considering that it never came up in the Bugzilla ticket I filed months 3 ago, and the patch was approved by one Plasma developer and not objected to by another. Can I try to explain my reasoning before we revert it?

In my bug triaging and online user support, I encounter many people being confused by the distinction between panel launchers and pinned Task Manager icons. With the default settings (task manager on panele and unlocked widgets), Kicker/Kickoff's context menus show options for creating both. And they are similar, but not exactly identical:

  • Both live in the same part of the panel by default
  • Pinned apps become Task Manager buttons when launched; launcher widgets don't
  • Pinned apps display jump lists; launcher widgets don't
  • Pinned apps can be removed when widgets are locked; launcher widgets can't
  • Icon sizes and scaling policy differs between pinned apps and launcher widgets

To someone like you or me, these differences may be useful, because we understand them. To an average user, it just seems like a UI papercut. "Why are there two ways to do the same thing?" they initially wonder. Later on, as stumble across the differences (often by adding a launcher and then wondering why it doesn't have a jump list or turn into a Task Manager button when launched), they wonder "Why are these things so similar to one another? Why bother to have both?" I've seen a lot of people complain that launcher widgets seem like crippled versions of pinned launchers.

Again, you understand why both exist and what each one is good for. But to an average user, only one is needed, depending on the context. Otherwise we just confuse people. As such, I think keeping this patch not only fixes a usability issue, but also fixes a source of Bugzilla tickets, user support requests, and feelings of confusion about Plasma being "Too complex". Before this patch, it was not "Simple by default". With this patch, we reduce the confusion and regain "Simple by default", but retain "complex when needed" because technically adept users like us can still add launcher widgets whose properties and traits we understand via the other methods.

Does that make sense? I'm happy to clarify anything!

hein added a comment.May 22 2018, 12:54 PM

That's disappointing to hear and a bit frustrating considering that it never came up in the Bugzilla ticket I filed months 3 ago

I've never seen that ticket because it was filed against the wrong component and I wasn't CC'd on it. Making sure the relevant maintainer is in the loop is a good way to get feedback early and avoid frustration.

the patch was approved by one Plasma developer

This should be a lesson that a random "code looks good" accept doesn't always get patches in. If you don't have that expectation it also helps with frustration.

In my bug triaging and online user support, I encounter many people being confused by the distinction between panel launchers and pinned Task Manager icons.

Good, we should fix that. Not by taking features away people many like and rely on, though. And I know they do, because I too have interacted with users over the many years I've worked on the related features. Many users don't like launchers that disappear when launched because it conflates two things they regard as unrelated. This is e.g. why the Quick Launch applet is popular, too, because a lot of people don't realize there's "Add to Panel" and think Quick Launch is the only way to get this behavior.

A possible way forward would be a combo of this patch and a new "Always show" checkbox for TM launchers, but without some more work this means one additional setup step for people who want persistent launchers. TM launchers also have more constrains placed on them on where on the panel you can move them, which is also a problem this wouldn't fix. I'm therefore not really happy with this proposal. I guess it needs more discussion and thought.

Fuchs added a subscriber: Fuchs.May 22 2018, 12:56 PM

Maybe we need to discuss things, especially also with https://phabricator.kde.org/D12463 where I have an interest in, on a broader scale.

I agree that both need to exist and have different use cases, personally I think I'd only show the task manager pin in the context menu though, since the widgets are likely to be used by power users and placed manually where wanted.

Note that I am only somewhat happy with the task manager pinning as well, since in task manager you are forced to choose which activities it shall be pinned on, whilst in the context menu of kicker you only have the possibility to pin it to all of them.
(And personally I consider pinning to be activity dependant way more complicated than having both options to pin and have a launcher)

Christian's patch allows pinned Task Manager icons to be always visible, yeah. However, if we merge that but reject this, IMHO the situation becomes even more confusing for the average user. I think we really need to focus on the "Simple by default" side of the equation a bit more here. Presenting two subtly different ways to accomplish essentially the same thing--and putting them adjacent to each other in the UI--is just not a "Simple by default" UI, I think. That's just a recipe for confusion, and it feels very expert-friendly, but not very average-user-friendly.

If this patch isn't the way to go, I can accept that, but then I think we'd need to try to focus on reducing the confusion regarding launcher widgets vs pinned apps in another way.

As a side note, usage of the terms "kicker" and/or "kickoff" aren't user-friendly at all. They're basically internal names and aren't mentioned in any user-facing text. I'm not trying to hijack the issue; this is just one of those barriers to entry we should try to knock down for newcomers.

hein added a comment.EditedMay 22 2018, 3:08 PM

And personally I consider pinning to be activity dependant way more complicated than having both options to pin and have a launcher

I'm also very unhappy with this hyper-complicated context menu. It made it in because everyone was getting impatient on this feature being merged after it took many cycles, but I said at the time I would like the context menu to be treated as placeholder and overhauled/simplified later. Particularly the UX of unpinning is so difficult with all these checkboxes.

Christian's patch allows pinned Task Manager icons to be always visible, yeah.

But it also has a behavior change for running apps (which I am personally not a huge fan of because it complicates the system, but the argument that it could finally get apps out of the tray is somewhat compelling).

That's just a recipe for confusion, and it feels very expert-friendly, but not very average-user-friendly.

In that case I would honestly argument for dropping Task Manager pinning entirely: I've never entirely liked that it complicates the Task Manager toward doing multiple things, and that makes it have to contend with having different-sized items, and that means launchers aren't just straight-forward panel items that can be moved anywhere (this gets a lot of user bug reports too btw). It straight up breaks Plasma's panel semantics by having an applet decide it's special and subsume something.

Except people want dock-like behavior for the launcher-to-window lifecycle.

That's how we arrived at this duality, and why pinning an app to the TM and adding an app to the panel are two different things.

Fuchs added a comment.May 22 2018, 3:16 PM
In D12969#266503, @hein wrote:

In that case I would honestly argument for dropping Task Manager pinning entirely: I've never entirely liked that it complicates the Task Manager toward doing multiple things, and that makes it have to contend with having different-sized items, and that means launchers aren't just straight-forward panel items that can be moved anywhere (this gets a lot of user bug reports too btw).

Oof. As a user of icon-only task manager I heavily rely on pinned tasks, as they work great for muscle memory and otherwise the task manager is just an empty waste of space.
And I don't think it's only a lack of feature parity, if you have launchers and a task manager you end up with two entries if the application is running, and for icon-only task manager both of them will look almost the same (except the little bar showing it is a window).

Personally I'd rather get rid of the launcher widget thing, since this is also what Windows does and, as far as I am aware, what Mac OS does (I don't use a Mac, but I think the dock there is mostly this)

I assume this is one of the areas where lot of people have different workflows (i.e. I would never use the "icon only" thing I wrote myself, but multiple people asked for it and it seems to greatly improve their efficiency) and thus we have loads of options.
Personally I am in favour of keeping most of them if possible, just with sane defaults and also (more) sane ways of accessing them.

So I would prefer some discussion and mind-mapping before throwing more patches at it, as this will spread the discussion over various places.

The idea was that nobody who uses a task manager would actually want to create launchers instead of pinning their apps to it. Perhaps that was not totally true, but with Christian's patch, I think it can become even more true, because the patch addresses the case where someone wants the app's icon to never move or disappear once launched.

If we deleted pinned Task Manager app items in favor of launcher widgets we would lose some of the current functionality provided by pinned TM apps:

  • Jump lists in context menu
  • Ability to remove the icon when an instance is open in the Task Manager
  • Ability to re-order or remove even when widgets are locked

With an Icons-Only Task Manager, there's even less of a reason to remove the pinned apps concept because they are arbitrarily re-orderable.

But that said, I don't think we can remove standalone launchers entirely. It's totally fine functionality, so long as you don't get it mixed up with what the Task Manager does. The purpose of this patch was to simply hide the standalone launcher functionality a little bit so that people who want it have to go out of their way to get it, instead of getting confused when they pin some apps, and create launchers for others, and have no idea why the two don't behave the same.

hein added a comment.May 22 2018, 3:29 PM

Widget-based launchers do have jump lists, fwiw

In D12969#266528, @hein wrote:

Widget-based launchers do have jump lists, fwiw

Hmm, I don't see them in git master or in any other version of Plasma that I've ever used.

hein added a comment.May 22 2018, 3:39 PM

The purpose of this patch was to simply hide the standalone launcher functionality a little

Isn't it more than "a little" though? What other way to add apps to the panel now remains other than DND, which many people never attempt?

Hmm, I don't see them in git master or in any other version of Plasma that I've ever used.

A bug maybe?

[eike@ehl1 ~/devel/src/kde/workspace/plasma-workspace/applets/icon (arcpatch-D12069) 5]$ grep -inR jump *
iconapplet.cpp:304:    m_jumpListActions.clear();
iconapplet.cpp:323:        m_jumpListActions << action;
iconapplet.cpp:375:    actions << m_jumpListActions;
iconapplet.h:71:    void jumpListActionsChanged(const QVariantList &jumpListActions);
iconapplet.h:92:    QList<QAction *> m_jumpListActions;