These is a system service to enhance the compatibility of the Logitech Trackball Marble, Logitech MX Anywhere 2S, and other devices I may have with the Linux OS. It contains scripts that start during system boot and map the device inputs into special commands, like Back, Forward, Scrolling, Alt+Tab, macros, and so on. If a device is not present/detected it simply ignores the enhancements. It is also aware of the current focused window. For instance, "Switch Tabs" will map to different shortcuts deppending on your app.
| Shortcut | Action |
|---|---|
| A | Left Click |
| B | Go to Declaration / Open in new Tab |
| C | Right Click |
| D | Middle Click |
| E | Move Cursor |
| Shortcut | Action |
|---|---|
| B + A | Show All Windows |
| B + C | Back |
| B + D | Forward |
| B + E | Vertical and Horizontal Scrolling |
| Shortcut | Action |
|---|---|
| C + A | Search Selection |
| C + B | Reopen Tab |
| C + D | New Tab or Document |
| C + E | Change Volume (Vertical) or Undo / Redo (Horizontal) |
| Shortcut | Action |
|---|---|
| D + A | Close Tab or Terminal |
| D + B | Close Window |
| D + C | Advanced Search: Tabs, Files, Content, Symbols, so on |
| D + E | Switch Tabs (Vertical) or Switch Windows (Horizontal) |
| Shortcut | Action |
|---|---|
| A | Left Click |
| B | Middle Click |
| C | Right Click |
| D | Horizontal Scroll |
| E | Vertical Scroll |
| F | Horizontal Scroll |
| H | Back |
| G | Forward |
| G + H | Show All Windows |
| Shortcut | Action |
|---|---|
| H + A | Go to Declaration |
| H + B | Close Tab |
| H + C | Reopen Tab |
| H + D | Zoom In |
| H + E | Switch Tabs |
| H + F | Zoom Out |
| Shortcut | Action |
|---|---|
| G + A | Undo |
| G + B | Close Window |
| G + C | Redo |
| G + E | Switch Window |
| Shortcut | Action |
|---|---|
| G + H + A | Play / Pause |
| G + H + B | Stop |
| G + H + C | Mute / Unmute |
| G + H + D | Next Track |
| G + H + E | Volume Up / Down |
| G + H + F | Previous Track |
| Shortcut | Action |
|---|---|
| REC + MACRO_N | Start recording / reset recording keyboard input sequence in buffer N (activates blue led) |
| MACRO_N (blue led on) | Finish recording the macro (deactivates led) |
| MACRO_N (blue led off) | Play the recorded sequence of keys |
| TOGGLE_N | Toggle macro MACRO_N between two sets, MACRO_1 to MACRO_6 (left) or MACRO_7 to MACRO_12 (right) |
| Yellow led | Indicates a key is being pressed |
| Key | Mode | Can draw? | Show drawing | Background |
|---|---|---|---|---|
| A | Transparent | Yes | Yes | None |
| B | Opaque | Yes | Yes | Opaque |
| C | Passthrough | No | Yes | None |
| D | Disabled | No | No | None |
| Key | Action |
|---|---|
| E | Previous page |
| F | Next page |
| G | Undo |
| H | Redo |
| I | Change brush size |
| J | Move paper |
| K | Touch the tablet to draw |
| L | Eraser mode |
| M | Open Menu (Planned) |
| Key | Action |
|---|---|
| E | Planning |
| F | Planning |
| G | Planning |
| H | Planning |
| I | Planning |
| J | Planning |
| K | Left mouse click |
| L | Middle mouse click |
| M | Right mouse click |
This daemon requires python3, pip, evdev, inotifywait, xclip and edid-decode. It has only been tested in Ubuntu 22.04 LTS, you can install its dependencies with the following commands.
sudo apt update
sudo apt install -yq libpython3-dev inotify-tools xclip edid-decode
sudo pip3 install evdevInstall the python service and compiled programs
# Make sure your qmake is installed and accessible via PATH. For instance, qt creator would install it around your home directory:
sudo bash -c "PATH='/home/$USER/Qt/6.4.0/gcc_64/bin/':\$PATH ./install.sh"
# Start the service in the system
sudo service devstream start
# Activate autostart during system boot
sudo systemctl enable devstream# Stop services, uninstall them, and remove all files
sudo ./uninstall.sh


