From 31e4583f4a171823cfa639cc6a9795e892c0455f Mon Sep 17 00:00:00 2001 From: Yatara <43754086+yatara-cc@users.noreply.github.com> Date: Thu, 30 Jan 2020 23:37:23 +0100 Subject: [PATCH] [Keyboard] Add support for Drink Me (#8039) * Add initial configuration and keymaps for Yatara Drink Me. * Apply suggestions from code review * Apply suggestions from code review * Add transparent layers in VIA layout so there are four layers in total. Amend closing bracket indentation in keymap.c files. --- keyboards/yatara/drink_me/config.h | 37 ++++++++++ keyboards/yatara/drink_me/drink_me.c | 17 +++++ keyboards/yatara/drink_me/drink_me.h | 25 +++++++ keyboards/yatara/drink_me/info.json | 34 ++++++++++ .../drink_me/keymaps/caterpillar/keymap.c | 10 +++ .../drink_me/keymaps/caterpillar/readme.md | 9 +++ .../drink_me/keymaps/cheshire_cat/keymap.c | 10 +++ .../drink_me/keymaps/cheshire_cat/readme.md | 13 ++++ .../yatara/drink_me/keymaps/default/keymap.c | 10 +++ .../yatara/drink_me/keymaps/default/readme.md | 11 +++ .../yatara/drink_me/keymaps/dormouse/keymap.c | 10 +++ .../drink_me/keymaps/dormouse/readme.md | 11 +++ .../yatara/drink_me/keymaps/dormouse/rules.mk | 1 + .../yatara/drink_me/keymaps/queen/config.h | 1 + .../yatara/drink_me/keymaps/queen/keymap.c | 67 +++++++++++++++++++ .../yatara/drink_me/keymaps/queen/readme.md | 20 ++++++ .../yatara/drink_me/keymaps/queen/rules.mk | 2 + .../yatara/drink_me/keymaps/via/keymap.c | 28 ++++++++ .../yatara/drink_me/keymaps/via/readme.md | 7 ++ .../yatara/drink_me/keymaps/via/rules.mk | 2 + keyboards/yatara/drink_me/readme.md | 17 +++++ keyboards/yatara/drink_me/rules.mk | 32 +++++++++ 22 files changed, 374 insertions(+) create mode 100644 keyboards/yatara/drink_me/config.h create mode 100644 keyboards/yatara/drink_me/drink_me.c create mode 100644 keyboards/yatara/drink_me/drink_me.h create mode 100644 keyboards/yatara/drink_me/info.json create mode 100644 keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/caterpillar/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/default/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/default/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/dormouse/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/dormouse/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/dormouse/rules.mk create mode 100644 keyboards/yatara/drink_me/keymaps/queen/config.h create mode 100644 keyboards/yatara/drink_me/keymaps/queen/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/queen/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/queen/rules.mk create mode 100644 keyboards/yatara/drink_me/keymaps/via/keymap.c create mode 100644 keyboards/yatara/drink_me/keymaps/via/readme.md create mode 100644 keyboards/yatara/drink_me/keymaps/via/rules.mk create mode 100644 keyboards/yatara/drink_me/readme.md create mode 100644 keyboards/yatara/drink_me/rules.mk diff --git a/keyboards/yatara/drink_me/config.h b/keyboards/yatara/drink_me/config.h new file mode 100644 index 0000000000..f2ab371f85 --- /dev/null +++ b/keyboards/yatara/drink_me/config.h @@ -0,0 +1,37 @@ +/* Copyright 2020 Yatara + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xFEED +#define PRODUCT_ID 0x1470 +#define DEVICE_VER 0x0001 +#define MANUFACTURER Yatara +#define PRODUCT Drink Me +#define DESCRIPTION 4% Ergo Macropad + +/* Key matrix size */ +#define MATRIX_ROWS 1 +#define MATRIX_COLS 4 + +/* Pinout */ +#define DIRECT_PINS { \ + {B4, B5, B6, B7} \ +} +#define UNUSED_PINS diff --git a/keyboards/yatara/drink_me/drink_me.c b/keyboards/yatara/drink_me/drink_me.c new file mode 100644 index 0000000000..d5cac311ae --- /dev/null +++ b/keyboards/yatara/drink_me/drink_me.c @@ -0,0 +1,17 @@ +/* Copyright 2020 Yatara + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "drink_me.h" diff --git a/keyboards/yatara/drink_me/drink_me.h b/keyboards/yatara/drink_me/drink_me.h new file mode 100644 index 0000000000..9ed6dbf2ea --- /dev/null +++ b/keyboards/yatara/drink_me/drink_me.h @@ -0,0 +1,25 @@ +/* Copyright 2020 Yatara + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#include "quantum.h" + +#define LAYOUT( \ + K00, K01, K02, K03 \ +) { \ + { K00, K01, K02, K03 } \ +} diff --git a/keyboards/yatara/drink_me/info.json b/keyboards/yatara/drink_me/info.json new file mode 100644 index 0000000000..0e021a7065 --- /dev/null +++ b/keyboards/yatara/drink_me/info.json @@ -0,0 +1,34 @@ +{ + "keyboard_name": "Drink Me", + "url": "https://github.com/yatara-cc", + "maintainer": "yatara-cc", + "width": 4, + "height": 1, + "layouts": { + "LAYOUT": { + "key_count": 4, + "layout": [ + { + "label": "K0", + "x": 0, + "y": 0 + }, + { + "label": "K1", + "x": 1, + "y": 0 + }, + { + "label": "K2", + "x": 2, + "y": 0 + }, + { + "label": "K3", + "x": 3, + "y": 0 + } + ] + } + } +} diff --git a/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c b/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c new file mode 100644 index 0000000000..f7bfdf1df5 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/caterpillar/keymap.c @@ -0,0 +1,10 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LSFT(KC_O), + LSFT(KC_R), + LSFT(KC_U), + LSFT(KC_SLSH) + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md b/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md new file mode 100644 index 0000000000..d04a30f238 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/caterpillar/readme.md @@ -0,0 +1,9 @@ +# Drink Me - Caterpillar layout + +> ‘Who are you?’ said the Caterpillar. + +![Drink Me - Default layout](https://i.imgur.com/BHWNATB.png) + +``` +O, R, U, ? +``` diff --git a/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c b/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c new file mode 100644 index 0000000000..528c1e408e --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/cheshire_cat/keymap.c @@ -0,0 +1,10 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_LEFT, + KC_DOWN, + KC_UP, + KC_RIGHT + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md b/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md new file mode 100644 index 0000000000..1dd0d658a3 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/cheshire_cat/readme.md @@ -0,0 +1,13 @@ +# Drink Me - Cheshire Cat layout + +> ‘Would you tell me, please, which way I ought to go from here?’ +> +> ‘That depends a good deal on where you want to get to,’ said the Cat. + +Cursor keys in VI layout. + +![Drink Me - Default layout](https://i.imgur.com/E4cScrK.png) + +``` +Left, Down, Up, Right +``` diff --git a/keyboards/yatara/drink_me/keymaps/default/keymap.c b/keyboards/yatara/drink_me/keymaps/default/keymap.c new file mode 100644 index 0000000000..7864fd0c1a --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/default/keymap.c @@ -0,0 +1,10 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + LCTL(KC_Z), + LCTL(KC_X), + LCTL(KC_C), + LCTL(KC_V) + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/default/readme.md b/keyboards/yatara/drink_me/keymaps/default/readme.md new file mode 100644 index 0000000000..b4bf94831d --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/default/readme.md @@ -0,0 +1,11 @@ +# Drink Me - Default layout + +> It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes + +Common shortcut keys. + +![Drink Me - Default layout](https://i.imgur.com/JLEEhHk.png) + +``` +Undo, Cut, Copy, Paste +``` diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c b/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c new file mode 100644 index 0000000000..e2d29a026a --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/dormouse/keymap.c @@ -0,0 +1,10 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_SLEP, + KC_MUTE, + KC_VOLD, + KC_VOLU + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/readme.md b/keyboards/yatara/drink_me/keymaps/dormouse/readme.md new file mode 100644 index 0000000000..1a8c854d44 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/dormouse/readme.md @@ -0,0 +1,11 @@ +# Drink Me - Dormouse layout + +> The Dormouse slowly opened his eyes. ‘I wasn’t asleep,’ he said in a hoarse, feeble voice: ‘I heard every word you fellows were saying.’ + +Sleep and volume control. + +![Drink Me - Default layout](https://i.imgur.com/VQXH512.png) + +``` +Sleep, Mute, Volume down, Volume up +``` diff --git a/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk b/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk new file mode 100644 index 0000000000..fcfd2225bc --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/dormouse/rules.mk @@ -0,0 +1 @@ +EXTRAKEY_ENABLE = yes diff --git a/keyboards/yatara/drink_me/keymaps/queen/config.h b/keyboards/yatara/drink_me/keymaps/queen/config.h new file mode 100644 index 0000000000..037c4737f6 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/queen/config.h @@ -0,0 +1 @@ +#define UNICODE_SELECTED_MODES UC_LNX, UC_OSX, UC_WIN, UC_WINC diff --git a/keyboards/yatara/drink_me/keymaps/queen/keymap.c b/keyboards/yatara/drink_me/keymaps/queen/keymap.c new file mode 100644 index 0000000000..ee1804d64a --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/queen/keymap.c @@ -0,0 +1,67 @@ +#include QMK_KEYBOARD_H + + +enum td_keys { + TD_K0, + TD_K1, + TD_K2, + TD_K3 +}; + + +void td_spade_lnx (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + send_unicode_hex_string("2660"); + } else { + set_unicode_input_mode(UC_LNX); + } + reset_tap_dance(state); +} + + +void td_diamond_osx (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + send_unicode_hex_string("2666"); + } else { + set_unicode_input_mode(UC_OSX); + } + reset_tap_dance(state); +} + + +void td_club_win (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + send_unicode_hex_string("2663"); + } else { + set_unicode_input_mode(UC_WIN); + } + reset_tap_dance(state); +} + + +void td_heart_winc (qk_tap_dance_state_t *state, void *user_data) { + if (state->count == 1) { + send_unicode_hex_string("2665"); + } else { + set_unicode_input_mode(UC_WINC); + } + reset_tap_dance(state); +} + + +qk_tap_dance_action_t tap_dance_actions[] = { + [TD_K0] = ACTION_TAP_DANCE_FN(td_spade_lnx), + [TD_K1] = ACTION_TAP_DANCE_FN(td_diamond_osx), + [TD_K2] = ACTION_TAP_DANCE_FN(td_club_win), + [TD_K3] = ACTION_TAP_DANCE_FN(td_heart_winc) +}; + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + TD(TD_K0), + TD(TD_K1), + TD(TD_K2), + TD(TD_K3) + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/queen/readme.md b/keyboards/yatara/drink_me/keymaps/queen/readme.md new file mode 100644 index 0000000000..cd89b7b0cb --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/queen/readme.md @@ -0,0 +1,20 @@ +# Drink Me - Queen layout + +> ‘Off with her head!’ the Queen shouted at the top of her voice. Nobody moved. +> +> ‘Who cares for you?’ said Alice, (she had grown to her full size by this time.) ‘You’re nothing but a pack of cards!’ + +Single tap for unicode symbols for playing card suits: + +![Drink Me - Queen layout single tap](https://i.imgur.com/xwHicLJ.png) + +``` +Spade, Diamond, Club, Heart +``` + +Double tap to change operating system unicode input method: + +![Drink Me - Queen layout double tap](https://i.imgur.com/fBbzq55.png) +``` +Linux, OSX, Windows, Wincompose +``` diff --git a/keyboards/yatara/drink_me/keymaps/queen/rules.mk b/keyboards/yatara/drink_me/keymaps/queen/rules.mk new file mode 100644 index 0000000000..705db8e333 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/queen/rules.mk @@ -0,0 +1,2 @@ +UNICODE_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/keyboards/yatara/drink_me/keymaps/via/keymap.c b/keyboards/yatara/drink_me/keymaps/via/keymap.c new file mode 100644 index 0000000000..441103222c --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/via/keymap.c @@ -0,0 +1,28 @@ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_0, + KC_1, + KC_2, + KC_3 + ), + [1] = LAYOUT( + KC_TRNS, + KC_TRNS, + KC_TRNS, + KC_TRNS + ), + [2] = LAYOUT( + KC_TRNS, + KC_TRNS, + KC_TRNS, + KC_TRNS + ), + [3] = LAYOUT( + KC_TRNS, + KC_TRNS, + KC_TRNS, + KC_TRNS + ) +}; diff --git a/keyboards/yatara/drink_me/keymaps/via/readme.md b/keyboards/yatara/drink_me/keymaps/via/readme.md new file mode 100644 index 0000000000..b77355f9fc --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/via/readme.md @@ -0,0 +1,7 @@ +# Drink Me - VIA layout + +> ‘But what am I to do?’ said Alice. +> +> ‘Anything you like,’ said the Footman, and began whistling. + +Flash with this layout to use [VIA](https://caniusevia.com/) for customising layout. diff --git a/keyboards/yatara/drink_me/keymaps/via/rules.mk b/keyboards/yatara/drink_me/keymaps/via/rules.mk new file mode 100644 index 0000000000..830d3be902 --- /dev/null +++ b/keyboards/yatara/drink_me/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +EXTRAKEY_ENABLE = yes +VIA_ENABLE = yes diff --git a/keyboards/yatara/drink_me/readme.md b/keyboards/yatara/drink_me/readme.md new file mode 100644 index 0000000000..215f812f10 --- /dev/null +++ b/keyboards/yatara/drink_me/readme.md @@ -0,0 +1,17 @@ +# Drink Me + +![Drink Me](https://i.imgur.com/iz56Er0.jpg) + +A 4% ergo macropad. + +* Keyboard Maintainer: [Yatara](https://github.com/yatara-cc) +* Hardware Supported: Drink Me PCB (ATmega32U2) +* Hardware Availability: [Interest Check on Reddit](https://www.reddit.com/r/MechanicalKeyboards/comments/evu429/ic_drink_me_4_ergo_interest_check_giveaway/) + +Make example for this keyboard (after setting up your build environment): + +``` +make yatara/drink_me:default +``` + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/yatara/drink_me/rules.mk b/keyboards/yatara/drink_me/rules.mk new file mode 100644 index 0000000000..f0edf97b88 --- /dev/null +++ b/keyboards/yatara/drink_me/rules.mk @@ -0,0 +1,32 @@ +# MCU name +MCU = atmega32u2 + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# ATmega32A bootloadHID +# ATmega328P USBasp +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = no # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs