pop-os / gnome-control-center

Pop!_OS fork of https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-control-center
GNU General Public License v2.0
29 stars 10 forks source link

Designs for the Keyboard Shortcuts page and Overlay #75

Open maria-komarova opened 4 years ago

maria-komarova commented 4 years ago

Pop Shell will introduce new keyboard shortcuts for easier window movement and management. The overlay with keyboard shortcuts will display desktop keyboard navigation shortcuts to aid users can't or don't want to use the mouse. It shows on a long press of the Super key. Along with the overlay, there are designs for the update of the keyboard shortcuts page in Settings.

1.The first design shows the first view of the page - a user sees the categories of shortcuts. There is a setting at the bottom of the page where a user can toggle the overlay on and off. shortcuts

  1. The view of the page with one of the categories expanded to show the list of shortcuts. The new design allows to have multiple shortcuts under each action. For example, to have shortcuts that use direction keys along with their alternatives. shortcuts-category

  2. There are system shortcuts and custom shortcuts. They have different customization levels. Below are the designs for the dropdown menus for each shortcut. System shortcuts can be reset to default (in some cases) or disabled. You can also add another shortcut to an action. system-shortcut

A user can add another shortcut to an action associated with the custom shortcut. Custom shortcuts can also be removed. When there are multiple shortcuts a user has a choice of which set of keys to remove. Once a user is down to one set of keys, the wording changes to simply "Remove", as shown below. custom-shortcut 1-1

A user can change a system shortcut to customize it by selecting a shortcut and clicking on it (see hover state shown below). hover To change a shortcut, one should simply type a new set of keys for the shortcut in the input field. change-shortcut

The next design shows the messaging if one of the shortcuts is already taken by another one. The message is the same as in the current design. create-custom-shortcut-3

To add a custom shortcut, a user should specify the name, the command, and the shortcut itself. A user also has an option to specify the category where to place a shortcut and an application, if a shortcut is related to one. The screen below shows those two fields pre-filled - those fields should always be set to "custom shortcuts" and "none" by default to make sure a user can leave them unspecified. create-custom-shortcut create-custom-shortcut-1

The last screen shows how to list the search results - very similar to how it currently works. shortcut-search

Two designs for the overlay for the light and dark theme: Overlay (2) Overlay (5)

brs17 commented 4 years ago

A few comments/questions/concerns:

GNOME Settings

General

Change Shortcut pop-up

Create custom shortcut

maria-komarova commented 4 years ago

Responding to the comments above.

General

Change shortcut

The designs below should cover the raised concerns about the instructions. The absence of the button was an accident. The reason for not reusing the current window is because from my conversations with users and observing people's reactions, majority find the window to be somewhat confusing, especially those who see it first time. We at least need to include the buttons for canceling and saving the shortcut instead of the current instructions to press Esc or Backspace to either close the dialog or disable the shortcut. create-custom-shortcut-7 create-custom-shortcut-8

Create custom shortcut

I changed the design for creating a custom shortcut. The following mockups show the flow for setting one. create-custom-shortcut-1 The application field helps users to set a shortcut to launch a frequently used application. When one selects an application from the dropdown, the command field for launching the application automatically populates. Some commands are extremely difficult to guess and with addition of the Flatpak, guessing or knowing the commands will be even harder. create-custom-shortcut-3 create-custom-shortcut-2 create-custom-shortcut-4 create-custom-shortcut-5 The duplicate message for the key combination would appear on this window as well: create-custom-shortcut-6

brs17 commented 4 years ago

Thank you for those updates @maria-komarova . Looking at what the "Application" field does, I have two additional thoughts:

  1. Why not just integrate the dropdown application selection into the "Command" field? I might think this would make it more clear what selecting an application will do (instead of selecting an application and it changing content on another row)
  2. For what it is worth, this part does feel a bit like a stretch goal, and not something necessary upon release.
maria-komarova commented 4 years ago

Thank you for the feedback @brs17.

  1. It would make sense for the application-related shortcuts. But the dialog is for all custom shortcut so my worry is enabling users to still type the command in the field for non-application shortcuts. The idea is that you can leave the application field at "none" but if it is a dropdown in the command line, then it should still function as the input field - gets a little clunky. But maybe I am overthinking.
  2. It might be a stretch goal, but I need to plan for that. Especially since it seems to be one of the pain points, even if relatively minor.
brs17 commented 4 years ago

@maria-komarova, what I was envisioning was that the "Command" field can be filled in with a combination of text input or from the dropdown. If an application is selected from the dropdown, it appends the command required to launch such an application to the end of the "Command" text field. I don't see that as being clunky.

isantop commented 4 years ago

@maria-komarova We can do a ComboBoxText widget with an entry, which allows the user to type or select to pre-fill text from the dropdown menu. I can mock this up for you if you'd like to see it live.

WatchMkr commented 4 years ago

The ComboBoxText widget doesn't work in this use case. You can't start typing "pop" to create a shortcut for Pop Shop. It won't find "io.elementary.appcenter". Typing in the box would yield inconsistent results (filling out an app name if you guess the command correctly and nothing when you don't).

We have a couple options. First, fill in the command text box with the command of the chosen application and grey out the entry. Second, don't grey the entry and allow the user to append flags to the application command.

I prefer the second option because it seems harmless to let the user append something to the command and if it greys out, and they want to append something, they won't have to write down or remember the command. I'm also not sure what's gained if we grey out the box.

WatchMkr commented 4 years ago

Do you guys think changing the application list default text to “Choose Application (optional)” would help?

We’ll build mockups to test the UX as well.

maria-komarova commented 4 years ago

I have done a round of usability testing with 6 users. None of them had any particular difficulty or confusion about the application dropdown. Some of them found having a pre-populated command helpful, especially the non-power users. Power users were more concerned with being able to edit the command once it appears in the corresponding input field. But they also found it useful to have a command shown to them. I have excerpts with quotes from the usability testing if anyone would like to see more details. Just let me know.

I am also including the updated designs with Arrow keys as a separate category of shortcuts. That way we can use Arrow keys in the popup with keyboard shortcuts.

I am not sure we will stay with an idea of the overlay with shortcuts. I am refining the popup with keyboard shortcuts for Pop Shell and will create a separate issue in the Pop Shell repository for that.

Here are the new designs:

Keyboard shortcuts page in Settings

shortcuts

Same page with the expanded Arrow keys section

shortcuts-1

Confirmation dialog

All the functionality for changing Arrow keys should stay the same as for other shortcuts. The only difference is that once a user sets a new Arrow key, for instance, "W" as an alternative to "Up", a user should see a confirmation dialog that would list all the shortcuts that use "Up" in them. change-combination

maria-komarova commented 4 years ago

Adjustments to the designs.

To get closer to how the page might work in the upstream, the shortcut categories should become separate sub-pages. Each category should include information on the number of modified shortcuts in each section.

View of the page

shortcuts

View inside the category.

shortcuts-1

Custom shortcuts

shortcuts-custom-empty shortcuts-custom-populated

Search results

shortcut-search

Use GTK theme styling for the keycaps.