Paste dropped files and folders as text by default
ClosedPublic

Authored by ngraham on Apr 26 2018, 2:01 AM.

Details

Summary

When a user drags a file or folder onto the Konsole window, by far the
most common and likely thing they want to happen is for the path to
that item appear in the window. This is what virtually all other terminal
programs do by default. Konsole does not, and I suspect 99% of its
users do not know that this setting can be turned off, as I did not know
until I started digging through the code itself.

This patch makes the paste-as-text behavior happen by default for new
profiles. Super advanced users can re-enable the drag menu if they like it.
For most Konsole users, I think not having it presents vastly better
drag-and-drop usability and increases the speed of hybrid mouse+gui
operations. As such, I believe this is an important change for T6831: Top-notch usability and productivity for basic software.

I know changing defaults like this can be scary and controversial, but I
really do believe that the "paste as text" behavior is what 99% of drags
to konsole are intended for. It's not at all like Dolphin where a user may
reasonably want to copy or link instead of move.

FEATURE: 393523
FIXED-IN 18.08.0

Test Plan

Make a new user, open Konsole, drag a file or folder to the window; it's immediately pasted as text

Diff Detail

Repository
R319 Konsole
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
ngraham created this revision.Apr 26 2018, 2:01 AM
Restricted Application added a project: Konsole. · View Herald TranscriptApr 26 2018, 2:01 AM
ngraham requested review of this revision.Apr 26 2018, 2:01 AM
ngraham added a reviewer: VDG.Apr 26 2018, 2:02 AM
ngraham edited the summary of this revision. (Show Details)
ngraham added a subscriber: Plasma.

For reference https://bugs.kde.org/show_bug.cgi?id=304290

For determining default values, how do you about figuring "most people" and "99%"?

I'm not against this change per se; just wondering the best way to determine defaults.

That's a great question, Kurt! Generally I try to ask the following questions:

  1. "What do competing offerings have as the default settings?" Whatever that it, it's likely to be what users are most accustomed to and will expect. This should be weighted very heavily unless the industry standard is truly terrible and users hate it :)
  2. "What's the balance of complaints in Bugzilla tickets and online forums?" If the same issues get complained about over and over again, that's a pretty good indication that something should be changed.
  3. "What does my usability training say about the subject?" I'm really not trying to cast myself as an expert here, because there are always two sides to any argument. But I've studied this stuff for years.
  4. "What would be best for typical users of this program performing typical workflows?" This requires really putting yourself in the shoes of an average user of the program, and envisioning common workflows.

For this particular matter, here are my answers:

  1. Industry standard is paste-as-text by default, and it's not a default that users seem to hate.
  2. Online, I see more complaints in general about the KDE drag-and-drop menu then I do defense of it in response.
  3. Good defaults are key for usability. That means common actions should be easy, and uncommon actions should be possible. It's rarely a good trade-off to make common actions slower or more frustrating in exchange for making it easier to perform uncommon ones. All of this is neatly encapsulated with our "simple by default, powerful when needed" motto.
  4. Because of #1, most of the time someone drags a file or folder into Konsole, it's because they want to use it as an argument to a command-line program, because that's what they're used to doing in any other terminal program they've used (users of terminal programs tend to have experience with multiple platforms). This therefore becomes the common case we should make easy, per #3. Dragging an item to Konsole to move, copy, or link it is much less common because you'd be dragging from your file manager that can already easily accomplish these tasks. By displaying the drag menu by default, we burden the common workflow by making users click through it, for the benefit ofmaking the uncommon actions easier. Not a good trade-off, usability-wise.

Hopefully that explains my thought process a bit better!

BTW I see from the bug history that we've gone back and forth on this a lot. When it was mandatory, people wanted it gone. When it was gone, people wanted it back (tellingly, while admitting that they just wanted to paste paths 99% of the time). Once it was back, people wanted it gone again, so a configurable setting was added. Now that we have that setting, I think it makes sense to have it off by default to accelerate the common use case, while providing the option for the minority who want it.

Of note, I really, really like the "drop target" idea presented in https://bugs.kde.org/show_bug.cgi?id=160583:

Implementing something like that would probably please allow us to finally everybody. Also, allowing modifier keys to change the drop behavior even when the menu is off would be good too. But until then, I think turning the menu off by default and making it available to bring back is the humane and high usability course of action.

hein added a subscriber: hein.Apr 26 2018, 10:46 AM

I can't quite follow the discussion so far (also because my Konsole already seems to paste URLs on drop). Are you saying the current default is to show a Dolphin/FV-like drop menu with actions? I think that's nice for consistency, no? Then again apps like Konversation don't and Konsole is often used for chats, too.

In D12529#254227, @hein wrote:

I can't quite follow the discussion so far (also because my Konsole already seems to paste URLs on drop).

Sounds like maybe you or your distro turned off the menu?

Are you saying the current default is to show a Dolphin/FV-like drop menu with actions?

Yep!

I think that's nice for consistency, no? Then again apps like Konversation don't and Konsole is often used for chats, too.

Consistency is important when the use cases are the same or very similar. For Konsole, I think they're not. In a file manager, both moving and copying (also linking to a lesser extent) are very common actions. In a terminal, nearly all of the time, what you want to do is paste a path; using the terminal for direct file management via drag-and-drop is a very distant second, I think.

Friendly ping!

abetts added a subscriber: abetts.May 2 2018, 8:16 PM

I like this idea too. I wanted to ask, however, for extra evidence of this behavior. Maybe from other OSs. I would like us to have some good backing for the future, in case other people object. Only a procedural request.

I like this idea too. I wanted to ask, however, for extra evidence of this behavior. Maybe from other OSs. I would like us to have some good backing for the future, in case other people object. Only a procedural request.

The behavior I'm proposing to use as the default for Konsole is already the default for:

  • GNOME Terminal
  • XFCE Terminal
  • Terminator
  • ElementaryOS's Terminal
  • macOS Terminal
  • Windows command prompt
  • Window PowerShell

Konsole is the outlier here. This patch does not remove the feature; it only turns it off by default. People who like it can still turn it on and use it.

I'm fine with this - I wish phabricator had column marks as the commit message should be 72 columns or less. Is it worth editing the message here before committing it?

ngraham edited the summary of this revision. (Show Details)May 3 2018, 12:59 PM

Edited. Feel free to land this yourself if you want, or else I can--your choice!

hindenburg accepted this revision.May 3 2018, 1:06 PM

Thanks

This revision is now accepted and ready to land.May 3 2018, 1:06 PM
This revision was automatically updated to reflect the committed changes.