Add default shortcut to switch to the desktop to the left/right/top/bottom
ClosedPublic

Authored by GB_2 on Sep 28 2019, 10:31 AM.

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
GB_2 created this revision.Sep 28 2019, 10:31 AM
Restricted Application added a project: KWin. · View Herald TranscriptSep 28 2019, 10:31 AM
Restricted Application added a subscriber: kwin. · View Herald Transcript
GB_2 requested review of this revision.Sep 28 2019, 10:31 AM
romangg requested changes to this revision.Sep 28 2019, 1:33 PM
romangg added a subscriber: romangg.

I'm in favor of adding new shortcuts but I want to see a full usability concept on how they are meant to work together with existing ones and how the user interaction is supposed to look. Just copying patterns from other systems is not sufficient.

For example I have set my VD switching keys to Meta + WASD (and move window to VD to Shift + Meta +WASD) because that way I can switch without taking my right hand from the mouse. That's only my personal preference and comes from me using it very often. But similar thought including an usage analysis must be put into an overall concept when changing or setting new default keys. Because you should do it only once.

This revision now requires changes to proceed.Sep 28 2019, 1:33 PM

+1 for setting default shortcuts for this.

In general, apps don't use the Meta key for their shortcuts, while the shell does. As far as I know this is not a formal standard, but rather a de-facto one. I think it would benefit us to formally settle on this ourselves, or else we'll have the same conversation every time someone proposes adding a new global shortcut.

thiagosueto added a subscriber: thiagosueto.EditedOct 3 2019, 1:46 PM

My take on this:

One issue I experienced while assigning "Switch to VD above/below/left/right" and "Switch to next/previous VD" myself is that the 4 arrow keys are incredibly valuable for desktop environments that use a 2D VD model, that is, environments where you can switch between two axes, up/down and left/right. In addition, arrow keys are close both in semantic and physical manner, which makes them perfect for 2D navigation with windows and VDs. The issue here is that if you set "Switch to next/previous VD" to arrow keys, "Switch to VD above/below/left/right" can't make use of arrow keys.

Windows, OSX, i3 and GNOME all use a 1D model for virtual desktops. I believe keyboard shortcuts should be assigned in accordance to the model the desktop environment uses; that can of course have exceptions, for instance, for the sake of familiarity (which is the case) though I'm not fond of using just familiarity as a reason for this sort of change.

This sort of combo (Ctrl+Meta+arrow) makes sense, but if you set it for Next/Previous, you'd be missing the opportunity of setting the entirety of the four arrow keys to a set of four close functionalities, namely Switch to VD above/below/left/right, and would require setting the combo Ctrl+Meta+up/down to something else which has 2 similar functionalities instead of four. The problem with this is that there isn't a pair of keys on the keyboard that would work well with Next/Previous aside from Left/Right. PageUp and PageDown, for instance, would typically be expected to descend immediately below and above like in GNOME, not e.g. switching diagonally if the user has 4 VDs or more.

What can be done in order for this to make sense in Plasma's context is also set Switch One Desktop Up and Switch One Desktop Down since, analogously, Next/Previous and left/right usually intersect, but that is rather clunky. What if the user has 6 VDs arranged like 1, 2, 3 on the upper side and 4, 5, 6 on the lower side, and want to switch from 6 to 4 using Switch One Desktop Right? It might also be more intuitive to set up/down/left/right instead of up/down/Previous/Next, especially if the user prefers to use a vertical VD layout (users coming from GNOME might like this), in which case using the left and right keys make no sense for transitioning between desktops.

A rebuttal to my criticism of up/down/left/right being more intuitive is that intuitiveness can also be broken for the "better option", like GNOME devs usually affirm. For instance, they have Meta+Left/Right for snapping windows, but Meta+Up/Down for maximizing/restore, which breaks the intuitiveness of snap up/down/left/right because snapping a window up or down is either niche or is not the best arrangement of windows if your screen monitor isn't huge, and because maximize/restore are way more used functionalities.

Anyway, this is one of those keyboard shortcut changes that must be taken as a whole instead of in small parts. Could decision-making on this be postponed at least a week? I was going to more accurately address these things with my posts on GNOME soon. This requires discussion first.

EDIT: corrected dimension numbers

That's an excellent point, @thiagosueto, and one I hadn't considered.

Maybe we could use the PageUp/PageDown keys with some combination of modifiers for next/previous virtual desktop?

