Switch Interface Configurator config.py

Use the configurator below to build a custom set of keyboard shortcuts for your BASI device and generate a config.py file.

About this tool & how to use it

Start by selecting your target OS โ€” this ensures the correct modifier keys (Cmd vs Ctrl) are used and swapped automatically if you change your selection later.

Mode 0 (Direct Switch) maps each external switch straight to one action with no scanning โ€” configure it in its own panel below. Modes 1 & 2 (single- and two-switch scanning) share the shortcut list you build further down.

Use the reference table to add common shortcuts, or build your own custom combos with the builder. You can reorder active shortcuts with the โ–ฒ โ–ผ buttons

Any shortcut can become a submenu entry point โ€” selecting it on the device opens a shorter list of related items instead of scanning through everything. Submenu entries stand out in the active list with an amber background and a thicker outline. Nest an existing shortcut into a submenu with its "Submenu" dropdown, or drag it onto a submenu row.

Generate a file preview which can then be downloaded and flashed to your device.

๐Ÿ“ค Load Existing Config Already have a config.py generated by this tool? Upload it to load its settings and shortcuts back into the configurator so you can edit them, instead of starting over.

Step 1 Select Target OS

Target OS
Cmd โ†” Ctrl swaps automatically when you switch OS

Step 2 Customize Timing

Single-Switch Timing
Duration in seconds the switch must be held before auto-scanning begins
Two-Switch Timing

Step 3 Customize Basic Switch Interface Mode

Mode 0 โ€” Direct Switch Actions D0 / double-click
About Mode 0 & how to configure it

Mode 0 maps each external switch to a single, immediate action โ€” no scanning or submenus, just a direct press. Enter this mode by pressing D0 on the board, or by double-clicking either external switch at the mode-select screen. Configure the action for each switch below; supports keyboard keys, mouse controls, and media keys.

Two-step setup: pick an action type first, then a second dropdown appears with the specific controls for that type. The Label and TFT symbol auto-fill to match your choice โ€” edit either one to override it (your edit then sticks). Keyboard: optional modifier + key. Mouse click: left / right / middle. Mouse scroll: ticks up or down. Mouse move: X/Y pixels per press. Media: play/pause, volume, track skip, mute, brightness โ€” requires adafruit_hid โ‰ฅ 6.0. Keep the TFT symbol to 1โ€“3 plain characters (the onboard display does not render emoji).

Switch 1 Select
Switch 2 Next
Max gap in seconds between two clicks to register as a double-click and enter Mode 0
How long to hold an external switch in Mode 0 to return to the mode-select screen. D0 also exits Mode 0 instantly.

Step 4 Customize Active Shortcuts

Active Shortcuts โ€” โ–ฒ โ–ผ to reorder, nest into submenus below

Each shortcut has Move Up and Move Down buttons. Activating a move button keeps focus on that button so you can continue pressing to reorder with minimal switches. Submenu entry points are shown with an amber background and a thicker border, and have their own controls below them to show their items, add items, and toggle auto-exit. A plain shortcut has a "Move into submenu" dropdown to nest it under an existing submenu entry point.

Adding items to submenu "" โ€” use presets or the custom builder below, then press Done.

Step 5 Generate and Download File

config.py โ€” preview