From 9581289745736ce068a1040f44cec37a2ca8830d Mon Sep 17 00:00:00 2001 From: lokher Date: Tue, 13 Sep 2022 11:24:05 +0800 Subject: Remove non-Keychron keyboards --- keyboards/handwired/promethium/color.h | 15 - keyboards/handwired/promethium/config.h | 273 ---- keyboards/handwired/promethium/info.json | 72 -- .../handwired/promethium/keymaps/default/README.md | 44 - .../handwired/promethium/keymaps/default/config.h | 16 - .../handwired/promethium/keymaps/default/flash.sh | 4 - .../handwired/promethium/keymaps/default/keymap.c | 1363 ------------------- .../promethium/keymaps/default/rgbtheme.h | 1 - .../promethium/keymaps/default/rgbtheme_carbon.h | 36 - .../promethium/keymaps/default/rgbtheme_default.h | 36 - .../handwired/promethium/keymaps/default/rules.mk | 12 - .../handwired/promethium/keymaps/priyadi/README.md | 44 - .../handwired/promethium/keymaps/priyadi/config.h | 16 - .../handwired/promethium/keymaps/priyadi/flash.sh | 4 - .../handwired/promethium/keymaps/priyadi/keymap.c | 1366 -------------------- .../promethium/keymaps/priyadi/rgbtheme.h | 1 - .../promethium/keymaps/priyadi/rgbtheme_carbon.h | 36 - .../promethium/keymaps/priyadi/rgbtheme_default.h | 36 - .../handwired/promethium/keymaps/priyadi/rules.mk | 23 - keyboards/handwired/promethium/matrix.c | 268 ---- keyboards/handwired/promethium/promethium.c | 35 - keyboards/handwired/promethium/promethium.h | 27 - keyboards/handwired/promethium/readme.md | 13 - keyboards/handwired/promethium/rgbsps.c | 73 -- keyboards/handwired/promethium/rgbsps.h | 5 - keyboards/handwired/promethium/rules.mk | 33 - 26 files changed, 3852 deletions(-) delete mode 100644 keyboards/handwired/promethium/color.h delete mode 100644 keyboards/handwired/promethium/config.h delete mode 100644 keyboards/handwired/promethium/info.json delete mode 100644 keyboards/handwired/promethium/keymaps/default/README.md delete mode 100644 keyboards/handwired/promethium/keymaps/default/config.h delete mode 100644 keyboards/handwired/promethium/keymaps/default/flash.sh delete mode 100644 keyboards/handwired/promethium/keymaps/default/keymap.c delete mode 100644 keyboards/handwired/promethium/keymaps/default/rgbtheme.h delete mode 100644 keyboards/handwired/promethium/keymaps/default/rgbtheme_carbon.h delete mode 100644 keyboards/handwired/promethium/keymaps/default/rgbtheme_default.h delete mode 100644 keyboards/handwired/promethium/keymaps/default/rules.mk delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/README.md delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/config.h delete mode 100755 keyboards/handwired/promethium/keymaps/priyadi/flash.sh delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/keymap.c delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme.h delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_carbon.h delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rgbtheme_default.h delete mode 100644 keyboards/handwired/promethium/keymaps/priyadi/rules.mk delete mode 100644 keyboards/handwired/promethium/matrix.c delete mode 100644 keyboards/handwired/promethium/promethium.c delete mode 100644 keyboards/handwired/promethium/promethium.h delete mode 100644 keyboards/handwired/promethium/readme.md delete mode 100644 keyboards/handwired/promethium/rgbsps.c delete mode 100644 keyboards/handwired/promethium/rgbsps.h delete mode 100644 keyboards/handwired/promethium/rules.mk (limited to 'keyboards/handwired/promethium') diff --git a/keyboards/handwired/promethium/color.h b/keyboards/handwired/promethium/color.h deleted file mode 100644 index 077242d5f1..0000000000 --- a/keyboards/handwired/promethium/color.h +++ /dev/null @@ -1,15 +0,0 @@ -#define COLOR_BLANK 0, 0, 0 - -#define COLOR_BLACK 0, 0, 0 -#define COLOR_WHITE 15,15,15 -#define COLOR_GRAY 7, 7, 7 - -#define COLOR_RED 15, 0, 0 -#define COLOR_GREEN 0,15, 0 -#define COLOR_BLUE 0, 0,15 - -#define COLOR_YELLOW 15,15, 0 -#define COLOR_MAGENTA 15, 0,15 -#define COLOR_CYAN 0,15,15 - -#define COLOR_ORANGE 15, 5, 0 \ No newline at end of file diff --git a/keyboards/handwired/promethium/config.h b/keyboards/handwired/promethium/config.h deleted file mode 100644 index a447a70abd..0000000000 --- a/keyboards/handwired/promethium/config.h +++ /dev/null @@ -1,273 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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" - -/* key matrix size */ -#define MATRIX_COLS 6 -#define MATRIX_ROWS 9 - -/* default pin-out */ -#define MATRIX_COL_PINS \ - { F4, F1, F0, D6, D0, D1 } -#define MATRIX_ROW_PINS \ - { F5, F6, F7, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN, NO_PIN } -#define TRACKPOINT_PINS \ - { B7, B6, D7 } - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define DIODE_DIRECTION COL2ROW - -// #define BACKLIGHT_PIN B7 -// #define BACKLIGHT_BREATHING -// #define BACKLIGHT_LEVELS 3 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* number of backlight levels */ - -/* 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 - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for command */ -#define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT) | MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL))) - - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -#define PS2_MOUSE_INIT_DELAY 2000 -#define BATTERY_POLL 30000 -#define MAX_VOLTAGE 4.2 -#define MIN_VOLTAGE 3.2 - -#ifndef __ASSEMBLER__ // assembler doesn't like enum in .h file -enum led_sequence { - LED_IND_LINUX, - LED_IND_APPLE, - LED_IND_WINDOWS, - LED_IND_QWERTY, - LED_IND_ALT, - LED_IND_AUDIO, - LED_IND_BLUETOOTH, - LED_IND_USB, - - LED_IND_BATTERY, - LED_IND_CAPSLOCK, - LED_IND_GUI, - LED_IND_FUN, - LED_IND_NUM, - LED_IND_PUNC, - LED_IND_EMOJI, - LED_IND_GREEK, - - LED_BKSP, - LED_ENT, - LED_RSFT, - LED_RCTL, - - LED_RALT, - LED_SLSH, - LED_SCLN, - LED_P, - - LED_O, - LED_L, - LED_DOT, - LED_RGUI, - - LED_GREEK, - LED_COMM, - LED_K, - LED_I, - - LED_U, - LED_J, - LED_M, - LED_FUN, - - LED_RSPC, - LED_N, - LED_HH, - LED_Y, - - LED_TRACKPOINT3, - LED_TRACKPOINT2, - LED_TRACKPOINT1, - - LED_T, - LED_G, - LED_B, - LED_LSPC, - - LED_NUM, - LED_V, - LED_F, - LED_R, - - LED_E, - LED_D, - LED_C, - LED_EMPTY, - - LED_LGUI, - LED_X, - LED_S, - LED_W, - - LED_Q, - LED_A, - LED_Z, - LED_LALT, - - LED_LCTL, - LED_LSFT, - LED_ESC, - LED_TAB, - - LED_TOTAL -}; - -# define RGB_DI_PIN B5 -# define RGBSPS_NUM LED_TOTAL -#endif - -/* PS/2 mouse */ -#ifdef PS2_USE_BUSYWAIT -# define PS2_CLOCK_PIN D3 -# define PS2_DATA_PIN D2 -#endif - -/* PS/2 mouse interrupt version */ -#ifdef PS2_USE_INT -/* uses INT1 for clock line(ATMega32U4) */ -# define PS2_CLOCK_PIN D3 -# define PS2_DATA_PIN D2 - -# define PS2_INT_INIT() \ - do { \ - EICRA |= ((1 << ISC31) | (0 << ISC30)); \ - } while (0) -# define PS2_INT_ON() \ - do { \ - EIMSK |= (1 << INT3); \ - } while (0) -# define PS2_INT_OFF() \ - do { \ - EIMSK &= ~(1 << INT3); \ - } while (0) -# define PS2_INT_VECT INT3_vect -#endif - -/* PS/2 mouse USART version */ -#ifdef PS2_USE_USART -/* XCK for clock line and RXD for data line */ -#define PS2_CLOCK_PIN D5 -#define PS2_DATA_PIN D2 - -/* synchronous, odd parity, 1-bit stop, 8-bit data, sample at falling edge */ -/* set DDR of CLOCK as input to be slave */ -# define PS2_USART_INIT() \ - do { \ - PS2_CLOCK_DDR &= ~(1 << PS2_CLOCK_BIT); \ - PS2_DATA_DDR &= ~(1 << PS2_DATA_BIT); \ - UCSR1C = ((1 << UMSEL10) | (3 << UPM10) | (0 << USBS1) | (3 << UCSZ10) | (0 << UCPOL1)); \ - UCSR1A = 0; \ - UBRR1H = 0; \ - UBRR1L = 0; \ - } while (0) -# define PS2_USART_RX_INT_ON() \ - do { \ - UCSR1B = ((1 << RXCIE1) | (1 << RXEN1)); \ - } while (0) -# define PS2_USART_RX_POLL_ON() \ - do { \ - UCSR1B = (1 << RXEN1); \ - } while (0) -# define PS2_USART_OFF() \ - do { \ - UCSR1C = 0; \ - UCSR1B &= ~((1 << RXEN1) | (1 << TXEN1)); \ - } while (0) -# define PS2_USART_RX_READY (UCSR1A & (1 << RXC1)) -# define PS2_USART_RX_DATA UDR1 -# define PS2_USART_ERROR (UCSR1A & ((1 << FE1) | (1 << DOR1) | (1 << UPE1))) -# define PS2_USART_RX_VECT USART1_RX_vect -#endif diff --git a/keyboards/handwired/promethium/info.json b/keyboards/handwired/promethium/info.json deleted file mode 100644 index 618b680ff1..0000000000 --- a/keyboards/handwired/promethium/info.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "keyboard_name": "Promethium", - "manufacturer": "Priyadi", - "url": "", - "maintainer": "qmk", - "usb": { - "vid": "0x17EF", - "pid": "0x6048", - "device_version": "0.0.1" - }, - "layouts": { - "LAYOUT": { - "layout": [ - { "label": "k11", "x": 0, "y": 0.50 }, - { "label": "k12", "x": 1, "y": 0.30 }, - { "label": "k13", "x": 2, "y": 0.15 }, - { "label": "k14", "x": 3, "y": 0 }, - { "label": "k15", "x": 4, "y": 0.15 }, - { "label": "k16", "x": 5, "y": 0.15 }, - { "label": "k17", "x": 10, "y": 0.15 }, - { "label": "k18", "x": 11, "y": 0.15 }, - { "label": "k19", "x": 12, "y": 0 }, - { "label": "k1a", "x": 13, "y": 0.15 }, - { "label": "k1b", "x": 14, "y": 0.30 }, - { "label": "k1c", "x": 15, "y": 0.50 }, - - { "label": "k21", "x": 0, "y": 1.50 }, - { "label": "k22", "x": 1, "y": 1.30 }, - { "label": "k23", "x": 2, "y": 1.15 }, - { "label": "k24", "x": 3, "y": 1 }, - { "label": "k25", "x": 4, "y": 1.15 }, - { "label": "k26", "x": 5, "y": 1.15 }, - { "label": "k27", "x": 10, "y": 1.15 }, - { "label": "k28", "x": 11, "y": 1.15 }, - { "label": "k29", "x": 12, "y": 1 }, - { "label": "k2a", "x": 13, "y": 1.15 }, - { "label": "k2b", "x": 14, "y": 1.30 }, - { "label": "k2c", "x": 15, "y": 1.50 }, - - { "label": "k31", "x": 0, "y": 2.50 }, - { "label": "k32", "x": 1, "y": 2.30 }, - { "label": "k33", "x": 2, "y": 2.15 }, - { "label": "k34", "x": 3, "y": 2 }, - { "label": "k35", "x": 4, "y": 2.15 }, - { "label": "k36", "x": 5, "y": 2.15 }, - { "label": "k37", "x": 10, "y": 2.15 }, - { "label": "k38", "x": 11, "y": 2.15 }, - { "label": "k39", "x": 12, "y": 2 }, - { "label": "k3a", "x": 13, "y": 2.15 }, - { "label": "k3b", "x": 14, "y": 2.30 }, - { "label": "k3c", "x": 15, "y": 2.50 }, - - { "label": "k41", "x": 0, "y": 3.50 }, - { "label": "k42", "x": 1, "y": 3.30 }, - { "label": "k43", "x": 2, "y": 3.15 }, - { "label": "k44", "x": 3, "y": 3 }, - { "label": "k45", "x": 4, "y": 3.15 }, - { "label": "k46", "x": 5, "y": 3.15 }, - { "label": "k47", "x": 10, "y": 3.15 }, - { "label": "k48", "x": 11, "y": 3.15 }, - { "label": "k49", "x": 12, "y": 3 }, - { "label": "k4a", "x": 13, "y": 3.15 }, - { "label": "k4b", "x": 14, "y": 3.30 }, - { "label": "k4c", "x": 15, "y": 3.50 }, - - { "label": "tp1", "x": 6.5, "y": 3.15 }, - { "label": "tp2", "x": 7.5, "y": 3.15 }, - { "label": "tp3", "x": 8.5, "y": 3.15 } - ] - } - } -} diff --git a/keyboards/handwired/promethium/keymaps/default/README.md b/keyboards/handwired/promethium/keymaps/default/README.md deleted file mode 100644 index 48824b9f73..0000000000 --- a/keyboards/handwired/promethium/keymaps/default/README.md +++ /dev/null @@ -1,44 +0,0 @@ -Priyadi Keymap for Planck-like Keyboards -======================================== - -Main layer modifications from default Planck layout: - -* Enter moved to quotes position -* Quotes moved to semicolon position. -* QWERTZ style colon & semicolon. shift-. = : shift-, = ; This is done in hardware, no layout switching needed in software. -* < & > occupied precious real estate, and so they are moved down to punctuation layer. -* Right-shift on Enter position. -* Removed arrow keys, they are on another layer now. -* Put Ctrl-Alt-Super and Super-AltGr-Ctrl in left & right corners. -* Lower & Raise is now called Num and Fun. -* OS & Left keys become another thumb modifier: Empty & Greek (Empty because I used this for another use and my muscle memory is not adapted to it yet) - -On Promethium, Trackpoint is enabled on PD2 and PD3. We impersonate a Thinkpad keyboard to be able to use Thinkpad driver on Windows (still needs verification). - -AltGr & Compose dual use key. Tap for Compose (mapped to Scroll Lock in hardware) and press for AltGr. - -Supported layouts: QWERTY, DVORAK, Colemak, Workman, Norman. Switchable from SYS layer. In DVORAK, semicolon is replaced by /? key. - -Num activates NUM layer: hexkeypad on the right side and most punctuation on the left side. Hexkeypad is optimized for C-style hex, IPv6, HTML RGB triplets, etc. - -Fun activates FUN layer: arrow cluster on right home row, F-numbers on left side. - -Pressing Num+Fun activates PUNC layer: same punctuations as NUM layer on the left side, parens on the right side. - -Greek activates either GREEKU or GREEKL layer, depending whether shift is pressed or not. Shift state changes are also taken into account when the layer is active. - -Greek+Empty activates EMOJI layer. The whole keyboard now outputs emojis! - -Pressing both spacebars (spacekeys, actually) activates GUI layer. QWERTYUIOP switches to a virtual desktop. J & L switches virtual desktop to the left or right. S & F behaves like Alt-Tab and Alt-Shift-Tab. This works by sending Alt press when entering the layer, and Alt release when other than S or F keys are pressed. - -Pressing both Ctrls activates SYS layer for configuring the keyboard. - -On Promethium, USB or Bluetooth output is detected on startup. If USB is connected, then USB is used initially. SYS-U and SYS-B switch output to USB or Bluetooth at runtime. Current active output is indicated with LEDs. - -SYS-W, SYS-L, SYS-M switch Unicode input method. SYS-Q, SYS-D, SYS-C, SYS-K, SYS-N switch to QWERTY, DVORAK, Colemak, Workman and Norman, respectively. - -SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key presses and releases. - -On Promethium there are 16 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 67 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes. - -On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. \ No newline at end of file diff --git a/keyboards/handwired/promethium/keymaps/default/config.h b/keyboards/handwired/promethium/keymaps/default/config.h deleted file mode 100644 index 1e5e8906ed..0000000000 --- a/keyboards/handwired/promethium/keymaps/default/config.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#define PRIYADI_PROMETHIUM - -#define RGBSPS_ENABLE -#define RGBSPS_DEMO_ENABLE - -#define UNICODE_TYPE_DELAY 0 - -#define LAYOUT_DVORAK -#define LAYOUT_COLEMAK -#define LAYOUT_NORMAN -#define LAYOUT_WORKMAN - -#define DOUBLESPACE_LAYER_ENABLE -// #define TOLELOT_ENABLE diff --git a/keyboards/handwired/promethium/keymaps/default/flash.sh b/keyboards/handwired/promethium/keymaps/default/flash.sh deleted file mode 100644 index 14a3b43789..0000000000 --- a/keyboards/handwired/promethium/keymaps/default/flash.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -sleep 10 -avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex diff --git a/keyboards/handwired/promethium/keymaps/default/keymap.c b/keyboards/handwired/promethium/keymaps/default/keymap.c deleted file mode 100644 index 77f83361e6..0000000000 --- a/keyboards/handwired/promethium/keymaps/default/keymap.c +++ /dev/null @@ -1,1363 +0,0 @@ -/* -Copyright 2017 Priyadi Iman Nurcahyo - -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 . -*/ - -#if defined(PRIYADI_PROMETHIUM) - #include "promethium.h" -#elif defined(PRIYADI_PLANCK) - #include "planck.h" -#else - #error "no keyboard defined" -#endif - -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" - #include "musical_notes.h" -#endif -#include "eeconfig.h" -#include "process_unicode.h" -#include "quantum.h" -#ifdef RGBSPS_ENABLE -#include "rgbsps.h" -#include "rgbtheme.h" -#endif -#ifdef PS2_MOUSE_ENABLE -#include "ps2_mouse.h" -#include "ps2.h" -#endif -#ifdef FAUXCLICKY_ENABLE -#include "fauxclicky.h" -#ifdef RGBSPS_ENABLE -#undef FAUXCLICKY_OFF -#define FAUXCLICKY_OFF do { \ - fauxclicky_enabled = false; \ - rgbsps_set(LED_AUDIO, COLOR_BLANK); \ - fauxclicky_stop(); \ -} while (0) -#undef FAUXCLICKY_ON -#define FAUXCLICKY_ON do { \ - fauxclicky_enabled = true; \ - rgbsps_set(LED_AUDIO, THEME_COLOR_AUDIO); \ -} while (0) -#endif -#endif -#include "outputselect.h" -#include "led.h" -#define COUNT(x) (sizeof (x) / sizeof (*(x))) - -#define KC_WWWB KC_WWW_BACK -#define KC_WWWF KC_WWW_FORWARD - -// hybrid right-alt & scroll lock (mapped to Compose in OS) -#define C_RALT MT(MOD_RALT, KC_SLCK) - -// dual use right-shift & del key -// #define C_RSFT MT(MOD_RSFT, KC_DEL) - -bool capslock = false; -#ifdef DOUBLESPACE_LAYER_ENABLE -bool lspace_active = false; -bool rspace_active = false; -bool lspace_emitted = false; -bool rspace_emitted = false; -bool space_layer_entered = false; -#endif - -// glow -enum glow_modes { - GLOW_NONE, - GLOW_MIN, - GLOW_FULL -}; -uint8_t glow_mode = GLOW_MIN; - -void turn_off_capslock(void); - -// layers, ordering is important! -enum layers { - _QWERTY, - _DVORAK, - _COLEMAK, - _WORKMAN, - _NORMAN, - _DEFAULT_LAYER_MAX = _NORMAN, - - _GREEKU, - _GREEKL, - - _NUM, - _FUN, - _PUNC, - - _EMPTY, - _EMOJI, - _GUI, - _SYS -}; - -// double-space layer -#define _SPACE _GUI - -enum planck_keycodes { - // layouts - QWERTY = SAFE_RANGE, - DVORAK, - COLEMAK, - WORKMAN, - NORMAN, - - // layer switchers - EMOJI, - GUI, - GREEK, - - // os switchers - LINUX, - WIN, - OSX, - - // others - LSPACE, - RSPACE, - GLOW, - - // stub -#ifndef FAUXCLICKY_ENABLE - FC_TOG, -#endif -#ifndef BLUETOOTH_BLUEFRUIT_LE - OUT_BT, -#endif - RGBDEMO, - KEYCODE_END -}; - -#define EMPTY MO(_EMPTY) -#define NUM MO(_NUM) -#define FUN MO(_FUN) -#define FUN0 LT(_FUN, KC_0) - -// unicode map - -enum unicode_name { - GRIN, // grinning face 😊 - TJOY, // tears of joy 😂 - SMILE, // grining face with smiling eyes 😁 - HEART, // heart ❤ - EYERT, // smiling face with heart shaped eyes 😍 - CRY, // crying face 😭 - SMEYE, // smiling face with smiling eyes 😊 - UNAMU, // unamused 😒 - KISS, // kiss 😘 - HART2, // two hearts 💕 - WEARY, // weary 😩 - OKHND, // ok hand sign 👌 - PENSV, // pensive 😔 - SMIRK, // smirk 😏 - RECYC, // recycle ♻ - WINK, // wink 😉 - THMUP, // thumb up 👍 - THMDN, // thumb down 👎 - PRAY, // pray 🙏 - PHEW, // relieved 😌 - MUSIC, // musical notes - FLUSH, // flushed 😳 - CELEB, // celebration 🙌 - CRY2, // crying face 😢 - COOL, // smile with sunglasses 😎 - NOEVS, // see no evil - NOEVH, // hear no evil - NOEVK, // speak no evil - POO, // pile of poo - EYES, // eyes - VIC, // victory hand - BHART, // broken heart - SLEEP, // sleeping face - SMIL2, // smiling face with open mouth & sweat - HUNRD, // 100 - CONFU, // confused - TONGU, // face with tongue & winking eye - DISAP, // disappointed - YUMMY, // face savoring delicious food - CLAP, // hand clapping - FEAR, // face screaming in fear - HORNS, // smiling face with horns - HALO, // smiling face with halo - BYE, // waving hand - SUN, // sun - MOON, // moon - SKULL, // skull - - // greek letters - UALPH, - UBETA, - UGAMM, - UDELT, - UEPSI, - UZETA, - UETA, - UTHET, - UIOTA, - UKAPP, - ULAMB, - UMU, - UNU, - UXI, - UOMIC, - UPI, - URHO, - USIGM, - UTAU, - UUPSI, - UPHI, - UCHI, - UPSI, - UOMEG, - - LALPH, - LBETA, - LGAMM, - LDELT, - LEPSI, - LZETA, - LETA, - LTHET, - LIOTA, - LKAPP, - LLAMB, - LMU, - LNU, - LXI, - LOMIC, - LPI, - LRHO, - LSIGM, - LTAU, - LUPSI, - LPHI, - LCHI, - LPSI, - LOMEG, - - FSIGM, - - LTEQ, - GTEQ, - NOTEQ, - PLMIN, -}; - -const uint32_t PROGMEM unicode_map[] = { - [GRIN] = 0x1F600, - [TJOY] = 0x1F602, - [SMILE] = 0x1F601, - [HEART] = 0x2764, - [EYERT] = 0x1f60d, - [CRY] = 0x1f62d, - [SMEYE] = 0x1F60A, - [UNAMU] = 0x1F612, - [KISS] = 0x1F618, - [HART2] = 0x1F495, - [WEARY] = 0x1F629, - [OKHND] = 0x1F44C, - [PENSV] = 0x1F614, - [SMIRK] = 0x1F60F, - [RECYC] = 0x267B, - [WINK] = 0x1F609, - [THMUP] = 0x1F44D, - [THMDN] = 0x1F44E, - [PRAY] = 0x1F64F, - [PHEW] = 0x1F60C, - [MUSIC] = 0x1F3B6, - [FLUSH] = 0x1F633, - [CELEB] = 0x1F64C, - [CRY2] = 0x1F622, - [COOL] = 0x1F60E, - [NOEVS] = 0x1F648, - [NOEVH] = 0x1F649, - [NOEVK] = 0x1F64A, - [POO] = 0x1F4A9, - [EYES] = 0x1F440, - [VIC] = 0x270C, - [BHART] = 0x1F494, - [SLEEP] = 0x1F634, - [SMIL2] = 0x1F605, - [HUNRD] = 0x1F4AF, - [CONFU] = 0x1F615, - [TONGU] = 0x1F61C, - [DISAP] = 0x1F61E, - [YUMMY] = 0x1F60B, - [CLAP] = 0x1F44F, - [FEAR] = 0x1F631, - [HORNS] = 0x1F608, - [HALO] = 0x1F607, - [BYE] = 0x1F44B, - [SUN] = 0x2600, - [MOON] = 0x1F314, - [SKULL] = 0x1F480, - - // greek letters - [UALPH] = 0x0391, - [UBETA] = 0x0392, - [UGAMM] = 0x0393, - [UDELT] = 0x0394, - [UEPSI] = 0x0395, - [UZETA] = 0x0396, - [UETA] = 0x0397, - [UTHET] = 0x0398, - [UIOTA] = 0x0399, - [UKAPP] = 0x039A, - [ULAMB] = 0x039B, - [UMU] = 0x039C, - [UNU] = 0x039D, - [UXI] = 0x039E, - [UOMIC] = 0x039F, - [UPI] = 0x03A0, - [URHO] = 0x03A1, - [USIGM] = 0x03A3, - [UTAU] = 0x03A4, - [UUPSI] = 0x03A5, - [UPHI] = 0x03A6, - [UCHI] = 0x03A7, - [UPSI] = 0x03A8, - [UOMEG] = 0x03A9, - [LALPH] = 0x03B1, - [LBETA] = 0x03B2, - [LGAMM] = 0x03B3, - [LDELT] = 0x03B4, - [LEPSI] = 0x03B5, - [LZETA] = 0x03B6, - [LETA] = 0x03B7, - [LTHET] = 0x03B8, - [LIOTA] = 0x03B9, - [LKAPP] = 0x03BA, - [LLAMB] = 0x03BB, - [LMU] = 0x03BC, - [LNU] = 0x03BD, - [LXI] = 0x03BE, - [LOMIC] = 0x03BF, - [LPI] = 0x03C0, - [LRHO] = 0x03C1, - [LSIGM] = 0x03C3, - [LTAU] = 0x03C4, - [LUPSI] = 0x03C5, - [LPHI] = 0x03C6, - [LCHI] = 0x03C7, - [LPSI] = 0x03C8, - [LOMEG] = 0x03C9, - [FSIGM] = 0x03C2, - - // other - [LTEQ] = 0x2264, // less than or equal - [GTEQ] = 0x2265, // greater than or equal - [NOTEQ] = 0x2260, // not equal - [PLMIN] = 0xB1, // plus minus -}; - -// RGBSPS - -#ifdef RGBSPS_ENABLE -const uint8_t PROGMEM LED_ALNUM[] = { - LED_Z, - LED_A, - LED_Q, - LED_W, - LED_S, - LED_X, - LED_C, - LED_D, - LED_E, - LED_R, - LED_F, - LED_V, - LED_B, - LED_G, - LED_T, - LED_N, - LED_HH, - LED_Y, - LED_U, - LED_J, - LED_M, - LED_COMM, - LED_K, - LED_I, - LED_O, - LED_L, - LED_DOT, - LED_SLSH, - LED_SCLN, - LED_P, - LED_LSPC, - LED_RSPC -}; - -const uint8_t PROGMEM LED_HOMING[] = { - LED_A, - LED_S, - LED_D, - LED_F, - LED_J, - LED_K, - LED_L, - LED_SCLN -}; - -const uint8_t PROGMEM LED_MODS[] = { - LED_TAB, - LED_ESC, - LED_LSFT, - LED_LCTL, - LED_LGUI, - LED_LALT, - LED_RALT, - LED_RGUI, - LED_BKSP, - LED_ENT, - LED_RSFT, - LED_RCTL -}; - -const uint8_t PROGMEM LED_FN[] = { - LED_EMPTY, - LED_NUM, - LED_FUN, - LED_GREEK -}; - -const uint8_t PROGMEM LED_INDICATORS[] = { - LED_IND_LINUX, - LED_IND_APPLE, - LED_IND_WINDOWS, - LED_IND_QWERTY, - LED_IND_ALT, - LED_IND_AUDIO, - LED_IND_BLUETOOTH, - LED_IND_USB, - - LED_IND_BATTERY, - LED_IND_CAPSLOCK, - LED_IND_GUI, - LED_IND_FUN, - LED_IND_NUM, - LED_IND_PUNC, - LED_IND_EMOJI, - LED_IND_GREEK, -}; - -const uint8_t PROGMEM LED_TRACKPOINT[] = { - LED_TRACKPOINT1, - LED_TRACKPOINT2, - LED_TRACKPOINT3, -}; - -void led_turnoff_keys(void) { - for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), COLOR_BLACK); - } - for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), COLOR_BLACK); - } - for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), COLOR_BLACK); - } -} - -#ifdef RGBSPS_DEMO_ENABLE -void led_demo(void) { - rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); - rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); - rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); - rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); - rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); - rgbsps_set(LED_IND_USB, THEME_COLOR_USB); - rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK); - rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); - rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); - rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); - rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); - rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); - rgbsps_send(); -} -#endif - -void led_reset(void) { - switch (glow_mode) { - case GLOW_NONE: - led_turnoff_keys(); - break; - case GLOW_MIN: - led_turnoff_keys(); - for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW1_HOME); - } - rgbsps_set(LED_F, THEME_COLOR_GLOW1_HOMING); - rgbsps_set(LED_J, THEME_COLOR_GLOW1_HOMING); - break; - case GLOW_FULL: - for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), THEME_COLOR_GLOW2_ALPHA); - } - for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), THEME_COLOR_GLOW2_MODS); - } - for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), THEME_COLOR_GLOW2_FN); - } - for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW2_HOME); - } - rgbsps_set(LED_F, THEME_COLOR_GLOW2_HOMING); - rgbsps_set(LED_J, THEME_COLOR_GLOW2_HOMING); - break; - } -} - -void led_set_default_layer_indicator(void) { - uint8_t default_layer = get_highest_layer(default_layer_state); - if (default_layer == _QWERTY) { - rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); - rgbsps_set(LED_IND_ALT, COLOR_BLANK); - } else { - rgbsps_set(LED_IND_QWERTY, COLOR_BLANK); - rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); - } - rgbsps_send(); - return; -} - -void led_set_layer_indicator(void) { - static uint8_t oldlayer = 255; - - led_reset(); - - rgbsps_set(LED_IND_GUI, COLOR_BLANK); - rgbsps_set(LED_IND_FUN, COLOR_BLANK); - rgbsps_set(LED_IND_NUM, COLOR_BLANK); - rgbsps_set(LED_IND_PUNC, COLOR_BLANK); - rgbsps_set(LED_IND_GREEK, COLOR_BLANK); - rgbsps_set(LED_IND_EMOJI, COLOR_BLANK); - - uint8_t layer = get_highest_layer(layer_state); - if (oldlayer == layer) { - return; - } - - oldlayer = layer; - - if (layer <= _DEFAULT_LAYER_MAX) { - rgbsps_send(); - return; - } - - switch(layer) { - case _GUI: - rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); - break; - case _FUN: - rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); - break; - case _NUM: - rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); - break; - case _PUNC: - rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); - break; - case _GREEKL: - case _GREEKU: - rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); - break; - case _EMOJI: - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); - break; - default: - rgbsps_set(LED_IND_GUI, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_FUN, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_NUM, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_PUNC, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_GREEK, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_OTHERLAYER); - } - - rgbsps_send(); -} - -void led_set_unicode_input_mode(void) { - rgbsps_set(LED_IND_LINUX, COLOR_BLANK); - rgbsps_set(LED_IND_APPLE, COLOR_BLANK); - rgbsps_set(LED_IND_WINDOWS, COLOR_BLANK); - - switch (get_unicode_input_mode()) { - case UC_LNX: - rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); - break; - case UC_OSX: - rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); - break; - case UC_WIN: - case UC_WINC: - rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); - break; - } - rgbsps_send(); -} - -void led_set_output_ble(void) { - rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); - rgbsps_set(LED_IND_USB, COLOR_BLANK); - rgbsps_send(); -} - -void led_set_output_usb(void) { - rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); - rgbsps_set(LED_IND_USB, THEME_COLOR_USB); - rgbsps_send(); -} - -void led_set_output_none(void) { - rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); - rgbsps_set(LED_IND_USB, COLOR_BLANK); - rgbsps_send(); -} - -void led_init(void) { - // turn off all - rgbsps_turnoff(); - - // set trackpoint color - rgbsps_set(LED_TRACKPOINT1, THEME_COLOR_TP1); - rgbsps_set(LED_TRACKPOINT2, THEME_COLOR_TP2); - rgbsps_set(LED_TRACKPOINT3, THEME_COLOR_TP3); - - // unicode input mode - led_set_unicode_input_mode(); - - // layer indicator - led_set_layer_indicator(); - led_set_default_layer_indicator(); - - // clicky -#ifdef FAUXCLICKY_ENABLE - if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - } else { - rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); - } -#endif - - rgbsps_send(); -} - - -#endif // RGBSPS_ENABLE - -// keymaps - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ' |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, EMPTY, NUM, LSPACE, RSPACE, FUN, GREEK, KC_RGUI, C_RALT, KC_RCTL, - _______, _______, _______ -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| / | Q | J | K | X | B | M | W | V | Z |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ -#ifdef LAYOUT_DVORAK -[_DVORAK] = LAYOUT( - _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, - _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, - _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_COLEMAK -[_COLEMAK] = LAYOUT( - _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______, - _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Norman - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | D | F | K | J | U | R | L | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | E | T | G | Y | N | I | O | H |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | P | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_NORMAN -[_NORMAN] = LAYOUT( - _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______, - _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Workman - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_WORKMAN -[_WORKMAN] = LAYOUT( - _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______, - _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, - _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Punc - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ≤ | ≥ | ` | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | * | \ | - | = | / | ≠ | ( | ) | < | > | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | & | ^ | | | _ | + | ? | ± | [ | ] | { | } | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | : | | - * `-----------------------------------------------------------------------------------' - */ -[_PUNC] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______, - KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, _______, - _______, _______, _______ -), - -/* Num - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | A | 7 | 8 | 9 | D | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ` | * | \ | - | = | / | B | 4 | 5 | 6 | E | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | & | ^ | | | _ | + | ? | C | 1 | 2 | 3 | F | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | x | | | | | 0 | , | . | : | | - * `-----------------------------------------------------------------------------------' - */ -[_NUM] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______, - KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______, - _______, _______, KC_X, _______, _______, _______, _______, FUN0 , KC_COMM, KC_DOT, KC_COLN, _______, - _______, _______, _______ -), - -/* Func - * ,-----------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | Ins | | PgUp | Up | PgDn | PgUp | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | F5 | F6 | F7 | F8 |PrtSc | | Left | Down | Right| PgDn | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F9 | F10 | F11 | F12 |Pause | | | Home | End | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_FUN] = LAYOUT( - XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, - KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, - _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Uppercase Greek - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GREEKU] = LAYOUT( - _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, - _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, - _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Lowercase Greek - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GREEKL] = LAYOUT( - _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, - _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, - _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Empty - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_EMPTY] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Emoji - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_EMOJI] = LAYOUT( - X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), - X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), - X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), - X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK), - _______, _______, _______ -), - -/* GUI - * ,-----------------------------------------------------------------------------------. - * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | | Btab | Esc | Tab | | | Prev | | Next | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | Prev | Play | Next | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GUI] = LAYOUT( - XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, - KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______ -), - -/* Sys - * ,-----------------------------------------------------------------------------------. - * | |Qwerty| Win | |Reset | | | USB | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |Audio | |Dvorak| | Glow | | |WorkMn|Linux | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Colmak| | BLE |Norman|MacOS | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_SYS] = LAYOUT( - DEBUG, QWERTY, WIN, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO, - XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______ -), - - -}; - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -#ifdef RGBSPS_ENABLE - led_set_default_layer_indicator(); -#endif -} - -#ifdef DOUBLESPACE_LAYER_ENABLE -void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *isemitted) { - if (pressed) { - *isactive = true; - if (*otheractive) { - layer_on(_SPACE); - register_code(KC_LALT); // sends alt and enter layer - space_layer_entered = true; - } - } else { - *isactive = false; - if (space_layer_entered) { - unregister_code(KC_LALT); // release alt and exit layer - layer_off(_SPACE); - if (!*otheractive) { - space_layer_entered = false; - } - } else { - if (!*isemitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - *isemitted = false; - } - } -} -#endif - -layer_state_t layer_state_set_user(layer_state_t state) -{ - // turn on punc layer if both fun & num are on - if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) { - state |= (1UL<<_PUNC); - } else { - state &= ~(1UL<<_PUNC); - } - - // turn on emoji layer if empty and greek layer are on - if ( - (state & ((1UL<<_EMPTY) | (1UL<<_GREEKU))) == ((1UL<<_EMPTY) | (1UL<<_GREEKU)) - || (state & ((1UL<<_EMPTY) | (1UL<<_GREEKL))) == ((1UL<<_EMPTY) | (1UL<<_GREEKL)) - ) { - state |= (1UL<<_EMOJI); - } else { - state &= ~(1UL<<_EMOJI); - } - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - static bool lshift = false; - static bool rshift = false; - static uint8_t layer = 0; - - lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); - rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); - layer = get_highest_layer(layer_state); - -#ifdef DOUBLESPACE_LAYER_ENABLE - // double-space: send space immediately if any other key depressed before space is released - if ((lspace_active ^ rspace_active) - && keycode != LSPACE - && keycode != RSPACE - && record->event.pressed) - { - if (lspace_active) { - if (!lspace_emitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - lspace_emitted = true; - } - if (rspace_active) { - if (!rspace_emitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - rspace_emitted = true; - } - } - - if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC && keycode != XXXXXXX) { - if (record->event.pressed) { - unregister_code(KC_LALT); - } else { - register_code(KC_LALT); - } - } -#endif - - switch (keycode) { - -#ifdef DOUBLESPACE_LAYER_ENABLE - // double-space enter space layer - case LSPACE: - process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted); - return false; - break; - case RSPACE: - process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted); - return false; - break; -#endif - - // handle greek layer shift - case KC_LSFT: - case KC_RSFT: - ; - if (layer == _GREEKU || layer == _GREEKL) { - if (record->event.pressed) { - layer_on(_GREEKU); - layer_off(_GREEKL); - } else { - if (lshift ^ rshift) { // if only one shift was pressed - layer_on(_GREEKL); - layer_off(_GREEKU); - } - } - } - return true; - break; - - // press both ctrls to activate SYS layer - case KC_LCTL: - case KC_RCTL: - ; - bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL); - bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL); - if (record->event.pressed) { - if (lctrl ^ rctrl) { // if only one ctrl was pressed - layer_on(_SYS); - } - } else { - layer_off(_SYS); - } - return true; - break; - - // QWERTZ style comma and dot: semicolon and colon when shifted - case KC_COMM: - if (record->event.pressed) { - if (lshift || rshift) { - if (lshift) unregister_code(KC_LSFT); - if (rshift) unregister_code(KC_RSFT); - register_code(KC_SCLN); - unregister_code(KC_SCLN); - if (lshift) register_code(KC_LSFT); - if (rshift) register_code(KC_RSFT); - } else { - register_code(KC_COMM); - unregister_code(KC_COMM); - } - } - return false; - break; - case KC_DOT: - if (record->event.pressed) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT))) { - register_code(KC_SCLN); - unregister_code(KC_SCLN); - } else { - register_code(KC_DOT); - unregister_code(KC_DOT); - } - } - return false; - break; - - // layout switchers - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; -#ifdef LAYOUT_DVORAK - case DVORAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_DVORAK); - } - return false; - break; -#endif -#ifdef LAYOUT_COLEMAK - case COLEMAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; -#endif -#ifdef LAYOUT_WORKMAN - case WORKMAN: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_WORKMAN); - } - return false; - break; -#endif -#ifdef LAYOUT_NORMAN - case NORMAN: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_NORMAN); - } - return false; - break; -#endif - - // only process Fnumber on key release, and only when layer switcher is still pressed. - // this is to avoid accidental presses on potentially destructive keys - case KC_F1 ... KC_F12: - case KC_PAUS: - case KC_PSCR: - case KC_INS: - if (!record->event.pressed && layer == _FUN) { // key released and still in FUN layer - register_code(keycode); - unregister_code(keycode); - } - return false; - break; - - // layer switcher - // - case GREEK: - if (record->event.pressed) { - if (lshift || rshift) { - layer_on(_GREEKU); - layer_off(_GREEKL); - } else { - layer_on(_GREEKL); - layer_off(_GREEKU); - } - } else { - layer_off(_GREEKU); - layer_off(_GREEKL); - } - return false; - break; - - // OS switchers - case LINUX: - set_unicode_input_mode(UC_LNX); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - case WIN: - set_unicode_input_mode(UC_WINC); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - case OSX: - set_unicode_input_mode(UC_OSX); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - - // glow mode changer -#ifdef RGBSPS_ENABLE - case GLOW: - if (record->event.pressed) { - glow_mode++; - if (glow_mode > GLOW_FULL) { - glow_mode = GLOW_NONE; - } - led_reset(); - rgbsps_send(); - } - return false; - break; -#endif - - // faux clicky indicator -#ifdef FAUXCLICKY_ENABLE - case FC_TOG: -#ifdef RGBSPS_ENABLE - if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - } else { - rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); - } - rgbsps_send(); -#endif - return true; - break; -#endif - -#ifdef RGBSPS_DEMO_ENABLE - case RGBDEMO: - led_demo(); - return false; - break; -#endif - } - return true; -} - -void set_output_user(uint8_t output) { -#ifdef BLUETOOTH_BLUEFRUIT_LE - switch(output) { - case OUTPUT_USB: - led_set_output_usb(); - break; - case OUTPUT_BLUETOOTH: - led_set_output_ble(); - break; - default: - led_set_output_none(); - } -#endif -} - -void matrix_init_user() { - wait_ms(500); // give time for usb to initialize - - set_unicode_input_mode(UC_LNX); - -#ifdef RGBSPS_ENABLE - led_init(); -#endif - - // auto detect output on init -#ifdef BLUETOOTH_BLUEFRUIT_LE - uint8_t output = auto_detect_output(); - if (output == OUTPUT_USB) { - set_output(OUTPUT_USB); - } else { - set_output(OUTPUT_BLUETOOTH); - } -#endif -} - -void turn_off_capslock() { - if (capslock) { - register_code(KC_CAPS); - unregister_code(KC_CAPS); - } -} - -#ifdef RGBSPS_ENABLE - void matrix_scan_user(void) { - led_set_layer_indicator(); - } - - void battery_poll(uint8_t level) { - rgbsps_sethsv(LED_IND_BATTERY, level * 120/255, 255, 15); - rgbsps_send(); - } - - void led_set_user(uint8_t usb_led) { - bool new_capslock = usb_led & (1< occupied precious real estate, and so they are moved down to punctuation layer. -* Right-shift on Enter position. -* Removed arrow keys, they are on another layer now. -* Put Ctrl-Alt-Super and Super-AltGr-Ctrl in left & right corners. -* Lower & Raise is now called Num and Fun. -* OS & Left keys become another thumb modifier: Empty & Greek (Empty because I used this for another use and my muscle memory is not adapted to it yet) - -On Promethium, Trackpoint is enabled on PD2 and PD3. We impersonate a Thinkpad keyboard to be able to use Thinkpad driver on Windows (still needs verification). - -AltGr & Compose dual use key. Tap for Compose (mapped to Scroll Lock in hardware) and press for AltGr. - -Supported layouts: QWERTY, DVORAK, Colemak, Workman, Norman. Switchable from SYS layer. In DVORAK, semicolon is replaced by /? key. - -Num activates NUM layer: hexkeypad on the right side and most punctuation on the left side. Hexkeypad is optimized for C-style hex, IPv6, HTML RGB triplets, etc. - -Fun activates FUN layer: arrow cluster on right home row, F-numbers on left side. - -Pressing Num+Fun activates PUNC layer: same punctuations as NUM layer on the left side, parens on the right side. - -Greek activates either GREEKU or GREEKL layer, depending whether shift is pressed or not. Shift state changes are also taken into account when the layer is active. - -Greek+Empty activates EMOJI layer. The whole keyboard now outputs emojis! - -Pressing both spacebars (spacekeys, actually) activates GUI layer. QWERTYUIOP switches to a virtual desktop. J & L switches virtual desktop to the left or right. S & F behaves like Alt-Tab and Alt-Shift-Tab. This works by sending Alt press when entering the layer, and Alt release when other than S or F keys are pressed. - -Pressing both Ctrls activates SYS layer for configuring the keyboard. - -On Promethium, USB or Bluetooth output is detected on startup. If USB is connected, then USB is used initially. SYS-U and SYS-B switch output to USB or Bluetooth at runtime. Current active output is indicated with LEDs. - -SYS-W, SYS-L, SYS-M switch Unicode input method. SYS-Q, SYS-D, SYS-C, SYS-K, SYS-N switch to QWERTY, DVORAK, Colemak, Workman and Norman, respectively. - -SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key presses and releases. - -On Promethium there are 16 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 67 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes. - -On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. \ No newline at end of file diff --git a/keyboards/handwired/promethium/keymaps/priyadi/config.h b/keyboards/handwired/promethium/keymaps/priyadi/config.h deleted file mode 100644 index 1e5e8906ed..0000000000 --- a/keyboards/handwired/promethium/keymaps/priyadi/config.h +++ /dev/null @@ -1,16 +0,0 @@ -#pragma once - -#define PRIYADI_PROMETHIUM - -#define RGBSPS_ENABLE -#define RGBSPS_DEMO_ENABLE - -#define UNICODE_TYPE_DELAY 0 - -#define LAYOUT_DVORAK -#define LAYOUT_COLEMAK -#define LAYOUT_NORMAN -#define LAYOUT_WORKMAN - -#define DOUBLESPACE_LAYER_ENABLE -// #define TOLELOT_ENABLE diff --git a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh b/keyboards/handwired/promethium/keymaps/priyadi/flash.sh deleted file mode 100755 index 14a3b43789..0000000000 --- a/keyboards/handwired/promethium/keymaps/priyadi/flash.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh - -sleep 10 -avrdude -p m32u4 -P /dev/ttyACM0 -c avr109 -U flash:w:../../../../../.build/handwired_promethium_priyadi.hex diff --git a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c b/keyboards/handwired/promethium/keymaps/priyadi/keymap.c deleted file mode 100644 index 31ce811e53..0000000000 --- a/keyboards/handwired/promethium/keymaps/priyadi/keymap.c +++ /dev/null @@ -1,1366 +0,0 @@ -/* -Copyright 2017 Priyadi Iman Nurcahyo - -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 . -*/ - -#if defined(PRIYADI_PROMETHIUM) - #include "promethium.h" -#elif defined(PRIYADI_PLANCK) - #include "planck.h" -#else - #error "no keyboard defined" -#endif - -#include "action_layer.h" -#ifdef AUDIO_ENABLE - #include "audio.h" - #include "musical_notes.h" -#endif -#include "eeconfig.h" -#include "process_unicode.h" -#include "quantum.h" -#ifdef RGBSPS_ENABLE -#include "rgbsps.h" -#include "rgbtheme.h" -#endif -#ifdef PS2_MOUSE_ENABLE -#include "ps2_mouse.h" -#include "ps2.h" -#endif -#ifdef FAUXCLICKY_ENABLE -#include "fauxclicky.h" -#ifdef RGBSPS_ENABLE -#undef FAUXCLICKY_OFF -#define FAUXCLICKY_OFF do { \ - fauxclicky_enabled = false; \ - rgbsps_set(LED_AUDIO, COLOR_BLANK); \ - fauxclicky_stop(); \ -} while (0) -#undef FAUXCLICKY_ON -#define FAUXCLICKY_ON do { \ - fauxclicky_enabled = true; \ - rgbsps_set(LED_AUDIO, THEME_COLOR_AUDIO); \ -} while (0) -#endif -#endif -#ifdef __AVR__ -#include "outputselect.h" -#endif -#include "led.h" -#define COUNT(x) (sizeof (x) / sizeof (*(x))) - -#define KC_WWWB KC_WWW_BACK -#define KC_WWWF KC_WWW_FORWARD - -// hybrid right-alt & scroll lock (mapped to Compose in OS) -#define C_RALT MT(MOD_RALT, KC_SLCK) - -// dual use right-shift & del key -// #define C_RSFT MT(MOD_RSFT, KC_DEL) - -bool capslock = false; -#ifdef DOUBLESPACE_LAYER_ENABLE -bool lspace_active = false; -bool rspace_active = false; -bool lspace_emitted = false; -bool rspace_emitted = false; -bool space_layer_entered = false; -#endif - -// glow -enum glow_modes { - GLOW_NONE, - GLOW_MIN, - GLOW_FULL -}; -uint8_t glow_mode = GLOW_MIN; - -void turn_off_capslock(void); -extern keymap_config_t keymap_config; - -// layers, ordering is important! -enum layers { - _QWERTY, - _DVORAK, - _COLEMAK, - _WORKMAN, - _NORMAN, - _DEFAULT_LAYER_MAX = _NORMAN, - - _GREEKU, - _GREEKL, - - _NUM, - _FUN, - _PUNC, - - _EMPTY, - _EMOJI, - _GUI, - _SYS -}; - -// double-space layer -#define _SPACE _GUI - -enum planck_keycodes { - // layouts - QWERTY = SAFE_RANGE, - DVORAK, - COLEMAK, - WORKMAN, - NORMAN, - - // layer switchers - EMOJI, - GUI, - GREEK, - - // os switchers - LINUX, - WIN, - OSX, - - // others - LSPACE, - RSPACE, - GLOW, - - // stub -#ifndef FAUXCLICKY_ENABLE - FC_TOG, -#endif -#ifndef BLUETOOTH_BLUEFRUIT_LE - OUT_BT, -#endif - RGBDEMO, - KEYCODE_END -}; - -#define EMPTY MO(_EMPTY) -#define NUM MO(_NUM) -#define FUN MO(_FUN) -#define FUN0 LT(_FUN, KC_0) - -// unicode map - -enum unicode_name { - GRIN, // grinning face 😊 - TJOY, // tears of joy 😂 - SMILE, // grining face with smiling eyes 😁 - HEART, // heart ❤ - EYERT, // smiling face with heart shaped eyes 😍 - CRY, // crying face 😭 - SMEYE, // smiling face with smiling eyes 😊 - UNAMU, // unamused 😒 - KISS, // kiss 😘 - HART2, // two hearts 💕 - WEARY, // weary 😩 - OKHND, // ok hand sign 👌 - PENSV, // pensive 😔 - SMIRK, // smirk 😏 - RECYC, // recycle ♻ - WINK, // wink 😉 - THMUP, // thumb up 👍 - THMDN, // thumb down 👎 - PRAY, // pray 🙏 - PHEW, // relieved 😌 - MUSIC, // musical notes - FLUSH, // flushed 😳 - CELEB, // celebration 🙌 - CRY2, // crying face 😢 - COOL, // smile with sunglasses 😎 - NOEVS, // see no evil - NOEVH, // hear no evil - NOEVK, // speak no evil - POO, // pile of poo - EYES, // eyes - VIC, // victory hand - BHART, // broken heart - SLEEP, // sleeping face - SMIL2, // smiling face with open mouth & sweat - HUNRD, // 100 - CONFU, // confused - TONGU, // face with tongue & winking eye - DISAP, // disappointed - YUMMY, // face savoring delicious food - CLAP, // hand clapping - FEAR, // face screaming in fear - HORNS, // smiling face with horns - HALO, // smiling face with halo - BYE, // waving hand - SUN, // sun - MOON, // moon - SKULL, // skull - - // greek letters - UALPH, - UBETA, - UGAMM, - UDELT, - UEPSI, - UZETA, - UETA, - UTHET, - UIOTA, - UKAPP, - ULAMB, - UMU, - UNU, - UXI, - UOMIC, - UPI, - URHO, - USIGM, - UTAU, - UUPSI, - UPHI, - UCHI, - UPSI, - UOMEG, - - LALPH, - LBETA, - LGAMM, - LDELT, - LEPSI, - LZETA, - LETA, - LTHET, - LIOTA, - LKAPP, - LLAMB, - LMU, - LNU, - LXI, - LOMIC, - LPI, - LRHO, - LSIGM, - LTAU, - LUPSI, - LPHI, - LCHI, - LPSI, - LOMEG, - - FSIGM, - - LTEQ, - GTEQ, - NOTEQ, - PLMIN, -}; - -const uint32_t PROGMEM unicode_map[] = { - [GRIN] = 0x1F600, - [TJOY] = 0x1F602, - [SMILE] = 0x1F601, - [HEART] = 0x2764, - [EYERT] = 0x1f60d, - [CRY] = 0x1f62d, - [SMEYE] = 0x1F60A, - [UNAMU] = 0x1F612, - [KISS] = 0x1F618, - [HART2] = 0x1F495, - [WEARY] = 0x1F629, - [OKHND] = 0x1F44C, - [PENSV] = 0x1F614, - [SMIRK] = 0x1F60F, - [RECYC] = 0x267B, - [WINK] = 0x1F609, - [THMUP] = 0x1F44D, - [THMDN] = 0x1F44E, - [PRAY] = 0x1F64F, - [PHEW] = 0x1F60C, - [MUSIC] = 0x1F3B6, - [FLUSH] = 0x1F633, - [CELEB] = 0x1F64C, - [CRY2] = 0x1F622, - [COOL] = 0x1F60E, - [NOEVS] = 0x1F648, - [NOEVH] = 0x1F649, - [NOEVK] = 0x1F64A, - [POO] = 0x1F4A9, - [EYES] = 0x1F440, - [VIC] = 0x270C, - [BHART] = 0x1F494, - [SLEEP] = 0x1F634, - [SMIL2] = 0x1F605, - [HUNRD] = 0x1F4AF, - [CONFU] = 0x1F615, - [TONGU] = 0x1F61C, - [DISAP] = 0x1F61E, - [YUMMY] = 0x1F60B, - [CLAP] = 0x1F44F, - [FEAR] = 0x1F631, - [HORNS] = 0x1F608, - [HALO] = 0x1F607, - [BYE] = 0x1F44B, - [SUN] = 0x2600, - [MOON] = 0x1F314, - [SKULL] = 0x1F480, - - // greek letters - [UALPH] = 0x0391, - [UBETA] = 0x0392, - [UGAMM] = 0x0393, - [UDELT] = 0x0394, - [UEPSI] = 0x0395, - [UZETA] = 0x0396, - [UETA] = 0x0397, - [UTHET] = 0x0398, - [UIOTA] = 0x0399, - [UKAPP] = 0x039A, - [ULAMB] = 0x039B, - [UMU] = 0x039C, - [UNU] = 0x039D, - [UXI] = 0x039E, - [UOMIC] = 0x039F, - [UPI] = 0x03A0, - [URHO] = 0x03A1, - [USIGM] = 0x03A3, - [UTAU] = 0x03A4, - [UUPSI] = 0x03A5, - [UPHI] = 0x03A6, - [UCHI] = 0x03A7, - [UPSI] = 0x03A8, - [UOMEG] = 0x03A9, - [LALPH] = 0x03B1, - [LBETA] = 0x03B2, - [LGAMM] = 0x03B3, - [LDELT] = 0x03B4, - [LEPSI] = 0x03B5, - [LZETA] = 0x03B6, - [LETA] = 0x03B7, - [LTHET] = 0x03B8, - [LIOTA] = 0x03B9, - [LKAPP] = 0x03BA, - [LLAMB] = 0x03BB, - [LMU] = 0x03BC, - [LNU] = 0x03BD, - [LXI] = 0x03BE, - [LOMIC] = 0x03BF, - [LPI] = 0x03C0, - [LRHO] = 0x03C1, - [LSIGM] = 0x03C3, - [LTAU] = 0x03C4, - [LUPSI] = 0x03C5, - [LPHI] = 0x03C6, - [LCHI] = 0x03C7, - [LPSI] = 0x03C8, - [LOMEG] = 0x03C9, - [FSIGM] = 0x03C2, - - // other - [LTEQ] = 0x2264, // less than or equal - [GTEQ] = 0x2265, // greater than or equal - [NOTEQ] = 0x2260, // not equal - [PLMIN] = 0xB1, // plus minus -}; - -// RGBSPS - -#ifdef RGBSPS_ENABLE -const uint8_t PROGMEM LED_ALNUM[] = { - LED_Z, - LED_A, - LED_Q, - LED_W, - LED_S, - LED_X, - LED_C, - LED_D, - LED_E, - LED_R, - LED_F, - LED_V, - LED_B, - LED_G, - LED_T, - LED_N, - LED_HH, - LED_Y, - LED_U, - LED_J, - LED_M, - LED_COMM, - LED_K, - LED_I, - LED_O, - LED_L, - LED_DOT, - LED_SLSH, - LED_SCLN, - LED_P, - LED_LSPC, - LED_RSPC -}; - -const uint8_t PROGMEM LED_HOMING[] = { - LED_A, - LED_S, - LED_D, - LED_F, - LED_J, - LED_K, - LED_L, - LED_SCLN -}; - -const uint8_t PROGMEM LED_MODS[] = { - LED_TAB, - LED_ESC, - LED_LSFT, - LED_LCTL, - LED_LGUI, - LED_LALT, - LED_RALT, - LED_RGUI, - LED_BKSP, - LED_ENT, - LED_RSFT, - LED_RCTL -}; - -const uint8_t PROGMEM LED_FN[] = { - LED_EMPTY, - LED_NUM, - LED_FUN, - LED_GREEK -}; - -const uint8_t PROGMEM LED_INDICATORS[] = { - LED_IND_LINUX, - LED_IND_APPLE, - LED_IND_WINDOWS, - LED_IND_QWERTY, - LED_IND_ALT, - LED_IND_AUDIO, - LED_IND_BLUETOOTH, - LED_IND_USB, - - LED_IND_BATTERY, - LED_IND_CAPSLOCK, - LED_IND_GUI, - LED_IND_FUN, - LED_IND_NUM, - LED_IND_PUNC, - LED_IND_EMOJI, - LED_IND_GREEK, -}; - -const uint8_t PROGMEM LED_TRACKPOINT[] = { - LED_TRACKPOINT1, - LED_TRACKPOINT2, - LED_TRACKPOINT3, -}; - -void led_turnoff_keys(void) { - for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), COLOR_BLACK); - } - for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), COLOR_BLACK); - } - for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), COLOR_BLACK); - } -} - -#ifdef RGBSPS_DEMO_ENABLE -void led_demo(void) { - rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); - rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); - rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); - rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); - rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); - rgbsps_set(LED_IND_USB, THEME_COLOR_USB); - rgbsps_set(LED_IND_CAPSLOCK, THEME_COLOR_CAPSLOCK); - rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); - rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); - rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); - rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); - rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); - rgbsps_send(); -} -#endif - -void led_reset(void) { - switch (glow_mode) { - case GLOW_NONE: - led_turnoff_keys(); - break; - case GLOW_MIN: - led_turnoff_keys(); - for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW1_HOME); - } - rgbsps_set(LED_F, THEME_COLOR_GLOW1_HOMING); - rgbsps_set(LED_J, THEME_COLOR_GLOW1_HOMING); - break; - case GLOW_FULL: - for(uint8_t i = 0; i < COUNT(LED_ALNUM); i++) { - rgbsps_set(pgm_read_byte(&LED_ALNUM[i]), THEME_COLOR_GLOW2_ALPHA); - } - for(uint8_t i = 0; i < COUNT(LED_MODS); i++) { - rgbsps_set(pgm_read_byte(&LED_MODS[i]), THEME_COLOR_GLOW2_MODS); - } - for(uint8_t i = 0; i < COUNT(LED_FN); i++) { - rgbsps_set(pgm_read_byte(&LED_FN[i]), THEME_COLOR_GLOW2_FN); - } - for(uint8_t i = 0; i < COUNT(LED_HOMING); i++) { - rgbsps_set(pgm_read_byte(&LED_HOMING[i]), THEME_COLOR_GLOW2_HOME); - } - rgbsps_set(LED_F, THEME_COLOR_GLOW2_HOMING); - rgbsps_set(LED_J, THEME_COLOR_GLOW2_HOMING); - break; - } -} - -void led_set_default_layer_indicator(void) { - uint8_t default_layer = get_highest_layer(default_layer_state); - if (default_layer == _QWERTY) { - rgbsps_set(LED_IND_QWERTY, THEME_COLOR_QWERTY); - rgbsps_set(LED_IND_ALT, COLOR_BLANK); - } else { - rgbsps_set(LED_IND_QWERTY, COLOR_BLANK); - rgbsps_set(LED_IND_ALT, THEME_COLOR_ALT); - } - rgbsps_send(); - return; -} - -void led_set_layer_indicator(void) { - static uint8_t oldlayer = 255; - - led_reset(); - - rgbsps_set(LED_IND_GUI, COLOR_BLANK); - rgbsps_set(LED_IND_FUN, COLOR_BLANK); - rgbsps_set(LED_IND_NUM, COLOR_BLANK); - rgbsps_set(LED_IND_PUNC, COLOR_BLANK); - rgbsps_set(LED_IND_GREEK, COLOR_BLANK); - rgbsps_set(LED_IND_EMOJI, COLOR_BLANK); - - uint8_t layer = get_highest_layer(layer_state); - if (oldlayer == layer) { - return; - } - - oldlayer = layer; - - if (layer <= _DEFAULT_LAYER_MAX) { - rgbsps_send(); - return; - } - - switch(layer) { - case _GUI: - rgbsps_set(LED_IND_GUI, THEME_COLOR_GUI); - break; - case _FUN: - rgbsps_set(LED_IND_FUN, THEME_COLOR_FUN); - break; - case _NUM: - rgbsps_set(LED_IND_NUM, THEME_COLOR_NUM); - break; - case _PUNC: - rgbsps_set(LED_IND_PUNC, THEME_COLOR_PUNC); - break; - case _GREEKL: - case _GREEKU: - rgbsps_set(LED_IND_GREEK, THEME_COLOR_GREEK); - break; - case _EMOJI: - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_EMOJI); - break; - default: - rgbsps_set(LED_IND_GUI, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_FUN, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_NUM, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_PUNC, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_GREEK, THEME_COLOR_OTHERLAYER); - rgbsps_set(LED_IND_EMOJI, THEME_COLOR_OTHERLAYER); - } - - rgbsps_send(); -} - -void led_set_unicode_input_mode(void) { - rgbsps_set(LED_IND_LINUX, COLOR_BLANK); - rgbsps_set(LED_IND_APPLE, COLOR_BLANK); - rgbsps_set(LED_IND_WINDOWS, COLOR_BLANK); - - switch (get_unicode_input_mode()) { - case UC_LNX: - rgbsps_set(LED_IND_LINUX, THEME_COLOR_LINUX); - break; - case UC_OSX: - rgbsps_set(LED_IND_APPLE, THEME_COLOR_APPLE); - break; - case UC_WIN: - case UC_WINC: - rgbsps_set(LED_IND_WINDOWS, THEME_COLOR_WINDOWS); - break; - } - rgbsps_send(); -} - -void led_set_output_ble(void) { - rgbsps_set(LED_IND_BLUETOOTH, THEME_COLOR_BLUETOOTH); - rgbsps_set(LED_IND_USB, COLOR_BLANK); - rgbsps_send(); -} - -void led_set_output_usb(void) { - rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); - rgbsps_set(LED_IND_USB, THEME_COLOR_USB); - rgbsps_send(); -} - -void led_set_output_none(void) { - rgbsps_set(LED_IND_BLUETOOTH, COLOR_BLANK); - rgbsps_set(LED_IND_USB, COLOR_BLANK); - rgbsps_send(); -} - -void led_init(void) { - // turn off all - rgbsps_turnoff(); - - // set trackpoint color - rgbsps_set(LED_TRACKPOINT1, THEME_COLOR_TP1); - rgbsps_set(LED_TRACKPOINT2, THEME_COLOR_TP2); - rgbsps_set(LED_TRACKPOINT3, THEME_COLOR_TP3); - - // unicode input mode - led_set_unicode_input_mode(); - - // layer indicator - led_set_layer_indicator(); - led_set_default_layer_indicator(); - - // clicky -#ifdef FAUXCLICKY_ENABLE - if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - } else { - rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); - } -#endif - - rgbsps_send(); -} - - -#endif // RGBSPS_ENABLE - -// keymaps - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - -/* Qwerty - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | D | F | G | H | J | K | L | ' |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | N | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Fun |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ -[_QWERTY] = LAYOUT( - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, - KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_QUOT, KC_ENT , - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, - KC_LCTL, KC_LALT, KC_LGUI, EMPTY, NUM, LSPACE, RSPACE, FUN, GREEK, KC_RGUI, C_RALT, KC_RCTL, - _______, _______, _______ -), - -/* Dvorak - * ,-----------------------------------------------------------------------------------. - * | Tab | ' | , | . | P | Y | F | G | C | R | L | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | O | E | U | I | D | H | T | N | S |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| / | Q | J | K | X | B | M | W | V | Z |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ -#ifdef LAYOUT_DVORAK -[_DVORAK] = LAYOUT( - _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, _______, - _______, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, _______, - _______, KC_SLSH, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Colemak - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | F | P | G | J | L | U | Y | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | R | S | T | D | H | N | E | I | O |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | K | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_COLEMAK -[_COLEMAK] = LAYOUT( - _______, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, _______, - _______, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, _______, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Norman - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | W | D | F | K | J | U | R | L | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | E | T | G | Y | N | I | O | H |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | C | V | B | P | M | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_NORMAN -[_NORMAN] = LAYOUT( - _______, KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_QUOT, _______, - _______, KC_A, KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H, _______, - _______, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Workman - * ,-----------------------------------------------------------------------------------. - * | Tab | Q | D | R | W | B | J | F | U | P | ; | Bksp | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | A | S | H | T | G | Y | N | E | O | I |Enter | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | Shift| Z | X | M | C | V | K | K | , | . | / |Shift | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | Alt | GUI | Punc | Num | Space | Func |Greek | GUI |AltGr | Ctrl | - * `-----------------------------------------------------------------------------------' - */ - -#ifdef LAYOUT_WORKMAN -[_WORKMAN] = LAYOUT( - _______, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_QUOT, _______, - _______, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, _______, - _______, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), -#endif - -/* Punc - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | ^ | & | * | ≤ | ≥ | ` | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | * | \ | - | = | / | ≠ | ( | ) | < | > | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | & | ^ | | | _ | + | ? | ± | [ | ] | { | } | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | : | | - * `-----------------------------------------------------------------------------------' - */ -[_PUNC] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, X(LTEQ), X(GTEQ), _______, - KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, X(NOTEQ),KC_LPRN, KC_RPRN, KC_LABK, KC_RABK, _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, X(PLMIN),KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COLN, _______, - _______, _______, _______ -), - -/* Num - * ,-----------------------------------------------------------------------------------. - * | ~ | ! | @ | # | $ | % | A | 7 | 8 | 9 | D | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | ` | * | \ | - | = | / | B | 4 | 5 | 6 | E | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | & | ^ | | | _ | + | ? | C | 1 | 2 | 3 | F | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | x | | | | | 0 | , | . | : | | - * `-----------------------------------------------------------------------------------' - */ -[_NUM] = LAYOUT( - KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, S(KC_A), KC_1, KC_2, KC_3, S(KC_D), _______, - KC_GRV, KC_ASTR, KC_BSLS, KC_MINS, KC_EQL, KC_SLSH, S(KC_B), KC_4, KC_5, KC_6, S(KC_E), _______, - KC_AMPR, KC_CIRC, KC_PIPE, KC_UNDS, KC_PLUS, KC_QUES, S(KC_C), KC_7, KC_8, KC_9, S(KC_F), _______, - _______, _______, KC_X, _______, _______, _______, _______, FUN0 , KC_COMM, KC_DOT, KC_COLN, _______, - _______, _______, _______ -), - -/* Func - * ,-----------------------------------------------------------------------------------. - * | | F1 | F2 | F3 | F4 | Ins | | PgUp | Up | PgDn | PgUp | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Caps | F5 | F6 | F7 | F8 |PrtSc | | Left | Down | Right| PgDn | | - * |------+------+------+------+------+------|------+------+------+------+------+------| - * | | F9 | F10 | F11 | F12 |Pause | | | Home | End | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_FUN] = LAYOUT( - XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_INS, XXXXXXX, KC_PGUP, KC_UP, KC_PGDN, KC_PGUP, KC_DEL, - KC_CAPS, KC_F5, KC_F6, KC_F7, KC_F8, KC_PSCR, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, - _______, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Uppercase Greek - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GREEKU] = LAYOUT( - _______, XXXXXXX, XXXXXXX,X(UEPSI), X(URHO), X(UTAU),X(UUPSI),X(UTHET),X(UIOTA),X(UOMIC), X(UPI), _______, - _______,X(UALPH),X(USIGM),X(UDELT), X(UPHI),X(UGAMM), X(UETA), X(UXI),X(UKAPP),X(ULAMB), KC_QUOT, _______, - _______,X(UZETA), X(UCHI), X(UPSI),X(UOMEG),X(UBETA), X(UNU), X(UMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Lowercase Greek - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GREEKL] = LAYOUT( - _______, XXXXXXX,X(FSIGM),X(LEPSI), X(LRHO), X(LTAU),X(LUPSI),X(LTHET),X(LIOTA),X(LOMIC), X(LPI), _______, - _______,X(LALPH),X(LSIGM),X(LDELT), X(LPHI),X(LGAMM), X(LETA), X(LXI),X(LKAPP),X(LLAMB), KC_QUOT, _______, - _______,X(LZETA), X(LCHI), X(LPSI),X(LOMEG),X(LBETA), X(LNU), X(LMU), KC_COMM, KC_DOT, KC_SLSH, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Empty - * ,-----------------------------------------------------------------------------------. - * | | | | | | | | | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_EMPTY] = LAYOUT( - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______ -), - -/* Emoji - * ,-----------------------------------------------------------------------------------. - * | 💕 | 😢 | 😩 | 😍 | 😏 | 😂 | ♻ | 😒 | 🎶 | 👌 | 😔 | 😌 | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | 👍 | 🙏 | 😁 | 😅 | 😳 | 😊 | ❤ | 👋 | 😘 | 🙌 | 😎 | 🙈 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | 👎 | 😴 | 👏 | 😭 | ✌ | 💔 | ☀ | 😊 | 😉 | 🌔 | 😕 | 🙉 | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | 💩 | 👀 | 💯 | | 💀 | 😈 | 😇 | 😱 | | 😋 | 😞 | 🙊 | - * `-----------------------------------------------------------------------------------' - */ -[_EMOJI] = LAYOUT( - X(HART2), X(CRY2),X(WEARY),X(EYERT),X(SMIRK), X(TJOY),X(RECYC),X(UNAMU),X(MUSIC),X(OKHND),X(PENSV), X(PHEW), - X(THMUP), X(PRAY),X(SMILE),X(SMIL2),X(FLUSH), X(GRIN),X(HEART), X(BYE), X(KISS),X(CELEB), X(COOL),X(NOEVS), - X(THMDN),X(SLEEP), X(CLAP), X(CRY), X(VIC),X(BHART), X(SUN),X(SMEYE), X(WINK), X(MOON),X(CONFU),X(NOEVH), - X(POO), X(EYES), X(HUNRD),_______, X(SKULL),X(HORNS), X(HALO), X(FEAR),_______,X(YUMMY),X(DISAP),X(NOEVK), - _______, _______, _______ -), - -/* GUI - * ,-----------------------------------------------------------------------------------. - * | | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | Esc | | Btab | Esc | Tab | | | Prev | | Next | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | Prev | Play | Next | | | | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_GUI] = LAYOUT( - XXXXXXX, G(KC_1), G(KC_2), G(KC_3), G(KC_4), G(KC_5), G(KC_6), G(KC_7), G(KC_8), G(KC_9), G(KC_0), XXXXXXX, - KC_ESC, XXXXXXX, S(KC_TAB),KC_ESC, KC_TAB, XXXXXXX, XXXXXXX, KC_WWWB, XXXXXXX, KC_WWWF, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, KC_SPC, KC_SPC, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, _______, _______ -), - -/* Sys - * ,-----------------------------------------------------------------------------------. - * | |Qwerty| Win | |Reset | | | USB | | | | | - * |------+------+------+------+------+-------------+------+------+------+------+------| - * | |Audio | |Dvorak| | Glow | | |WorkMn|Linux | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | |Colmak| | BLE |Norman|MacOS | | | | | - * |------+------+------+------+------+------+------+------+------+------+------+------| - * | | | | | | | | | | | | | - * `-----------------------------------------------------------------------------------' - */ -[_SYS] = LAYOUT( - DEBUG, QWERTY, WIN, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, OUT_USB, XXXXXXX, XXXXXXX, XXXXXXX, RGBDEMO, - XXXXXXX, FC_TOG, XXXXXXX, DVORAK, XXXXXXX, GLOW, XXXXXXX, XXXXXXX, WORKMAN, LINUX, XXXXXXX, XXXXXXX, - XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, XXXXXXX, OUT_BT, NORMAN, OSX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, - _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, - _______, _______, _______ -), - - -}; - -void persistent_default_layer_set(uint16_t default_layer) { - eeconfig_update_default_layer(default_layer); - default_layer_set(default_layer); -#ifdef RGBSPS_ENABLE - led_set_default_layer_indicator(); -#endif -} - -#ifdef DOUBLESPACE_LAYER_ENABLE -void process_doublespace(bool pressed, bool *isactive, bool *otheractive, bool *isemitted) { - if (pressed) { - *isactive = true; - if (*otheractive) { - layer_on(_SPACE); - register_code(KC_LALT); // sends alt and enter layer - space_layer_entered = true; - } - } else { - *isactive = false; - if (space_layer_entered) { - unregister_code(KC_LALT); // release alt and exit layer - layer_off(_SPACE); - if (!*otheractive) { - space_layer_entered = false; - } - } else { - if (!*isemitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - *isemitted = false; - } - } -} -#endif - -layer_state_t layer_state_set_kb(layer_state_t state) -{ - // turn on punc layer if both fun & num are on - if ((state & ((1UL<<_NUM) | (1UL<<_FUN))) == ((1UL<<_NUM) | (1UL<<_FUN))) { - state |= (1UL<<_PUNC); - } else { - state &= ~(1UL<<_PUNC); - } - - // turn on emoji layer if empty and greek layer are on - if ( - (state & ((1UL<<_EMPTY) | (1UL<<_GREEKU))) == ((1UL<<_EMPTY) | (1UL<<_GREEKU)) - || (state & ((1UL<<_EMPTY) | (1UL<<_GREEKL))) == ((1UL<<_EMPTY) | (1UL<<_GREEKL)) - ) { - state |= (1UL<<_EMOJI); - } else { - state &= ~(1UL<<_EMOJI); - } - return state; -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - static bool lshift = false; - static bool rshift = false; - static uint8_t layer = 0; - - lshift = keyboard_report->mods & MOD_BIT(KC_LSFT); - rshift = keyboard_report->mods & MOD_BIT(KC_RSFT); - layer = get_highest_layer(layer_state); - -#ifdef DOUBLESPACE_LAYER_ENABLE - // double-space: send space immediately if any other key depressed before space is released - if ((lspace_active ^ rspace_active) - && keycode != LSPACE - && keycode != RSPACE - && record->event.pressed) - { - if (lspace_active) { - if (!lspace_emitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - lspace_emitted = true; - } - if (rspace_active) { - if (!rspace_emitted) { - register_code(KC_SPC); - unregister_code(KC_SPC); - } - rspace_emitted = true; - } - } - - if (layer == _SPACE && keycode != S(KC_TAB) && keycode != KC_TAB && keycode != KC_ESC && keycode != XXXXXXX) { - if (record->event.pressed) { - unregister_code(KC_LALT); - } else { - register_code(KC_LALT); - } - } -#endif - - switch (keycode) { - -#ifdef DOUBLESPACE_LAYER_ENABLE - // double-space enter space layer - case LSPACE: - process_doublespace(record->event.pressed, &lspace_active, &rspace_active, &lspace_emitted); - return false; - break; - case RSPACE: - process_doublespace(record->event.pressed, &rspace_active, &lspace_active, &rspace_emitted); - return false; - break; -#endif - - // handle greek layer shift - case KC_LSFT: - case KC_RSFT: - ; - if (layer == _GREEKU || layer == _GREEKL) { - if (record->event.pressed) { - layer_on(_GREEKU); - layer_off(_GREEKL); - } else { - if (lshift ^ rshift) { // if only one shift was pressed - layer_on(_GREEKL); - layer_off(_GREEKU); - } - } - } - return true; - break; - - // press both ctrls to activate SYS layer - case KC_LCTL: - case KC_RCTL: - ; - bool lctrl = keyboard_report->mods & MOD_BIT(KC_LCTL); - bool rctrl = keyboard_report->mods & MOD_BIT(KC_RCTL); - if (record->event.pressed) { - if (lctrl ^ rctrl) { // if only one ctrl was pressed - layer_on(_SYS); - } - } else { - layer_off(_SYS); - } - return true; - break; - - // QWERTZ style comma and dot: semicolon and colon when shifted - case KC_COMM: - if (record->event.pressed) { - if (lshift || rshift) { - if (lshift) unregister_code(KC_LSFT); - if (rshift) unregister_code(KC_RSFT); - register_code(KC_SCLN); - unregister_code(KC_SCLN); - if (lshift) register_code(KC_LSFT); - if (rshift) register_code(KC_RSFT); - } else { - register_code(KC_COMM); - unregister_code(KC_COMM); - } - } - return false; - break; - case KC_DOT: - if (record->event.pressed) { - if ((keyboard_report->mods & MOD_BIT(KC_LSFT)) || (keyboard_report->mods & MOD_BIT(KC_RSFT))) { - register_code(KC_SCLN); - unregister_code(KC_SCLN); - } else { - register_code(KC_DOT); - unregister_code(KC_DOT); - } - } - return false; - break; - - // layout switchers - case QWERTY: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_QWERTY); - } - return false; - break; -#ifdef LAYOUT_DVORAK - case DVORAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_DVORAK); - } - return false; - break; -#endif -#ifdef LAYOUT_COLEMAK - case COLEMAK: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_COLEMAK); - } - return false; - break; -#endif -#ifdef LAYOUT_WORKMAN - case WORKMAN: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_WORKMAN); - } - return false; - break; -#endif -#ifdef LAYOUT_NORMAN - case NORMAN: - if (record->event.pressed) { - persistent_default_layer_set(1UL<<_NORMAN); - } - return false; - break; -#endif - - // only process Fnumber on key release, and only when layer switcher is still pressed. - // this is to avoid accidental presses on potentially destructive keys - case KC_F1 ... KC_F12: - case KC_PAUS: - case KC_PSCR: - case KC_INS: - if (!record->event.pressed && layer == _FUN) { // key released and still in FUN layer - register_code(keycode); - unregister_code(keycode); - } - return false; - break; - - // layer switcher - // - case GREEK: - if (record->event.pressed) { - if (lshift || rshift) { - layer_on(_GREEKU); - layer_off(_GREEKL); - } else { - layer_on(_GREEKL); - layer_off(_GREEKU); - } - } else { - layer_off(_GREEKU); - layer_off(_GREEKL); - } - return false; - break; - - // OS switchers - case LINUX: - set_unicode_input_mode(UC_LNX); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - case WIN: - set_unicode_input_mode(UC_WINC); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - case OSX: - set_unicode_input_mode(UC_OSX); -#ifdef RGBSPS_ENABLE - led_set_unicode_input_mode(); -#endif - return false; - break; - - // glow mode changer -#ifdef RGBSPS_ENABLE - case GLOW: - if (record->event.pressed) { - glow_mode++; - if (glow_mode > GLOW_FULL) { - glow_mode = GLOW_NONE; - } - led_reset(); - rgbsps_send(); - } - return false; - break; -#endif - - // faux clicky indicator -#ifdef FAUXCLICKY_ENABLE - case FC_TOG: -#ifdef RGBSPS_ENABLE - if (fauxclicky_enabled) { - rgbsps_set(LED_IND_AUDIO, THEME_COLOR_AUDIO); - } else { - rgbsps_set(LED_IND_AUDIO, COLOR_BLANK); - } - rgbsps_send(); -#endif - return true; - break; -#endif - -#ifdef RGBSPS_DEMO_ENABLE - case RGBDEMO: - led_demo(); - return false; - break; -#endif - } - return true; -} - -void set_output_user(uint8_t output) { -#ifdef BLUETOOTH_BLUEFRUIT_LE - switch(output) { - case OUTPUT_USB: - led_set_output_usb(); - break; - case OUTPUT_BLUETOOTH: - led_set_output_ble(); - break; - default: - led_set_output_none(); - } -#endif -} - -void matrix_init_user() { - wait_ms(500); // give time for usb to initialize - - set_unicode_input_mode(UC_LNX); - -#ifdef RGBSPS_ENABLE - led_init(); -#endif - - // auto detect output on init -#ifdef BLUETOOTH_BLUEFRUIT_LE - uint8_t output = auto_detect_output(); - if (output == OUTPUT_USB) { - set_output(OUTPUT_USB); - } else { - set_output(OUTPUT_BLUETOOTH); - } -#endif -} - -void turn_off_capslock() { - if (capslock) { - register_code(KC_CAPS); - unregister_code(KC_CAPS); - } -} - -#ifdef RGBSPS_ENABLE - void matrix_scan_user(void) { - led_set_layer_indicator(); - } - - void battery_poll(uint8_t level) { - rgbsps_sethsv(LED_IND_BATTERY, level * 120/255, 255, 15); - rgbsps_send(); - } - - void led_set_user(uint8_t usb_led) { - bool new_capslock = usb_led & (1<. -*/ -#include -#include -#if defined(__AVR__) -#include -#endif -#include "wait.h" -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" -#include "timer.h" - - -/* Set 0 if debouncing isn't needed */ - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif - -#if (DEBOUNCE > 0) - static uint16_t debouncing_time; - static bool debouncing = false; -#endif - -#if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) -#endif - -#ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; -#endif - -static const uint8_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -static const uint8_t tp_pins[3] = TRACKPOINT_PINS; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static void init_cols(void); -static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row); -static void unselect_rows(void); -static void select_row(uint8_t row); -static void unselect_row(uint8_t row); - - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); -} - -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); -} - -__attribute__ ((weak)) -void matrix_init_user(void) { -} - -__attribute__ ((weak)) -void matrix_scan_user(void) { -} - -inline -uint8_t matrix_rows(void) { - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) { - return MATRIX_COLS; -} - -void matrix_init(void) { - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - matrix_init_quantum(); -} - -uint8_t matrix_scan(void) -{ - // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { -# if (DEBOUNCE > 0) - bool matrix_changed = read_cols_on_row(matrix_debouncing, current_row); - - if (matrix_changed) { - debouncing = true; - debouncing_time = timer_read(); - } - -# else - read_cols_on_row(matrix, current_row); -# endif - - } - -# if (DEBOUNCE > 0) - if (debouncing && (timer_elapsed(debouncing_time) > DEBOUNCE)) { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - debouncing = false; - } -# endif - - matrix_scan_quantum(); - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) - -{ - return (matrix[row] & ((matrix_row_t)1<> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } - - // rows - DDRF |= ROW_MASK; - PORTF &= ~ROW_MASK; - - // trackpoint - for(uint8_t x = 0; x < 3; x++) { - uint8_t pin = tp_pins[x]; - _SFR_IO8((pin >> 4) + 1) &= ~_BV(pin & 0xF); // IN - _SFR_IO8((pin >> 4) + 2) |= _BV(pin & 0xF); // HI - } -} - -static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) - { - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[current_row]; - - // Clear data in matrix row - current_matrix[current_row] = 0; - - // special case for trackpoint - if (current_row == 8) { - for(uint8_t tp_index = 0; tp_index < 3; tp_index++) { - - // Select the TP pin to read (active low) - uint8_t pin = tp_pins[tp_index]; - uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - - // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << tp_index); - } - return (last_row_value != current_matrix[current_row]); - } - - // Select row and wait for row selecton to stabilize - select_row(current_row); - _delay_us(5); // without this wait it won't read stable value. - // wait_us(50); - - // For each col... - for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { - - // Select the col pin to read (active low) - uint8_t pin = col_pins[col_index]; - uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - - // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); - } - - // Unselect row - unselect_row(current_row); - - return (last_row_value != current_matrix[current_row]); -} - -static void select_row(uint8_t row) -{ - PORTF = row_bit[row] | (PORTF & ~ROW_MASK); -} - -static void unselect_row(uint8_t row) -{ -} - -static void unselect_rows(void) -{ -} diff --git a/keyboards/handwired/promethium/promethium.c b/keyboards/handwired/promethium/promethium.c deleted file mode 100644 index 0df6c28e9b..0000000000 --- a/keyboards/handwired/promethium/promethium.c +++ /dev/null @@ -1,35 +0,0 @@ -#include "promethium.h" -#include "analog.h" -#include "timer.h" -#include "matrix.h" -#include "musical_notes.h" -#include "bluefruit_le.h" - -float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_A4, 0.0625); -float fauxclicky_released_note[2] = MUSICAL_NOTE(_A4, 0.0625); -float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C6, 0.25); - -// cubic fit {3.3, 0}, {3.5, 2.9}, {3.6, 5}, {3.7, 8.6}, {3.8, 36}, {3.9, 62}, {4.0, 73}, {4.05, 83}, {4.1, 89}, {4.15, 94}, {4.2, 100} - -uint8_t battery_level(void) { - float voltage = bluefruit_le_read_battery_voltage() * 2 * 3.3 / 1024; - if (voltage < MIN_VOLTAGE) return 0; - if (voltage > MAX_VOLTAGE) return 255; - return (voltage - MIN_VOLTAGE) / (MAX_VOLTAGE - MIN_VOLTAGE) * 255; -} - -__attribute__ ((weak)) -void battery_poll(uint8_t level) { -} - -void matrix_scan_kb(void) { - static uint16_t counter = BATTERY_POLL; - counter++; - - if (counter > BATTERY_POLL) { - counter = 0; - battery_poll(battery_level()); - } - - matrix_scan_user(); -} diff --git a/keyboards/handwired/promethium/promethium.h b/keyboards/handwired/promethium/promethium.h deleted file mode 100644 index e40d67e9fd..0000000000 --- a/keyboards/handwired/promethium/promethium.h +++ /dev/null @@ -1,27 +0,0 @@ -#pragma once - -#include "quantum.h" - -void battery_poll(uint8_t level); -void led_set_kb(uint8_t usb_led); -void led_set_user(uint8_t usb_led); - -#define XXX KC_NO - -#define LAYOUT( \ - k00, k01, k02, k03, k04, k05, k40, k41, k42, k43, k44, k45, \ - k10, k11, k12, k13, k14, k15, k50, k51, k52, k53, k54, k55, \ - k20, k21, k22, k23, k24, k25, k60, k61, k62, k63, k64, k65, \ - k30, k31, k32, k33, k34, k35, k70, k71, k72, k73, k74, k75, \ - tp1, tp2, tp3 \ -) { \ - { k00, k01, k02, k03, k04, k05 }, \ - { k10, k11, k12, k13, k14, k15 }, \ - { k20, k21, k22, k23, k24, k25 }, \ - { k30, k31, k32, k33, k34, k35 }, \ - { k40, k41, k42, k43, k44, k45 }, \ - { k50, k51, k52, k53, k54, k55 }, \ - { k60, k61, k62, k63, k64, k65 }, \ - { k70, k71, k72, k73, k74, k75 }, \ - { tp1, tp2, tp3, XXX, XXX, XXX } \ -} diff --git a/keyboards/handwired/promethium/readme.md b/keyboards/handwired/promethium/readme.md deleted file mode 100644 index e63d2f1add..0000000000 --- a/keyboards/handwired/promethium/readme.md +++ /dev/null @@ -1,13 +0,0 @@ -Promethium Keyboard Firmware -============================ -A handwired Planck based keyboard using the Adafruit Feather 32u4 Bluefruit LE controller. - -Features: - -* Single piece split form factor -* Columnar stagger -* Trackpoint -* Bluetooth LE *TBD* -* Battery -* Per switch RGB LED -* Proximity sensor for energy conservation *TBD* \ No newline at end of file diff --git a/keyboards/handwired/promethium/rgbsps.c b/keyboards/handwired/promethium/rgbsps.c deleted file mode 100644 index f439876911..0000000000 --- a/keyboards/handwired/promethium/rgbsps.c +++ /dev/null @@ -1,73 +0,0 @@ -#include "ws2812.h" -#include "rgbsps.h" - -cRGB led[RGBSPS_NUM]; - -void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b) { - led[index].r = r; - led[index].g = g; - led[index].b = b; -} - -void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b) { - for (uint16_t i = 0; i < RGBSPS_NUM; i++) { - rgbsps_set(i, r, g, b); - } -} - -void rgbsps_turnoff(void) { - rgbsps_setall(0, 0, 0); -} - -void rgbsps_send(void) { - ws2812_setleds(led, RGBSPS_NUM); -} - -void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val) { - uint8_t r = 0, g = 0, b = 0, base, color; - - if (sat == 0) { // Acromatic color (gray). Hue doesn't mind. - r = val; - g = val; - b = val; - } else { - base = ((255 - sat) * val) >> 8; - color = (val - base) * (hue % 60) / 60; - - switch (hue / 60) { - case 0: - r = val; - g = base + color; - b = base; - break; - case 1: - r = val - color; - g = val; - b = base; - break; - case 2: - r = base; - g = val; - b = base + color; - break; - case 3: - r = base; - g = val - color; - b = val; - break; - case 4: - r = base + color; - g = base; - b = val; - break; - case 5: - r = val; - g = base; - b = val - color; - break; - } - } - - rgbsps_set(index, r, g, b); -} - diff --git a/keyboards/handwired/promethium/rgbsps.h b/keyboards/handwired/promethium/rgbsps.h deleted file mode 100644 index 72612a7a82..0000000000 --- a/keyboards/handwired/promethium/rgbsps.h +++ /dev/null @@ -1,5 +0,0 @@ -void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b); -void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b); -void rgbsps_turnoff(void); -void rgbsps_send(void); -void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); \ No newline at end of file diff --git a/keyboards/handwired/promethium/rules.mk b/keyboards/handwired/promethium/rules.mk deleted file mode 100644 index 383800ee01..0000000000 --- a/keyboards/handwired/promethium/rules.mk +++ /dev/null @@ -1,33 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Processor frequency -F_CPU = 8000000 - -# Bootloader selection -BOOTLOADER = caterina - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = no # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -AUDIO_ENABLE = no # Audio output -RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. -PS2_MOUSE_ENABLE = yes -PS2_USE_INT = yes -CUSTOM_MATRIX = yes -BLUETOOTH_ENABLE = yes -BLUETOOTH_DRIVER = BluefruitLE - -SRC += ws2812.c -SRC += rgbsps.c -SRC += analog.c -SRC += matrix.c - -LTO_ENABLE = yes -- cgit v1.2.3 [cgit] Unable to lock slot /tmp/cgit/0c200000.lock: No such file or directory (2)