GB_2 updated this revision to Diff 67316.Oct 4 2019, 11:18 AM

Set left/right/up/down action shortcut instead

GB_2 retitled this revision from Add default shortcut to switch to next/previous desktop to Add default shortcut to switch to the desktop to the left/right/top/bottom.Oct 4 2019, 11:21 AM
ngraham accepted this revision.Oct 4 2019, 11:42 AM

This makes sense to me.

Why not meta+wasd for example?

WASD is something that only gamers know. IMO it's not an appropriate default for regular users.

GB_2 added a comment.EditedOct 4 2019, 11:58 AM

Why not meta+wasd for example?

  • WASD isn't really used anywhere in Plasma or other desktops/operating systems, but in games
  • WASD is much less clearer than the arrows and we already use the arrow keys for other functions
  • this patch has the same shortcut as on Windows, so people will be familiar with it

We don't need to copy other systems all the time. We can establish our own patterns when it makes sense.

And as long as we do that in a holistic way, i.e. not through singular patches without overall plan changing one default at a time.

That wasd pattern is not used in Plasma but in games is not a counterargument but only shows:

  1. That we might miss out here on something
  2. That it's a proven concept.

Also I don't like overloading the arrow keys with functionality such that you need to remember unrelated modifier keys for when does it what.

If Microsoft does it they are free to do it, but it's still bad.

We don't need to copy other systems all the time. We can establish our own patterns when it makes sense.

I agree. I fear it might be too niche, but on the other hand, this might make Plasma more interesting for gamers.

And as long as we do that in a holistic way, i.e. not through singular patches without overall plan changing one default at a time.

Yes, this sort of keyboard shortcut must be decided on a later date, me thinks.
My bad though: I mentioned it makes sense, but this statement is empty without justification. I was envisioning something like:

  • Meta+arrow = snapping windows
  • Meta+Ctrl+arrow = switch to VD (because it changes where you start managing windows)
  • Meta+Shift+arrow = move window between screens (because the window gets transferred)
  • Meta+Alt+arrow = change focus between windows (because it changes their state)

This should be discussed and counterpoints should be made though. For instance:

Also I don't like overloading the arrow keys with functionality such that you need to remember unrelated modifier keys for when does it what.

This is my fear as well.

We don't need to slavishly copy other platforms, that's true. But we should also be wary of deviating too far from the familiar. Both can be a failure mode, depending on the circumstance.

I can see the appeal of Meta+WASD. It's a very efficient single-hand keyboard shortcut combo that cleverly re-uses a directional metaphor popularized by video games. It feels "unique" and if it gets implemented and gains popularity, the kinds of people who read tech blogs and try Linux distros for fun will remark, "hey, that's kind of clever."

But like all trade-offs between efficiency and accessibility, you need to strike a balance appropriate to your audience. Cleverness that's lost on or inaccessible to your users isn't actually clever at all. There's a reason why most default settings are kind of dumb and not tuned for maximum efficiency: because they're more approachable and discoverable.

Now, we're talking about virtual desktop switching keyboard shortcuts. Ordinary users don't use virtual desktops and don't use many keyboard shortcuts outside of cut/copy/paste. So our audience is already far above average technically. So we should ask: what keyboard shortcut is this audience most likely to 1) discover and 2) appreciate?

Being a clever single-handed combo, Meta+WASD actually seems quite easy to appreciate for me, so we have #2 already. However the trick is discovering it in the first case (#1). The only visible UI by which you can discover this shortcut is in the Global Shortcuts KCM which has awful usability and in general people don't trawl through it to find shortcuts. So it should be discoverable through trial and error. The question is, will people discover Meta+WASD through trial and error?

To my knowledge no other keyboard shortcut uses this pattern (using the WASD keys as a substitute for the arrow keys), so it's not going to be on the top of people's minds. By contrast the arrow keys are used on all other platforms, with some combination of modifier keys. Speaking personally, if I was trying to discover a platform's virtual desktop keyboard shortcuts, I would do the following:

  1. Meta+arrows (seems intuitive, I have a concept that Meta is for global shortcuts and the arrow keys are commonly used with modifier keys for switching virtual desktops)
  2. If that didn't work, Meta+Ctrl+arrows. This is what Windows does, and we already implement a few Windows shortcuts, so it doesn't seem implausible)
  3. If that didn't work, Meta+Alt+arrows
  4. I would not try Alt+arrows because I know Alt+left arrow is used for "Back" in web browsers and Dolphin, so it can't be a valid global shortcut
  5. I would not try Ctrl+arrows because even though it's what macOS uses, I know that this keyboard shortcut combination is used for moving the insertion point in a text editor on this platform
  6. I would not try any combination of modifier keys + WASD; it would never occur to me, because "use the WADS keys" is in my mental bucket for video games, not using a desktop environment. Those keys are the first thing I would try in a first-person video game, but the last thing I would try outside of it.

