diff --git a/keyboards/fingerpunch/FP_LIBRARY_SUPPORT.md b/keyboards/fingerpunch/FP_LIBRARY_SUPPORT.md index 020f37eec8..6309925a6b 100644 --- a/keyboards/fingerpunch/FP_LIBRARY_SUPPORT.md +++ b/keyboards/fingerpunch/FP_LIBRARY_SUPPORT.md @@ -61,6 +61,7 @@ For an example, see `keyboards/fingerpunch/ximi/config.h`, which uses the `FP_ST #define FP_STARTUP_LIGHT_EXT HALF_NOTE(_E6), HALF_NOTE(_F6), HALF_NOTE(_C6), WHOLE_NOTE(_A5), WHOLE_DOT_NOTE(_F5), WHOLE_DOT_NOTE(_D5), WHOLE_DOT_NOTE(_G5), WHOLE_DOT_NOTE(_C5), #define FP_STARTUP_DARK HALF_DOT_NOTE(_B5), QUARTER_NOTE(_B5), HALF_NOTE(_E6), HALF_NOTE(_REST), QUARTER_NOTE(_C6), QUARTER_NOTE(_REST), QUARTER_NOTE(_G5), QUARTER_NOTE(_E5), QUARTER_NOTE(_F5), QUARTER_NOTE(_GS5), QUARTER_NOTE(_G5), QUARTER_NOTE(_F5), WHOLE_NOTE(_G5), #define FP_MARIO QUARTER_NOTE(_E5), QUARTER_NOTE(_E5), QUARTER_NOTE(_REST), QUARTER_NOTE(_E5), QUARTER_NOTE(_REST), QUARTER_NOTE(_C5), QUARTER_NOTE(_E5), QUARTER_NOTE(_REST), QUARTER_NOTE(_G5), HALF_DOT_NOTE(_REST), QUARTER_NOTE(_G4), +#define FP_STARTUP_XIMEGA WHOLE_NOTE(_FS5), QUARTER_NOTE(_A5), HALF_DOT_NOTE(_B5), WHOLE_NOTE(_D6), QUARTER_NOTE(_REST), HALF_DOT_NOTE(_B5), HALF_DOT_NOTE(_FS5), HALF_DOT_NOTE(_D5), HALF_DOT_NOTE(_E5), HALF_NOTE(_REST), HALF_DOT_NOTE(_D5), HALF_DOT_NOTE(_B4), ``` ### Shared RGB effects diff --git a/keyboards/fingerpunch/README.md b/keyboards/fingerpunch/README.md index 8da7eff40a..8de03a334b 100644 --- a/keyboards/fingerpunch/README.md +++ b/keyboards/fingerpunch/README.md @@ -84,6 +84,7 @@ Note: if you are using a userspace, and you have custom keycodes, you will need || defined(KEYBOARD_fingerpunch_sweeeeep) \ || defined(KEYBOARD_fingerpunch_vulpes_minora) \ || defined(KEYBOARD_fingerpunch_vulpes_majora_v1) \ + || defined(KEYBOARD_fingerpunch_ximega) \ || defined(KEYBOARD_fingerpunch_ximi) # define PLACEHOLDER_SAFE_RANGE FP_SAFE_RANGE #else @@ -334,7 +335,7 @@ When using a fingerpunch board, the get_haptic_enabled_key is completely overrid * NO_HAPTIC_PUNCTUATION * etc... -See https://github.com/qmk/qmk_firmware/blob/master/docs/feature_haptic_feedback.md#haptic-key-exclusion for details +See https://github.com/qmk/qmk_firmware/blob/master/docs/features/haptic_feedback.md#haptic-key-exclusion for details If you'd like to override this, you'll need to create a function as follows: `bool get_haptic_enabled_key_user(uint16_t keycode, keyrecord_t *record)` @@ -364,15 +365,45 @@ Note that the ctrl-X audio responses will use control as the modifier, so it won | Setting | Description | Default | | --------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------- | -| `FP_AUDIO_MOUSE_BUTTONS` | (Optional) Enable audio response for Mouse 1, 2, and 3 | `undefined` | -| `FP_AUDIO_CUT_COPY_PASTE` | (Optional) Enable audio response for ctrl-x, ctrl-c, ctrl-v | `undefined` | -| `FP_AUDIO_SAVE` | (Optional) Enable audio response for ctrl-s | `undefined` | +| `FP_AUDIO_MOUSE_BUTTONS` | (Optional) Enable audio response for Mouse 1, 2, and 3 | `undefined` | +| `FP_AUDIO_CUT_COPY_PASTE` | (Optional) Enable audio response for ctrl-x, ctrl-c, ctrl-v | `undefined` | +| `FP_AUDIO_SAVE` | (Optional) Enable audio response for ctrl-s | `undefined` | +## VIK -## Keymap +VIK features are automatically integrated when a keyboard is properly configured using the fingerpunch VIK library. If you'd like to support these VIK features, please see the [FP_LIBRARY_SUPPORT](./FP_LIBRARY_SUPPORT.md) page -If you are looking to use process_record_kb() or process_record +All fingerpunch boards with a VIK connector support the features below. When compiling, you can add the flags below. Please note that the `*_RIGHT` features are for split boards only, and that pointing devices will require additional configuration to change orientation or invert the axis. See the [QMK documentation for pointing devices](https://github.com/qmk/qmk_firmware/blob/master/docs/features/pointing_device.md#common-configuration) if you need to change the pointing orientation. +Important notes: +* For split keyboards with **different** pointing devices (i.e. cirque on left, and trackball on right), you must build two separate firmwares, one for each half. You must specify `VIK_BUILD_LEFT=yes` as a parameter when compiling the left, and `VIK_BUILD_RIGHT=yes` when compiling the right. Then you need to flash each firmware on each respective half. +* For split keyboards, the fingerpunch VIK logic will set `VIK_BUILD_LEFT` and `VIK_BUILD_RIGHT` so that you can check what the user configured. This can be checked with `#ifdef VIK_BUILD_LEFT` or `#ifdef VIK_BUILD_RIGHT` +* All encoder functions in VIK modules do not support any click function of the encoder. +* For all of the items below, please see the [VIK repository certifications](https://github.com/sadekbaroudi/vik?tab=readme-ov-file#known-list-of-vik-certifications) in the modules section for details on the hardware. + +| Rules.mk | Split Use | Description | +| --------------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `VIK_ENABLE=yes` | Both | Enables the VIK code, this should always be yes if the keyboard has a VIK connector that meets specifications | +| `VIK_BUILD_LEFT=yes` | Left | **If and only if** you have different pointing devices on each half, you must specify this when compiling firmware for the left, and then flash that firmware on the left only | +| `VIK_BUILD_RIGHT=yes` | Right | **If and only if** you have different pointing devices on each half, you must specify this when compiling firmware for the right, and then flash that firmware on the right only | +| `VIK_HAPTIC=yes` | Both | Enables haptic feedback on both sides of the keyboard, requires `#define SPLIT_HAPTIC_ENABLE` | +| `VIK_ILI9341=yes` | Left | Enables ILI9341 display, see [qmk quantum painter](https://github.com/qmk/qmk_firmware/blob/master/docs/quantum_painter.md) | +| `VIK_PER56_CIRQUE_LEDS=yes` | Left | Enables PER56 encoder and cirque trackpad, note that the keyboard firmware should enable RGB leds since the number of LEDs can vary, use `#ifdef VIK_PER56_CIRQUE_LEDS` to check if this is enabled | +| `VIK_PER56_PMW3360_LEDS=yes` | Left | Enables PER56 encoder and pmw3360, note that the keyboard firmware should enable RGB leds since the number of LEDs can vary, use `#ifdef VIK_PER56_PMW3360_LEDS` to check if this is enabled | +| `VIK_PMW3360=yes` | Left | Enables pmw3360, note that the keyboard firmware should set orientation, use `#ifdef VIK_PMW3360` to check if this is enabled | +| `VIK_WEACT_ST7735=yes` | Left | Enables WeAct ST7735 display, see [qmk quantum painter](https://github.com/qmk/qmk_firmware/blob/master/docs/quantum_painter.md) | +| `VIK_GC9A01=yes` | Left | Enables GC9A01 display, see [qmk quantum painter](https://github.com/qmk/qmk_firmware/blob/master/docs/quantum_painter.md) . | +| `VIK_WAVESHARE_22224=yes` | Left | Enables Waveshare 22224 display, see [qmk quantum painter](https://github.com/qmk/qmk_firmware/blob/master/docs/quantum_painter.md) | +| `VIK_AZOTEQ=yes` | Left | Enables azoteq trackpad, note that the keyboard firmware should set orientation and trackpade size, use `#ifdef VIK_AZOTEQ` to check if this is enabled | +| `VIK_EC11_EVQWGD001=yes` | Left | Enables encoders in QMK. Because a keyboard can have existing encoders, the pin configuration must happen at the keyboard. Use `#ifdef VIK_EC11_EVQWGD001` to check if this is enabled. | +| `VIK_CIRQUE=yes` | Left | Enables cirque trackpad via SPI, note that the keyboard firmware should set orientation, use `#ifdef VIK_CIRQUE` to check if this is enabled | +| `VIK_TRACKPOINT=yes` | Left | Enables PS/2 trackpoint. This does **not** support split pointing, so it must be on the master half | +| `VIK_CIRQUE_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. See section header above about determining which device is on which half. | +| `VIK_PER56_CIRQUE_LEDS_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. See section header above about determining which device is on which half. | +| `VIK_PER56_PMW3360_LEDS_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. See section header above about determining which device is on which half. | +| `VIK_PMW3360_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. See section header above about determining which device is on which half. | +| `VIK_AZOTEQ_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. See section header above about determining which device is on which half. | +| `VIK_EC11_EVQWGD001_RIGHT=yes` | Right | Same as above, but equivalent for the right half of a split board. Do not set this if you aren't using a split keyboard. | ## Debugging diff --git a/keyboards/fingerpunch/arachnophobe/config.h b/keyboards/fingerpunch/arachnophobe/config.h index 2b26407f12..47be0d7245 100644 --- a/keyboards/fingerpunch/arachnophobe/config.h +++ b/keyboards/fingerpunch/arachnophobe/config.h @@ -40,3 +40,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/barobord/config.h b/keyboards/fingerpunch/barobord/config.h index 8c90ca780b..16503eab2b 100644 --- a/keyboards/fingerpunch/barobord/config.h +++ b/keyboards/fingerpunch/barobord/config.h @@ -116,3 +116,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/barobord_byomcu/config.h b/keyboards/fingerpunch/barobord_byomcu/config.h index f5f75ea8b0..3a1b4c4b53 100644 --- a/keyboards/fingerpunch/barobord_byomcu/config.h +++ b/keyboards/fingerpunch/barobord_byomcu/config.h @@ -116,3 +116,4 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/bgkeeb/config.h b/keyboards/fingerpunch/bgkeeb/config.h index e63ab796a5..1b4e68886d 100644 --- a/keyboards/fingerpunch/bgkeeb/config.h +++ b/keyboards/fingerpunch/bgkeeb/config.h @@ -99,3 +99,5 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/bigbarobord/config.h b/keyboards/fingerpunch/bigbarobord/config.h index f36780cdfe..b56a06fb5b 100644 --- a/keyboards/fingerpunch/bigbarobord/config.h +++ b/keyboards/fingerpunch/bigbarobord/config.h @@ -121,3 +121,4 @@ along with this program. If not, see . // If using encoder type 2, uncomment this // #define ENCODERS_B_REVERSE +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/euclid36/config.h b/keyboards/fingerpunch/euclid36/config.h index 5575cbcd83..1a08c9656d 100644 --- a/keyboards/fingerpunch/euclid36/config.h +++ b/keyboards/fingerpunch/euclid36/config.h @@ -79,3 +79,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/atmega/v1/config.h b/keyboards/fingerpunch/ffkb/atmega/v1/config.h index 0cb94cb8b6..ca95035d0c 100644 --- a/keyboards/fingerpunch/ffkb/atmega/v1/config.h +++ b/keyboards/fingerpunch/ffkb/atmega/v1/config.h @@ -139,3 +139,4 @@ along with this program. If not, see . // If using encoder type 2, uncomment this // #define ENCODERS_B_REVERSE +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/byomcu/v1/config.h b/keyboards/fingerpunch/ffkb/byomcu/v1/config.h index d054cdc8a9..5d709ec32c 100644 --- a/keyboards/fingerpunch/ffkb/byomcu/v1/config.h +++ b/keyboards/fingerpunch/ffkb/byomcu/v1/config.h @@ -63,3 +63,5 @@ along with this program. If not, see . #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/byomcu/v2/config.h b/keyboards/fingerpunch/ffkb/byomcu/v2/config.h index aa5baec764..46572b14a1 100644 --- a/keyboards/fingerpunch/ffkb/byomcu/v2/config.h +++ b/keyboards/fingerpunch/ffkb/byomcu/v2/config.h @@ -96,3 +96,5 @@ along with this program. If not, see . #define FP_HAPTIC_CUT_COPY_PASTE #define FP_HAPTIC_SAVE #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/byomcu/v3/config.h b/keyboards/fingerpunch/ffkb/byomcu/v3/config.h index 4a87b853e1..545dc0a8b1 100644 --- a/keyboards/fingerpunch/ffkb/byomcu/v3/config.h +++ b/keyboards/fingerpunch/ffkb/byomcu/v3/config.h @@ -79,3 +79,4 @@ along with this program. If not, see . #define POINTING_DEVICE_INVERT_Y #endif +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/lite/v1/config.h b/keyboards/fingerpunch/ffkb/lite/v1/config.h index a6842bf581..4e84288142 100644 --- a/keyboards/fingerpunch/ffkb/lite/v1/config.h +++ b/keyboards/fingerpunch/ffkb/lite/v1/config.h @@ -38,4 +38,6 @@ along with this program. If not, see . { D3, D2, B2, B6 } #define MATRIX_COL_PINS \ { B4, E6, D7, C6, D4, B5, F4, F5, F6, F7, B1, B3 } -#endif \ No newline at end of file +#endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ffkb/rp/v0/config.h b/keyboards/fingerpunch/ffkb/rp/v0/config.h index 1b9c9a9271..21e1717e35 100644 --- a/keyboards/fingerpunch/ffkb/rp/v0/config.h +++ b/keyboards/fingerpunch/ffkb/rp/v0/config.h @@ -119,3 +119,5 @@ along with this program. If not, see . #define FP_HAPTIC_CUT_COPY_PASTE #define FP_HAPTIC_SAVE #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/fflx/config.h b/keyboards/fingerpunch/fflx/config.h index d6c6643786..651b146d1b 100644 --- a/keyboards/fingerpunch/fflx/config.h +++ b/keyboards/fingerpunch/fflx/config.h @@ -85,3 +85,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/fpm101/config.h b/keyboards/fingerpunch/fpm101/config.h index 31df9e88e0..c1dced08b5 100644 --- a/keyboards/fingerpunch/fpm101/config.h +++ b/keyboards/fingerpunch/fpm101/config.h @@ -200,3 +200,4 @@ along with this program. If not, see . #define POINTING_DEVICE_INVERT_Y #endif +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/kucheza/config.h b/keyboards/fingerpunch/kucheza/config.h index 6feb81f053..447783c18a 100644 --- a/keyboards/fingerpunch/kucheza/config.h +++ b/keyboards/fingerpunch/kucheza/config.h @@ -141,4 +141,4 @@ along with this program. If not, see . // #define POINTING_DEVICE_INVERT_Y // #endif -#include "keyboards/fingerpunch/src/config_post.h" \ No newline at end of file +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/luakeeb/config.h b/keyboards/fingerpunch/luakeeb/config.h index 99b05563f7..c054027e6d 100644 --- a/keyboards/fingerpunch/luakeeb/config.h +++ b/keyboards/fingerpunch/luakeeb/config.h @@ -89,3 +89,5 @@ along with this program. If not, see . //#define NO_ACTION_ONESHOT //#define NO_ACTION_MACRO //#define NO_ACTION_FUNCTION + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/baboon38/config.h b/keyboards/fingerpunch/personal/baboon38/config.h index ab77fb078b..092c18e4c8 100644 --- a/keyboards/fingerpunch/personal/baboon38/config.h +++ b/keyboards/fingerpunch/personal/baboon38/config.h @@ -31,4 +31,6 @@ // To dynamically control the backlight with BL_TOGG keycode #define BACKLIGHT_PIN GP24 -#endif \ No newline at end of file +#endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/badwings/config.h b/keyboards/fingerpunch/personal/badwings/config.h index 7a275a311a..d23f4f573f 100644 --- a/keyboards/fingerpunch/personal/badwings/config.h +++ b/keyboards/fingerpunch/personal/badwings/config.h @@ -27,3 +27,5 @@ #define POINTING_DEVICE_TASK_THROTTLE_MS 5 #define CIRQUE_PINNACLE_DIAMETER_MM 35 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/badwings_v2/config.h b/keyboards/fingerpunch/personal/badwings_v2/config.h index f25b594d49..692c63aa46 100644 --- a/keyboards/fingerpunch/personal/badwings_v2/config.h +++ b/keyboards/fingerpunch/personal/badwings_v2/config.h @@ -19,4 +19,4 @@ #define CIRQUE_PINNACLE_DIAMETER_MM 35 #define POINTING_DEVICE_ROTATION_90 -#include "keyboards/fingerpunch/src/config_post.h" \ No newline at end of file +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/barghoot/config.h b/keyboards/fingerpunch/personal/barghoot/config.h index 272560094d..7c15e084f2 100644 --- a/keyboards/fingerpunch/personal/barghoot/config.h +++ b/keyboards/fingerpunch/personal/barghoot/config.h @@ -91,3 +91,5 @@ #define RGB_MATRIX_LED_COUNT 63 #endif // defined(RGB_MATRIX_ENABLE) + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/euclid36proto/config.h b/keyboards/fingerpunch/personal/euclid36proto/config.h index 3036c8dd34..e42cb45a8e 100644 --- a/keyboards/fingerpunch/personal/euclid36proto/config.h +++ b/keyboards/fingerpunch/personal/euclid36proto/config.h @@ -75,3 +75,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/klor/config.h b/keyboards/fingerpunch/personal/klor/config.h index b48cefb493..032c2ad530 100644 --- a/keyboards/fingerpunch/personal/klor/config.h +++ b/keyboards/fingerpunch/personal/klor/config.h @@ -133,3 +133,5 @@ along with this program. If not, see . # define F_LRA 150 // resonance freq # define DRV_GREETING alert_750ms #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/ximi/config.h b/keyboards/fingerpunch/personal/ximi/config.h index 15e18f0743..522d6accea 100644 --- a/keyboards/fingerpunch/personal/ximi/config.h +++ b/keyboards/fingerpunch/personal/ximi/config.h @@ -213,3 +213,5 @@ along with this program. If not, see . defined(FP_TRACKBALL_RIGHT_ONLY) #define POINTING_DEVICE_INVERT_X_RIGHT #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/ximihalf/config.h b/keyboards/fingerpunch/personal/ximihalf/config.h index d67bd6ebc7..161d5fa412 100644 --- a/keyboards/fingerpunch/personal/ximihalf/config.h +++ b/keyboards/fingerpunch/personal/ximihalf/config.h @@ -168,3 +168,5 @@ along with this program. If not, see . #define POINTING_DEVICE_INVERT_Y // This inverts the Y on the left side only #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/ximihalf_rp2040/config.h b/keyboards/fingerpunch/personal/ximihalf_rp2040/config.h index b0c0d1c825..5d6dbc623f 100644 --- a/keyboards/fingerpunch/personal/ximihalf_rp2040/config.h +++ b/keyboards/fingerpunch/personal/ximihalf_rp2040/config.h @@ -166,3 +166,5 @@ along with this program. If not, see . // #define SPI_MOSI_PAL_MODE 5 // already defined in chibios // #define SPI_MISO_PAL_MODE 5 // already defined in chibios #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/personal/zazu/config.h b/keyboards/fingerpunch/personal/zazu/config.h index fb384f4a41..1fc9f7c2aa 100644 --- a/keyboards/fingerpunch/personal/zazu/config.h +++ b/keyboards/fingerpunch/personal/zazu/config.h @@ -108,3 +108,5 @@ #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/pinkiesout/v1/config.h b/keyboards/fingerpunch/pinkiesout/v1/config.h index ac29ca2230..a0ab4a84dd 100644 --- a/keyboards/fingerpunch/pinkiesout/v1/config.h +++ b/keyboards/fingerpunch/pinkiesout/v1/config.h @@ -97,3 +97,5 @@ along with this program. If not, see . #ifdef OLED_ENABLE #define OLED_DISPLAY_128X64 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/pinkiesout/v2/config.h b/keyboards/fingerpunch/pinkiesout/v2/config.h index f1a38b383e..e9d7e13fc7 100644 --- a/keyboards/fingerpunch/pinkiesout/v2/config.h +++ b/keyboards/fingerpunch/pinkiesout/v2/config.h @@ -163,3 +163,5 @@ along with this program. If not, see . #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/pinkiesout/v2_ext/config.h b/keyboards/fingerpunch/pinkiesout/v2_ext/config.h index c8983d0a91..b3968f939b 100644 --- a/keyboards/fingerpunch/pinkiesout/v2_ext/config.h +++ b/keyboards/fingerpunch/pinkiesout/v2_ext/config.h @@ -163,3 +163,5 @@ along with this program. If not, see . #define I2C1_CLOCK_SPEED 400000 #define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/rockon/v1/config.h b/keyboards/fingerpunch/rockon/v1/config.h index 137a7b654c..f63fdcf1fa 100644 --- a/keyboards/fingerpunch/rockon/v1/config.h +++ b/keyboards/fingerpunch/rockon/v1/config.h @@ -31,3 +31,5 @@ along with this program. If not, see . #ifdef OLED_ENABLE #define OLED_DISPLAY_128X64 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/rockon/v2/config.h b/keyboards/fingerpunch/rockon/v2/config.h index f7ba5858dd..1887880d28 100644 --- a/keyboards/fingerpunch/rockon/v2/config.h +++ b/keyboards/fingerpunch/rockon/v2/config.h @@ -75,3 +75,5 @@ along with this program. If not, see . #ifdef OLED_ENABLE #define OLED_DISPLAY_128X64 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/rockon/v3/config.h b/keyboards/fingerpunch/rockon/v3/config.h index 51b742fbe5..645b8e92a0 100644 --- a/keyboards/fingerpunch/rockon/v3/config.h +++ b/keyboards/fingerpunch/rockon/v3/config.h @@ -132,3 +132,4 @@ along with this program. If not, see . #define POINTING_DEVICE_INVERT_Y #endif +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/rockon_bp/config.h b/keyboards/fingerpunch/rockon_bp/config.h index 63b6d0d8e4..ac650d9a3e 100644 --- a/keyboards/fingerpunch/rockon_bp/config.h +++ b/keyboards/fingerpunch/rockon_bp/config.h @@ -155,3 +155,5 @@ along with this program. If not, see . #ifdef OLED_ENABLE #define OLED_DISPLAY_128X64 #endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/src/config_post.h b/keyboards/fingerpunch/src/config_post.h index 3556c8d409..cb842e372d 100644 --- a/keyboards/fingerpunch/src/config_post.h +++ b/keyboards/fingerpunch/src/config_post.h @@ -1,3 +1,3 @@ #ifdef VIK_ENABLE - #include "keyboards/fingerpunch/src/vik/config.h" -#endif \ No newline at end of file + #include "keyboards/fingerpunch/src/vik/config.vik.post.h" +#endif diff --git a/keyboards/fingerpunch/src/config_pre.h b/keyboards/fingerpunch/src/config_pre.h index 5d76151b8f..2636f3cad7 100644 --- a/keyboards/fingerpunch/src/config_pre.h +++ b/keyboards/fingerpunch/src/config_pre.h @@ -4,3 +4,7 @@ #ifdef POINTING_DEVICE_ENABLE #define PMW33XX_CPI 1000 #endif + +#ifdef VIK_ENABLE + #include "keyboards/fingerpunch/src/vik/config.vik.pre.h" +#endif diff --git a/keyboards/fingerpunch/src/vik/config.h b/keyboards/fingerpunch/src/vik/config.vik.post.h similarity index 85% rename from keyboards/fingerpunch/src/vik/config.h rename to keyboards/fingerpunch/src/vik/config.vik.post.h index 5a405c33ee..2e74b11948 100644 --- a/keyboards/fingerpunch/src/vik/config.h +++ b/keyboards/fingerpunch/src/vik/config.vik.post.h @@ -12,6 +12,7 @@ * VIK_WAVESHARE_22224 * VIK_AZOTEQ * VIK_EC11_EVQWGD001 + * VIK_CIRQUE (really just a raw cirque) * VIK_TRACKPOINT * * Pin config: @@ -96,7 +97,7 @@ #define DISPLAY_RST_PIN VIK_DISPLAY_RST_UNUSED_PIN #endif -#ifdef VIK_PER56_CIRQUE_LEDS +#if defined(VIK_PER56_CIRQUE_LEDS) || defined(VIK_PER56_CIRQUE_LEDS_RIGHT) #ifdef RGBLIGHT_LED_COUNT #undef RGBLIGHT_LED_COUNT #endif @@ -109,7 +110,7 @@ #define RGBLIGHT_LED_COUNT 4 #endif -#ifdef VIK_PER56_PMW3360_LEDS +#if defined(VIK_PER56_PMW3360_LEDS) || defined(VIK_PER56_PMW3360_LEDS_RIGHT) // Trackball config #define PMW33XX_CS_PIN VIK_SPI_CS #define PMW33XX_CPI 1000 @@ -127,7 +128,7 @@ #define RGBLIGHT_LED_COUNT 4 #endif -#ifdef VIK_PMW3360 +#if defined(VIK_PMW3360) || defined(VIK_PMW3360_RIGHT) // Trackball config #define PMW33XX_CS_PIN VIK_SPI_CS #define PMW33XX_CPI 1000 @@ -167,20 +168,20 @@ #define DISPLAY_RST_PIN VIK_DISPLAY_RST_UNUSED_PIN #endif -#ifdef VIK_AZOTEQ +#if defined(VIK_AZOTEQ) || defined(VIK_AZOTEQ_RIGHT) // default to AZOTEQ_IQS5XX_TPS43... shouldn't really do this #if !defined(AZOTEQ_IQS5XX_TPS43) && !defined(AZOTEQ_IQS5XX_TPS65) // #warning "fingerpunch:vik:azoteq: no azoteq profile defined, defaulted to AZOTEQ_IQS5XX_TPS43" #define AZOTEQ_IQS5XX_TPS43 - #define AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE true - #define AZOTEQ_IQS5XX_SWIPE_X_ENABLE true - #define AZOTEQ_IQS5XX_SWIPE_Y_ENABLE true - #define AZOTEQ_IQS5XX_ZOOM_ENABLE true - // Can only use motion pin on unibodies or splits that don't use split pointing - // This is currently a QMK constraint - #ifndef SPLIT_POINTING - #define POINTING_DEVICE_MOTION_PIN VIK_GPIO_2 - #endif + #endif + // #define AZOTEQ_IQS5XX_PRESS_AND_HOLD_ENABLE true + // #define AZOTEQ_IQS5XX_SWIPE_X_ENABLE true + // #define AZOTEQ_IQS5XX_SWIPE_Y_ENABLE true + // #define AZOTEQ_IQS5XX_ZOOM_ENABLE true + // Can only use motion pin on unibodies or splits that don't use split pointing + // This is currently a QMK constraint + #ifndef SPLIT_POINTING_ENABLE + #define POINTING_DEVICE_MOTION_PIN VIK_GPIO_2 #endif #endif @@ -206,4 +207,6 @@ #ifdef CIRQUE_ENABLE #define CIRQUE_PINNACLE_SPI_CS_PIN VIK_SPI_CS + #define CIRQUE_PINNACLE_TAP_ENABLE + #define POINTING_DEVICE_TASK_THROTTLE_MS 5 #endif diff --git a/keyboards/fingerpunch/src/vik/config.vik.pre.h b/keyboards/fingerpunch/src/vik/config.vik.pre.h new file mode 100644 index 0000000000..ed1b4b6fc2 --- /dev/null +++ b/keyboards/fingerpunch/src/vik/config.vik.pre.h @@ -0,0 +1,12 @@ +#ifdef SPLIT_KEYBOARD + #ifdef VIK_POINTING_LEFT + #ifdef VIK_POINTING_RIGHT + #define SPLIT_POINTING_ENABLE + #define POINTING_DEVICE_COMBINED + #else + #define POINTING_DEVICE_LEFT + #endif + #elif defined(VIK_POINTING_RIGHT) + #define POINTING_DEVICE_RIGHT + #endif +#endif diff --git a/keyboards/fingerpunch/src/vik/rules.mk b/keyboards/fingerpunch/src/vik/rules.mk index c6ccb2834d..fc14984669 100644 --- a/keyboards/fingerpunch/src/vik/rules.mk +++ b/keyboards/fingerpunch/src/vik/rules.mk @@ -12,145 +12,31 @@ # VIK_WAVESHARE_22224 # VIK_AZOTEQ # VIK_EC11_EVQWGD001 +# VIK_CIRQUE # VIK_TRACKPOINT -ifeq ($(strip $(VIK_HAPTIC)), yes) - HAPTIC_ENABLE = yes - HAPTIC_DRIVER = drv2605l - OPT_DEFS += -DVIK_HAPTIC +# rules.mk options for split right half +# VIK_CIRQUE_RIGHT +# VIK_PER56_CIRQUE_LEDS_RIGHT +# VIK_PER56_PMW3360_LEDS_RIGHT +# VIK_PMW3360_RIGHT +# VIK_AZOTEQ_RIGHT +# VIK_EC11_EVQWGD001_RIGHT + +# Up front rules +include keyboards/fingerpunch/src/vik/rules.vik.pre.mk + +# Include the unibody / split left VIK features +include keyboards/fingerpunch/src/vik/rules.vik.main.general.mk +include keyboards/fingerpunch/src/vik/rules.vik.main.pointing.mk + +### Begin VIK right half support, if there is a VIK module on the right half +### IMPORTANT: not all modules can work on the slave half, which is a QMK limitation +### only those that work will be handled here +ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + include keyboards/fingerpunch/src/vik/rules.vik.right.general.mk + include keyboards/fingerpunch/src/vik/rules.vik.right.pointing.mk endif -ifeq ($(strip $(VIK_ILI9341)), yes) - # For LCD backlight toggling - BACKLIGHT_ENABLE = yes - BACKLIGHT_DRIVER = software - - QUANTUM_PAINTER_ENABLE = yes - QUANTUM_PAINTER_DRIVERS += ili9341_spi - QUANTUM_PAINTER_LVGL_INTEGRATION = yes - SRC += keyboards/fingerpunch/src/display/ili9341.c - OPT_DEFS += -DVIK_ILI9341 -endif - -ifeq ($(strip $(VIK_PER56_CIRQUE_LEDS)), yes) - CIRQUE_ENABLE = yes - ENCODER_ENABLE = yes -# RGBLIGHT_ENABLE = yes # you need to choose whether or not this is enabled within the keyboard or user rules.mk - OPT_DEFS += -DVIK_PER56_CIRQUE_LEDS -endif - -ifeq ($(strip $(VIK_PER56_PMW3360_LEDS)), yes) - PMW3360_ENABLE = yes - ENCODER_ENABLE = yes -# RGBLIGHT_ENABLE = yes # you need to choose whether or not this is enabled within the keyboard or user rules.mk - OPT_DEFS += -DVIK_PER56_PMW3360_LEDS -endif - -ifeq ($(strip $(VIK_PMW3360)), yes) - PMW3360_ENABLE = yes - OPT_DEFS += -DVIK_PMW3360 -endif - -ifeq ($(strip $(VIK_WEACT_ST7735)), yes) - # For LCD backlight toggling - BACKLIGHT_ENABLE = yes - BACKLIGHT_DRIVER = software - - QUANTUM_PAINTER_ENABLE = yes - QUANTUM_PAINTER_DRIVERS += st7735_spi - QUANTUM_PAINTER_LVGL_INTEGRATION = yes - SRC += keyboards/fingerpunch/src/display/st7735.c -# WPM_ENABLE = yes - OPT_DEFS += -DVIK_WEACT_ST7735 -endif - -ifeq ($(strip $(VIK_GC9A01)), yes) - QUANTUM_PAINTER_ENABLE = yes - QUANTUM_PAINTER_DRIVERS += gc9a01_spi - QUANTUM_PAINTER_LVGL_INTEGRATION = yes - SRC += keyboards/fingerpunch/src/display/gc9a01.c -# WPM_ENABLE = yes - OPT_DEFS += -DVIK_GC9A01 -endif - -ifeq ($(strip $(VIK_WAVESHARE_22224)), yes) - QUANTUM_PAINTER_ENABLE = yes - QUANTUM_PAINTER_DRIVERS += st7789_spi - QUANTUM_PAINTER_LVGL_INTEGRATION = yes - SRC += keyboards/fingerpunch/src/display/waveshare_22224.c -# WPM_ENABLE = yes - OPT_DEFS += -DVIK_WAVESHARE_22224 -endif - -ifeq ($(strip $(VIK_AZOTEQ)), yes) - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := azoteq_iqs5xx - OPT_DEFS += -DVIK_AZOTEQ -endif - -ifeq ($(strip $(VIK_EC11_EVQWGD001)), yes) - ENCODER_ENABLE := yes - OPT_DEFS += -DVIK_EC11_EVQWGD001 -endif - -ifeq ($(strip $(VIK_TRACKPOINT)), yes) - - ###### OVERALL FINDINGS SO FAR - # AVR interrupt mode doesn't work for RP2040, as it requires PAL_MODE_OUTPUT_OPENDRAIN, which isn't provided for RP2040 - # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#interrupt-version-arm-chibios-idinterrupt-version-chibios - # https://github.com/qmk/qmk_firmware/pull/22615#issuecomment-1841537237 - - # USART mode won't work, since the pins on the VIK controllers don't use USART for GPIO 1 and GPIO 2 - # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#usart-version-idusart-version - - # The only thing that's left is busywait, which is not recommended by QMK, and also requires PAL_MODE_OUTPUT_OPENDRAIN - # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#busywait-version-idbusywait-version - - # So, our only option is to use two consecutive pins, which means we can't even use the VIK connector unless GPIO AD1 and AD2 - # are consecutive, as defined by the RP2040 vendor driver, check QMK docs - - # Options are: - # 1) hand wire from VIK module to a PCB with consecutive GPIO available (assuming RP2040), or hand wire to any two GPIO for non-RP2040 controllers. This also requires a bodge for 3.3v (untested) or a logic level conversion between 3.3v and 5v if using a 3.3v controller - # 2) figure out an alternative way to get a driver working in QMK with PAL_MODE_OUTPUT_OPENDRAIN on an RP2040 (I don't even know if this is possible) - ###### - - ###### Actual VIK logic and options below: - # Uncomment these two lines, and one of the modes to test the various options, see: - # https://discord.com/channels/939959680611020840/1179500491525328926/1189474876386459678 - # PS2_MOUSE_ENABLE = yes - # PS2_ENABLE = yes - - # Busywait mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#busywait-version-idbusywait-version - # PS2_DRIVER = busywait - - # If using this mode, also see: keyboards/fingerpunch/svlinky/halconf.h - # ARM interrupt mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#interrupt-version-arm-chibios-idinterrupt-version-chibios - # PS2_DRIVER = interrupt - - # RP2040 pio / vendor mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#rp2040-pio-version-idrp2040-pio-version - # PS2_DRIVER = vendor - - OPT_DEFS += -DVIK_TRACKPOINT -endif - -ifeq ($(strip $(VIK_RGB_ONLY)), yes) - OPT_DEFS += -DVIK_RGB_ONLY -endif - -ifeq ($(strip $(PMW3360_ENABLE)), yes) - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := pmw3360 - QUANTUM_LIB_SRC += spi_master.c - OPT_DEFS += -DVIK_TRACKBALL_ENABLE -endif - -ifeq ($(strip $(CIRQUE_ENABLE)), yes) - MOUSEKEY_ENABLE := yes # not required, but enabling for mouse button keys - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER = cirque_pinnacle_spi - OPT_DEFS += -DCIRQUE_ENABLE -endif - -ifeq ($(strip $(QUANTUM_PAINTER_ENABLE)), yes) - SRC += keyboards/fingerpunch/src/display/fp_display.c -endif +# Include any post processing that's dependent on everything else +include keyboards/fingerpunch/src/vik/rules.vik.post.mk diff --git a/keyboards/fingerpunch/src/vik/rules.vik.main.general.mk b/keyboards/fingerpunch/src/vik/rules.vik.main.general.mk new file mode 100644 index 0000000000..b03540139f --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.main.general.mk @@ -0,0 +1,112 @@ +# Note that we need to wrap *all* of the actual enabling of drivers to only happen when building +# the left side. This is to avoid conflicts with the VIK device on the right half +# Notice the blocks below: +# ifeq ($(strip $(SPLIT_KEYBOARD)), yes) +# ifeq ($(strip $(VIK_BUILD_LEFT)), yes) +# rules to enable feature +# endif +# else +# rules to enable feature +# endif + +ifeq ($(strip $(VIK_HAPTIC)), yes) + ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + HAPTIC_ENABLE = yes + HAPTIC_DRIVER = drv2605l + endif + else + HAPTIC_ENABLE = yes + HAPTIC_DRIVER = drv2605l + endif + OPT_DEFS += -DVIK_HAPTIC +endif + +ifeq ($(strip $(VIK_ILI9341)), yes) + ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + BACKLIGHT_ENABLE = yes + BACKLIGHT_DRIVER = software + + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += ili9341_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/ili9341.c + endif + else + BACKLIGHT_ENABLE = yes + BACKLIGHT_DRIVER = software + + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += ili9341_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/ili9341.c + endif + + OPT_DEFS += -DVIK_ILI9341 +endif + +ifeq ($(strip $(VIK_WEACT_ST7735)), yes) + ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + BACKLIGHT_ENABLE = yes + BACKLIGHT_DRIVER = software + + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += st7735_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/st7735.c + endif + else + BACKLIGHT_ENABLE = yes + BACKLIGHT_DRIVER = software + + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += st7735_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/st7735.c + endif + + OPT_DEFS += -DVIK_WEACT_ST7735 +endif + +ifeq ($(strip $(VIK_GC9A01)), yes) + ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += gc9a01_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/gc9a01.c + endif + else + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += gc9a01_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/gc9a01.c + endif + + OPT_DEFS += -DVIK_GC9A01 +endif + +ifeq ($(strip $(VIK_WAVESHARE_22224)), yes) + ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += st7789_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/waveshare_22224.c + endif + else + QUANTUM_PAINTER_ENABLE = yes + QUANTUM_PAINTER_DRIVERS += st7789_spi + QUANTUM_PAINTER_LVGL_INTEGRATION = yes + SRC += keyboards/fingerpunch/src/display/waveshare_22224.c + endif + + OPT_DEFS += -DVIK_WAVESHARE_22224 +endif + +ifeq ($(strip $(VIK_EC11_EVQWGD001)), yes) + ENCODER_ENABLE := yes + OPT_DEFS += -DVIK_EC11_EVQWGD001 +endif diff --git a/keyboards/fingerpunch/src/vik/rules.vik.main.pointing.mk b/keyboards/fingerpunch/src/vik/rules.vik.main.pointing.mk new file mode 100644 index 0000000000..7982de6d7f --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.main.pointing.mk @@ -0,0 +1,83 @@ +ifeq ($(strip $(SPLIT_KEYBOARD)), yes) + ifeq ($(strip $(VIK_BUILD_LEFT)), yes) + endif +else +endif + +# Point devices left +ifeq ($(strip $(VIK_AZOTEQ)), yes) + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER := azoteq_iqs5xx + VIK_POINTING_LEFT := yes + OPT_DEFS += -DVIK_AZOTEQ + OPT_DEFS += -DVIK_POINTING_LEFT +endif + +ifeq ($(strip $(VIK_CIRQUE)), yes) + CIRQUE_ENABLE := yes + VIK_POINTING_LEFT := yes + OPT_DEFS += -DVIK_CIRQUE + OPT_DEFS += -DVIK_POINTING_LEFT +endif + +ifeq ($(strip $(VIK_PER56_CIRQUE_LEDS)), yes) + CIRQUE_ENABLE = yes + VIK_POINTING_LEFT := yes + ENCODER_ENABLE = yes + OPT_DEFS += -DVIK_PER56_CIRQUE_LEDS + OPT_DEFS += -DVIK_POINTING_LEFT +endif + +ifeq ($(strip $(VIK_PER56_PMW3360_LEDS)), yes) + PMW3360_ENABLE = yes + VIK_POINTING_LEFT := yes + ENCODER_ENABLE = yes + OPT_DEFS += -DVIK_PER56_PMW3360_LEDS + OPT_DEFS += -DVIK_POINTING_LEFT +endif + +ifeq ($(strip $(VIK_PMW3360)), yes) + PMW3360_ENABLE = yes + VIK_POINTING_LEFT := yes + OPT_DEFS += -DVIK_PMW3360 + OPT_DEFS += -DVIK_POINTING_LEFT +endif + +ifeq ($(strip $(VIK_TRACKPOINT)), yes) + ###### OVERALL FINDINGS SO FAR + # AVR interrupt mode doesn't work for RP2040, as it requires PAL_MODE_OUTPUT_OPENDRAIN, which isn't provided for RP2040 + # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#interrupt-version-arm-chibios-idinterrupt-version-chibios + # https://github.com/qmk/qmk_firmware/pull/22615#issuecomment-1841537237 + + # USART mode won't work, since the pins on the VIK controllers don't use USART for GPIO 1 and GPIO 2 + # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#usart-version-idusart-version + + # The only thing that's left is busywait, which is not recommended by QMK, and also requires PAL_MODE_OUTPUT_OPENDRAIN + # https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#busywait-version-idbusywait-version + + # So, our only option is to use two consecutive pins, which means we can't even use the VIK connector unless GPIO AD1 and AD2 + # are consecutive, as defined by the RP2040 vendor driver, check QMK docs + + # Options are: + # 1) hand wire from VIK module to a PCB with consecutive GPIO available (assuming RP2040), or hand wire to any two GPIO for non-RP2040 controllers. This also requires a bodge for 3.3v (untested) or a logic level conversion between 3.3v and 5v if using a 3.3v controller + # 2) figure out an alternative way to get a driver working in QMK with PAL_MODE_OUTPUT_OPENDRAIN on an RP2040 (I don't even know if this is possible) + ###### + + ###### Actual VIK logic and options below: + # Uncomment these two lines, and one of the modes to test the various options, see: + # https://discord.com/channels/939959680611020840/1179500491525328926/1189474876386459678 + # PS2_MOUSE_ENABLE = yes + # PS2_ENABLE = yes + + # Busywait mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#busywait-version-idbusywait-version + # PS2_DRIVER = busywait + + # If using this mode, also see: keyboards/fingerpunch/svlinky/halconf.h + # ARM interrupt mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#interrupt-version-arm-chibios-idinterrupt-version-chibios + # PS2_DRIVER = interrupt + + # RP2040 pio / vendor mode: https://github.com/qmk/qmk_firmware/blob/master/docs/feature_ps2_mouse.md#rp2040-pio-version-idrp2040-pio-version + # PS2_DRIVER = vendor + + OPT_DEFS += -DVIK_TRACKPOINT +endif diff --git a/keyboards/fingerpunch/src/vik/rules.vik.post.mk b/keyboards/fingerpunch/src/vik/rules.vik.post.mk new file mode 100644 index 0000000000..d27c9ad4db --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.post.mk @@ -0,0 +1,17 @@ +ifeq ($(strip $(PMW3360_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER := pmw3360 + QUANTUM_LIB_SRC += spi_master.c + OPT_DEFS += -DVIK_TRACKBALL_ENABLE +endif + +ifeq ($(strip $(CIRQUE_ENABLE)), yes) + MOUSEKEY_ENABLE := yes # not required, but enabling for mouse button keys + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER = cirque_pinnacle_spi + OPT_DEFS += -DCIRQUE_ENABLE +endif + +ifeq ($(strip $(QUANTUM_PAINTER_ENABLE)), yes) + SRC += keyboards/fingerpunch/src/display/fp_display.c +endif diff --git a/keyboards/fingerpunch/src/vik/rules.vik.pre.mk b/keyboards/fingerpunch/src/vik/rules.vik.pre.mk new file mode 100644 index 0000000000..3a3baee7b9 --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.pre.mk @@ -0,0 +1,6 @@ +VIK_POINTING_LEFT ?= no +VIK_POINTING_RIGHT ?= no + +ifeq ($(strip $(VIK_RGB_ONLY)), yes) + OPT_DEFS += -DVIK_RGB_ONLY +endif diff --git a/keyboards/fingerpunch/src/vik/rules.vik.right.general.mk b/keyboards/fingerpunch/src/vik/rules.vik.right.general.mk new file mode 100644 index 0000000000..c2888c8965 --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.right.general.mk @@ -0,0 +1,4 @@ +ifeq ($(strip $(VIK_EC11_EVQWGD001_RIGHT)), yes) + ENCODER_ENABLE := yes + OPT_DEFS += -DVIK_EC11_EVQWGD001_RIGHT +endif diff --git a/keyboards/fingerpunch/src/vik/rules.vik.right.pointing.mk b/keyboards/fingerpunch/src/vik/rules.vik.right.pointing.mk new file mode 100644 index 0000000000..f2cd72396e --- /dev/null +++ b/keyboards/fingerpunch/src/vik/rules.vik.right.pointing.mk @@ -0,0 +1,73 @@ +# Note that we need to wrap *all* of the actual enabling of drivers to only happen when building +# the right side, or if the left side has no pointing device +# Notice the blocks below: +# ifeq ($(strip $(VIK_POINTING_LEFT)), no) +# rules to enable pointing +# endif +# ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) +# rules to enable pointing +# endif + +ifeq ($(strip $(VIK_AZOTEQ_RIGHT)), yes) + ifeq ($(strip $(VIK_POINTING_LEFT)), no) + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER := azoteq_iqs5xx + endif + ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) + POINTING_DEVICE_ENABLE := yes + POINTING_DEVICE_DRIVER := azoteq_iqs5xx + endif + VIK_POINTING_RIGHT := yes + OPT_DEFS += -DVIK_AZOTEQ_RIGHT + OPT_DEFS += -DVIK_POINTING_RIGHT +endif + +ifeq ($(strip $(VIK_CIRQUE_RIGHT)), yes) + ifeq ($(strip $(VIK_POINTING_LEFT)), no) + CIRQUE_ENABLE := yes + endif + ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) + CIRQUE_ENABLE := yes + endif + VIK_POINTING_RIGHT := yes + OPT_DEFS += -DVIK_CIRQUE_RIGHT + OPT_DEFS += -DVIK_POINTING_RIGHT +endif + +ifeq ($(strip $(VIK_PER56_CIRQUE_LEDS_RIGHT)), yes) + ifeq ($(strip $(VIK_POINTING_LEFT)), no) + CIRQUE_ENABLE := yes + endif + ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) + CIRQUE_ENABLE := yes + endif + ENCODER_ENABLE = yes + VIK_POINTING_RIGHT := yes + OPT_DEFS += -DVIK_PER56_CIRQUE_LEDS_RIGHT + OPT_DEFS += -DVIK_POINTING_RIGHT +endif + +ifeq ($(strip $(VIK_PER56_PMW3360_LEDS_RIGHT)), yes) + ifeq ($(strip $(VIK_POINTING_LEFT)), no) + PMW3360_ENABLE = yes + endif + ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) + PMW3360_ENABLE = yes + endif + ENCODER_ENABLE = yes + VIK_POINTING_RIGHT := yes + OPT_DEFS += -DVIK_PER56_PMW3360_LEDS_RIGHT + OPT_DEFS += -DVIK_POINTING_RIGHT +endif + +ifeq ($(strip $(VIK_PMW3360_RIGHT)), yes) + ifeq ($(strip $(VIK_POINTING_LEFT)), no) + PMW3360_ENABLE = yes + endif + ifeq ($(strip $(VIK_BUILD_RIGHT)), yes) + PMW3360_ENABLE = yes + endif + VIK_POINTING_RIGHT := yes + OPT_DEFS += -DVIK_PMW3360_RIGHT + OPT_DEFS += -DVIK_POINTING_RIGHT +endif diff --git a/keyboards/fingerpunch/stenographobe/config.h b/keyboards/fingerpunch/stenographobe/config.h index 2b26407f12..47be0d7245 100644 --- a/keyboards/fingerpunch/stenographobe/config.h +++ b/keyboards/fingerpunch/stenographobe/config.h @@ -40,3 +40,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/svlinky/config.h b/keyboards/fingerpunch/svlinky/config.h index 746552649c..55dd9bc551 100644 --- a/keyboards/fingerpunch/svlinky/config.h +++ b/keyboards/fingerpunch/svlinky/config.h @@ -16,7 +16,8 @@ along with this program. If not, see . */ // NOTE: All logic for the modules can be found in: -// keyboards/fingerpunch/src/vik/config.h +// keyboards/fingerpunch/src/vik/config.vik.pre.h +// keyboards/fingerpunch/src/vik/config.vik.post.h // keyboards/fingerpunch/src/vik/rules.mk #pragma once diff --git a/keyboards/fingerpunch/sweeeeep/config.h b/keyboards/fingerpunch/sweeeeep/config.h index 8a62a501f4..22791c9272 100644 --- a/keyboards/fingerpunch/sweeeeep/config.h +++ b/keyboards/fingerpunch/sweeeeep/config.h @@ -93,3 +93,5 @@ /* Backwards compatibility with existing out-of-tree keymaps */ #define LAYOUT_sweeeeep LAYOUT_split_3x5_3 + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/tenbit/config.h b/keyboards/fingerpunch/tenbit/config.h index 25fe8a4085..7de0333a5f 100644 --- a/keyboards/fingerpunch/tenbit/config.h +++ b/keyboards/fingerpunch/tenbit/config.h @@ -101,3 +101,5 @@ along with this program. If not, see . #define LOCKING_SUPPORT_ENABLE /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ximega/config.h b/keyboards/fingerpunch/ximega/config.h index f2966a0af0..30050385aa 100644 --- a/keyboards/fingerpunch/ximega/config.h +++ b/keyboards/fingerpunch/ximega/config.h @@ -35,7 +35,6 @@ along with this program. If not, see . #define SPI_MOSI_PIN GP23 #define SPI_MISO_PIN GP20 -// Got help from https://www.eisbahn.jp/yoichiro/2022/08/luankey_pico_qmk_firmware.html #define MASTER_LEFT #define SPLIT_TRANSPORT_MIRROR #define SPLIT_POINTING_ENABLE @@ -143,64 +142,48 @@ along with this program. If not, see . /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -#ifdef CIRQUE_ENABLE - // cirque trackpad config - // This is for I2C only, which is not the default. Ximega doesn't have pull up resistors - // So you can't use it anyway - #define CIRQUE_PINNACLE_ADDR 0x2A - // This is for SPI only, which is the default - #define CIRQUE_PINNACLE_SPI_CS_PIN GP9 - - // Uncomment 2 lines below to switch to relative mode and enable right click - // Note that tap to click doesn't work on the slave side unless you enable relative mode - // #define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE - // #define CIRQUE_PINNACLE_SECONDARY_TAP_ENABLE - #define CIRQUE_PINNACLE_TAP_ENABLE - #define POINTING_DEVICE_TASK_THROTTLE_MS 5 -#endif - -#ifdef FP_TRACKBALL_ENABLE - // Trackball config - #define PMW33XX_CS_PIN GP9 - #define PMW33XX_CPI 1000 - #define PMW33XX_CS_DIVISOR 8 -#endif - // All the possible configurations of pointing devices -#if defined(FP_TRACKBALL_BOTH) - #define POINTING_DEVICE_COMBINED // two pointing devices - #define POINTING_DEVICE_INVERT_Y // for trackball on the left - #define POINTING_DEVICE_INVERT_X_RIGHT // for trackball on the right +#if defined(VIK_CIRQUE) || defined(VIK_PER56_CIRQUE_LEDS) + #define POINTING_DEVICE_ROTATION_90 #endif -#if defined(FP_CIRQUE_BOTH) - #define POINTING_DEVICE_COMBINED // two pointing devices - #define POINTING_DEVICE_ROTATION_90 // for cirque on the left - #define POINTING_DEVICE_ROTATION_90_RIGHT // for cirque on the right -#endif -#if defined(FP_TRACKBALL_LEFT_ONLY) - #define POINTING_DEVICE_LEFT // one pointing device, on the left - #define POINTING_DEVICE_INVERT_Y // for trackball on the left -#endif -#if defined(FP_TRACKBALL_RIGHT_ONLY) - #define POINTING_DEVICE_RIGHT // one pointing device, on the right - #define POINTING_DEVICE_INVERT_X_RIGHT // for trackball on the right -#endif -#if defined(FP_CIRQUE_LEFT_ONLY) - #define POINTING_DEVICE_LEFT // one pointing device, on the left - #define POINTING_DEVICE_ROTATION_90 // for cirque on the left -#endif -#if defined(FP_CIRQUE_RIGHT_ONLY) - #define POINTING_DEVICE_RIGHT // one pointing device, on the right - #define POINTING_DEVICE_ROTATION_90_RIGHT // for cirque on the right -#endif -#if defined(FP_TRACKBALL_LEFT_CIRQUE_RIGHT) - #define POINTING_DEVICE_COMBINED // two pointing devices - #define POINTING_DEVICE_INVERT_Y // for trackball on the left - #define POINTING_DEVICE_ROTATION_90_RIGHT // for cirque on the right +#if defined(VIK_CIRQUE_RIGHT) || defined(VIK_PER56_CIRQUE_LEDS_RIGHT) + #ifdef POINTING_DEVICE_COMBINED + #define POINTING_DEVICE_ROTATION_90_RIGHT + #else + #define POINTING_DEVICE_ROTATION_90 + #endif #endif -#if defined(FP_CIRQUE_LEFT_TRACKBALL_RIGHT) - #define POINTING_DEVICE_COMBINED // two pointing devices - #define POINTING_DEVICE_ROTATION_90 // for cirque on the left - #define POINTING_DEVICE_INVERT_X_RIGHT // for trackball on the right + +#if defined(VIK_PMW3360) || defined(VIK_PER56_PMW3360_LEDS) + #define POINTING_DEVICE_INVERT_X #endif + +#if defined(VIK_PMW3360_RIGHT) || defined(VIK_PER56_PMW3360_LEDS_RIGHT) + #ifdef POINTING_DEVICE_COMBINED + #define POINTING_DEVICE_INVERT_Y_RIGHT + #else + #define POINTING_DEVICE_INVERT_Y + #endif +#endif + +#if defined(VIK_AZOTEQ) + #define AZOTEQ_IQS5XX_TPS65 + #define POINTING_DEVICE_ROTATION_270 +#endif + +#if defined(VIK_AZOTEQ_RIGHT) + #define AZOTEQ_IQS5XX_TPS65 + #ifdef POINTING_DEVICE_COMBINED + #define POINTING_DEVICE_ROTATION_270_RIGHT + #else + #define POINTING_DEVICE_ROTATION_270 + #endif +#endif + +// Display rotations +#if defined(VIK_WEACT_ST7735) + #define FP_QP_ROTATION QP_ROTATION_180 +#endif + +// Encoder configuration from VIK is in version specific config, e.g. ximega/v1/config.h diff --git a/keyboards/fingerpunch/ximega/rules.mk b/keyboards/fingerpunch/ximega/rules.mk index d7028d20f6..5f13efb81e 100644 --- a/keyboards/fingerpunch/ximega/rules.mk +++ b/keyboards/fingerpunch/ximega/rules.mk @@ -46,103 +46,12 @@ ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) OPT_DEFS += -DRGB_MATRIX_CUSTOM_KB endif -# Choose only one (or none) of the 8 options below -FP_TRACKBALL_BOTH ?= no -FP_CIRQUE_BOTH ?= no -FP_TRACKBALL_LEFT_ONLY ?= no -FP_TRACKBALL_RIGHT_ONLY ?= no -FP_CIRQUE_LEFT_ONLY ?= no -FP_CIRQUE_RIGHT_ONLY ?= no -FP_TRACKBALL_LEFT_CIRQUE_RIGHT ?= no -FP_CIRQUE_LEFT_TRACKBALL_RIGHT ?= no -# When qmk supports multiple types of pointing devices, can remove this line below -# Also, can remove the question from fp_build.json -FP_SPLIT_LEFT ?= no -FP_SPLIT_RIGHT ?= no # If you want to use VIK2 port's RGB instead of per key rgb and VIK1, enable this FP_VIK2_RGB ?= no -ifeq ($(strip $(FP_TRACKBALL_BOTH)), yes) - PMW3360_ENABLE = yes - OPT_DEFS += -DFP_TRACKBALL_BOTH -endif - -ifeq ($(strip $(FP_TRACKBALL_LEFT_ONLY)), yes) - PMW3360_ENABLE = yes - OPT_DEFS += -DFP_TRACKBALL_LEFT_ONLY -endif - -ifeq ($(strip $(FP_TRACKBALL_RIGHT_ONLY)), yes) - PMW3360_ENABLE = yes - OPT_DEFS += -DFP_TRACKBALL_RIGHT_ONLY -endif - -ifeq ($(strip $(FP_TRACKBALL_LEFT_CIRQUE_RIGHT)), yes) - # When qmk supports multiple types of pointing devices, change to something like the commented code below - # PMW3360_ENABLE = yes - # CIRQUE_ENABLE = yes - ifeq ($(strip $(FP_SPLIT_LEFT)), yes) - PMW3360_ENABLE = yes - endif - ifeq ($(strip $(FP_SPLIT_RIGHT)), yes) - CIRQUE_ENABLE = yes - endif - OPT_DEFS += -DFP_TRACKBALL_LEFT_CIRQUE_RIGHT -endif - -ifeq ($(strip $(FP_CIRQUE_LEFT_TRACKBALL_RIGHT)), yes) - # When qmk supports multiple types of pointing devices, change to something like the commented code below - # PMW3360_ENABLE = yes - # CIRQUE_ENABLE = yes - ifeq ($(strip $(FP_SPLIT_LEFT)), yes) - CIRQUE_ENABLE = yes - endif - ifeq ($(strip $(FP_SPLIT_RIGHT)), yes) - PMW3360_ENABLE = yes - endif - OPT_DEFS += -DFP_CIRQUE_LEFT_TRACKBALL_RIGHT -endif - -ifeq ($(strip $(FP_CIRQUE_BOTH)), yes) - CIRQUE_ENABLE = yes - OPT_DEFS += -DFP_CIRQUE_BOTH -endif - -ifeq ($(strip $(FP_CIRQUE_LEFT_ONLY)), yes) - CIRQUE_ENABLE = yes - OPT_DEFS += -DFP_CIRQUE_LEFT_ONLY -endif - -ifeq ($(strip $(FP_CIRQUE_RIGHT_ONLY)), yes) - CIRQUE_ENABLE = yes - OPT_DEFS += -DFP_CIRQUE_RIGHT_ONLY -endif - -# When qmk supports multiple types of pointing devices, can remove the FP_SPLIT_* blocks below -ifeq ($(strip $(FP_SPLIT_LEFT)), yes) - OPT_DEFS += -DFP_SPLIT_LEFT -endif - -ifeq ($(strip $(FP_SPLIT_RIGHT)), yes) - OPT_DEFS += -DFP_SPLIT_RIGHT -endif - ifeq ($(strip $(FP_VIK2_RGB)), yes) OPT_DEFS += -DFP_VIK2_RGB endif # include here so that if VIK enables the PMW3360, the OPT_DEFS get set appropriately for ximega include keyboards/fingerpunch/src/rules.mk - -ifeq ($(strip $(CIRQUE_ENABLE)), yes) - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := cirque_pinnacle_spi - OPT_DEFS += -DCIRQUE_ENABLE -endif - -ifeq ($(strip $(PMW3360_ENABLE)), yes) - POINTING_DEVICE_ENABLE := yes - POINTING_DEVICE_DRIVER := pmw3360 - QUANTUM_LIB_SRC += spi_master.c - OPT_DEFS += -DFP_TRACKBALL_ENABLE -endif diff --git a/keyboards/fingerpunch/ximega/v1/config.h b/keyboards/fingerpunch/ximega/v1/config.h index d06ed67e9e..79384adbde 100644 --- a/keyboards/fingerpunch/ximega/v1/config.h +++ b/keyboards/fingerpunch/ximega/v1/config.h @@ -49,4 +49,34 @@ along with this program. If not, see . // Used only if you have a display with RESET unconnected, set to unused pin #define VIK_DISPLAY_RST_UNUSED_PIN GP17 -#define FP_QP_ROTATION QP_ROTATION_270 + +// Encoder configuration from VIK +#ifdef VIK_EC11_EVQWGD001 + #define ENCODERS_PAD_A { GP26 } + #define ENCODERS_PAD_B { GP27 } + #define ENCODER_RESOLUTIONS { 2 } +#elif defined(VIK_PER56_CIRQUE_LEDS) || defined(VIK_PER56_PMW3360_LEDS) + #define ENCODERS_PAD_A { GP26 } + #define ENCODERS_PAD_B { GP27 } + #define ENCODER_RESOLUTIONS { 1 } +#else + #define ENCODERS_PAD_A { } + #define ENCODERS_PAD_B { } + #define ENCODER_RESOLUTIONS { } +#endif + +#ifdef VIK_EC11_EVQWGD001_RIGHT + #define ENCODERS_PAD_A_RIGHT { GP26 } + #define ENCODERS_PAD_B_RIGHT { GP27 } + #define ENCODER_RESOLUTIONS_RIGHT { 2 } +#elif defined(VIK_PER56_CIRQUE_LEDS_RIGHT) || defined(VIK_PER56_PMW3360_LEDS_RIGHT) + #define ENCODERS_PAD_A_RIGHT { GP26 } + #define ENCODERS_PAD_B_RIGHT { GP27 } + #define ENCODER_RESOLUTIONS_RIGHT { 1 } +#else + #define ENCODERS_PAD_A_RIGHT { } + #define ENCODERS_PAD_B_RIGHT { } + #define ENCODER_RESOLUTIONS_RIGHT { } +#endif + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ximega/v1/fp_build.json b/keyboards/fingerpunch/ximega/v1/fp_build.json index 79d544e7c5..c40e58df22 100644 --- a/keyboards/fingerpunch/ximega/v1/fp_build.json +++ b/keyboards/fingerpunch/ximega/v1/fp_build.json @@ -2,24 +2,39 @@ { "type" : "one-of", "names" : [ - "FP_TRACKBALL_BOTH", - "FP_CIRQUE_BOTH", - "FP_TRACKBALL_LEFT_ONLY", - "FP_TRACKBALL_RIGHT_ONLY", - "FP_CIRQUE_LEFT_ONLY", - "FP_CIRQUE_RIGHT_ONLY", - "FP_TRACKBALL_LEFT_CIRQUE_RIGHT", - "FP_CIRQUE_LEFT_TRACKBALL_RIGHT" + "VIK_BUILD_LEFT", + "VIK_BUILD_RIGHT" ], - "user_input": "What config would you like to use? (NONE, FP_TRACKBALL_BOTH, FP_CIRQUE_BOTH, FP_TRACKBALL_LEFT_ONLY, FP_TRACKBALL_RIGHT_ONLY, FP_CIRQUE_LEFT_ONLY, FP_CIRQUE_RIGHT_ONLY, FP_TRACKBALL_LEFT_CIRQUE_RIGHT, FP_CIRQUE_LEFT_TRACKBALL_RIGHT):" + "user_input": "This is only applicable if you have two *different* VIK devices, one on each half. 0 if not applicable, 1 to build left firmware, 2 to build right firmware:" }, { "type" : "one-of", "names" : [ - "FP_SPLIT_LEFT", - "FP_SPLIT_RIGHT" + "VIK_AZOTEQ", + "VIK_CIRQUE", + "VIK_EC11_EVQWGD001", + "VIK_GC9A01", + "VIK_HAPTIC", + "VIK_ILI9341", + "VIK_PER56_CIRQUE_LEDS", + "VIK_PER56_PMW3360_LEDS", + "VIK_PMW3360", + "VIK_WAVESHARE_22224", + "VIK_WEACT_ST7735" ], - "user_input": "This is only applicable if you are doing mixed pointing devices. 0 if not applicable, 1 to build left firmware, 2 to build right firmware:" + "user_input": "What VIK config would you like to use for the left half? (0) NONE, (1) VIK_AZOTEQ, (2) VIK_CIRQUE, (3) VIK_EC11_EVQWGD001, (4) VIK_GC9A01, (5) VIK_HAPTIC, (6) VIK_ILI9341, (7) VIK_PER56_CIRQUE_LEDS, (8) VIK_PER56_PMW3360_LEDS, (9) VIK_PMW3360, (10) VIK_WAVESHARE_22224, (11) VIK_WEACT_ST7735:" + }, + { + "type" : "one-of", + "names" : [ + "VIK_AZOTEQ_RIGHT", + "VIK_CIRQUE_RIGHT", + "VIK_EC11_EVQWGD001_RIGHT", + "VIK_PER56_CIRQUE_LEDS_RIGHT", + "VIK_PER56_PMW3360_LEDS_RIGHT", + "VIK_PMW3360_RIGHT" + ], + "user_input": "What VIK config would you like to use for the right half? (0) NONE, (1) VIK_AZOTEQ, (2) VIK_CIRQUE, (3) VIK_EC11_EVQWGD001, (4) VIK_PER56_CIRQUE_LEDS, (5) VIK_PER56_PMW3360_LEDS, (6) VIK_PMW3360:" }, { "type" : "one-of", @@ -28,10 +43,5 @@ "RGB_MATRIX_ENABLE" ], "user_input": "No RGB, RGB light, RGB matrix?" - }, - { - "type" : "single", - "name" : "FP_VIK2_RGB", - "user_input": "Do you want to use the RGB on VIK2? This disables per key rgb and VIK1 RGB." } ] diff --git a/keyboards/fingerpunch/ximi/v1/config.h b/keyboards/fingerpunch/ximi/v1/config.h index 52958f4c03..45c39e6266 100644 --- a/keyboards/fingerpunch/ximi/v1/config.h +++ b/keyboards/fingerpunch/ximi/v1/config.h @@ -21,3 +21,4 @@ along with this program. If not, see . #define MATRIX_ROW_PINS { GP29, GP28, GP27, GP24 } #define MATRIX_COL_PINS { GP10, GP11, GP26, GP12, GP13, GP14, GP15, GP16 } +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/ximi/v2/config.h b/keyboards/fingerpunch/ximi/v2/config.h index 5ad259e56d..e0df1b086c 100644 --- a/keyboards/fingerpunch/ximi/v2/config.h +++ b/keyboards/fingerpunch/ximi/v2/config.h @@ -37,3 +37,5 @@ along with this program. If not, see . // Used only if you have a display with RESET unconnected, set to unused pin #define VIK_DISPLAY_RST_UNUSED_PIN GP15 #define FP_QP_ROTATION QP_ROTATION_270 + +#include "keyboards/fingerpunch/src/config_post.h" diff --git a/keyboards/fingerpunch/xivik/config.h b/keyboards/fingerpunch/xivik/config.h index fabb974a88..b7f12e3143 100644 --- a/keyboards/fingerpunch/xivik/config.h +++ b/keyboards/fingerpunch/xivik/config.h @@ -16,7 +16,8 @@ along with this program. If not, see . */ // NOTE: All logic for the modules can be found in: -// keyboards/fingerpunch/src/vik/config.h +// keyboards/fingerpunch/src/vik/config.vik.pre.h +// keyboards/fingerpunch/src/vik/config.vik.post.h // keyboards/fingerpunch/src/vik/rules.mk #pragma once diff --git a/users/sadekbaroudi/process_records.h b/users/sadekbaroudi/process_records.h index 96a8b45233..3a451b59cd 100755 --- a/users/sadekbaroudi/process_records.h +++ b/users/sadekbaroudi/process_records.h @@ -29,6 +29,7 @@ || defined(KEYBOARD_fingerpunch_sweeeeep) \ || defined(KEYBOARD_fingerpunch_vulpes_minora) \ || defined(KEYBOARD_fingerpunch_vulpes_majora_v1) \ + || defined(KEYBOARD_fingerpunch_ximega) \ || defined(KEYBOARD_fingerpunch_ximi) \ || defined(KEYBOARD_fingerpunch_personal_badwings) \ || defined(KEYBOARD_fingerpunch_personal_badwings_v2) \