2023-12-25 06:22:05 +08:00
|
|
|
/**===================================================== *
|
|
|
|
* ========== Keyboard LED Output Indicator ========== *
|
|
|
|
* ===================================================== *
|
|
|
|
*
|
|
|
|
* If you are willing to give up on using the keyboard LEDs for their original purpose,
|
|
|
|
* you can use them as a convenient way to indicate which output is selected.
|
|
|
|
*
|
|
|
|
* KBD_LED_AS_INDICATOR set to 0 will use the keyboard LEDs as normal.
|
|
|
|
* KBD_LED_AS_INDICATOR set to 1 will use the Caps Lock LED as indicator.
|
|
|
|
*
|
|
|
|
* */
|
|
|
|
|
2024-01-03 17:48:34 +08:00
|
|
|
#define KBD_LED_AS_INDICATOR 0
|
2023-12-25 06:22:05 +08:00
|
|
|
|
|
|
|
/**===================================================== *
|
|
|
|
* =========== Hotkey for output switching =========== *
|
|
|
|
* ===================================================== *
|
|
|
|
*
|
|
|
|
* Everyone is different, I prefer to use caps lock because I HATE SHOUTING :)
|
|
|
|
* You might prefer something else. Pick something from the list found at:
|
|
|
|
*
|
|
|
|
* https://github.com/hathach/tinyusb/blob/master/src/class/hid/hid.h
|
|
|
|
*
|
|
|
|
* defined as HID_KEY_<something>
|
|
|
|
*
|
2024-03-15 19:57:55 +08:00
|
|
|
* If you do not want to use a key for switching outputs, you may be tempted
|
|
|
|
* to select HID_KEY_NONE here; don't do that! That code appears in many HID
|
|
|
|
* messages and the result will be a non-functional keyboard. Instead, choose
|
|
|
|
* a key that is unlikely to ever appear on a keyboard that you will use.
|
|
|
|
* HID_KEY_F24 is probably a good choice as keyboards with 24 function keys
|
|
|
|
* are rare.
|
2024-03-23 02:48:49 +08:00
|
|
|
*
|
2023-12-25 06:22:05 +08:00
|
|
|
* */
|
|
|
|
|
|
|
|
#define HOTKEY_TOGGLE HID_KEY_CAPS_LOCK
|
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
* ============== Mouse Speed Factor ============== *
|
|
|
|
* ==================================================
|
|
|
|
*
|
|
|
|
* This affects how fast the mouse moves.
|
|
|
|
*
|
2024-01-17 01:38:24 +08:00
|
|
|
* MOUSE_SPEED_A_FACTOR_X: [1-128], mouse moves at this speed in X direction
|
|
|
|
* MOUSE_SPEED_A_FACTOR_Y: [1-128], mouse moves at this speed in Y direction
|
2024-01-21 08:45:22 +08:00
|
|
|
*
|
|
|
|
* JUMP_THRESHOLD: [0-32768], sets the "force" you need to use to drag the
|
2024-01-03 17:48:34 +08:00
|
|
|
* mouse to another screen, 0 meaning no force needed at all, and ~500 some force
|
|
|
|
* needed, ~1000 no accidental jumps, you need to really mean it.
|
2024-01-21 08:45:22 +08:00
|
|
|
*
|
2024-01-17 01:38:24 +08:00
|
|
|
* This is now configurable per-screen.
|
2023-12-25 06:22:05 +08:00
|
|
|
*
|
2024-03-25 02:02:37 +08:00
|
|
|
* ENABLE_ACCELERATION: [0-1], disables or enables mouse acceleration.
|
|
|
|
*
|
2023-12-25 06:22:05 +08:00
|
|
|
* */
|
|
|
|
|
2024-01-17 01:38:24 +08:00
|
|
|
/* Output A values */
|
|
|
|
#define MOUSE_SPEED_A_FACTOR_X 16
|
|
|
|
#define MOUSE_SPEED_A_FACTOR_Y 16
|
|
|
|
|
2024-03-23 02:48:49 +08:00
|
|
|
/* Output B values */
|
2024-01-17 01:38:24 +08:00
|
|
|
#define MOUSE_SPEED_B_FACTOR_X 16
|
|
|
|
#define MOUSE_SPEED_B_FACTOR_Y 16
|
2024-01-03 17:48:34 +08:00
|
|
|
|
2024-01-21 08:45:22 +08:00
|
|
|
#define JUMP_THRESHOLD 0
|
|
|
|
|
2024-03-25 02:02:37 +08:00
|
|
|
/* Mouse acceleration */
|
|
|
|
#define ENABLE_ACCELERATION 1
|
|
|
|
|
2024-01-21 08:45:22 +08:00
|
|
|
/**================================================== *
|
|
|
|
* ============== Screensaver Config ============== *
|
2024-03-19 03:06:19 +08:00
|
|
|
* ================================================== *
|
2024-01-21 08:45:22 +08:00
|
|
|
*
|
2024-03-19 03:06:19 +08:00
|
|
|
* While this feature is called 'screensaver', it's not actually a
|
|
|
|
* screensaver :) Really it's a way to ensure that some sort of mouse
|
|
|
|
* activity will be sent to one (or both) outputs when the user has
|
|
|
|
* not interacted with that output. This can be used to stop a
|
|
|
|
* screensaver or screenlock from activating on the attached computer,
|
|
|
|
* or to just watch the mouse pointer bouncing around!
|
2024-01-21 08:45:22 +08:00
|
|
|
*
|
2024-03-19 03:06:19 +08:00
|
|
|
* When the mode is active on an output, the pointer will jump around
|
|
|
|
* the screen like a bouncing-ball in a Pong game (however no click
|
|
|
|
* events will be generated, of course).
|
2024-01-21 08:45:22 +08:00
|
|
|
*
|
2024-03-19 03:06:19 +08:00
|
|
|
* This mode is activated by 'idle time' on a per-output basis; if the
|
|
|
|
* mode is enabled for output B, and output B doesn't have any
|
|
|
|
* activity for (at least) the specified idle time, then the mode will
|
|
|
|
* be activated and will continue until the inactivity time reaches
|
|
|
|
* the maximum (if one has been specified). This allows you to stop a
|
|
|
|
* screensaver/screenlock from activating while you are still at your
|
|
|
|
* desk (but just interacting with the other computer attached to
|
|
|
|
* Deskhop), but let it activate if you leave your desk for an
|
|
|
|
* extended period of time.
|
|
|
|
*
|
|
|
|
* Additionally, this mode can be automatically disabled if the output
|
|
|
|
* is the currently-active output.
|
|
|
|
*
|
|
|
|
* If you only set the ENABLED options below, and leave the rest of
|
|
|
|
* the defaults in place, then the screensaver mode will activate
|
|
|
|
* after 4 minutes (240 seconds) of inactivity, will continue forever,
|
|
|
|
* but will only activate on an output that is not currently
|
|
|
|
* active.
|
|
|
|
*
|
|
|
|
**/
|
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
*
|
|
|
|
* SCREENSAVER_{A|B}_ENABLED: [0 or 1] 0 means screensaver is
|
|
|
|
* disabled, 1 means it is enabled.
|
|
|
|
*
|
|
|
|
**/
|
|
|
|
|
2024-03-23 02:48:49 +08:00
|
|
|
#define SCREENSAVER_A_ENABLED 0
|
|
|
|
#define SCREENSAVER_B_ENABLED 0
|
2024-03-19 03:06:19 +08:00
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
*
|
|
|
|
* SCREENSAVER_{A|B}_IDLE_TIME_SEC: Number of seconds that an output
|
|
|
|
* must be inactive before the screensaver mode will be activated.
|
|
|
|
*
|
|
|
|
**/
|
|
|
|
|
2024-03-23 02:48:49 +08:00
|
|
|
#define SCREENSAVER_A_IDLE_TIME_SEC 240
|
2024-03-19 03:06:19 +08:00
|
|
|
#define SCREENSAVER_B_IDLE_TIME_SEC 240
|
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
*
|
2024-03-23 02:48:49 +08:00
|
|
|
* SCREENSAVER_{A|B}_MAX_TIME_SEC: Number of seconds that the screensaver
|
|
|
|
* will run on an output before being deactivated. 0 for indefinitely.
|
2024-03-19 03:06:19 +08:00
|
|
|
*
|
|
|
|
**/
|
|
|
|
|
2024-03-23 02:48:49 +08:00
|
|
|
#define SCREENSAVER_A_MAX_TIME_SEC 0
|
|
|
|
#define SCREENSAVER_B_MAX_TIME_SEC 0
|
2024-03-19 03:06:19 +08:00
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
*
|
|
|
|
* SCREENSAVER_{A|B}_ONLY_IF_INACTIVE: [0 or 1] 1 means the
|
|
|
|
* screensaver will activate only if the output is inactive.
|
|
|
|
*
|
|
|
|
**/
|
2024-01-17 01:38:24 +08:00
|
|
|
|
2024-03-23 02:48:49 +08:00
|
|
|
#define SCREENSAVER_A_ONLY_IF_INACTIVE 0
|
|
|
|
#define SCREENSAVER_B_ONLY_IF_INACTIVE 0
|
|
|
|
|
|
|
|
/**================================================== *
|
|
|
|
* ================ Output OS Config =============== *
|
|
|
|
* ==================================================
|
|
|
|
*
|
|
|
|
* Defines OS an output connects to. You will need to worry about this only if you have
|
|
|
|
* multiple desktops and one of your outputs is MacOS or Windows.
|
|
|
|
*
|
|
|
|
* Available options: LINUX, MACOS, WINDOWS, OTHER (check main.h for details)
|
|
|
|
*
|
|
|
|
* OUTPUT_A_OS: OS for output A
|
|
|
|
* OUTPUT_B_OS: OS for output B
|
|
|
|
*
|
|
|
|
* */
|
|
|
|
|
|
|
|
#define OUTPUT_A_OS LINUX
|
|
|
|
#define OUTPUT_B_OS LINUX
|