Anyway, I'm not formally objecting, because having a global shortcut (practically any global shortcut) is good. But I also know that once we set one of these, people get mad if we change it again, so we should try to avoid the "implement it and see if it works, and change it if it doesn't" dance that we can get away with for some other things.

One thing of note that is set by default on both XFCE and GNOME is Ctrl+Alt+arrows for moving between workspaces: in GNOME Ctrl+Alt+Up/Down switches between workspaces vertically and XFCE uses Ctrl+Alt+Up/Down/Left/Right to switch between workspaces both vertically and horizontally. Since we're switching to Meta as default for system/shell/desktop shortcuts, could Ctrl+Alt+arrows be set as an alternative (as Plasma allows for two keyboard shortcuts for the same action through the GUI)?

Purely as an observation this will break any user that has:
https://github.com/lingtjien/Grid-Tiling-Kwin

It's not part of KDE by default, but then nor is having more than one virtual desktop.

GB_2 added a comment.Dec 8 2019, 12:17 PM
This comment was removed by GB_2.
GB_2 added a comment.Dec 14 2019, 2:49 PM

Hmm, Ctrl+Alt+Arrows can also break things like Konsole (https://cgit.kde.org/konsole.git/tree/src/ViewManager.cpp#n237) and Meta is more appropriate for desktop/window management shortcuts, so less likely to break other applications that are not desktop add-ons.

Purely as an observation this will break any user that has:
https://github.com/lingtjien/Grid-Tiling-Kwin

It's not part of KDE by default, but then nor is having more than one virtual desktop.

If I'm understanding the documentation at https://github.com/lingtjien/Grid-Tiling-Kwin, that script doesn't actually set Meta+Ctrl+arrows as shortcuts, it just recommends that the user does it.

In D24281#577593, @GB_2 wrote:

Hmm, Ctrl+Alt+Arrows can also break things like Konsole (https://cgit.kde.org/konsole.git/tree/src/ViewManager.cpp#n237) and Meta is more appropriate for desktop/window management shortcuts, so less likely to break other applications that are not desktop add-ons.

Right, that's exactly why we should use Meta for this, and use Meta for global shortcuts more generally. I really think the shortcuts proposed in this patch are just fine and we should move forward. No other alternative shortcut proposed here works:

  • Meta+WASD is unintuitive and requires re-binding Meta+D which is used for Show Desktop
  • Ctrl+Alt+arrows is semantically wrong since it doesn't use the Meta key and interferes with Konsole and potentially other apps

IMO we should consider going forward with this otherwise we'll get stuck in the weeds forever trying to come up with something

davidedmundson accepted this revision.Dec 15 2019, 11:23 AM

Meta+Ctrl+arrow = switch to VD (because it changes where you start managing windows)

If thiago is doing the big shortcuts overhaul and says to do this, lets do it.

Also I don't like overloading the arrow keys with functionality such that you need to remember unrelated modifier keys for when does it what.

The alternative is remembering which keys are spatial, which would be a bigger problem.

This revision was not accepted when it landed; it landed in state Needs Review.Dec 15 2019, 12:36 PM
This revision was automatically updated to reflect the committed changes.
romangg reopened this revision.Dec 15 2019, 2:29 PM

If thiago is doing the big shortcuts overhaul and says to do this, lets do it.

He didn't say this. He said it needs to be discussed more and that he is also worried about overloading the arrow keys.

I am still against this change:

  • This just changes a singular aspect of overall window and VD management and associated shortcuts. The change of keys combinations need to be planed, agreed on and then done together. We did not come to a resolution overall.
  • The arrow keys are way too overloaded now with multiple meanings depending on shortcut being pressed. Unfamiliar users accidentally pressing the wrong combination might end up in a state they do not expect and don't know how to recover from directly (for example moving a window to another VD).
  • The shortcuts here need both hands. A workflow with quick switching of windows between different VDs is not possible.
  • VDs are an advanced concept, so we can offer advanced solutions instead of just copying other system's poor default behavior.
  • The argument brought for earlier that we must rely in our default shortcut selection on users finding them via trial-and-error because of our unintuitive shortcuts KCM is misguided and it is revealing. If that's the current state then we must change that first and not create upon this miserable premise overloaded shortcuts so that users might brute force their way to them.

My goal is to bolster the usefulness and acceptance of VD-centric workflows long-term. For that switching between VDs and moving windows between VDs needs to be convenient and fast. Currently this is not the case since it is only possible via an (often very small) applet in the task manager and through a context menu on window decorations. Sensible shortcuts could improve this situation but for these I expect them to be usable via one hand and with the opposite hand of the mouse hand (normally this means they are accessed with the left hand) so user can leave his mouse hand on the mouse. If in the end the combination is Meta+WASD or something else does not matter to me. These are the restrictions I put upon a solution to be found.

Oh ffs. Everybody agrees about Arrow keys, I call WASD bullshit.

This is a perfect-is-the-enemy-of-the-good situation. If we hold out for something perfect, we'll never have anything at all here for the next 5 years, and everyone knows it. This is a pain point, we have a chance to fix it easily, I say let's fix it and move on with life.

This just changes a singular aspect of overall window and VD management and associated shortcuts. The change of keys combinations need to be planed, agreed on and then done together. We did not come to a resolution overall.

See the task thread. There is a plan, this is the only option that won't cause conflict elsewhere. I wouldn't have approved otherwise.

Unfamiliar users accidentally pressing the wrong combination might end up in a state they do not expect and don't know how to recover from directly (for example moving a window to another VD).

Plasma only has one VD by default. This no-ops by default.

The shortcuts here need both hands. A workflow with quick switching of windows between different VDs is not possible.

So then they won't press it by accident? Also it's spatial, which means arrow keys work best. That's a pretty established pattern.

Sorry for being late to respond.
My two main concerns are whether the modifier keys are suitable *and* that we stay consistent on them.
What we have seen so far:

In general, apps don't use the Meta key for their shortcuts, while the shell does.

I verified that the first part of this is not true. Other DEs and distro implementations such as Xubuntu use the rule Meta+(first letter of application functionality).

Also I don't like overloading the arrow keys with functionality such that you need to remember unrelated modifier keys for when does it what.

This seems to be unavoidable from what I've seen. So far, GNOME, XFCE and MATE did not manage to make things consistent in this regard, each appealing to some complex alternative just so as to compensate the lack of keys available for the huge amount of functionality. GNOME includes an alternative to Meta+arrows by using Ctrl+Alt+PgUp/Down, XFCE tried to do the opposite of Plasma, using Ctrl+Alt+arrows/PgUp-PgDown for system shortcuts and Meta for applications in addition to an extensive use of F# keys, MATE by using Ctrl+Alt to the max and simply not assigning other keyboard shortcuts, and Cinnamon simply sacrificed as much keyboard shortcuts as possible.
The main issue I see here is that we will likely end up having a four-key keycombo eventually, which I disapprove of but is not the end of the world.

  • Meta+WASD is niche
  • Meta+WASD requires unbinding Meta+D
  • Meta+arrows for switching between DEs would require unbinding window snapping
  • Meta+Alt+arrows requires unbinding switch focus, whose functionality I personally like
  • Meta+Ctrl+Shift+arrows is a four-key keycombo, so should be used for the most niche navigation purposes
  • Ctrl+Alt+arrows can interfere with Konsole, which is a core KDE application

Unfamiliar users accidentally pressing the wrong combination might end up in a state they do not expect and don't know how to recover from directly

This may be partially avoidable with the progressive increase in the number of keys. Assuming we have Meta+Ctrl for switching between workspaces and Meta+Ctrl+Shift for moving a window between workspaces, it would be more difficult (although marginally due to the proximity between Ctrl and Shift) for the user to press Meta+Ctrl+Shift than it is to press Meta+Ctrl. Generally speaking, the reason people use two-key keycombos is so that people don't accidentally activate functionality with a single touch. Three-key keycombos are inherently harder to press accidentally than only two keys. In this case, while the distance between Ctrl and Shift is problematic, the distance between Ctrl and Meta are not.

The shortcuts here need both hands. A workflow with quick switching of windows between different VDs is not possible.
for these I expect them to be usable via one hand and with the opposite hand of the mouse hand (normally this means they are accessed with the left hand)

Using two hands is desirable if we consider RSI, it reduces strain by letting both hands share the workload.

I see this as a balance between being practical/efficient and being healthy, so I weigh both typing with one hand and typing with both as being on the same level, as long as the keyboard shortcut isn't an abomination like Meta+Ctrl+Tab or Ctrl+Alt+Tab. That said, all DEs I checked so far use at least two hands to navigate and move windows between workspaces, so this requirement is a bit off the charts.

The only consistent way to switch between workspaces with one hand are Meta+WASD and Meta+1-4, and I don't think they're practical or needed.
I'd say we go with Meta+Ctrl+arrows for this one.

Sorry for being late to respond.
My two main concerns are whether the modifier keys are suitable *and* that we stay consistent on them.
What we have seen so far:

In general, apps don't use the Meta key for their shortcuts, while the shell does.

I verified that the first part of this is not true. Other DEs and distro implementations such as Xubuntu use the rule Meta+(first letter of application functionality).

Yea, but independent of what other desktops do we should make sure Meta in the future is a window-manager/shell-exclusive key. Apps are not allowed to use it in any form. If we want to ensure that we need to stick to it. On the other side apps are allowed to use any combination of Alt, Ctrl, Shift with some well defined exceptions (for example Alt + Tab).

Also I don't like overloading the arrow keys with functionality such that you need to remember unrelated modifier keys for when does it what.

This seems to be unavoidable from what I've seen. So far, GNOME, XFCE and MATE did not manage to make things consistent in this regard, each appealing to some complex alternative just so as to compensate the lack of keys available for the huge amount of functionality. GNOME includes an alternative to Meta+arrows by using Ctrl+Alt+PgUp/Down...

Having as defaults several alternatives I want to get rid of completely. If one can't decide on proposing a single shortcut one should not set any. I'm open for discussion though. Are there good examples where it's definitely necessary to have several alternatives defined?

XFCE tried to do the opposite of Plasma, using Ctrl+Alt+arrows/PgUp-PgDown for system shortcuts and Meta for applications in addition to an extensive use of F# keys, MATE by using Ctrl+Alt to the max and simply not assigning other keyboard shortcuts, and Cinnamon simply sacrificed as much keyboard shortcuts as possible.
The main issue I see here is that we will likely end up having a four-key keycombo eventually, which I disapprove of but is not the end of the world.

  • Meta+WASD is niche

That's fine. We have power, we can un-niche it.

  • Meta+WASD requires unbinding Meta+D

Which should have not bound in the first place. But yea, that's now a valid counter-argument.

  • Meta+arrows for switching between DEs would require unbinding window snapping
  • Meta+Alt+arrows requires unbinding switch focus, whose functionality I personally like
  • Meta+Ctrl+Shift+arrows is a four-key keycombo, so should be used for the most niche navigation purposes
  • Ctrl+Alt+arrows can interfere with Konsole, which is a core KDE application

Unfamiliar users accidentally pressing the wrong combination might end up in a state they do not expect and don't know how to recover from directly

This may be partially avoidable with the progressive increase in the number of keys. Assuming we have Meta+Ctrl for switching between workspaces and Meta+Ctrl+Shift for moving a window between workspaces, it would be more difficult (although marginally due to the proximity between Ctrl and Shift) for the user to press Meta+Ctrl+Shift than it is to press Meta+Ctrl. Generally speaking, the reason people use two-key keycombos is so that people don't accidentally activate functionality with a single touch. Three-key keycombos are inherently harder to press accidentally than only two keys. In this case, while the distance between Ctrl and Shift is problematic, the distance between Ctrl and Meta are not.

True, my argument was not very convincing.

The shortcuts here need both hands. A workflow with quick switching of windows between different VDs is not possible.
for these I expect them to be usable via one hand and with the opposite hand of the mouse hand (normally this means they are accessed with the left hand)

Using two hands is desirable if we consider RSI, it reduces strain by letting both hands share the workload.

I see this as a balance between being practical/efficient and being healthy, so I weigh both typing with one hand and typing with both as being on the same level, as long as the keyboard shortcut isn't an abomination like Meta+Ctrl+Tab or Ctrl+Alt+Tab. That said, all DEs I checked so far use at least two hands to navigate and move windows between workspaces, so this requirement is a bit off the charts.

On the other side this argument does not convince me. Neither in regard to health aspects nor what other DEs do. Regarding first aspect common actions are never done via both hands besides typing itself. For example look at Alt+Tab and CTRL+X/C/V. I also don't think it's a good idea in general to try to "heal" the user's potential RSI by defining two-hands shortcuts. Every user is lazy (like he should be) and will try to find a way to minimize moves either by finding ways around the artificial obstacles or by not using the shortcut at all. Instead we should make user interaction maximal convenient and the user will adapt his working style for better health on his own.

The only consistent way to switch between workspaces with one hand are Meta+WASD and Meta+1-4, and I don't think they're practical or needed.
I'd say we go with Meta+Ctrl+arrows for this one.

I did read all your blog posts analyzing other DEs in comparision to Plasma and I really appreciated them. But that was a view of the status quo and while it is absolutely important to be knowledgeable about that status quo/prior art I don't only want to look at that, but at where we want to head next. VDs have an interesting future in my opinion and I want to push their usefulness and ubiquity not only on the desktop but also on mobile and other devices. So how can VDs be interpreted on mobile/embedded devices, how in VR/AR? What new interaction patterns do we need here? On the other side Activities never really took over. On Wayland Activites are even still not supported because no dev feels they are important enough. So how can we push their perceived importance or should they be abandoned? How should Activites and VDs relate in the future?

These all seem to be rather big questions in comparison to simply setting a single default shortcut and I can understand that not everybody follows me on that. But to me these shortcut do not feel to go into the right - into a new - direction. They do not feel innovative at all. But that's where I want to move our discussion about VDs and Activites.

The fact that the proposed shortcuts are not innovative is precisely the point. Shortcuts do not need to be innovative. They need to be consistent, logical discoverable, and ergonomic. What's proposed in this patch is:

  • Consistent: It's what Windows does, which is a feature, not a bug. Easing the transition for users coming from our biggest major competitor is a good thing. This is something we would not have with the proposed alternative Meta+WASD shortcuts.
  • Logical: Using the arrow keys makes sense for shortcuts related to spatial navigation. This is true of the proposed alternative Meta+WASD shortcuts, but using the WASD keys for spatial navigation is something familiar only to gamers as opposed to 100% of the computer-using population.
  • Discoverable: Not particularly discoverable because we do not have more than one VD by default and you need to dig through the KCM to find it. But this is the case for every shortcut. And it is rendered more discoverable by the fact that it uses the same shortcut as Windows and uses the arrow keys for a task related to spatial navigation. This would be untrue of the proposed alternative Meta+WASD shortcuts. I don't believe anyone would ever think of hitting the WASD keys while holding down the Meta key while trying to find the system's virtual desktop switching shortcuts.
  • Ergonomic: Meta+Ctrl+arrow is a two-handed shortcut which is indeed not ideal; the proposed alternative Meta+WASD shortcuts would be superior here. However given that we want to use the Meta key for global shortcuts, and given that most keyboards only have one Meta key on the left side, if we limit ourselves to only Meta+keys on the left side of the keyboard, then we have crippled ourselves by leaving half of the keyboard off-limits. This doesn't make sense to me, and therefore saying that it needs to be a one-handed keyboard shortcut no matter what also does not make sense to me.

I don't have a dog in this fight: I don't use multiple virtual desktops and I don't care what the shortcut is personally, and I must admit that I do like the cleverness of the proposed Meta+WASD shortcuts, being familiar with that pattern from video games and having only a left Meta key on my keyboard.

However I believe the above analysis clearly points to a winner, and it's the shortcuts that this patch implements.

Just a remark: WASD is very keyboard layout dependent. For AZERTY keyboards (as used in France for instance) this is completely broken, and something any gamer has to always change manually (to ZQSD) if not already done automatically by the game (which may games do)
Arrows on the other hand are much less layout dependent.

GB_2 added a comment.Dec 17 2019, 6:01 PM

Just a remark: WASD is very keyboard layout dependent for instance, for AZERTY keyboards (as used in France for instance) this is completely broken, and something any gamer has to always change manually (to ZQSD) if not already done automatically by the game (which may games do)
Arrows on the other hand are much less layout dependent.

Woah, I didn't even think about that. This would be a deal breaker.

ognarb added a subscriber: ognarb.EditedDec 17 2019, 10:16 PM

Problem I see with Meta + WASD is that this doesn't take into account other keyboard layout (e.g my French keyboard layout).

Edit: I missed the comment from Hugo :/

@ognarb: this was just pointed out by @hpereiradacosta as well. But you both are right that this is a technical issue one has to take into account. But I don't think it is much more than that. Still it complicates using such "letter-patterns" of course.

Meta+Control+Arrows aren't my favorite either; my preference would be to go back in time and put a Meta key on the right side of all PC keyboards (like Mac keyboards have) so that Meta+Arrow shortcuts are all reachable with a single hand, but sometimes you need to deal with an imperfect reality and admit when something that's better than nothing is doable and the ideal thing isn't.

@romangg since you seem to like Meta+WASD a lot, I think you should re-bind whatever defaults get set to this yourself. That's why keyboard shortcuts are re-bindable, after all. The people we should care least about satisfying with the defaults are the people most opinionated and able to change them (e.g. ourselves).

GB_2 added a comment.Dec 21 2019, 6:10 PM

Can we please move on with this shortcut then as it's the better default for most people?

I know it's the holiday season and we're all short on KDE time, but it rubs me the wrong way to revert a change pending further discussion only to then abandon the discussion. I feel that all the arguments against the Meta+Control+Arrow shortcuts have been refuted over and over again, and no alternative has been proposed that's considered superior.

I propose moving forward with this patch in its current form if no new arguments emerge by December 28th.

romangg requested changes to this revision.Dec 23 2019, 2:28 PM

I know it's the holiday season and we're all short on KDE time, but it rubs me the wrong way to revert a change pending further discussion only to then abandon the discussion. I feel that all the arguments against the Meta+Control+Arrow shortcuts have been refuted over and over again, and no alternative has been proposed that's considered superior.

I propose moving forward with this patch in its current form if no new arguments emerge by December 28th.

There are no arguments to be refuted. I made a strategic decision to not go forward with these direct shortcut copies from Windows. And instead encourage more thought being put into innovative concepts in the future.

I am sorry for the strain that puts onto OP but we have at the moment a tendency in KWin (and in my opinion overall Plasma) to go for the least exceptional solution and instead just aim for already elsewhere established, crowd-pleasing, convenient ones. While I support this attitude in most circumstances, especially for a software product being in a late phase of its life-cycle, we need to push the boundaries as well in few limited areas. I identified VDs/Activities as such an area.

This revision now requires changes to proceed.Dec 23 2019, 2:28 PM

I am sorry for the strain that puts onto OP but we have at the moment a tendency in KWin (and in my opinion overall Plasma) to go for the least exceptional solution and instead just aim for already elsewhere established, crowd-pleasing, convenient ones.

A counter-argument to this: Meta+Ctrl is not a common standard in Windows as it is inconsistent, whereas in Plasma it could be more consistent. See: https://support.microsoft.com/en-us/help/12445/windows-keyboard-shortcuts

  • Windows 10 was the one to introduce Virtual Desktops and the only one which includes keyboard shortcuts for it, and it clearly shows when you consider the Meta key is used for different system functionality with no apparent consistency
    • Windows+B changes focus to notification area, Windows+E opens an application, namely Explorer, Windows+H initiates an accessibility feature, namely dictation
    • Windows+Ctrl+F searches for PCs in a network, Windows+Ctrl+Enter turns on narrator, Windows+Ctrl+Q runs an application named Quick Assist
    • Windows+Shift+C opens the side menu, Windows+Shift+M restores minimized windows, Windows+Shift+Left/Right moves windows between monitors
  • Windows uses a 1D environment, Plasma uses a 2D/3D environment
    • Because there are more actions available on Plasma pertaining to 2D and 3D environments, Plasma has the advantage of assigning this specific semantic meaning to arrow keys; Windows cannot
  • The only virtual-desktop-related keyboard shortcuts are the two for moving between virtual desktops; there exists no keyboard shortcuts for common actions like move window to VD, which means they're unique to Linux/OSX

If we assume that the arrow keys being overloaded with meaning according to the modifier used is the least problematic solution possible, this would mean Meta+Ctrl can have proper/optimal/decent usage on Plasma which it cannot in Windows, despite the fact Windows had it first, and so it does not function as a mere copy. While individually the keyboard shortcut would be taken from Windows, the resulting set of navigation keyboard shortcuts in its entirety would not be a copy, it would be original.

That is: if the logic behind using Meta+Ctrl is

(we want a consistent set of navigation keyboard shortcuts) -> (we use Meta+Ctrl for moving between VDs) = (it is the better choice, hence we use it)

then it cannot be

(Windows 10 uses Meta+Ctrl for moving between VDs) -> (we use Meta+Ctrl for moving between VDs) = (we use it just because, and then we work around that)

Hence why my earlier proposal explicitly included the whole set for navigation (Meta, Meta+Alt, Meta+Ctrl, Meta+Shift) and why I recently made a table on T11520 for choosing the whole set based on Meta.

GB_2 edited the summary of this revision. (Show Details)Dec 23 2019, 5:03 PM
alexde added a subscriber: alexde.EditedDec 23 2019, 5:04 PM

Independetly of the modifier keys Meta + or Alt + Ctrl + , why don't we assign both ASWD and the arrow keys ←↑↓→ to move between the VDs?
There's probably a global alternative for a reason and I don't see any other action to be assigned to one of those in the near future. That way both parties would be happy.
If a user requires one of those hotkeys for a different action, it can still be changed individually.

Personally I'd prefer Alt+Ctrl as the Meta+Ctrl keys are very close together and not very comfortable to press at once.

Roman, I greatly respect and admire your technical skills, but I can't condone the attitude you're taking here. You aren't the KWin maintainer. This is a community process, and you do not get veto power. You don't get to "make strategic decisions" when you aren't the maintainer--especially when nobody likes your decision. That's not being a leader, it's being a bully.

Nobody likes your Meta+WASD idea and you have not proposed any alternatives, yet you are blocking this change (with authority you seem to believe you have, but in fact do not have) out of hope that something better will organically appear with more discussion.

But that isn't likely to happen, because KWin is not the kind of open and friendly project where innovation is possible. The attitude you've taken in the discussion for this patch is an example of why KWin is seen as a conservative, change-averse, and user-hostile project. The my-way-or-the-highway attitude actively discourages innovation and creativity, and instead contributes to people dreading submitting KWin patches due to foreknowledge of what a grueling, exhausting experience it will be. Those with the courage to try at all will go for the (perceived) least controversial change to avoid conflict rather than proposing anything bold, sweeping, or innovative.

If you want more innovation in KWin, then help make KWin a more friendly and welcoming project by being open to other people's ideas and proposals, accepting when the majority disagrees with you, and acknowledging that you won't always get your way. KWin is a KDE project; it belongs to all of us. We can't lose sight of that.

If you don't like this change, then propose something better and gain people's support for it. If you can't do that, then maybe it's time to listen to other people and accept the imperfect but acceptable change in this patch. It's not my favorite solution either, but I think it's better than nothing, and nobody has come up with anything better so far. IMO it's better then waiting for a perfect alternative that isn't likely to materialize.

I don't know if it is the proper place to add feedback, but setting Ctrl+Meta+Arrows for switching virtual desktops is the first thing I do on a fresh Plasma installation, and I know many many people alike (from YouTube!!), but I never remember anyone to be against of that; Also I think that Ctrl+Meta (rather Alt) is the correct way to go, because it is a Plasma Shell global action; Using both GNOME and Windows 10, I'd say that even naturally my hand goes to Ctrl+Super, plus considering that people are using both Windows and Linux is a plus; anyway +1 to the original proposal

@romangg, in T11520, @thiagosueto has proposed exactly the kind of comprehensive overview of all shortcuts that you requested. And Meta+Ctrl+arrows is what's currently listed for moving between virtual desktops. Since I know you're interested in looking at the keyboard shortcuts throughout KWin and Plasma from a 10,000 foot view, maybe you'd like to look at the overall plan in T11520 and see if it makes sense to you?

No response in a week, so I assume the plan there must be acceptable. Time to land this so it makes it in time for Plasma 5.18.

This revision was not accepted when it landed; it landed in state Needs Revision.Jan 13 2020, 4:56 PM
This revision was automatically updated to reflect the committed changes.

I had already stated my opinion numerous times here in lengthy explanations and said that I don't want to continue this discussion. And my opinion has not changed. I am working on other stuff as well as you might know and don't have time for these immensely frustrating and pointless opinion battles just because KWin is a headless project with multi-stakeholders having all kinds of say into what it should maybe be or not be.

Some people might think that this is the right modus operandi for KWin development. I think it's not and I will decide in the next few weeks what I will do as a consequence of that.