user: What is Input Devices and how is it used in Blender Python scripting?

assistant: Blender supports various types of input devices:

- Keyboard (recommended: keyboard with numeric keypad, English layout works best)
- Mouse (recommended: three button mouse with scroll wheel)
- Graphic Tablet
- Touchpad
- NDOF Device (also known as *3D Mouse*)

### Mouse

A number of Blender interactions utilize the middle button (clicking the scroll wheel), or the use of the scroll
wheel. This is why the recommendation for a mouse is a two-button mouse with an added scroll wheel that acts as a
middle button (effectively a 3-button mouse). This will allow for the most efficient workflow within all of Blender’s
modules.

#### Mouse Button Emulation

If you do not have a 3 button mouse, you will need to emulate it by checking the option in the
[Preferences](../../editors/preferences/input.xhtml).

The following table shows the combinations used:

|  |  |  |  |
| --- | --- | --- | --- |
| 3-button Mouse | `LMB` | `MMB` | `RMB` |
| 2-button Mouse | `LMB` | `Alt`-`LMB` | `RMB` |

### Keyboard

A number of Blender interactions utilize the keyboard’s number pad (or numpad). This is the set of 10 numeric keys
plus mathematical functions that appears on the right side of a
[traditional 104-key full-sized keyboard](https://en.wikipedia.org/wiki/Keyboard_layout#/media/File:Qwerty.svg).
This will allow for the most efficient workflow within all of Blender’s modules.

#### Numpad Emulation

If you do not have a number pad on the side of your keyboard, you may want to emulate one. You can then use the number
row at the top of the keyboard instead, but will no longer have access to these keys’ original functions (such as
switching between vertex/edge/face selection in Edit Mode).

#### Non-English Keyboards

If you use a keyboard with a non-English layout, you may still benefit from switching to the UK or US layout while
working with Blender.

### Touch Screens

Blender has several settings that can be enabled to improve the experience on touch-enabled devices.
These options make it easier to manage areas, menus, and interactions without relying on precise
mouse input.

- Enable [Show Handles](../../editors/preferences/interface.xhtml#bpy-types-preferencesview-show-area-handle)
  to simplify resizing and rearranging [Areas](../../interface/window_system/areas.xhtml).
- Increase the [Border Width](../../editors/preferences/interface.xhtml#bpy-types-preferencesview-border-width)
  to make area edges easier to select with a finger.

### Graphic Tablet

Graphics tablets can be used to provide a more traditional method of controlling the mouse cursor using a pen. This
can help provide a more familiar experience for artists who are used to painting and drawing with similar tools, as
well as provide additional controls such as pressure sensitivity.

### Touchpad

Touchpad controls are available on Windows, macOS and Linux with Wayland. If you are working from a laptop without a
mouse, you can emulate controls using multi-touch gestures with the trackpad from
[Preferences](../../editors/preferences/input.xhtml).

Supported multi-touch gestures

| Gesture | Effect |
| --- | --- |
| Pan | Hold the `Shift` key while dragging two fingers on the pad. |
| Zoom | Hold the `Ctrl` or `OSKey` key while dragging two fingers on the pad. |
| Orbit | Drag two fingers on the pad. |
| Emulate right-click | Tap two fingers on the pad. |

### NDOF (3D Mouse)

3D mice or NDOF devices are hardware that you can use to navigate a scene in Blender.
Currently only devices made by 3Dconnexion, such as the SpaceMouse™, are supported. These devices allow you to explore
a scene, and make [Fly/Walk Navigation](../../editors/3dview/navigate/walk_fly.xhtml#dview-fly-walk) easier to control. The NDOF device can be configured in
the [Preferences](../../editors/preferences/input.xhtml#editors-preferences-input-ndof). These settings can also be accessed directly from the
viewport using the `NDOFMenu` button on the NDOF device.