From ab0589deae8982a357846c601da2ef65c2086573 Mon Sep 17 00:00:00 2001 From: Sadek Baroudi Date: Thu, 6 Jan 2022 00:53:32 -0800 Subject: [PATCH] added first revision of pinkies out keyboard, still needs rgbmatrix config defined --- bin/build-pinkies-out.sh | 9 + keyboards/xoiviox/pinkiesout/config.h | 130 ++++++++++ .../pinkiesout/keymaps/default/keymap.c | 215 ++++++++++++++++ .../pinkiesout/keymaps/sadekbaroudi/keymap.c | 238 ++++++++++++++++++ .../xoiviox/pinkiesout/no_features/config.h | 19 ++ .../xoiviox/pinkiesout/no_features/rules.mk | 28 +++ keyboards/xoiviox/pinkiesout/oled/config.h | 23 ++ keyboards/xoiviox/pinkiesout/oled/rules.mk | 28 +++ keyboards/xoiviox/pinkiesout/pinkiesout.c | 42 ++++ keyboards/xoiviox/pinkiesout/pinkiesout.h | 47 ++++ keyboards/xoiviox/pinkiesout/readme.md | 34 +++ .../xoiviox/pinkiesout/rgblight/config.h | 23 ++ .../xoiviox/pinkiesout/rgblight/rules.mk | 28 +++ .../xoiviox/pinkiesout/rgblight_oled/config.h | 28 +++ .../xoiviox/pinkiesout/rgblight_oled/rules.mk | 28 +++ .../xoiviox/pinkiesout/rgbmatrix/config.h | 23 ++ .../xoiviox/pinkiesout/rgbmatrix/rules.mk | 28 +++ .../pinkiesout/rgbmatrix_oled/config.h | 27 ++ .../pinkiesout/rgbmatrix_oled/rules.mk | 28 +++ keyboards/xoiviox/pinkiesout/rules.mk | 49 ++++ users/sadekbaroudi/wrappers.h | 5 + 21 files changed, 1080 insertions(+) create mode 100755 bin/build-pinkies-out.sh create mode 100644 keyboards/xoiviox/pinkiesout/config.h create mode 100644 keyboards/xoiviox/pinkiesout/keymaps/default/keymap.c create mode 100644 keyboards/xoiviox/pinkiesout/keymaps/sadekbaroudi/keymap.c create mode 100644 keyboards/xoiviox/pinkiesout/no_features/config.h create mode 100644 keyboards/xoiviox/pinkiesout/no_features/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/oled/config.h create mode 100644 keyboards/xoiviox/pinkiesout/oled/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/pinkiesout.c create mode 100644 keyboards/xoiviox/pinkiesout/pinkiesout.h create mode 100644 keyboards/xoiviox/pinkiesout/readme.md create mode 100644 keyboards/xoiviox/pinkiesout/rgblight/config.h create mode 100644 keyboards/xoiviox/pinkiesout/rgblight/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/rgblight_oled/config.h create mode 100644 keyboards/xoiviox/pinkiesout/rgblight_oled/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/rgbmatrix/config.h create mode 100644 keyboards/xoiviox/pinkiesout/rgbmatrix/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/rgbmatrix_oled/config.h create mode 100644 keyboards/xoiviox/pinkiesout/rgbmatrix_oled/rules.mk create mode 100644 keyboards/xoiviox/pinkiesout/rules.mk diff --git a/bin/build-pinkies-out.sh b/bin/build-pinkies-out.sh new file mode 100755 index 0000000000..841d09722c --- /dev/null +++ b/bin/build-pinkies-out.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +# TODO: consolidate all the build files into one + +make xoiviox/pinkiesout/rgblight_oled:default +cp .build/xoiviox_pinkiesout_rgblight_oled_default* /mnt/g/My\ Drive/qmk-keyboards/pinkiesout + +#make xoiviox/pinkiesout/rgbmatrix_oled:sadekbaroudi +#cp .build/xoiviox_pinkiesout_rgblight_oled_sadekbaroudi* /mnt/g/My\ Drive/qmk-keyboards/pinkiesout diff --git a/keyboards/xoiviox/pinkiesout/config.h b/keyboards/xoiviox/pinkiesout/config.h new file mode 100644 index 0000000000..12026fb3ec --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/config.h @@ -0,0 +1,130 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#include "config_common.h" + + +/* USB Device descriptor parameter */ +#define DEVICE_VER 0x0001 +#define VENDOR_ID 0xFEFE +#define PRODUCT_ID 0x6011 +//#define DEVICE_VER 0x0001 // Now defined in the revX/config.h +#define MANUFACTURER sadekbaroudi +#define PRODUCT sadekbaroudi pinkiesout +#define DESCRIPTION sadekbaroudi pinkiesout + +/* key matrix size */ +/* Rows are doubled up */ +#define MATRIX_ROWS 8 +#define MATRIX_COLS 9 + +// wiring +#define MATRIX_ROW_PINS \ + { B6, F4, B5, B4, B2, B3, B7, D5 } +#define MATRIX_COL_PINS \ + { D2, D4, C6, C7, E6, F5, F6, F7, B1 } +#define UNUSED_PINS + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* COL2ROW, ROW2COL*/ +#define DIODE_DIRECTION COL2ROW + +#define TAP_CODE_DELAY 25 +#define TAPPING_FORCE_HOLD +#define IGNORE_MOD_TAP_INTERRUPT + +#define RGB_DI_PIN D3 +#ifdef RGBLIGHT_ENABLE + #define RGBLED_NUM 40 + #define RGBLIGHT_HUE_STEP 16 + #define RGBLIGHT_SAT_STEP 16 + #define RGBLIGHT_VAL_STEP 16 + #define RGBLIGHT_LIMIT_VAL 40 /* The maximum brightness level for RGBLIGHT_ENABLE */ + #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ +// /*== all animations enable ==*/ + #define RGBLIGHT_ANIMATIONS +// /*== or choose animations ==*/ +// #define RGBLIGHT_EFFECT_BREATHING +// #define RGBLIGHT_EFFECT_RAINBOW_MOOD +// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_SNAKE +// #define RGBLIGHT_EFFECT_KNIGHT +// #define RGBLIGHT_EFFECT_CHRISTMAS +// #define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_RGB_TEST +// #define RGBLIGHT_EFFECT_ALTERNATING +// /*== customize breathing effect ==*/ +// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +// /*==== use exp() and sin() ====*/ +// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +#ifdef RGB_MATRIX_ENABLE + #define DRIVER_LED_TOTAL 40 + #define RGB_MATRIX_CENTER {100, 32} + #define RGB_MATRIX_MAXIMUM_BRIGHTNESS 40 /* The maximum brightness level for RGB_MATRIX */ + #define RGB_MATRIX_STARTUP_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS // Sets the default brightness value, if none has been set + #define RGB_MATRIX_KEYPRESSES + #define RGB_MATRIX_FRAMEBUFFER_EFFECTS + #define RGB_MATRIX_KEYREACTIVE_ENABLED + // #define DISABLE_RGB_MATRIX_ALPHAS_MODS + // #define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN + // #define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT + // #define DISABLE_RGB_MATRIX_BREATHING + // #define DISABLE_RGB_MATRIX_BAND_SAT + // #define DISABLE_RGB_MATRIX_BAND_VAL + // #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT + // #define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL + // #define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT + // #define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL + // #define DISABLE_RGB_MATRIX_CYCLE_ALL + // #define DISABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT + // #define DISABLE_RGB_MATRIX_CYCLE_UP_DOWN + // #define DISABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON + // #define DISABLE_RGB_MATRIX_DUAL_BEACON + // #define DISABLE_RGB_MATRIX_CYCLE_PINWHEEL + // #define DISABLE_RGB_MATRIX_CYCLE_SPIRAL + // #define DISABLE_RGB_MATRIX_RAINBOW_BEACON + // #define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS + // #define DISABLE_RGB_MATRIX_RAINDROPS + // #define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS + // #define DISABLE_RGB_MATRIX_DIGITAL_RAIN + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS + // #define DISABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS + // #define DISABLE_RGB_MATRIX_SPLASH + // #define DISABLE_RGB_MATRIX_MULTISPLASH + // #define DISABLE_RGB_MATRIX_SOLID_SPLASH + // #define DISABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/xoiviox/pinkiesout/keymaps/default/keymap.c b/keyboards/xoiviox/pinkiesout/keymaps/default/keymap.c new file mode 100644 index 0000000000..d834709d6b --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/keymaps/default/keymap.c @@ -0,0 +1,215 @@ +#include QMK_KEYBOARD_H + +#ifdef PIMORONI_TRACKBALL_ENABLE +#include "drivers/sensors/pimoroni_trackball.h" +#include "pointing_device.h" +#include "color.h" +#endif + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, + LOWER, + RAISE, + ADJUST +}; + +bool is_caps_lock_on; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + +[_QWERTY] = LAYOUT_pinkiesout( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LPRN, KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LCBR, KC_RCBR, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, ADJUST, ADJUST, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, LOWER, KC_SPC, KC_LALT, KC_RALT, KC_SPC, RAISE, KC_RGUI, KC_RCTL +), + + +[_COLEMAK] = LAYOUT_pinkiesout( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LPRN, KC_RPRN, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, + KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_LCBR, KC_RCBR, KC_M, KC_N, KC_E, KC_I, KC_O, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, ADJUST, ADJUST, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LCTL, KC_LGUI, LOWER, KC_SPC, KC_LALT, KC_RALT, KC_SPC, RAISE, KC_RGUI, KC_RCTL +), + + +[_LOWER] = LAYOUT_pinkiesout( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_RAISE] = LAYOUT_pinkiesout( + KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, _______, + _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +[_ADJUST] = LAYOUT_pinkiesout( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + +void keyboard_post_init_user(void) { + is_caps_lock_on = false; +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case KC_CAPSLOCK: + if (record->event.pressed) { + if (is_caps_lock_on) { + is_caps_lock_on = false; + } else { + is_caps_lock_on = true; + } + } + break; + case LOWER: + if (record->event.pressed) { + layer_on(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_LOWER); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case RAISE: + if (record->event.pressed) { + layer_on(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } else { + layer_off(_RAISE); + update_tri_layer(_LOWER, _RAISE, _ADJUST); + } + return false; + break; + case ADJUST: + if (record->event.pressed) { + layer_on(_ADJUST); + } else { + layer_off(_ADJUST); + } + return false; + break; + default: + break; + } + + return true; +} + +#ifdef OLED_DRIVER_ENABLE + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + + +static void render_logo(void) { + // pinkiesout logo, 128x64px + static const unsigned char pinkiesout_logo [] PROGMEM = { + // 'logo-128by64, 128x64px + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x18, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7e, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xff, 0xf8, 0x7e, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xf0, 0x03, 0xff, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xf8, 0x00, 0xff, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0x00, 0x7f, 0xe1, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0x78, 0x40, 0xe3, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xf8, 0xfc, 0x00, 0x23, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xfe, 0x00, 0x07, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xfe, 0x0e, 0x07, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xf1, 0xfc, 0x3f, 0x07, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xe3, 0xfc, 0x7f, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe3, 0xfc, 0x7f, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xe3, 0xf8, 0x7f, 0x8f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xc7, 0xf8, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xc7, 0xf8, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xc7, 0xf0, 0xff, 0x1f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7f, 0x8f, 0xf1, 0xfe, 0x3f, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x7e, 0x07, 0xf1, 0xfe, 0x3f, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x01, 0xe1, 0xfe, 0x3f, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0xe3, 0xfc, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xf0, 0xe3, 0xfc, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xf8, 0x43, 0xfc, 0x7f, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xfc, 0x47, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xfc, 0x47, 0xf8, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xfc, 0x07, 0xf8, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xf8, 0x0f, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xf8, 0x0f, 0xf1, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0x40, 0x0f, 0xe1, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xc0, 0x01, 0x1f, 0xe3, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xf0, 0x00, 0x03, 0x1f, 0xe3, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xf0, 0x00, 0xff, 0x1f, 0xe3, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xf0, 0x3f, 0xff, 0x1f, 0xc7, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x0f, 0x87, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0x87, 0x07, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xe0, 0x1f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x7f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + }; + oled_write_raw_P(pinkiesout_logo, sizeof(pinkiesout_logo)); + +} + +void oled_task_user(void) { + // If you don't want to display the logo, switch + if (false) { + //render_status(); + } else if (true) { + render_logo(); + } else { + //render_logo_text(); + } +} + +#endif diff --git a/keyboards/xoiviox/pinkiesout/keymaps/sadekbaroudi/keymap.c b/keyboards/xoiviox/pinkiesout/keymaps/sadekbaroudi/keymap.c new file mode 100644 index 0000000000..88b0ba045d --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/keymaps/sadekbaroudi/keymap.c @@ -0,0 +1,238 @@ +/* Copyright 2021 Sadek Baroudi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "sadekbaroudi.h" +#include QMK_KEYBOARD_H + +#ifdef THUMBSTICK_ENABLE +# include "thumbstick.h" +#endif + + +// Uncomment to set up WPM +//char wpm_as_str[8]; + +/* + * The `LAYOUT_pinkiesout_base` macro is a template to allow the use of identical + * modifiers for the default layouts (eg QWERTY, Colemak, Dvorak, etc), so + * that there is no need to set them up for each layout, and modify all of + * them if I want to change them. This helps to keep consistency and ease + * of use. K## is a placeholder to pass through the individual keycodes + */ + +// clang-format off +#define LAYOUT_pinkiesout_base( \ + K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \ + K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \ + ) \ + LAYOUT_wrapper( \ + K01, K02, K03, LT(_FUNCTION, K04), K05, K06, LT(_FUNCTION, K07), LT(_WINNAV,K08), K09, K0A, \ + LCTL_T(K11), LGUI_T(K12), LALT_T(K13), LSFT_T(K14), K15, LT(_MOUSE, K16), RSFT_T(K17), RALT_T(K18), RGUI_T(K19), RCTL_T(K1A), \ + K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \ + _______, _______, KC_DEL, LT(_NAVIGATION,KC_ENT), LT(_FUNCTION,KC_TAB), LT(_MEDIA,KC_BSPC), LT(_SYMBOLS,KC_SPACE), KC_QUOT, _______, _______, \ + KC_MUTE, LCTL(KC_BSPC) \ + ) + +/* Re-pass though to allow templates to be used */ +#define LAYOUT_pinkiesout_base_wrapper(...) LAYOUT_pinkiesout_base(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_QWERTY] = LAYOUT_pinkiesout_base_wrapper( + _________________QWERTY_L1_________________, _________________QWERTY_R1_________________, + _________________QWERTY_L2_________________, _________________QWERTY_R2_________________, + _________________QWERTY_L3_________________, _________________QWERTY_R3_________________ + ), + + [_COLEMAK] = LAYOUT_pinkiesout_base_wrapper( + ______________COLEMAK_MOD_DH_L1____________, ______________COLEMAK_MOD_DH_R1____________, + ______________COLEMAK_MOD_DH_L2____________, ______________COLEMAK_MOD_DH_R2____________, + ______________COLEMAK_MOD_DH_L3____________, ______________COLEMAK_MOD_DH_R3____________ + ), + + [_ISRT] = LAYOUT_pinkiesout_base_wrapper( + _________________ISRT_L1________________, _________________ISRT_R1________________, + _________________ISRT_L2________________, _________________ISRT_R2________________, + _________________ISRT_L3________________, _________________ISRT_R3________________ + ), + + [_NAVIGATION] = LAYOUT_wrapper( + ________________NAVIGATION_1_______________, _________________NUMPAD_1__________________, + ________________NAVIGATION_2_______________, _________________NUMPAD_2__________________, + ________________NAVIGATION_3_______________, _________________NUMPAD_3__________________, + G_GOD_ON, G_GOD_OFF, _______, _______, KC_TAB, KC_BSPC, KC_SPACE, KC_DOT, _______, _______, + _______, _______ + ), + + [_SYMBOLS] = LAYOUT_wrapper( + ________________SYMBOLS_L1_________________, ________________SYMBOLS_R1_________________, + ________________SYMBOLS_L2_________________, ________________SYMBOLS_R2_________________, + ________________SYMBOLS_L3_________________, ________________SYMBOLS_R3_________________, + _______, _______, _______, KC_ENT, KC_DEL, KC_BSPC, _______, _______, G_PULLING, G_PUSH, + _______, _______ + ), + + [_FUNCTION] = LAYOUT_wrapper( + ________________SHIFTNAV_1_________________, ________________FUNCTION_1_________________, + ________________SHIFTNAV_2_________________, ________________FUNCTION_2_________________, + ________________SHIFTNAV_3_________________, ________________FUNCTION_3_________________, + _______, _______, _______, _______, _______, N_DEL_LINE, KC_SPACE, _______, _______, _______, + _______, _______ + ), + + [_MEDIA] = LAYOUT_wrapper( + ___________________RGB_1___________________, _________________MACROS_1__________________, + ___________________RGB_2___________________, _________________MACROS_2__________________, + ___________________RGB_3___________________, _________________MACROS_3__________________, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______ + ), + + [_MOUSE] = LAYOUT_wrapper( + __________________MOUSE_1__________________, ___________________BLANK___________________, + __________________MOUSE_2__________________, ___________________BLANK___________________, + __________________MOUSE_3__________________, ___________________BLANK___________________, + _______, _______, _______, KC_MS_BTN1, KC_MS_BTN3, KC_MS_BTN3, KC_MS_BTN2, _______, _______, _______, + _______, _______ + ), + + [_WINNAV] = LAYOUT_wrapper( + __________________WIN_NAV_1________________, ___________________BLANK___________________, + __________________WIN_NAV_2________________, ___________________BLANK___________________, + ___________________BLANK___________________, ___________________BLANK___________________, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______ + ) + +}; + + +#ifdef OLED_DRIVER_ENABLE + + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + + +// Commenting out logo as it takes up a lot of space :( +static void render_logo(void) { + // pinkiesout logo, 128x32px + static const char PROGMEM pinkiesout_logo[] = { + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, + 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x07, 0x07, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x8f, 0x07, 0x07, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x41, 0x41, 0x41, + 0x41, 0x41, 0x41, 0x41, 0x41, 0x41, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x07, 0x8f, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x8f, 0x07, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x3f, + 0x3f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x7f, 0x3f, 0x3e, 0x3e, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xfc, 0xf8, 0xf8, 0xf8, + 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0x3f, + 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, + 0xc0, 0xc0, 0xc1, 0xcd, 0xcd, 0xcc, 0xc0, 0xc1, 0xe1, 0xe3, 0xff, 0xff, 0xef, 0xc1, 0xc1, 0xc1, + 0xc4, 0xc4, 0xc4, 0xe0, 0xc1, 0xc1, 0xc1, 0xc3, 0xff, 0xff, 0xc1, 0xc0, 0xc0, 0xc1, 0xf9, 0xfd, + 0xfc, 0xfc, 0xff, 0xe3, 0xe1, 0xc1, 0xc1, 0xcd, 0xcc, 0xcc, 0xcd, 0xc1, 0xc1, 0xe1, 0xe3, 0xff, + 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0xcd, 0xcd, 0xcc, 0xc0, 0xc1, 0xe1, 0xe3, 0xff, 0xff, 0xe3, + 0xe1, 0xc1, 0xc1, 0xcd, 0xcc, 0xcc, 0xcd, 0xc1, 0xc1, 0xe1, 0xe3, 0xff, 0xff, 0xc1, 0xc0, 0xc0, + 0xc1, 0xf9, 0xfd, 0xfc, 0xfc, 0xff, 0xe3, 0xe1, 0xc1, 0xc0, 0xcc, 0xcd, 0xcd, 0xc9, 0xc0, 0xc0, + 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + +}; + oled_write_raw_P(pinkiesout_logo, sizeof(pinkiesout_logo)); + +} + + +/* +static void render_status(void) { + oled_write_P(PSTR("pinkiesout\n"), false); + // Uncomment to set up WPM + // sprintf(wpm_as_str, "WPM %03d", get_current_wpm()); + // oled_write(wpm_as_str,false); + led_t led_state = host_keyboard_led_state(); + oled_write_P(PSTR("Caps: "), false); + oled_write_P(led_state.caps_lock ? PSTR("on ") : PSTR("off"), false); + oled_write_P(PSTR("\n"),false); + switch (get_highest_layer(layer_state)) { + case _QWERTY: + oled_write_P(PSTR("Qwerty "), false); + break; + case _COLEMAK: + oled_write_P(PSTR("Colemak"), false); + break; + case _ISRT: + oled_write_P(PSTR("Workman"), false); + break; + case _NAVIGATION: + oled_write_P(PSTR("Nav "), false); + break; + case _SYMBOLS: + oled_write_P(PSTR("Symbols"), false); + break; + case _FUNCTION: + oled_write_P(PSTR("Function"), false); + break; + case _MEDIA: + oled_write_P(PSTR("Media "), false); + break; + case _MOUSE: + oled_write_P(PSTR("Mouse "), false); + break; + case _WINNAV: + oled_write_P(PSTR("Win nav"), false); + break; + + default: + oled_write_P(PSTR("Unkn "), false); + break; + } +} +*/ + +/* +static void render_logo_text(void) { + oled_write_P(PSTR("pinkiesout"), false); +} +*/ + +void oled_task_user(void) { + // If you don't want to display the logo, switch + if (false) { + //render_status(); + } else if (true) { + render_logo(); + } else { + //render_logo_text(); + } +} + +#endif diff --git a/keyboards/xoiviox/pinkiesout/no_features/config.h b/keyboards/xoiviox/pinkiesout/no_features/config.h new file mode 100644 index 0000000000..d4903b376d --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/no_features/config.h @@ -0,0 +1,19 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once +#include "config_common.h" diff --git a/keyboards/xoiviox/pinkiesout/no_features/rules.mk b/keyboards/xoiviox/pinkiesout/no_features/rules.mk new file mode 100644 index 0000000000..38edc894a4 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/no_features/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = no +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = no +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/oled/config.h b/keyboards/xoiviox/pinkiesout/oled/config.h new file mode 100644 index 0000000000..94472f300a --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/oled/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef XOIVIOX_OLED +#define XOIVIOX_OLED +#endif + +#pragma once +#include "config_common.h" diff --git a/keyboards/xoiviox/pinkiesout/oled/rules.mk b/keyboards/xoiviox/pinkiesout/oled/rules.mk new file mode 100644 index 0000000000..af0bb8f888 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/oled/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = no +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/pinkiesout.c b/keyboards/xoiviox/pinkiesout/pinkiesout.c new file mode 100644 index 0000000000..e5a1e50f1d --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/pinkiesout.c @@ -0,0 +1,42 @@ +/* Copyright 2021 Sadek Baroudi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "pinkiesout.h" + +// #ifdef RGB_MATRIX_ENABLE +// led_config_t g_led_config = { { +// { 0, 6, 7,13,14,25,26,32,33,39}, +// { 1, 5, 8,12,15,24,27,31,34,38}, +// { 2, 4, 9,11,16,23,28,30,35,37}, +// { 3,10,17,18,19,20,21,22,29,36} +// }, { +// {16,8}, {8,16}, {0,24}, {12,32}, {20,16}, {28,8}, {36,0}, {56,0}, {48,8}, {40,24}, +// {32,32}, {56,32}, {64,16}, {72,8}, {88,16}, {80,24}, {72,48}, {40,48}, {64,56}, {80,64}, +// {120,64}, {136,56}, {160,48}, {128,48}, {120,24}, {112,16}, {128,8}, {136,6}, {144,32}, {168,32}, +// {160,24}, {152,8}, {144,0}, {164,0}, {172,8}, {180,16}, {188,32}, {200,24}, {192,16}, {184,8} +// }, { +// 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, +// 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, +// 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, +// 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 +// } }; +// #endif + + +/* +letters: q, a, z, 1, x, s, w, e, d, c, 2, v, f, r, t, g, b, del, up, tab,| bs, spc, ', n, h, y, u, j, m, 3, ,, k, i, o, l, ., 4, /, ;, p +25 center: 4, 2, 0, 3, 5, 7, 9, 14, 12, 10, 8, 14, 16, 18, 22, 20, 18, 10, 16, 20, | 30, 34, 40, 32, 30, 28, 32, 34, 36, 42, 40, 38, 36, 41, 43, 45, 47, 50, 48, 46 +100 center: 16 8, 0, 12, 20, 28, 36, 56, 48, 40, 32, 56, 64, 72, 88, 80, 72, 40, 64, 80, | 120, 136, 160, 128, 120, 112, 128, 136, 144, 168, 160, 152, 144, 164, 172, 180, 188, 200, 192, 184 +*/ diff --git a/keyboards/xoiviox/pinkiesout/pinkiesout.h b/keyboards/xoiviox/pinkiesout/pinkiesout.h new file mode 100644 index 0000000000..d829014568 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/pinkiesout.h @@ -0,0 +1,47 @@ +/* Copyright 2021 Sadek Baroudi + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +/* This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ + +#define ___ KC_NO + +#define LAYOUT_pinkiesout( \ + K51, K01, K02, K03, K04, K05, K63, K66, K06, K07, K08, K09, K54, K69, \ + K61, K11, K12, K13, K14, K15, K73, K76, K16, K17, K18, K19, K56, K79, \ + K71, K21, K22, K23, K24, K25, K64, K67, K26, K27, K28, K29, K57, K68, \ + K72, K31, K32, K33, K34, K35, K52, K53, K36, K37, K38, K39, K58, K78, \ + K41, K42, K43, K44, K45, K46, K47, K48, K49, K59 \ +) \ +{ \ + { K01, K02, K03, K04, K05, K06, K07, K08, K09 }, \ + { K11, K12, K13, K14, K15, K16, K17, K18, K19 }, \ + { K21, K22, K23, K24, K25, K26, K27, K28, K29 }, \ + { K31, K32, K33, K34, K35, K36, K37, K38, K39 }, \ + { K41, K42, K43, K44, K45, K46, K47, K48, K49 }, \ + { K51, K52, K53, K54, ___, K56, K57, K58, K59 }, \ + { K61, ___, K63, K64, ___, K66, K67, K68, K69 }, \ + { K71, K72, K73, ___, ___, K76, ___, K78, K79 } \ +} diff --git a/keyboards/xoiviox/pinkiesout/readme.md b/keyboards/xoiviox/pinkiesout/readme.md new file mode 100644 index 0000000000..0c50448a86 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/readme.md @@ -0,0 +1,34 @@ +# pinkiesout + +An ergonomic 30% keyboard + +* Keyboard Maintainer: [sadekbaroudi](https://github.com/sadekbaroudi) + +Pinkies Out supports vial! If you want to use Vial, go to https://github.com/sadekbaroudi/vial-qmk/keyboards/xoiviox/pinkiesout/ + +To build the firmware for this keyboard (after setting up your build environment), select from one of the following, depending on what features you have on your board: + + make xoiviox/pinkiesout/no-features:default + make xoiviox/pinkiesout/oled:default + make xoiviox/pinkiesout/rgblight:default + make xoiviox/pinkiesout/rgblight-oled:default + make xoiviox/pinkiesout/rgbmatrix:default + make xoiviox/pinkiesout/rgbmatrix-oled:default + +If using the vial repository, use these: + make xoiviox/pinkiesout/no-features:vial + make xoiviox/pinkiesout/oled:vial + make xoiviox/pinkiesout/rgblight:vial + make xoiviox/pinkiesout/rgblight-oled:vial + make xoiviox/pinkiesout/rgbmatrix:vial + make xoiviox/pinkiesout/rgbmatrix-oled:vial + +Example of flashing this keyboard: + + make xoiviox/pinkiesout/no-features:default:flash + +Or in the vial repository: + + make xoiviox/pinkiesout/no-features:vial:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/xoiviox/pinkiesout/rgblight/config.h b/keyboards/xoiviox/pinkiesout/rgblight/config.h new file mode 100644 index 0000000000..64579bc016 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgblight/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef XOIVIOX_RGBLIGHT +#define XOIVIOX_RGBLIGHT +#endif + +#pragma once +#include "config_common.h" diff --git a/keyboards/xoiviox/pinkiesout/rgblight/rules.mk b/keyboards/xoiviox/pinkiesout/rgblight/rules.mk new file mode 100644 index 0000000000..33c2c43ab1 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgblight/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = yes +RGB_MATRIX_ENABLE = no +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = no +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/rgblight_oled/config.h b/keyboards/xoiviox/pinkiesout/rgblight_oled/config.h new file mode 100644 index 0000000000..771d83f52d --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgblight_oled/config.h @@ -0,0 +1,28 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef XOIVIOX_RGBLIGHT +#define XOIVIOX_RGBLIGHT +#endif + +#ifndef XOIVIOX_OLED +#define XOIVIOX_OLED +#endif + +#pragma once +#include "config_common.h" + diff --git a/keyboards/xoiviox/pinkiesout/rgblight_oled/rules.mk b/keyboards/xoiviox/pinkiesout/rgblight_oled/rules.mk new file mode 100644 index 0000000000..a164199ee5 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgblight_oled/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = yes +RGB_MATRIX_ENABLE = no +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/rgbmatrix/config.h b/keyboards/xoiviox/pinkiesout/rgbmatrix/config.h new file mode 100644 index 0000000000..7efaf36db9 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgbmatrix/config.h @@ -0,0 +1,23 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef XOIVIOX_RGBMATRIX +#define XOIVIOX_RGBMATRIX +#endif + +#pragma once +#include "config_common.h" diff --git a/keyboards/xoiviox/pinkiesout/rgbmatrix/rules.mk b/keyboards/xoiviox/pinkiesout/rgbmatrix/rules.mk new file mode 100644 index 0000000000..87455b3cc1 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgbmatrix/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = no +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/config.h b/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/config.h new file mode 100644 index 0000000000..d2e1240e1e --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/config.h @@ -0,0 +1,27 @@ +/* +Copyright 2021 Sadek Baroudi + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#ifndef XOIVIOX_RGBMATRIX +#define XOIVIOX_RGBMATRIX +#endif + +#ifndef XOIVIOX_OLED +#define XOIVIOX_OLED +#endif + +#pragma once +#include "config_common.h" diff --git a/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/rules.mk b/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/rules.mk new file mode 100644 index 0000000000..6090fea281 --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rgbmatrix_oled/rules.mk @@ -0,0 +1,28 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes +PIMORONI_TRACKBALL_ENABLE = no +OLED_DRIVER_ENABLE = yes +ENCODER_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/keyboards/xoiviox/pinkiesout/rules.mk b/keyboards/xoiviox/pinkiesout/rules.mk new file mode 100644 index 0000000000..3098273b5d --- /dev/null +++ b/keyboards/xoiviox/pinkiesout/rules.mk @@ -0,0 +1,49 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality + +# Either do RGBLIGHT_ENABLE or RGB_MATRIX_ENABLE and RGB_MATRIX_DRIVER +#RGBLIGHT_ENABLE = yes +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +MIDI_ENABLE = no # MIDI support +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +ENCODER_ENABLE = no +OLED_DRIVER_ENABLE = yes # this can be yes or no depending on if you have an OLED +# EXTRAFLAGS += -flto # macros disabled, if you need the extra space +MOUSEKEY_ENABLE = no + +PIMORONI_TRACKBALL_ENABLE = no + +ifeq ($(strip $(PIMORONI_TRACKBALL_ENABLE)), yes) + POINTING_DEVICE_ENABLE := yes + SRC += drivers/sensors/pimoroni_trackball.c + QUANTUM_LIB_SRC += i2c_master.c + OPT_DEFS += -DPIMORONI_TRACKBALL_ENABLE +endif diff --git a/users/sadekbaroudi/wrappers.h b/users/sadekbaroudi/wrappers.h index 0197b31dcc..175820a2e0 100755 --- a/users/sadekbaroudi/wrappers.h +++ b/users/sadekbaroudi/wrappers.h @@ -76,6 +76,11 @@ expanded before being used as arguments to the LAYOUT_xxx macro. # define LAYOUT LAYOUT_absolem #endif +// Since pinkiesout uses the name LAYOUT_pinkiesout instead of LAYOUT +#if (!defined(LAYOUT) && defined(LAYOUT_pinkiesout)) +# define LAYOUT LAYOUT_pinkiesout +#endif + // clang-format off #define LAYOUT_ergodox_wrapper(...) LAYOUT_ergodox(__VA_ARGS__)