Configured switches
{saved.length} saved · {hasSelect ? "Select assigned" : "Select action needed"}
Control your computer with switches.
{saved.length} saved · {hasSelect ? "Select assigned" : "Select action needed"}
{areaOptions(scanning.config, "point").automatic ? "Automatic scanning" : "Manual scanning"} · {scanning.config.mode === "line" ? "Line only" : "Grid then line"}
{state.bluetooth === "connected" ? state.connectedDeviceName ?? bluetoothLabels.connected : bluetoothLabels[state.bluetooth]}
{state.bluetooth === "connected" ? state.connectedDeviceName ?? bluetoothLabels.connected : bluetoothLabels[state.bluetooth]}
{state.bluetooth === "connected" ? state.connectedDeviceName ?? bluetoothDescriptions.connected : bluetoothDescriptions[state.bluetooth]}
Android connection is optional. Bluetooth advertises automatically; local switches do not need an Android device. Connecting an Android device pauses local scanning until it disconnects.
-Need the Android app? Scan the QR code or open Google Play to install Switchify.
Open Google PlayMobile connection is optional. Bluetooth advertises automatically; local switches do not need a mobile device. Connecting a mobile device pauses local scanning until it disconnects.
+Need the mobile app? Scan the QR code or open Google Play to install Switchify.
Open Google PlayAndroid devices trusted by this computer
Pair from Switchify Android while this computer is advertising.
Mobile devices trusted by this computer
Open Switchify on your mobile device to pair while this computer is advertising.
{device.lastSeenAt !== null ? `Last connected ${new Date(device.lastSeenAt).toLocaleString()}` : "Not connected yet"}
{switches.state?.settings.bindings.length ?? 0} configured. Open Switches to assign Select, then open Scanning to adjust movement.
{bluetoothLabels[state.bluetooth]}. Open Android connection for pairing and forwarding profiles.
{bluetoothLabels[state.bluetooth]}. Open Mobile connection for pairing and forwarding profiles.
{bluetoothLabels[state.bluetooth]}
Focus the application you want to use, then press and release Select to start scanning. Select chooses a point and opens the action menu.
Automatic scanning moves the highlight for you. Use Auto scan rate for grid and menu timing, and Line speed for scanning lines. Holding a switch freezes movement; release runs the action shown.
Escape disables switch control. Assign Stop scanning or Pause / resume in Switches. Holding any switch for {switches.state ? switches.state.escapeHoldMs / 1000 : 4}s disables switch control.
Open Scanning after setup to adjust movement. Android connection is optional.
Focus the application you want to use, then press and release Select to start scanning. Select chooses a point and opens the action menu.
Automatic scanning moves the highlight for you. Use Auto scan rate for grid and menu timing, and Line speed for scanning lines. Holding a switch freezes movement; release runs the action shown.
Escape disables switch control. Assign Stop scanning or Pause / resume in Switches. Holding any switch for {switches.state ? switches.state.escapeHoldMs / 1000 : 4}s disables switch control.
Open Scanning after setup to adjust movement. Mobile connection is optional.
Switchify can start quietly when you sign in, ready for your switches.
Optional anonymous app health and sanitized errors help improve Switchify. Typed text, commands, pairing secrets, device names, and full paths are never included.
Privacy policyConfirm each code matches Switchify for Android.
{connectedDeviceName &&Connected to {connectedDeviceName}
}Confirm each code matches Switchify for mobile.
{connectedDeviceName &&Connected to {connectedDeviceName}
}{error}
}{updateNotice}
{view === "home" &&Optional Android control and switch forwarding
Optional mobile control and switch forwarding
Focus the application you want to use, then press Select to scan the display under the pointer. Choose a point, then use the action menu for clicks, scrolling and dragging.
Assign switch actions in the Switches page. Actions run on release; holding a switch freezes movement. Manual scanning needs Select, Next and Previous. After clicking or reaching the pass limit, use Select to start again.
-Assigned keys stay reserved while Switchify runs. Escape resets the scan. Android connections pause local scanning until they end.
+Assigned keys stay reserved while Switchify runs. Escape resets the scan. Mobile connections pause local scanning until they end.
On Windows, assigned keys remain switches with Shift, Ctrl, Alt or Windows held, even in the background. Other keys and Switchify-generated shortcuts still work normally.
Remote assignments are numbered forwarding slots in Switchify Remote, not detected physical switches. The supplied presets can be changed or removed.
-{androidConnected === true - ? "Android device connected. This does not confirm that remote assignments match your switches." - : androidConnected === false - ? "No Android device connected. Remote assignments are available for a future connection." - : "Android connection status is unavailable here."} A connection alone does not verify a physical switch press.
+{mobileConnected === true + ? "Mobile device connected. This does not confirm that remote assignments match your switches." + : mobileConnected === false + ? "No mobile device connected. Remote assignments are available for a future connection." + : "Mobile connection status is unavailable here."} A connection alone does not verify a physical switch press.