Opened 4 years ago

Last modified 4 years ago

#16513 new enhancement

[RFC] New shortcut preferences design

Reported by: nephele Owned by: nobody
Priority: normal Milestone: Unscheduled
Component: Preferences/Shortcuts Version: R1/Development
Keywords: Cc:
Blocked By: Blocking:
Platform: All

Description

I have prototyped a new potential design for the shortcuts app, please comment below.

Attachments (7)

screenshot1.png (237.7 KB ) - added by nephele 4 years ago.
untitled.ui (11.0 KB ) - added by nephele 4 years ago.
QT Designer file
screenshot2.png (235.2 KB ) - added by nephele 4 years ago.
Iteration 2
screenshot2.2.png (235.2 KB ) - added by nephele 4 years ago.
Iteration 2
screenshot3.png (240.0 KB ) - added by nephele 4 years ago.
Iteration 3
shortcuts_mockup.png (13.9 KB ) - added by humdinger 4 years ago.
screenshot4.png (252.5 KB ) - added by nephele 4 years ago.
Iteration 4

Download all attachments as: .zip

Change History (18)

by nephele, 4 years ago

Attachment: screenshot1.png added

by nephele, 4 years ago

Attachment: untitled.ui added

QT Designer file

comment:1 by bitigchi, 4 years ago

Can you walk through what the screenshot does? It looks complicated.

comment:2 by nephele, 4 years ago

The lefthand side is the list of shortcuts, and the righthand side is the view that would become visible if you use the Assign action on a new shortcut, or an already existing one

by nephele, 4 years ago

Attachment: screenshot2.png added

Iteration 2

by nephele, 4 years ago

Attachment: screenshot2.2.png added

Iteration 2

by nephele, 4 years ago

Attachment: screenshot3.png added

Iteration 3

comment:3 by nephele, 4 years ago

In the third iteration the left hand side would be a outline list (sadly qt creator makes that a bit harder to express) The reset button would only be available if an item is selected that is from a default set, i.e the [volume down] -> decrease volume one, and it was edited in respect to the default.

all shortcuts can be disabled with the checkbox on the left, the predefined ones can be edited but not removed (so they can be restored later)

the right side lets one select the action for the Assign... button, the upper part would be a list of applications we know off, and the lower part would be messages to send to running applications which are discovered via getsuites.

(... should network messages be there too? send WOL to my other computer? tell my printer to turn on?)

comment:4 by humdinger, 4 years ago

I'm not very clear on how the right side of your mockup works. And I have to say, that drk theme is still distracting for me... :)

Here's a mockup of how I imagine the Shortcuts panel:

Having an OutlineListView to the left with the two main categories, "System" and user provided "Custom" may work nicely. I originally thought of a flat BColumnListView though. With columns, we could add a "Kind" column to sort system/custom shortcuts.
But I guess an "outlined" tree can work as well. In any case, it should show the shortcut name and the actual shortcut.

The right side shows the details of the currently selected shortcut.
The "Set" button opens a window with the text: "Press the keys for the shortcut." or something that then records the user input.

The "Action" popup menu shows the possible actions. Depending on the action, choosing an action (or pressing the "Configure" button) opens a config window specific to that action. E.g.:

  • "Launch application" opens a file dialog (or a query for all installed apps)
  • "Send message" opens a window to set the 'what' and target of the BMessage.
  • "Mouse action" opens a window that let's you choose "left/right mouse click" or "send pointer to coordinate x/y" or similar actions

System shortcuts could have special system actions that we can think about in more detail. For example, mapping of CMD, CTRL, media keys etc.

I'm not sure we need to provide a way to disable a shortcut, but if so, a little "Disable" checkbox can be fit in the right side of the panel.

by humdinger, 4 years ago

Attachment: shortcuts_mockup.png added

comment:5 by nephele, 4 years ago

We do need a way to disable a shortcut, since i intend to ship a lot of default shortcuts, and if they were deleted instead of disabled they would be hard to get back. i.e volume up, volume down, WWW, calculator, mail etc. etc.

I don't think system shortcuts are special at all, they are just predeterminted.

In my mockup the righthandside allows you to select an application to launch directly, or lets you pick an action from getsuites, the setting of the shortcut is just clicking the new... button where it then prompts you to set the shortcut. I don't think a seperate button for that makes sense, i also see no value in a shortcut having a name.

