KDE Visual Design Group/Gestures: Difference between revisions
(Page started) |
(Added section for available gestures) |
||
(11 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Design Work for Gesture-based Input from Touchscreens and Touchpads in Plasma / Applications = | = Design Work for Gesture-based Input from Touchscreens and Touchpads in Plasma / Applications = | ||
Touchscreen gestures in Wayland will need to be implemented to provide user experience on par with that of other DEs and OSs. Keeping with KDE's principles, the default setup should be simple and intuitive, but the customization level should be high. For this reason, touchscreen and touchpad gestures should be identical by default, but can and should be distinguishable if the user wants to. | |||
Keep in mid that here we are talking about "simple" gestures (swipe, pinch, rotate...), not "drawn" gestures (symbols, letters) which anyway are partially already implemented (although they do not seem to work at the moment). | |||
For inspiration, the currently working Linux implementations of custom gesture software are: | |||
* libinput-gestures (libinput only, https://github.com/bulletmark/libinput-gestures) | |||
* touchegg (synaptics only, https://github.com/JoseExposito/touchegg) | |||
Libinput (https://wayland.freedesktop.org/libinput/doc/latest/gestures.html), which is going to be used by Wayland, currently supports pinch and swipe with 2<=fingers<=4 (swipes with 2 fingers are usually reserved for scrolling). Atop of these gestures, additional possible gestures could be (as implemented by other OSs): | |||
* 5 finger gestures (?) | |||
* 4 finger tap (1,2,3 finger taps are already implemented) | |||
* swipes from outside border (Sailfish OS - like, VERY useful!) | |||
* rotation | |||
* Multifinger tap | |||
* Single finger edge drag (like Gnome) | |||
* Press and hold | |||
* Flick (like Gnome) | |||
Another possibility is to combine gestures, e.g.: three finger tap, followed by three finger hold, three finger hold + tap. These are implemented by others (Unity, Gnome) | |||
These are the default actions in other systems: | |||
* MacOSX: http://www.danrodney.com/mac/multitouch.html | |||
* Windows: http://windows.microsoft.com/en-us/windows-10/touchpad-gestures-for-windows-10 | |||
* Unity: https://wiki.ubuntu.com/Multitouch | |||
* Gnome: https://wiki.gnome.org/Design/OS/Gestures | |||
By default, Plasma should be able to assign gestures to Plasma commands (change desktop, present windows, Krunner, close windows, shade window, maximize, change window opacity...), audio commands (next, volume control, stop...) and custom commands/scripts. Shortcut customization based on application is also an important option (either based on the application under the mouse - better - or the active application). | |||
Below are proposals for default Plasma gestures and application gestures, considering only basic gestures, thus excluding e.g.: | |||
* 5 finger gestures | |||
* 4-5 finger taps | |||
* "from outside" gestures | |||
* ... | |||
Note left/right may need to be switched if one does not want natural scrolling-like behaviour. | |||
== Default Gestures for Plasma == | == Default Gestures for Plasma == | ||
{| class="wikitable | {| class="wikitable | ||
! Gesture !! Action !! Screen/Pad/Both? | ! Fingers !! Direction !! Gesture !! Action !! Screen/Pad/Both? | ||
|- | |||
| 2||Pinch ||Out || ||Both | |||
|- | |||
| 2||Pinch ||In || ||Both | |||
|- | |||
| 3||Pinch ||Out || ||Both | |||
|- | |||
| 3||Pinch ||In || ||Both | |||
|- | |||
| 3||Swipe ||Left || ||Both | |||
|- | |||
| 3||Swipe ||Down || ||Both | |||
|- | |||
| 3||Swipe ||Right || ||Both | |||
|- | |||
| 3||Swipe ||Up || ||Both | |||
|- | |||
| 4||Pinch ||Out ||Desktop grid ||Both | |||
|- | |||
| 4||Pinch ||In ||Show desktop ||Both | |||
|- | |||
| 4||Swipe ||Left ||Next window (continuous window switcher, like keeping Alt pressed) ||Both | |||
|- | |||
| 4||Swipe ||Down || ||Both | |||
|- | |||
| 4||Swipe ||Right ||Previous window (continuous window switcher, like keeping Alt pressed) ||Both | |||
|- | |- | ||
| || || | | 4||Swipe ||Up ||Present windows ||Both | ||
|- | |- | ||
|} | |} | ||
Line 13: | Line 78: | ||
{| class="wikitable | {| class="wikitable | ||
! Gesture !! Action !! Screen/Pad/Both? | ! Fingers !! Direction !! Gesture !! Action !! Screen/Pad/Both? | ||
|- | |||
| 2||Pinch ||Out ||Continuous zoom out ||Both | |||
|- | |||
| 2||Pinch ||In ||Continuous zoom in ||Both | |||
|- | |||
| 3||Pinch ||Out || ||Both | |||
|- | |- | ||
| || || | | 3||Pinch ||In || ||Both | ||
|- | |- | ||
| 3||Swipe ||Left ||Next tab/page/image ||Both | |||
|- | |||
| 3||Swipe ||Down ||Close tab ||Both | |||
|- | |||
| 3||Swipe ||Right ||Previous tab/page/image ||Both | |||
|- | |||
| 3||Swipe ||Up ||New tab ||Both | |||
|- | |||
| 4||Pinch ||Out || ||Both | |||
|- | |||
| 4||Pinch ||In || ||Both | |||
|- | |||
| 4||Swipe ||Left || ||Both | |||
|- | |||
| 4||Swipe ||Down || ||Both | |||
|- | |||
| 4||Swipe ||Right || ||Both | |||
|- | |||
| 4||Swipe ||Up || ||Both | |||
|} | |} | ||
== Available (possibly optional) gesture actions == | |||
Window actions that should be available: | |||
* Change window | |||
* Close window | |||
* Present windows | |||
* Open specific application (krunner, dolphin...) | |||
* Maximize / minimize window | |||
* Shade / unshade | |||
* Fullscreen | |||
Desktop actions that should be available: | |||
* Change desktop | |||
* Present desktops | |||
Activity actions that should be available: | |||
* Change activities | |||
Application actions that should be available: | |||
* Change tab | |||
* Open/close tab | |||
* Previous / next picture | |||
* Zoom in/out | |||
* Back / forward | |||
* Rotate | |||
Audio/video actions available: | |||
* Next / previous song | |||
* Go forward / backward in song / video | |||
* Play / pause / stop | |||
Misc actions that should be available: | |||
* Show app launcher/menu | |||
* Show app dashboard |
Latest revision as of 07:08, 19 April 2016
Design Work for Gesture-based Input from Touchscreens and Touchpads in Plasma / Applications
Touchscreen gestures in Wayland will need to be implemented to provide user experience on par with that of other DEs and OSs. Keeping with KDE's principles, the default setup should be simple and intuitive, but the customization level should be high. For this reason, touchscreen and touchpad gestures should be identical by default, but can and should be distinguishable if the user wants to.
Keep in mid that here we are talking about "simple" gestures (swipe, pinch, rotate...), not "drawn" gestures (symbols, letters) which anyway are partially already implemented (although they do not seem to work at the moment).
For inspiration, the currently working Linux implementations of custom gesture software are:
- libinput-gestures (libinput only, https://github.com/bulletmark/libinput-gestures)
- touchegg (synaptics only, https://github.com/JoseExposito/touchegg)
Libinput (https://wayland.freedesktop.org/libinput/doc/latest/gestures.html), which is going to be used by Wayland, currently supports pinch and swipe with 2<=fingers<=4 (swipes with 2 fingers are usually reserved for scrolling). Atop of these gestures, additional possible gestures could be (as implemented by other OSs):
- 5 finger gestures (?)
- 4 finger tap (1,2,3 finger taps are already implemented)
- swipes from outside border (Sailfish OS - like, VERY useful!)
- rotation
- Multifinger tap
- Single finger edge drag (like Gnome)
- Press and hold
- Flick (like Gnome)
Another possibility is to combine gestures, e.g.: three finger tap, followed by three finger hold, three finger hold + tap. These are implemented by others (Unity, Gnome)
These are the default actions in other systems:
- MacOSX: http://www.danrodney.com/mac/multitouch.html
- Windows: http://windows.microsoft.com/en-us/windows-10/touchpad-gestures-for-windows-10
- Unity: https://wiki.ubuntu.com/Multitouch
- Gnome: https://wiki.gnome.org/Design/OS/Gestures
By default, Plasma should be able to assign gestures to Plasma commands (change desktop, present windows, Krunner, close windows, shade window, maximize, change window opacity...), audio commands (next, volume control, stop...) and custom commands/scripts. Shortcut customization based on application is also an important option (either based on the application under the mouse - better - or the active application).
Below are proposals for default Plasma gestures and application gestures, considering only basic gestures, thus excluding e.g.:
- 5 finger gestures
- 4-5 finger taps
- "from outside" gestures
- ...
Note left/right may need to be switched if one does not want natural scrolling-like behaviour.
Default Gestures for Plasma
Fingers | Direction | Gesture | Action | Screen/Pad/Both? |
---|---|---|---|---|
2 | Pinch | Out | Both | |
2 | Pinch | In | Both | |
3 | Pinch | Out | Both | |
3 | Pinch | In | Both | |
3 | Swipe | Left | Both | |
3 | Swipe | Down | Both | |
3 | Swipe | Right | Both | |
3 | Swipe | Up | Both | |
4 | Pinch | Out | Desktop grid | Both |
4 | Pinch | In | Show desktop | Both |
4 | Swipe | Left | Next window (continuous window switcher, like keeping Alt pressed) | Both |
4 | Swipe | Down | Both | |
4 | Swipe | Right | Previous window (continuous window switcher, like keeping Alt pressed) | Both |
4 | Swipe | Up | Present windows | Both |
Default Gestures for (Kirigami) Desktop Applications
Fingers | Direction | Gesture | Action | Screen/Pad/Both? |
---|---|---|---|---|
2 | Pinch | Out | Continuous zoom out | Both |
2 | Pinch | In | Continuous zoom in | Both |
3 | Pinch | Out | Both | |
3 | Pinch | In | Both | |
3 | Swipe | Left | Next tab/page/image | Both |
3 | Swipe | Down | Close tab | Both |
3 | Swipe | Right | Previous tab/page/image | Both |
3 | Swipe | Up | New tab | Both |
4 | Pinch | Out | Both | |
4 | Pinch | In | Both | |
4 | Swipe | Left | Both | |
4 | Swipe | Down | Both | |
4 | Swipe | Right | Both | |
4 | Swipe | Up | Both |
Available (possibly optional) gesture actions
Window actions that should be available:
- Change window
- Close window
- Present windows
- Open specific application (krunner, dolphin...)
- Maximize / minimize window
- Shade / unshade
- Fullscreen
Desktop actions that should be available:
- Change desktop
- Present desktops
Activity actions that should be available:
- Change activities
Application actions that should be available:
- Change tab
- Open/close tab
- Previous / next picture
- Zoom in/out
- Back / forward
- Rotate
Audio/video actions available:
- Next / previous song
- Go forward / backward in song / video
- Play / pause / stop
Misc actions that should be available:
- Show app launcher/menu
- Show app dashboard