kmk_firmware/docs/en/pimoroni_trackball.md
AndersonTorres 0ab6887fbe Move docs/ to docs/en/
It allows comparison between the directories and helps translations.
2022-10-25 01:24:49 -07:00

61 lines
1.7 KiB
Markdown

# Pimoroni Trackball
Module handles usage of Trackball Breakout by Pimoroni.
Product page: https://shop.pimoroni.com/products/trackball-breakout
### Usage
Declare I2C bus and add this module in your main class.
```python
from kmk.modules.pimoroni_trackball import Trackball, TrackballMode
import busio as io
i2c = io.I2C(scl=board.D3, sda=board.D2)
trackball = Trackball(i2c)
keyboard.modules.append(trackball)
```
Module will also work when you cannot use `busio` and do `import bitbangio as io` instead.
### Key inputs, other handler combinations
If you have used this thing on a mobile device, you will know it excels at cursor movement
```python
from kmk.modules.pimoroni_trackball import Trackball, TrackballMode, PointingHandler, KeyHandler, ScrollHandler, ScrollDirection
trackball = Trackball(i2c, mode=TrackballMode.MOUSE_MODE, handlers=[
# act like an encoder, input arrow keys
KeyHandler(KC.UP, KC.RIGHT, KC.DOWN, KC.LEFT, KC.ENTER),
# on layer 1 and above use the default pointing behavior
PointingHandler(),
# use ScrollDirection.NATURAL (default) or REVERSE to change the scrolling direction
ScrollHandler(scroll_direction=ScrollDirection.NATURAL)
])
# now you can use these KeyCodes:
KC.TB_NEXT_HANDLER # rotates through available
KC.TB_HANDLER(0) # activate KeyHandler
KC.TB_HANDLER(1) # activate MouseHandler
```
### Backlight
Setup backlight color using below commands:
```python
trackball.set_rgbw(r, g, b, w)
trackball.set_red(brightness)
trackball.set_green(brightness)
trackball.set_blue(brightness)
trackball.set_white(brightness)
```
This module exposes one keycode `TB_MODE`, which on hold switches between `MOUSE_MODE` and `SCROLL_MODE`.
To choose the default mode, pass it in `Trackball` constructor.