In your screenshot it is not clear to me what defaults would do, and what the difference would be to the revert button. I am attaching a 4th iteration of my idea. (what application did you use to make your mockup btw?)

by nephele, 4 years ago

Attachment: screenshot4.png added

Iteration 4

comment:6 by humdinger, 4 years ago

We do need a way to disable a shortcut, since i intend to ship a lot of default shortcuts, and if they were deleted instead of disabled they would be hard to get back. i.e volume up, volume down, WWW, calculator, mail etc. etc.

OK, a disable checkbox is needed in that case. However, aside from the vol up/down, the above examples are all simple "Launch app" actions. I don't think we need to provide those. Esp.since they clog up the list for people that don't even have keyboards with those additional keys...

I don't think system shortcuts are special at all, they are just predeterminted.

I was thinking e.g. about the modifier key and CMD/CTRL mapping that's currently in the Keymap prefs. That could be a special system action "Modifier keys" that open a panel to set them all.

i also see no value in a shortcut having a name.

What determines how something appears in the list of shortcuts at the left then?

In your screenshot it is not clear to me what defaults would do, and what the difference would be to the revert button.

"Defaults" is for system provided settings and reverts to factory defaults. "Revert" goes back to the state when the panel was opened.

I am attaching a 4th iteration of my idea. (what application did you use to make your mockup btw?)

WonderBrush FTW! :)

in reply to:  6 comment:7 by nephele, 4 years ago

Replying to humdinger:

We do need a way to disable a shortcut, since i intend to ship a lot of default shortcuts, and if they were deleted instead of disabled they would be hard to get back. i.e volume up, volume down, WWW, calculator, mail etc. etc.

OK, a disable checkbox is needed in that case. However, aside from the vol up/down, the above examples are all simple "Launch app" actions. I don't think we need to provide those. Esp.since they clog up the list for people that don't even have keyboards with those additional keys...

Yeah, but the mapping has to exist in any case, and users will likely want to remap the keys if they have them, i can't imagine too many people beeing happy with the default meaning of the SMS key... (am i the only one that has that key?)

I don't think system shortcuts are special at all, they are just predeterminted.

I was thinking e.g. about the modifier key and CMD/CTRL mapping that's currently in the Keymap prefs. That could be a special system action "Modifier keys" that open a panel to set them all.

Whether they are switched or not does not seem to be related to this at all? launching an app with a specific pane can be acomplished with a message though.

i also see no value in a shortcut having a name.

What determines how something appears in the list of shortcuts at the left then?

Dunno, does it matter as long as it is consistent? I would find having to name every shortcut extremely annoying at least, for what would you like to use the names? and would beeing able to name the category enough instead?

In your screenshot it is not clear to me what defaults would do, and what the difference would be to the revert button.

"Defaults" is for system provided settings and reverts to factory defaults. "Revert" goes back to the state when the panel was opened.

I am attaching a 4th iteration of my idea. (what application did you use to make your mockup btw?)

WonderBrush FTW! :)

Still broken on amd64 :(

comment:8 by humdinger, 4 years ago

Yeah, but the mapping has to exist in any case, and users will likely want to remap the keys if they have them, i can't imagine too many people beeing happy with the default meaning of the SMS key... (am i the only one that has that key?)

I don't have any of those keys.
Anyway, it's all just a "Launch app" action where you press that special key on your keyboard when entering the shortcut. The volume +/- would be a general "Send message" action.

CMD/CTRL & modifier keys

Whether they are switched or not does not seem to be related to this at all? launching an app with a specific pane can be acomplished with a message though.

It's been said in the past, that the setting which key to use as B_COMMAND_KEY should move into the Shortcuts prefs. That's why I mentioned that as a special "system" action that would not have to be available for user shortcuts.

What determines how something appears in the list of shortcuts at the left then?

Dunno, does it matter as long as it is consistent? I would find having to name every shortcut extremely annoying at least, for what would you like to use the names? and would beeing able to name the category enough instead?

The name in the left list has to come from somewhere. A user provided one is the most flexible.

comment:9 by madmax, 4 years ago

I see the second panel "out of place" there. I've not read Haiku's HIG, but I would expect that to be shown only when clicking an "add" button for a new shortcut, and probably in a new dialog, with the main one just having the list and assignments.

Another small detail in the mockup is that a checkbox is marked to disable a shortcut. Even if it's clear it just doesn't look right.

I see you have shortcut -> action. I'd expect just the oposite. That is, I don't want a list of default shortcuts to which there are assigned actions, but a list of actions to which I may assign shortcuts. That would also remove the "default shortcuts" text from all over the place, and would also remove the duplicate items when you change a shortcut to a different action.

I do like the grouping of related actions.

You can have a look at Gnome's solution here, for example: https://forum.level1techs.com/t/gnome3-the-keyboard-shortcut-guide-dealing-with-flatpaks-terminal-apps/153272. There are categories, like in yours, with the actions and their shortcut (not the other way around), a button to reset all shortcuts to the defaults, changed shortcuts shown a different way (bold text in this case) and with a button to reset them. There's also a search button, which may or not fit here. The look doesn't have to be the same, of course, and the dialog for a new shortcut would probably be more complex, with launching a command just one of the possibilities here.

in reply to:  9 comment:10 by nephele, 4 years ago

Replying to humdinger:

It's been said in the past, that the setting which key to use as B_COMMAND_KEY should move into the Shortcuts prefs. That's why I mentioned that as a special "system" action that would not have to be available for user shortcuts.

Why? seeing as it isn't a shortcut it doesn't make much sense there to me, but i can add it i suppose.

What determines how something appears in the list of shortcuts at the left then?

Dunno, does it matter as long as it is consistent? I would find having to name every shortcut extremely annoying at least, for what would you like to use the names? and would beeing able to name the category enough instead?

The name in the left list has to come from somewhere. A user provided one is the most flexible.

I misunderstood you, i thought you wanted to know what the ordering was, for the actual names i would quite simply have regular ones, like "execute $app" "$app -> action" "network -> action" etc.

Replying to madmax:

I see the second panel "out of place" there. I've not read Haiku's HIG, but I would expect that to be shown only when clicking an "add" button for a new shortcut, and probably in a new dialog, with the main one just having the list and assignments.

It would only be shown when assigning an action indeed, i am against a new dialog, just makes it more cluttered and looses cohesion imo.

Another small detail in the mockup is that a checkbox is marked to disable a shortcut. Even if it's clear it just doesn't look right.

why? enabling with the checkbox makes little sense since the default is for them to be enabled

I see you have shortcut -> action. I'd expect just the oposite. That is, I don't want a list of default shortcuts to which there are assigned actions, but a list of actions to which I may assign shortcuts. That would also remove the "default shortcuts" text from all over the place, and would also remove the duplicate items when you change a shortcut to a different action.

the list of shortcuts that are asigned is finite, the list of possible actions that you can do for a shortcut are not finite, it seems like an easy choice to me. the gnome interface doesn't look nice to me as it just wastes space with showing me unrelated actions that i hardly care about, without showing me what i actually care about, the assigned shortcuts

I do like the grouping of related actions.

You can have a look at Gnome's solution here, for example: https://forum.level1techs.com/t/gnome3-the-keyboard-shortcut-guide-dealing-with-flatpaks-terminal-apps/153272. There are categories, like in yours, with the actions and their shortcut (not the other way around), a button to reset all shortcuts to the defaults, changed shortcuts shown a different way (bold text in this case) and with a button to reset them. There's also a search button, which may or not fit here. The look doesn't have to be the same, of course, and the dialog for a new shortcut would probably be more complex, with launching a command just one of the possibilities here.

I don't see why, the right part already /is/ the dialog for a new shortcut, there is no need to make a big popup for "Now the keyboard is working!!", having the user click the thing and indicating that input is accepted is enough, and the right hand side provides all the actions you might want to assign.

comment:11 by humdinger, 4 years ago

Why? seeing as it isn't a shortcut it doesn't make much sense there to me, but i can add it i suppose.

Well, it is the "shortcut" key. IIRC, there's the idea of combining the Shortcuts and Keymap prefs if possible. So setting the modifier keys may move closer to the Shortcut definitions and have the mapping capabilties on the Keymap side.

It would only be shown when assigning an action indeed, i am against a new dialog, just makes it more cluttered and looses cohesion imo.

Sure,if you can do without, why not.

I feel that you're pretty much set on your proposal and why shouldn't you, you'll be the one implementing it.
In any case, I'd like to express my preference for a panel similar to e.g. the Network DataTranslation and FileTypes prefs. A list of items to the left, with the right side showing that items settings.
I'd also would prefer few system provided items and leave it to the users to create the items they need. No launch shortcuts for browsers, calenders, mail or similar stuff that may have special keys on some keyboards.

Note: See TracTickets for help on using tickets.