Organize KPrepublic, K.T.E.C, xiudi boards into directories (#12159)
* reset; redoing my steps; and recommit * include xd002/.noci
This commit is contained in:
0
keyboards/xiudi/xd002/.noci
Normal file
0
keyboards/xiudi/xd002/.noci
Normal file
60
keyboards/xiudi/xd002/config.h
Normal file
60
keyboards/xiudi/xd002/config.h
Normal file
@@ -0,0 +1,60 @@
|
||||
/* Copyright 2020 zvecr<git@zvecr.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7844 // "XD"
|
||||
#define PRODUCT_ID 0x0202
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER XIUDI
|
||||
#define PRODUCT XD002
|
||||
|
||||
/* matrix size */
|
||||
#define MATRIX_ROWS 1
|
||||
#define MATRIX_COLS 2
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* On this board we have direct connection: no diodes.
|
||||
*/
|
||||
#define DIRECT_PINS {{ B0, B1 }}
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
#define RGBLED_NUM 2
|
||||
#define RGB_DI_PIN B2
|
||||
|
||||
// Save as much space as we can...
|
||||
#define LAYER_STATE_8BIT
|
||||
#define NO_ACTION_LAYER
|
||||
#define NO_ACTION_TAPPING
|
||||
#define NO_ACTION_ONESHOT
|
||||
#define NO_RESET
|
||||
|
||||
// usbconfig.h overrides
|
||||
#define USB_CFG_IOPORTNAME B
|
||||
#define USB_CFG_DMINUS_BIT 3
|
||||
#define USB_CFG_DPLUS_BIT 4
|
||||
#define USB_COUNT_SOF 0
|
||||
#define USB_INTR_CFG PCMSK
|
||||
#define USB_INTR_CFG_SET (1<<USB_CFG_DPLUS_BIT)
|
||||
#define USB_INTR_ENABLE_BIT PCIE
|
||||
#define USB_INTR_PENDING_BIT PCIF
|
||||
#define USB_INTR_VECTOR SIG_PIN_CHANGE
|
||||
16
keyboards/xiudi/xd002/info.json
Normal file
16
keyboards/xiudi/xd002/info.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"keyboard_name": "xd002",
|
||||
"url": "https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case",
|
||||
"maintainer": "zvecr",
|
||||
"width": 2,
|
||||
"height": 1,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 2,
|
||||
"layout": [
|
||||
{"x":0, "y":0},
|
||||
{"x":1, "y":0}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
7
keyboards/xiudi/xd002/keymaps/default/keymap.c
Normal file
7
keyboards/xiudi/xd002/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_A, KC_B
|
||||
)
|
||||
};
|
||||
22
keyboards/xiudi/xd002/keymaps/multilayer_rgb/config.h
Normal file
22
keyboards/xiudi/xd002/keymaps/multilayer_rgb/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 elmo-space<mail@elmo.space>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/*enable layers*/
|
||||
#undef NO_ACTION_LAYER
|
||||
|
||||
/* increase tap duration (spotify doesn't like very short taps)*/
|
||||
#define TAP_CODE_DELAY 100
|
||||
173
keyboards/xiudi/xd002/keymaps/multilayer_rgb/keymap.c
Normal file
173
keyboards/xiudi/xd002/keymaps/multilayer_rgb/keymap.c
Normal file
@@ -0,0 +1,173 @@
|
||||
/* Copyright 2020 elmo-space<mail@elmo.space>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "rgblite.h"
|
||||
|
||||
// Defines names for use in layer keycodes and the keymap
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FUNC,
|
||||
};
|
||||
|
||||
// set your keycodes here
|
||||
#define layer1_left KC_PAUS
|
||||
#define layer1_right KC_MPLY
|
||||
#define layer2_left KC_MPRV
|
||||
#define layer2_right KC_MNXT
|
||||
|
||||
|
||||
enum custom_keycodes {
|
||||
LEFT1 = SAFE_RANGE,
|
||||
RIGHT1,
|
||||
LEFT2,
|
||||
RIGHT2
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
LEFT1, RIGHT1
|
||||
),
|
||||
[_FUNC] = LAYOUT(
|
||||
LEFT2, RIGHT2
|
||||
)
|
||||
};
|
||||
|
||||
static bool key1_down = false;
|
||||
static bool key2_down = false;
|
||||
static char layer_switched = 0; // this prevents the individual keys getting triggered after a layerchange
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
|
||||
{
|
||||
switch (keycode)
|
||||
{
|
||||
case LEFT1:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
if (key2_down)
|
||||
{
|
||||
layer_on(1);
|
||||
layer_switched = 2;
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
key1_down = true;
|
||||
}
|
||||
else {
|
||||
if (layer_switched > 0) {
|
||||
--layer_switched;
|
||||
key1_down = false;
|
||||
}
|
||||
else {
|
||||
tap_code(layer1_left);
|
||||
key1_down = false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RIGHT1:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
if (key1_down)
|
||||
{
|
||||
layer_on(1);
|
||||
layer_switched = 2;
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
key2_down = true;
|
||||
}
|
||||
else {
|
||||
if (layer_switched > 0) {
|
||||
--layer_switched;
|
||||
key2_down = false;
|
||||
}
|
||||
else {
|
||||
tap_code(layer1_right);
|
||||
key2_down = false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case LEFT2:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
if (key2_down)
|
||||
{
|
||||
layer_off(1);
|
||||
layer_switched = 2;
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
key1_down = true;
|
||||
}
|
||||
else {
|
||||
if (layer_switched > 0) {
|
||||
--layer_switched;
|
||||
key1_down = false;
|
||||
}
|
||||
else {
|
||||
tap_code(layer2_left);
|
||||
key1_down = false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case RIGHT2:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
if (key1_down)
|
||||
{
|
||||
layer_off(1);
|
||||
layer_switched = 2;
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
key2_down = true;
|
||||
}
|
||||
else {
|
||||
if (layer_switched > 0) {
|
||||
--layer_switched;
|
||||
key2_down = false;
|
||||
}
|
||||
else {
|
||||
tap_code(layer2_right);
|
||||
key2_down = false;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
// layer colors
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
switch (get_highest_layer(state)) {
|
||||
case _FUNC:
|
||||
rgblite_setrgb(RGB_RED);
|
||||
break;
|
||||
default: // for any other layers, or the default layer
|
||||
rgblite_setrgb(RGB_GREEN);
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
|
||||
// default color
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblite_setrgb(RGB_GREEN);
|
||||
}
|
||||
9
keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h
Normal file
9
keyboards/xiudi/xd002/keymaps/multilayer_rgb/rgblite.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#pragma once
|
||||
|
||||
#include "ws2812.h"
|
||||
#include "color.h"
|
||||
|
||||
static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) {
|
||||
LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
|
||||
ws2812_setleds(leds, RGBLED_NUM);
|
||||
}
|
||||
2
keyboards/xiudi/xd002/keymaps/multilayer_rgb/rules.mk
Normal file
2
keyboards/xiudi/xd002/keymaps/multilayer_rgb/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
SRC += ws2812.c
|
||||
EXTRAKEY_ENABLE = yes
|
||||
46
keyboards/xiudi/xd002/keymaps/rgb/keymap.c
Normal file
46
keyboards/xiudi/xd002/keymaps/rgb/keymap.c
Normal file
@@ -0,0 +1,46 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKURL = SAFE_RANGE,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
RGB_HUI, QMKURL
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch (keycode) {
|
||||
case QMKURL:
|
||||
// Using SEND_STRING here adds 400bytes ...
|
||||
// SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
tap_code(KC_H);
|
||||
tap_code(KC_T);
|
||||
tap_code(KC_T);
|
||||
tap_code(KC_P);
|
||||
tap_code(KC_S);
|
||||
tap_code16(KC_COLON);
|
||||
tap_code(KC_SLASH);
|
||||
tap_code(KC_SLASH);
|
||||
tap_code(KC_Q);
|
||||
tap_code(KC_M);
|
||||
tap_code(KC_K);
|
||||
tap_code(KC_DOT);
|
||||
tap_code(KC_F);
|
||||
tap_code(KC_M);
|
||||
tap_code(KC_SLASH);
|
||||
tap_code(KC_ENTER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblight_enable_noeeprom(); // enables Rgb, without saving settings
|
||||
rgblight_sethsv_noeeprom(180, 255, 255); // sets the color to teal/cyan without saving
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT); // sets mode to Fast breathing without saving
|
||||
}
|
||||
1
keyboards/xiudi/xd002/keymaps/rgb/rules.mk
Normal file
1
keyboards/xiudi/xd002/keymaps/rgb/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
RGBLIGHT_ENABLE = yes
|
||||
31
keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c
Normal file
31
keyboards/xiudi/xd002/keymaps/rgb_lite/keymap.c
Normal file
@@ -0,0 +1,31 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "rgblite.h"
|
||||
|
||||
// Defines the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKURL = SAFE_RANGE,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
RGB_HUI, QMKURL
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (record->event.pressed) {
|
||||
switch (keycode) {
|
||||
case RGB_HUI:
|
||||
rgblite_increase_hue();
|
||||
break;
|
||||
case QMKURL:
|
||||
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
|
||||
break;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
rgblite_increase_hue();
|
||||
}
|
||||
26
keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h
Normal file
26
keyboards/xiudi/xd002/keymaps/rgb_lite/rgblite.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "ws2812.h"
|
||||
#include "color.h"
|
||||
|
||||
static inline void rgblite_setrgb(uint8_t _r, uint8_t _g, uint8_t _b) {
|
||||
LED_TYPE leds[RGBLED_NUM] = {{.r = _r, .g = _g, .b = _b}, {.r = _r, .g = _g, .b = _b}};
|
||||
ws2812_setleds(leds, RGBLED_NUM);
|
||||
}
|
||||
|
||||
static void rgblite_increase_hue(void) {
|
||||
static uint8_t state = 0;
|
||||
|
||||
state = (state + 1) % 3;
|
||||
switch (state) {
|
||||
case 1:
|
||||
rgblite_setrgb(RGB_RED);
|
||||
break;
|
||||
case 2:
|
||||
rgblite_setrgb(RGB_BLUE);
|
||||
break;
|
||||
default:
|
||||
rgblite_setrgb(RGB_GREEN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
1
keyboards/xiudi/xd002/keymaps/rgb_lite/rules.mk
Normal file
1
keyboards/xiudi/xd002/keymaps/rgb_lite/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SRC += ws2812.c
|
||||
3
keyboards/xiudi/xd002/keymaps/tap_dance/config.h
Normal file
3
keyboards/xiudi/xd002/keymaps/tap_dance/config.h
Normal file
@@ -0,0 +1,3 @@
|
||||
#pragma once
|
||||
|
||||
#define TAPPING_TERM 500
|
||||
19
keyboards/xiudi/xd002/keymaps/tap_dance/keymap.c
Normal file
19
keyboards/xiudi/xd002/keymaps/tap_dance/keymap.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_BASE = 0,
|
||||
};
|
||||
|
||||
enum {
|
||||
TD_BC = 0
|
||||
};
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_BC] = ACTION_TAP_DANCE_DOUBLE(KC_B, KC_C)
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_A, TD(TD_BC)
|
||||
)
|
||||
};
|
||||
1
keyboards/xiudi/xd002/keymaps/tap_dance/rules.mk
Normal file
1
keyboards/xiudi/xd002/keymaps/tap_dance/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
7
keyboards/xiudi/xd002/keymaps/volume/keymap.c
Normal file
7
keyboards/xiudi/xd002/keymaps/volume/keymap.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_VOLU, KC_VOLD
|
||||
)
|
||||
};
|
||||
1
keyboards/xiudi/xd002/keymaps/volume/rules.mk
Normal file
1
keyboards/xiudi/xd002/keymaps/volume/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
EXTRAKEY_ENABLE = yes
|
||||
49
keyboards/xiudi/xd002/readme.md
Normal file
49
keyboards/xiudi/xd002/readme.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# xd002
|
||||
|
||||

|
||||
|
||||
2% Custom mechanical keyboard. ATtiny85 powered, with 2*WS2812 LEDs, and the micronucleus bootloader.
|
||||
|
||||
**Note**: Due to limited firmware space, a _**lot**_ of features have to be disabled to get a functioning QMK based keyboard.
|
||||
|
||||
* Keyboard Maintainer: [zvecr](https://github.com/zvecr)
|
||||
* Hardware Supported: xd002
|
||||
* Hardware Availability: [kprepublic](https://kprepublic.com/products/xd002-xiudi-2-custom-mechanical-keyboard-2-keys-underglow-and-switch-rgb-pcb-programmed-hot-swappable-macro-key-aluminum-case)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make xd002: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).
|
||||
|
||||
## Flashing
|
||||
### Prerequisites
|
||||
|
||||
```bash
|
||||
git clone https://github.com/micronucleus/micronucleus.git
|
||||
cd micronucleus/commandline/
|
||||
sudo make install
|
||||
```
|
||||
|
||||
On Linux, you’ll need proper privileges to access the MCU. You can either use sudo when flashing firmware, or place [these files](https://github.com/micronucleus/micronucleus/blob/master/commandline/49-micronucleus.rules) in /etc/udev/rules.d/. Once added run the following:
|
||||
|
||||
```bash
|
||||
sudo udevadm control --reload-rules
|
||||
sudo udevadm trigger
|
||||
```
|
||||
|
||||
### Instructions
|
||||
|
||||
**Reset Key**: Hold down key nearest to the USB socket while plugging in the keyboard.
|
||||
|
||||
```bash
|
||||
make xd002:default:flash
|
||||
|
||||
# or directly with...
|
||||
micronucleus --run <firmware.hex>
|
||||
```
|
||||
|
||||
### Recovery
|
||||
|
||||
* [Original Firmware](https://github.com/xiudi/Attiny85_vusb_pad_test)
|
||||
* [Bootloader Repair](https://digistump.com/wiki/digispark/tutorials/proisp)
|
||||
31
keyboards/xiudi/xd002/rules.mk
Normal file
31
keyboards/xiudi/xd002/rules.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
# MCU name
|
||||
MCU = attiny85
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = micronucleus
|
||||
OPT_DEFS += -DBOOTLOADER_SIZE=1862
|
||||
PROGRAM_CMD = micronucleus --run $(BUILD_DIR)/$(TARGET).hex
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
|
||||
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 on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
|
||||
# Save as much space as we can...
|
||||
LTO_ENABLE = yes
|
||||
GRAVE_ESC_ENABLE = no
|
||||
MAGIC_ENABLE = no
|
||||
SPACE_CADET_ENABLE = no
|
||||
16
keyboards/xiudi/xd002/xd002.c
Normal file
16
keyboards/xiudi/xd002/xd002.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2020 zvecr<git@zvecr.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "xd002.h"
|
||||
33
keyboards/xiudi/xd002/xd002.h
Normal file
33
keyboards/xiudi/xd002/xd002.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright 2020 zvecr<git@zvecr.com>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
K01, K02 \
|
||||
) \
|
||||
{ \
|
||||
{ K01, K02 }, \
|
||||
}
|
||||
11
keyboards/xiudi/xd004/info.json
Normal file
11
keyboards/xiudi/xd004/info.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"keyboard_name": "XD004",
|
||||
"maintainer": "qmk",
|
||||
"width": 4,
|
||||
"height": 1,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"L", "x":0, "y":0}, {"label":"O", "x":1, "y":0}, {"label":"V", "x":2, "y":0}, {"label":"E", "x":3, "y":0}]
|
||||
}
|
||||
}
|
||||
}
|
||||
13
keyboards/xiudi/xd004/keymaps/default/keymap.c
Normal file
13
keyboards/xiudi/xd004/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(KC_L, KC_O, KC_V, KC_E),
|
||||
|
||||
};
|
||||
|
||||
// Loop
|
||||
void matrix_scan_user(void){
|
||||
// Empty
|
||||
};
|
||||
7
keyboards/xiudi/xd004/keymaps/default/readme.md
Normal file
7
keyboards/xiudi/xd004/keymaps/default/readme.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Default Keymap for XD004 PCB
|
||||
|
||||
This keymap is not very useful, but it will validate that the board works.
|
||||
|
||||
## Build
|
||||
|
||||
To build the default keymap, simply run `make xd004:default`.
|
||||
24
keyboards/xiudi/xd004/keymaps/narze/keymap.c
Normal file
24
keyboards/xiudi/xd004/keymaps/narze/keymap.c
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Copyright 2021 narze
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(HYPR(KC_F2), HYPR(KC_F1), LCTL(KC_B), LCTL(KC_X)),
|
||||
|
||||
};
|
||||
13
keyboards/xiudi/xd004/keymaps/narze/readme.md
Normal file
13
keyboards/xiudi/xd004/keymaps/narze/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# narze Keymap for XD004 PCB
|
||||
|
||||
(Key 1 is on the opposite of USB port side, so I flip the keys to make usb port be on the left)
|
||||
|
||||
- Key 1 : Hyper + F2
|
||||
- Key 2 : Hyper + F1
|
||||
- Key 3 : Ctrl + B (Microphone : Toggle mute)
|
||||
- Key 4 : Ctrl + X (Microphone : Push to talk)
|
||||
|
||||
## Build & Flash
|
||||
|
||||
- Put this board in DFU : bridge the last two pins (#5 & 6) of the 6-pin "J2" header on the opposite edge of the board to the USB port.
|
||||
- `make xd004/v1:narze:flash` or `qmk flash -kb xd004/v1 -km narze`
|
||||
59
keyboards/xiudi/xd004/keymaps/system_and_media/keymap.c
Normal file
59
keyboards/xiudi/xd004/keymaps/system_and_media/keymap.c
Normal file
@@ -0,0 +1,59 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BASE 0 // Base layer
|
||||
#define _SYSTEM 1 // System actions
|
||||
#define _VOLUME 2 // Volume actions
|
||||
|
||||
#define SUPER_ALT_F4_TIMER 300 // Timeout on the super alt-f4 key
|
||||
|
||||
/*
|
||||
The idea of this is pretty simple: base layer has four action, two of which (the outermost)
|
||||
are regular keystrokes on tap, and a momentary layer switch on hold, sending you to layers 1 and 2.
|
||||
|
||||
The other bit of customization here is the 'Super Alt F4' which does Alt-F4, and then Enter if tapped
|
||||
again SUPER_ALT_F4_TIMER miliseconds after. This lets you Alt-F4 applications, and finally quickly
|
||||
double-tap it to Alt-F4+Enter to shut down the PC.
|
||||
*/
|
||||
|
||||
bool is_alt_f4_active = false;
|
||||
uint16_t alt_f4_timer = 0;
|
||||
|
||||
enum custom_keycodes { // Make sure have the awesome keycode ready
|
||||
SUPER_ALT_F4 = SAFE_RANGE,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[_BASE] = LAYOUT_all(LT(_SYSTEM, KC_F5), C(G(KC_LEFT)), C(G(KC_RIGHT)), LT(_VOLUME, KC_F7)),
|
||||
|
||||
// 1: System actions
|
||||
[_SYSTEM] = LAYOUT_all(_______, SUPER_ALT_F4, G(KC_D), G(KC_L)),
|
||||
|
||||
// 2: Volume actions
|
||||
[_VOLUME] = LAYOUT_all(KC_MEDIA_NEXT_TRACK, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, _______),
|
||||
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) { // This will do most of the grunt work with the keycodes.
|
||||
case SUPER_ALT_F4:
|
||||
if (record->event.pressed) {
|
||||
if (!is_alt_f4_active) {
|
||||
is_alt_f4_active = true;
|
||||
tap_code16(LALT(KC_F4)); // Alt-F4
|
||||
} else {
|
||||
tap_code(KC_ENTER); // Tap enter
|
||||
}
|
||||
}
|
||||
alt_f4_timer = timer_read();
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
if (is_alt_f4_active && timer_elapsed(alt_f4_timer) > SUPER_ALT_F4_TIMER) {
|
||||
is_alt_f4_active = false;
|
||||
}
|
||||
};
|
||||
9
keyboards/xiudi/xd004/keymaps/system_and_media/readme.md
Normal file
9
keyboards/xiudi/xd004/keymaps/system_and_media/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Slightly more advanced keymap for XD004 PCB
|
||||
|
||||
A somehow more useful keymap, allowing one to move across virtual desktops on Windows, etc.
|
||||
|
||||
It also has a 'Super Alt-F4' key for Windows that, when tapped does Alt-F4, unless two consecutive taps are less than 300ms apart, in which case the second tap becomes Enter. This allows you to close all apps doing taps, and then when the System shutdown window arrives you do a second quick tap and it will type enter, thus shutting down the computer.
|
||||
|
||||
## Build
|
||||
|
||||
To build the keymap, simply run `make xd004:system_and_media`.
|
||||
30
keyboards/xiudi/xd004/readme.md
Normal file
30
keyboards/xiudi/xd004/readme.md
Normal file
@@ -0,0 +1,30 @@
|
||||
XD004
|
||||
==
|
||||
|
||||
4-keys board
|
||||
|
||||

|
||||
|
||||
Keyboard Maintainer: QMK Community
|
||||
Hardware Supported: XD004 PCB v1.0
|
||||
Hardware Availability: [KPRepublic](https://kprepublic.com/products/xd004-xiudi-4-custom-mechanical-keyboard-4-keys-switch-leds-pcb-programmed-hot-swappable-macro-key-silver-case-micro-port)
|
||||
|
||||
To put this board in DFU (firmware update) mode, bridge the last two pins (#5 & 6) of the 6-pin "J2" header on the opposite edge of the board to the USB port"
|
||||
```
|
||||
----+
|
||||
J2 |
|
||||
[o] |
|
||||
(o) |
|
||||
(o) |
|
||||
(o) |
|
||||
(o)-+-\ (These
|
||||
(o)-+-/ two)
|
||||
|
|
||||
----+
|
||||
```
|
||||
|
||||
To build with a default keymap (not useful at all, have a look at other keymaps):
|
||||
|
||||
```make xd004/v1: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).
|
||||
79
keyboards/xiudi/xd004/v1/config.h
Normal file
79
keyboards/xiudi/xd004/v1/config.h
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
Copyright 2019 Sidney Bovet <sidney.bovet@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
Note: the following configuration uses 98% of the flash memory, be
|
||||
careful if you enable anything else. Also have a look at rules.mk
|
||||
where some things are disabled to save space as well.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7844 // "XD"
|
||||
#define PRODUCT_ID 0x0404
|
||||
#define DEVICE_VER 0x0001
|
||||
// Note: unsure about manufacturer
|
||||
#define MANUFACTURER XIUDI
|
||||
#define PRODUCT XD004 v1
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 1
|
||||
#define MATRIX_COLS 4
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* On this board we have direct connection: no diodes.
|
||||
*/
|
||||
#define DIRECT_PINS \
|
||||
{ \
|
||||
{ D3, D0, C4, B4 } \
|
||||
}
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* Backlight Setup */
|
||||
// Looks like each backlight LED is connected to a single output, D5 is the one furtherst away from USB port
|
||||
#define BACKLIGHT_PIN D5
|
||||
#define BACKLIGHT_LEVELS 6
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* RGB Underglow
|
||||
This will not be used, as RGBLIGHT_ENABLE is set to 'no' in rules.mk
|
||||
We do not have enough space in the flash for this at the moment, maybe
|
||||
further optimizations can be done on that side.
|
||||
*/
|
||||
#define RGB_DI_PIN C6
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLED_NUM 2
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
/* disable action features */
|
||||
// #define NO_ACTION_ONESHOT // 462 bytes <- this needs to be un-commented out if Link Time Optimization is disabled, otherwise file is too large
|
||||
// The two below are implicit since we use LTO_ENABLE (in rules.mk)
|
||||
// #define NO_ACTION_MACRO
|
||||
// #define NO_ACTION_FUNCTION
|
||||
31
keyboards/xiudi/xd004/v1/rules.mk
Normal file
31
keyboards/xiudi/xd004/v1/rules.mk
Normal file
@@ -0,0 +1,31 @@
|
||||
# MCU name
|
||||
MCU = atmega16u2
|
||||
|
||||
# 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
|
||||
BOOTMAGIC_ENABLE = lite # 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 = no # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
SPACE_CADET_ENABLE = no
|
||||
# Saves about 5% of space:
|
||||
LTO_ENABLE = yes
|
||||
|
||||
#LAYOUTS = ortho_1x4
|
||||
7
keyboards/xiudi/xd004/xd004.c
Normal file
7
keyboards/xiudi/xd004/xd004.c
Normal file
@@ -0,0 +1,7 @@
|
||||
#include "xd004.h"
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
15
keyboards/xiudi/xd004/xd004.h
Normal file
15
keyboards/xiudi/xd004/xd004.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
//#include "led.h"
|
||||
|
||||
/* XD60 Keymap Definition Macro */
|
||||
/*
|
||||
+--------------------------------+
|
||||
| K0 K1 K2 K3 [----- USB
|
||||
+--------------------------------+
|
||||
*/
|
||||
#define LAYOUT_all(K00, K01, K02, K03) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03 } \
|
||||
}
|
||||
164
keyboards/xiudi/xd60/info.json
Normal file
164
keyboards/xiudi/xd60/info.json
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"keyboard_name": "XD60",
|
||||
"maintainer": "qmk",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}]
|
||||
},
|
||||
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label":"~", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"@", "x":2, "y":0},
|
||||
{"label":"#", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"BS", "x":13, "y":0, "w":1},
|
||||
{"label":"BS", "x":14, "y":0, "w":1},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"\"", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"FN", "x":14, "y":3, "w":1},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"Win", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||
{"label":"Win", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
|
||||
]
|
||||
},
|
||||
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [{"label":"\u00ac", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"\"", "x":2, "y":0}, {"label":"\u00a3", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"@", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"GUI", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"AltGr", "x":10, "y":4, "w":1.25}, {"label":"GUI", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label":"\u00ac", "x":0, "y":0},
|
||||
{"label":"!", "x":1, "y":0},
|
||||
{"label":"\"", "x":2, "y":0},
|
||||
{"label":"\u00a3", "x":3, "y":0},
|
||||
{"label":"$", "x":4, "y":0},
|
||||
{"label":"%", "x":5, "y":0},
|
||||
{"label":"^", "x":6, "y":0},
|
||||
{"label":"&", "x":7, "y":0},
|
||||
{"label":"*", "x":8, "y":0},
|
||||
{"label":"(", "x":9, "y":0},
|
||||
{"label":")", "x":10, "y":0},
|
||||
{"label":"_", "x":11, "y":0},
|
||||
{"label":"+", "x":12, "y":0},
|
||||
{"label":"BS", "x":13, "y":0, "w":1},
|
||||
{"label":"BS", "x":14, "y":0, "w":1},
|
||||
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"{", "x":11.5, "y":1},
|
||||
{"label":"}", "x":12.5, "y":1},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":":", "x":10.75, "y":2},
|
||||
{"label":"@", "x":11.75, "y":2},
|
||||
{"label":"~", "x":12.75, "y":2},
|
||||
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
|
||||
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||
{"label":"|", "x":1.25, "y":3},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":"<", "x":9.25, "y":3},
|
||||
{"label":">", "x":10.25, "y":3},
|
||||
{"label":"?", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"FN", "x":14, "y":3, "w":1},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"AltGr", "x":10, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
22
keyboards/xiudi/xd60/keymaps/Jos/README.md
Normal file
22
keyboards/xiudi/xd60/keymaps/Jos/README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# Jos's Layout
|
||||
|
||||
Custom layout with various options. Designed to be used with the Canadian Multilingual software layout.
|
||||
|
||||
## Layout
|
||||
This is the physical layout of my xd60, for reference. See the keymap file for actual software layout.
|
||||

|
||||
|
||||
## Features
|
||||
**Caps Lock** is **Escape** and the **Window key** is a **Function** key that still acts like the **Window** key in conjuction with `w`, `s`, `d`, `l`, `t`, `e`, `h`, and `SPACE`.
|
||||
|
||||
There are a few `#define` lines at the beginning of the keymap file that enable the following options if not commented:
|
||||
- `ISOLIKE_ALT_ENTER`: `RALT` + `ENT` is the same as `RALT`+`BSLS`. For logical placement of `{` and `}` (the former being `RALT`+`BSLS`) with ANSI enter on a ISO-based layout.
|
||||
- `TWO_SFT_CAPS`: Both shifts together → Caps Lock.
|
||||
- `APP_IS_RALT_RCTRL`: Menu would be between `RCTRL` and `RALT`, so now `RALT` + `RCTRL` → `APP`.
|
||||
- `HELD_ESC_IS_SHIFT`: Holding `ESC` → `SHIFT`. It always register shift when pressing `ESC`. Useful for VIM.
|
||||
- `BSPC_BLOCKS_DEL`: If `BSPC` is held, we disable `DEL`. To avoid acidental presses of `DEL` with split backspace key.
|
||||
- `ALT_MINSEQL_IS_ALT_78`: Pressing `ALT+MINS/EQL` will act like `ALT+7/8`. Will yield `{}` instead of `½¬` in Canadian Multilingual Layout. Diminished finger stretching.
|
||||
|
||||
|
||||
# Build
|
||||
To build, simply run `make xd60:Jos`
|
||||
2
keyboards/xiudi/xd60/keymaps/Jos/config.h
Normal file
2
keyboards/xiudi/xd60/keymaps/Jos/config.h
Normal file
@@ -0,0 +1,2 @@
|
||||
/* Delay for tap/hold for tap dance commands */
|
||||
#define TAPPING_TERM 150
|
||||
202
keyboards/xiudi/xd60/keymaps/Jos/keymap.c
Normal file
202
keyboards/xiudi/xd60/keymaps/Jos/keymap.c
Normal file
@@ -0,0 +1,202 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
// TODO: THOSE ARE IDEAS:
|
||||
// TODO:
|
||||
// TODO: - Proper support for "GUI+TAB" application switching, with the GUI holding and shift, etc.
|
||||
// TODO: - Maybe implement a process_record instead of a tap-dance, or complex tap dance?
|
||||
// TODO: - Media keys on Fn1 layer, *hjklm,.* or arrow cluster?
|
||||
// TODO: - What more than NumPad + RGB on the Fn3 toggled layer?
|
||||
// TODO: - Add an in-keymap way to toggle LGUI/F(0) key, HELD_ESC_IS_SHIFT and BSPC_BLOCKS_DEL.
|
||||
// TODO:
|
||||
// TODO: THOSE ARE BUGS TO FIX:
|
||||
// TODO: - None (found so far)
|
||||
|
||||
// Adjusting process_record_user functionnalities, comment to disable.
|
||||
#define ISOLIKE_ALT_ENTER
|
||||
#define TWO_SFT_CAPS
|
||||
#define APP_IS_RALT_RCTRL
|
||||
#define HELD_ESC_IS_SHIFT
|
||||
#define BSPC_BLOCKS_DEL
|
||||
#define ALT_MINSEQL_IS_ALT_78
|
||||
|
||||
// Cases where the GUI key will actually do what the GUI key normally does.
|
||||
#define AC_G_W LGUI(KC_W) // Ubuntu: Shows windows on current desktop
|
||||
#define AC_G_S LGUI(KC_S) // Ubuntu: Overview of all desktops
|
||||
#define AC_G_D LGUI(KC_D) // Windows: Show/Toggle desktop
|
||||
#define AC_G_L LGUI(KC_L) // Ubuntu/Windows: Lock session
|
||||
#define AC_G_T LGUI(KC_T) // Ubuntu: Shows Trash // elementary: Opens terminal
|
||||
#define AC_G_E LGUI(KC_E) // Windows: Opens file explorer
|
||||
#define AC_G_H LGUI(KC_H) // Windows: Show/Hide hidden files
|
||||
#define AC_G_SPC LGUI(KC_SPC) // elementary: Shows application launcher
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1), \
|
||||
KC_LCTL, TD(0), KC_LALT, KC_SPC , KC_RALT, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function 1 Layers
|
||||
LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, KC_PSCR, \
|
||||
KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_MSTP, KC_TRNS, KC_NO, KC_TRNS, \
|
||||
KC_TRNS, TG(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END),
|
||||
|
||||
// 2: GUI/Function 2 Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PAUS, KC_PSCR, \
|
||||
KC_TRNS, KC_TRNS, AC_G_W, AC_G_E, KC_TRNS, AC_G_T, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, AC_G_S, AC_G_D, KC_TRNS, KC_TRNS, AC_G_H, KC_TRNS, KC_TRNS, AC_G_L, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, AC_G_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END),
|
||||
|
||||
// 3: NumPad/Function 3 Toggle Layer
|
||||
LAYOUT_all(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_PSLS, KC_PMNS, KC_PPLS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_NO, KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_4, KC_5, KC_6, KC_PAST, KC_NO, KC_NO, KC_NO, \
|
||||
KC_TRNS, KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_1, KC_2, KC_3, KC_PMNS, KC_PENT, KC_NO, KC_TRNS, \
|
||||
KC_NO, KC_TRNS, KC_NO, KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_0, KC_COMM, KC_DOT, KC_PPLS, KC_NO, KC_TRNS, KC_TRNS, \
|
||||
KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_PENT, KC_PENT, KC_TRNS, KC_TRNS, KC_TRNS) ,
|
||||
|
||||
// TRaNSparent layer for reference
|
||||
/* LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
/ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), */
|
||||
};
|
||||
|
||||
// LGUI acts as F(1) if held or as a tapped LGUI if tapped. Adapted from https://goo.gl/WnqGNS
|
||||
// Commented lines are for the "sticky" layer on two presses. Left it here for reference.
|
||||
static const int GUILAY = 2; // GUI Layer is layer #2
|
||||
|
||||
typedef struct {
|
||||
bool layer_toggle;
|
||||
bool sticky;
|
||||
} td_ta_state_t;
|
||||
|
||||
static void ang_tap_dance_ta_finished (qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_ta_state_t *td_ta = (td_ta_state_t *) user_data;
|
||||
|
||||
// if (td_ta->sticky) {
|
||||
// td_ta->sticky = false;
|
||||
// td_ta->layer_toggle = false;
|
||||
// layer_off (GUILAY);
|
||||
// return;
|
||||
// }
|
||||
//
|
||||
if (state->count == 1 && !state->pressed) {
|
||||
register_code (KC_LGUI);
|
||||
// td_ta->sticky = false;
|
||||
td_ta->layer_toggle = false;
|
||||
} else {
|
||||
td_ta->layer_toggle = true;
|
||||
layer_on(GUILAY);
|
||||
// td_ta->sticky = (state->count == 2);
|
||||
}
|
||||
}
|
||||
|
||||
// Added this one to make it more reactive on keyup
|
||||
static void ang_tap_dance_ta_each (qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_ta_state_t *td_ta = (td_ta_state_t *) user_data;
|
||||
|
||||
if (!td_ta->layer_toggle) { // Braces added for clarity
|
||||
unregister_code (KC_LGUI);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void ang_tap_dance_ta_reset (qk_tap_dance_state_t *state, void *user_data) {
|
||||
td_ta_state_t *td_ta = (td_ta_state_t *) user_data;
|
||||
|
||||
if (!td_ta->layer_toggle) { // Braces added for clarity
|
||||
unregister_code (KC_LGUI);
|
||||
}
|
||||
// if (!td_ta->sticky)
|
||||
layer_off (GUILAY); // We don't verify it was swithed on, switching off regardless
|
||||
}
|
||||
|
||||
|
||||
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[0] = {
|
||||
.fn = { ang_tap_dance_ta_each, ang_tap_dance_ta_finished, ang_tap_dance_ta_reset },
|
||||
.user_data = (void *)&((td_ta_state_t) { false, false })
|
||||
}
|
||||
};
|
||||
|
||||
#if defined ISOLIKE_ALT_ENTER || defined TWO_SFT_CAPS || defined APP_IS_RALT_RCTRL || defined ALT_MINSEQL_IS_ALT_78
|
||||
// Function for the special modifiers actions below, makes it cleaner and yields smaller firmware.
|
||||
static bool special_mods(uint16_t keycode, keyrecord_t *record, uint16_t modifier) {
|
||||
if (record->event.pressed && (keyboard_report->mods & MOD_BIT(modifier))) {
|
||||
register_code(keycode);
|
||||
return false;
|
||||
} else {
|
||||
unregister_code(keycode);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef BSPC_BLOCKS_DEL
|
||||
static bool del_blocked = false; // Static as to not be defined elsewhere
|
||||
#endif
|
||||
|
||||
// This function is processed before the key events on each key press/release.
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode){
|
||||
#ifdef ISOLIKE_ALT_ENTER
|
||||
// RALT + ENT is the same as RALT+BSLS.
|
||||
// For logical placement of *{* and *}* (the former being RALT+BSLS) with ANSI enter on
|
||||
// ISO-based Canadian Multilingual layout (or any other ISO layout on ANSI keyboards).
|
||||
case KC_ENT: return special_mods(KC_BSLS, record, KC_RALT); // RALT + ENT -> RALT + BSLS // See comment above
|
||||
#endif
|
||||
#ifdef TWO_SFT_CAPS
|
||||
case KC_LSFT: return special_mods(KC_CAPS, record, KC_RSFT); // Both shifts together -> Caps Lock // RSFT pressed first case
|
||||
case KC_RSFT: return special_mods(KC_CAPS, record, KC_LSFT); // Both shifts together -> Caps Lock // LSFT pressed first case
|
||||
#endif
|
||||
#ifdef APP_IS_RALT_RCTRL
|
||||
case KC_RCTRL: return special_mods(KC_APP, record, KC_RALT); // RALT + RCTRL -> APP // RCTRL pressed first case
|
||||
case KC_RALT: return special_mods(KC_APP, record, KC_RCTRL); // RALT + RCTRL -> APP // RALT pressed first case
|
||||
#endif
|
||||
#ifdef ALT_MINSEQL_IS_ALT_78
|
||||
case KC_MINS: return special_mods(KC_7, record, KC_RALT); // RALT + MINS -> RALT+7 // {} in CAN Mult. softawre layout
|
||||
case KC_EQL: return special_mods(KC_8, record, KC_RALT); // RALT + EQL -> RALT+8 // ½¬ normally... Less finger stretch.
|
||||
#endif
|
||||
#ifdef HELD_ESC_IS_SHIFT
|
||||
case KC_ESC: // Physically *ESC* is *CAPS* // Holding ESC -> SHIFT (0 delay) // Less awkward *<ESC>:wq* in vim
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_ESC); // Tapping ESC
|
||||
unregister_code(KC_ESC);
|
||||
register_code(KC_LSFT); // Holding LSFT
|
||||
return false;
|
||||
} else {
|
||||
unregister_code(KC_LSFT); // Releasing LSFT
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
#ifdef BSPC_BLOCKS_DEL
|
||||
// If BSPC is held, we flag DEL as disabled. To avoids acidental presses of DEL with split backspace key.
|
||||
case KC_BSPC:
|
||||
del_blocked = record->event.pressed;
|
||||
return true;
|
||||
// We don't handle DEL if it is pressed and flagged as disabled
|
||||
case KC_DEL:
|
||||
if (del_blocked && record->event.pressed) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
default: return true; // Let QMK handle the rest as usual
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1
keyboards/xiudi/xd60/keymaps/Jos/rules.mk
Normal file
1
keyboards/xiudi/xd60/keymaps/Jos/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TAP_DANCE_ENABLE = yes # Enables Tap Dance
|
||||
66
keyboards/xiudi/xd60/keymaps/birkir/keymap.c
Normal file
66
keyboards/xiudi/xd60/keymaps/birkir/keymap.c
Normal file
@@ -0,0 +1,66 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_SLSH, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSFT, KC_UP, TG(2), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
KC_GRAVE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, BL_DEC, BL_INC, KC_F13, KC_F14, \
|
||||
KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, TG(2), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDOWN,KC_END
|
||||
),
|
||||
|
||||
// 2: Cool Layer
|
||||
LAYOUT_all(
|
||||
RESET, BL_DEC, BL_INC, BL_ON, BL_OFF, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, RGB_MODE_PLAIN, KC_TRNS, \
|
||||
KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, TG(2), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDOWN,KC_END
|
||||
)
|
||||
};
|
||||
|
||||
bool edit = false;
|
||||
uint32_t mode;
|
||||
uint16_t hue;
|
||||
uint8_t sat;
|
||||
uint8_t val;
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
|
||||
if (state == 0 && edit == true) {
|
||||
mode = rgblight_get_mode();
|
||||
hue = rgblight_get_hue();
|
||||
sat = rgblight_get_sat();
|
||||
val = rgblight_get_val();
|
||||
edit = false;
|
||||
}
|
||||
|
||||
switch (biton32(state)) {
|
||||
case 1:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0xD3, 0x7F, 0xED);
|
||||
break;
|
||||
case 2:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0xFF, 0x00, 0x00);
|
||||
edit = true;
|
||||
break;
|
||||
default:
|
||||
rgblight_mode(mode);
|
||||
rgblight_sethsv(hue, sat, val);
|
||||
break;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
45
keyboards/xiudi/xd60/keymaps/birkir/readme.md
Normal file
45
keyboards/xiudi/xd60/keymaps/birkir/readme.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# Birkir's Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||
Custom layout with some custom layers. Mac friendly.
|
||||
|
||||
## Layout
|
||||

|
||||
|
||||
### Layer 0
|
||||
Base layer as shown on layout above
|
||||
|
||||
### Layer 1
|
||||
Active while pressing and holding `MENU`
|
||||
|
||||
RGB is purple while active
|
||||
|
||||
- `ESC` is `~`
|
||||
|
||||
### Layer 2
|
||||
Toggled on and off with `FN`
|
||||
|
||||
RGB is red while active
|
||||
|
||||
RGB settings are persisted for layer 0 when done.
|
||||
|
||||
- `1` Backlight DEC
|
||||
- `2` Backlight INC
|
||||
- `3` Backlight OFF
|
||||
- `4` Backlight ON
|
||||
- `5` RGB Toggle
|
||||
- `6` RGB Mode
|
||||
- `7` RGB Hue DEC (-)
|
||||
- `8` RGB Hue INC (+)
|
||||
- `9` RGB Saturation DEC (-)
|
||||
- `0` RGB Saturation INC (+)
|
||||
- `-/_` RGB Brightness DEC (-)
|
||||
- `+/=` RGB Brightness INC (+)
|
||||
- `BACKSPACE` RGB Mode set to PLAIN
|
||||
|
||||
## TODO
|
||||
|
||||
- Mac shortcuts on Layer 1
|
||||
- More dynamic keyboard configuration on Layer 2
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60:birkir`.
|
||||
13
keyboards/xiudi/xd60/keymaps/cheese/README.md
Normal file
13
keyboards/xiudi/xd60/keymaps/cheese/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# cheese's Layout
|
||||
Customized xd60 keymap
|
||||
|
||||

|
||||

|
||||
|
||||
## Programming Instructions:
|
||||
`cd` into keymap directory, `make dfu`
|
||||
|
||||
## Features
|
||||
- Media keys and movement keys setup like on the pok3r
|
||||
- Lower right movement keys setup like on the fc660m (fn+direction for home/end/page up and down)
|
||||
- Caps lock can be triggered by pressing both shift keys at the same time (and deactivated the same way)
|
||||
61
keyboards/xiudi/xd60/keymaps/cheese/keymap.c
Normal file
61
keyboards/xiudi/xd60/keymaps/cheese/keymap.c
Normal file
@@ -0,0 +1,61 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
// Each layer gets a name for readability.
|
||||
// The underscores don't mean anything - you can
|
||||
// have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same
|
||||
// length, and you can also skip them entirely
|
||||
// and just use numbers.
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
#define _LS 2
|
||||
#define _RS 3
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------.
|
||||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
|
||||
* |-----------------------------------------------------------|
|
||||
* |FUNCTION| A| S| D| F| G| H| J| K| L| ;| '|Return|
|
||||
* |-----------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Ctrl|Gui |Alt | Space |FN|Left|Up|Down|Right|
|
||||
* `-----------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
MO(_FL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
LM(_LS, MOD_LSFT), KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, LM(_RS, MOD_RSFT), LM(_RS, MOD_RSFT), LM(_RS, MOD_RSFT), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FL), KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// Function Layer
|
||||
[_FL] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_CALC, KC_INS, KC_PGUP, KC_UP, KC_PGDN, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, \
|
||||
KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_APP, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_PGDN, KC_END),
|
||||
|
||||
// Left Shift Layer
|
||||
[_LS] = LAYOUT_all(
|
||||
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_CAPS, KC_CAPS, KC_CAPS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
// Right Shift Layer
|
||||
[_RS] = LAYOUT_all(
|
||||
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
};
|
||||
52
keyboards/xiudi/xd60/keymaps/crd_ansi/README.md
Normal file
52
keyboards/xiudi/xd60/keymaps/crd_ansi/README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# ANSI Layout
|
||||
|
||||
This is the standard ANSI keymap that I use on all of my 60% boards. This keymap
|
||||
includes a single function layer available by holding the designated key on the
|
||||
bottom row.
|
||||
|
||||
I don't ever use Caps Lock, so that keycode is not mapped anywhere. In place of
|
||||
the usual Caps Lock key, I have the following bnehaviour encoded: Escape when tapped
|
||||
and Control when held.
|
||||
|
||||
I also have the bottom right mod cluster mapped to navigational direction keys when tapped.
|
||||
Shift = Up, Alt = Down, Ctrl = Right, Fn = Left. When held, these keys send the usual modifier
|
||||
signals.
|
||||
|
||||
```
|
||||
/* Base layer
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Esc/Ctrl| A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | ? | Shift |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | Alt | Cmd | Space | Cmd | Fn | Alt | Ctrl |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
```
|
||||
|
||||
While holding the function key, you have access to the following layout. Any key
|
||||
not indicated is considered "transparent" and sends the signal indicated in the
|
||||
layer below. This function later gets you dedicated access to Escape and Delete
|
||||
keys, function keys on numbers, WASD directions, other navigation, multimedia
|
||||
controls, RGB (underglow) controls, and firmware reset (DFU mode).
|
||||
|
||||
```
|
||||
/* Fn layer
|
||||
* ,-----------------------------------------------------------------------------------------.
|
||||
* | Esc | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Del |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | Home| Up | End | | | | | Mute| | | Pg+ | Pg- | Reset |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | Left| Down|Right| | | |Brt- |Vol- |Vol+ |Brt+ | | RGB Toggle |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |R(Bt-)|R(Bt+)|R(Rot)| |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
```
|
||||
30
keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c
Normal file
30
keyboards/xiudi/xd60/keymaps/crd_ansi/keymap.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum keyboard_layers {
|
||||
_BL = 0, // Base Layer
|
||||
_FL // Function Layer
|
||||
};
|
||||
|
||||
// Custom #defined keycodes (shorter macros for readability)
|
||||
#define KC_CTES CTL_T(KC_ESC)
|
||||
#define KC_RSUP RSFT_T(KC_UP)
|
||||
#define KC_FNLT LT(_FL, KC_LEFT)
|
||||
#define KC_RADN RALT_T(KC_DOWN)
|
||||
#define KC_RCRT RCTL_T(KC_RIGHT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BL] = LAYOUT_60_ansi(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CTES, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, 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_RSUP,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_FNLT, KC_RADN, KC_RCRT
|
||||
),
|
||||
[_FL] = LAYOUT_60_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
_______, KC_HOME, KC_UP, KC_END, _______, _______, _______, _______, KC_MUTE, _______, _______, KC_PGDN, KC_PGUP, RESET,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_SLCK, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, RGB_TOG,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, RGB_MOD, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
26
keyboards/xiudi/xd60/keymaps/default/keymap.c
Normal file
26
keyboards/xiudi/xd60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,26 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL, \
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_HOME, KC_PGDOWN,KC_END),
|
||||
|
||||
};
|
||||
|
||||
// Loop
|
||||
void matrix_scan_user(void) {
|
||||
// Empty
|
||||
};
|
||||
13
keyboards/xiudi/xd60/keymaps/default/readme.md
Normal file
13
keyboards/xiudi/xd60/keymaps/default/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Default Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||

|
||||
|
||||
## Additional Notes
|
||||
Default Keymap for XD60 as indicated on the original sale page.
|
||||
|
||||
## Build
|
||||
|
||||
To build the default keymap, simply run:
|
||||
|
||||
make xd60/rev2:default # XD60 rev2
|
||||
make xd60/rev3:default # XD60 rev3
|
||||
22
keyboards/xiudi/xd60/keymaps/edulpn/keymap.c
Normal file
22
keyboards/xiudi/xd60/keymaps/edulpn/keymap.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSHIFT, KC_NO, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_RGUI, KC_RCTL),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_NO, \
|
||||
KC_NO, KC_NO, KC_UP, KC_NO, KC_INSERT, KC_HOME, KC_PGUP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT, KC_DEL, KC_END, KC_PGDN, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_NO, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, KC_NO, KC_NO, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_NO, KC_RGUI, KC_RCTL),
|
||||
|
||||
};
|
||||
9
keyboards/xiudi/xd60/keymaps/edulpn/readme.md
Normal file
9
keyboards/xiudi/xd60/keymaps/edulpn/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Edulpn Keymap for the XD60 PCB
|
||||
|
||||
## Additional Notes
|
||||
60% Keymap for XD60 with GH60 ANSI layout (based on Supercoffe's keymap) + customized Fn layer.
|
||||
|
||||

|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60:edulpn`.
|
||||
22
keyboards/xiudi/xd60/keymaps/edulpn64/keymap.c
Normal file
22
keyboards/xiudi/xd60/keymaps/edulpn64/keymap.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PSCR,KC_SLCK,KC_PAUS, RGB_RMOD,RGB_MOD, RGB_VAD, RGB_VAI, \
|
||||
KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_INS, KC_HOME,KC_PGUP, RGB_HUD, RGB_HUI, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_PGDN, KC_NO, KC_RSFT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
};
|
||||
9
keyboards/xiudi/xd60/keymaps/edulpn64/readme.md
Normal file
9
keyboards/xiudi/xd60/keymaps/edulpn64/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Edulpn64 Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||

|
||||
|
||||
## Additional Notes
|
||||
This keymap uses the Default XD60 base layer, but follows the GK64 function layer (one of my XD60 boards use GK64 keycaps).
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60:edulpn64`.
|
||||
10
keyboards/xiudi/xd60/keymaps/fvolpe83/config.h
Executable file
10
keyboards/xiudi/xd60/keymaps/fvolpe83/config.h
Executable file
@@ -0,0 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
/* Changes the number of taps required for layer toggle*/
|
||||
#define TAPPING_TOGGLE 3
|
||||
|
||||
/* The RGB lighting will be switched off when the host goes to sleep */
|
||||
#define RGBLIGHT_SLEEP
|
||||
|
||||
// lighting layers
|
||||
#define RGBLIGHT_LAYERS
|
||||
78
keyboards/xiudi/xd60/keymaps/fvolpe83/keymap.c
Executable file
78
keyboards/xiudi/xd60/keymaps/fvolpe83/keymap.c
Executable file
@@ -0,0 +1,78 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_NO,
|
||||
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, KC_PSCR,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_NO, TT(1), KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_DEL,
|
||||
KC_TAB, KC_INS, KC_DEL, KC_UP, KC_PGUP, KC_PGDN, KC_NO, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_NO, KC_NO, KC_NO, KC_ENT,
|
||||
KC_LSFT, KC_PSCR, KC_NO, KC_HOME, KC_END, KC_NO, KC_NO, KC_NO, KC_MS_BTN3, KC_NO, KC_NO, KC_NO, KC_NO, KC_RSFT, MO(2),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_NO, KC_TRNS, KC_RCTL),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET,
|
||||
KC_NO, BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_INC, BL_DEC, BL_BRTG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, RGB_SPI, RGB_SPD, KC_NO, KC_NO,
|
||||
KC_NO, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO)
|
||||
};
|
||||
|
||||
const rgblight_segment_t PROGMEM my_0_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0, 6, HSV_CYAN},
|
||||
{6, 6, HSV_BLUE}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{1, 4, HSV_GREEN},
|
||||
{7, 4, HSV_GREEN}
|
||||
);
|
||||
const rgblight_segment_t PROGMEM my_2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{1, 4, HSV_PURPLE},
|
||||
{7, 4, HSV_PURPLE}
|
||||
);
|
||||
|
||||
const rgblight_segment_t PROGMEM my_caps_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{0, 1, HSV_RED},
|
||||
{5, 1, HSV_RED},
|
||||
{6, 1, HSV_RED},
|
||||
{11, 1, HSV_RED}
|
||||
);
|
||||
|
||||
// Now define the array of layers. Later layers take precedence
|
||||
const rgblight_segment_t* const PROGMEM my_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
my_0_layer,
|
||||
my_1_layer,
|
||||
my_2_layer,
|
||||
my_caps_layer
|
||||
);
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Enable the LED layers
|
||||
rgblight_layers = my_layers;
|
||||
layer_state_set_user(layer_state);
|
||||
};
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
rgblight_set_layer_state(0, layer_state_cmp(state, 0));
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||
return state;
|
||||
};
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
rgblight_set_layer_state(3, led_state.caps_lock);
|
||||
return true;
|
||||
};
|
||||
|
||||
/* // EEPROM Reset Function
|
||||
void eeconfig_init_user(void) {
|
||||
backlight_enable(); // Enable backlight by default
|
||||
rgblight_enable(); // Enable RGB by default
|
||||
rgblight_sethsv(HSV_BLUE); // Set it to orange by default
|
||||
}; */
|
||||
33
keyboards/xiudi/xd60/keymaps/fvolpe83/readme.md
Executable file
33
keyboards/xiudi/xd60/keymaps/fvolpe83/readme.md
Executable file
@@ -0,0 +1,33 @@
|
||||
# fvolpe83's keymap for XIUDI's 60% XD60 PCB rev3
|
||||
|
||||
3 layers in ISO:
|
||||
|
||||
- 0 for ISO querty with split backspace and split right shift
|
||||
- 1 for arrows and mouse
|
||||
- 2 for backlight
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
## Additional Notes
|
||||
|
||||
RGB lighting enabled and goes to sleep with the host, each layer has its own color, caps layer is still there (can be enabled via software) but acts as FN
|
||||
|
||||
- 0 = cyan/blue
|
||||
- caps = red
|
||||
- 1 = green
|
||||
- 2 = purple
|
||||
|
||||
tapping toggle has been defined to 3 in the separate config.h
|
||||
|
||||
via has been enabled
|
||||
|
||||
## Build
|
||||
|
||||
To build the keymap, simply run:
|
||||
|
||||
make xd60/rev3:fvolpe83 # XD60 rev3
|
||||
|
||||
|
||||

|
||||
1
keyboards/xiudi/xd60/keymaps/fvolpe83/rules.mk
Executable file
1
keyboards/xiudi/xd60/keymaps/fvolpe83/rules.mk
Executable file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
33
keyboards/xiudi/xd60/keymaps/iso/keymap.c
Normal file
33
keyboards/xiudi/xd60/keymaps/iso/keymap.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_BL,
|
||||
_FL,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
//,: Base Layer
|
||||
[_BL] = LAYOUT_60_iso(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, 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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
||||
),
|
||||
|
||||
//,: Function Layer
|
||||
[_FL] = LAYOUT_60_iso(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||
XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, BL_DEC, BL_INC,
|
||||
XXXXXXX, KC_MPLY, KC_MSTP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_ENT,
|
||||
KC_LSFT, RGB_TOG, RGB_MOD, KC_CUT, KC_COPY, KC_PSTE, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
||||
)
|
||||
|
||||
};
|
||||
|
||||
// Loop
|
||||
void matrix_scan_user(void) {
|
||||
// Empty
|
||||
};
|
||||
20
keyboards/xiudi/xd60/keymaps/iso/readme.md
Normal file
20
keyboards/xiudi/xd60/keymaps/iso/readme.md
Normal file
@@ -0,0 +1,20 @@
|
||||
# iso Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||
iso Keymap for XD60.
|
||||
|
||||
## Keymap
|
||||
|
||||
### Base Layer
|
||||
|
||||

|
||||
|
||||
### Function Layer
|
||||
|
||||

|
||||
|
||||
## Build
|
||||
|
||||
To build the default keymap, simply run:
|
||||
|
||||
make xd60/rev2:iso # XD60 rev2
|
||||
make xd60/rev3:iso # XD60 rev3
|
||||
44
keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c
Normal file
44
keyboards/xiudi/xd60/keymaps/kmontag42/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
#include "backlight.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_LEAD, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DOT, KC_ENT, \
|
||||
KC_LSPO, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSPC, KC_RGUI, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, MO(1), KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
|
||||
};
|
||||
|
||||
// Loop
|
||||
void matrix_scan_user(void) {
|
||||
static uint8_t old_layer = 255;
|
||||
uint8_t new_layer = biton32(layer_state);
|
||||
|
||||
if (old_layer != new_layer) {
|
||||
switch (new_layer) {
|
||||
case 0:
|
||||
rgblight_mode(1);
|
||||
rgblight_setrgb(0xFF, 0xFF, 0xFF);
|
||||
break;
|
||||
case 1:
|
||||
rgblight_mode(18);
|
||||
rgblight_setrgb(0x00, 0xFF, 0xFF);
|
||||
break;
|
||||
}
|
||||
|
||||
old_layer = new_layer;
|
||||
}
|
||||
};
|
||||
18
keyboards/xiudi/xd60/keymaps/kmontag42/readme.md
Normal file
18
keyboards/xiudi/xd60/keymaps/kmontag42/readme.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# KMontag42's XD60/XD64 Keymap and Layout
|
||||
|
||||
[](http://spacemacs.org)
|
||||
|
||||
## Additional Notes
|
||||
This layout is WIP for me as I use my shiny new keyboard more and more. I will work to keep this updated.
|
||||
|
||||
## Notable features
|
||||
* Arrows only on the bottom row
|
||||
** i prefer vim style movement, so this works well for me
|
||||
* Layer based RGB lighting
|
||||
** i use rgb lights to determine what layer is currently active
|
||||
* Maximum key usage
|
||||
** unless someone tells me otherwise, I believe this is the maximum number of keys the board can support without PCB modding
|
||||
* I use emacs, which could account for some of the oddities in my layout and macros
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60:kmontag42`.
|
||||
1
keyboards/xiudi/xd60/keymaps/kmontag42/rules.mk
Normal file
1
keyboards/xiudi/xd60/keymaps/kmontag42/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
LEADER_ENABLE = yes
|
||||
22
keyboards/xiudi/xd60/keymaps/krusli/keymap.c
Normal file
22
keyboards/xiudi/xd60/keymaps/krusli/keymap.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
#define _BASE 0
|
||||
#define _FN 1
|
||||
|
||||
/* HHKB-like layout for standard 60% layout with split RShift */
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, _______, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, MO(1), \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, _______, KC_APP, KC_RCTL),
|
||||
|
||||
[_FN] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, \
|
||||
RESET, RGB_TOG, RGB_MOD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_SAD, RGB_SAI, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, KC_INS, \
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_NO, _______, \
|
||||
_______, KC_NO, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______, _______, \
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
7
keyboards/xiudi/xd60/keymaps/krusli/readme.md
Normal file
7
keyboards/xiudi/xd60/keymaps/krusli/readme.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# krusli's Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||
## Additional Notes
|
||||
Keymap for the XD60 (ANSI) with 2.25u left shift, split right shift. HHKB-like function layer.
|
||||
|
||||
## Build
|
||||
To build this keymap, simply run `make xd60:krusli` on the top-level directory for QMK.
|
||||
1
keyboards/xiudi/xd60/keymaps/melka/.gitignore
vendored
Normal file
1
keyboards/xiudi/xd60/keymaps/melka/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
passwd.h
|
||||
20
keyboards/xiudi/xd60/keymaps/melka/config.h
Normal file
20
keyboards/xiudi/xd60/keymaps/melka/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#if __GNUC__ > 5
|
||||
# if __has_include("passwd.h")
|
||||
# include "passwd.h"
|
||||
# endif // if file exists
|
||||
#endif // __GNUC__
|
||||
|
||||
#ifndef PASSWORD_A
|
||||
#define PASSWORD_A "1234567890"
|
||||
#endif
|
||||
|
||||
#ifndef PASSWORD_B
|
||||
#define PASSWORD_B "pass123"
|
||||
#endif
|
||||
|
||||
#define RGBLIGHT_LAYERS
|
||||
|
||||
#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_5
|
||||
#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_MINS
|
||||
165
keyboards/xiudi/xd60/keymaps/melka/keymap.c
Normal file
165
keyboards/xiudi/xd60/keymaps/melka/keymap.c
Normal file
@@ -0,0 +1,165 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
/*
|
||||
Security Note: While it is possible to use macros to send passwords, credit card numbers,
|
||||
and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold
|
||||
of your keyboard will be able to access that information by opening a text editor.
|
||||
*/
|
||||
enum custom_keycodes
|
||||
{
|
||||
PASS_A = SAFE_RANGE,
|
||||
PASS_B
|
||||
};
|
||||
|
||||
#define ___ KC_NO
|
||||
|
||||
#define LAYOUT_melka( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||
K40, K41, K42, K43, K44, K45, K46, K47, K48) \
|
||||
{ \
|
||||
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D}, \
|
||||
{K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___}, \
|
||||
{K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K1D}, \
|
||||
{K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E, K3D}, \
|
||||
{K40, K41, K42, ___, ___, K43, ___, K3C, K46, K0E, K44, K45, K47, K48} \
|
||||
}
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// 0: Base Layer
|
||||
LAYOUT_melka(
|
||||
KC_NUBS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_ENT,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS,
|
||||
MT(KC_LSFT, KC_5), KC_GRV, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT(KC_RSFT, KC_MINS), KC_UP, MO(1),
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_melka(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
||||
_______, KC_WH_U, KC_UP, KC_WH_D, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, _______,
|
||||
TO(2), TO(3), _______, KC_APP, BL_STEP, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_VOLU, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_MUTE),
|
||||
|
||||
// 2: RGB Layer
|
||||
LAYOUT_melka(
|
||||
RGB_TOG, RGB_M_P, RGB_RMOD, RGB_MOD, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______, _______, RESET,
|
||||
_______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
TO(0), _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, PASS_A, PASS_B, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
// 3: Keypad Layer
|
||||
LAYOUT_melka(
|
||||
KC_ESC, _______, _______, _______, _______, _______, _______, _______, _______, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
TO(0), _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, TO(0),
|
||||
_______, _______, _______, _______, KC_P0, KC_P0, KC_PDOT, KC_PENT, _______)
|
||||
};
|
||||
|
||||
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
|
||||
const rgblight_segment_t PROGMEM rgb_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{2, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
|
||||
{6, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
|
||||
);
|
||||
// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
|
||||
const rgblight_segment_t PROGMEM rgb_function_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{9, 2, HSV_CYAN}
|
||||
);
|
||||
// Light LEDs 11 & 12 in purple when keyboard layer 2 is active
|
||||
const rgblight_segment_t PROGMEM rgb_backlight_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{10, 2, HSV_PURPLE}
|
||||
);
|
||||
const rgblight_segment_t PROGMEM rgb_keypad_layer[] = RGBLIGHT_LAYER_SEGMENTS(
|
||||
{4, 4, HSV_RED}
|
||||
);
|
||||
// Now define the array of layers. Later layers take precedence
|
||||
const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
|
||||
rgb_capslock_layer,
|
||||
rgb_function_layer,
|
||||
rgb_backlight_layer, // Overrides caps lock layer
|
||||
rgb_keypad_layer // Overrides other layers
|
||||
);
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
// Both layers will light up if both kb layers are active
|
||||
rgblight_set_layer_state(1, layer_state_cmp(state, 1));
|
||||
rgblight_set_layer_state(2, layer_state_cmp(state, 2));
|
||||
return state;
|
||||
}
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
rgblight_set_layer_state(0, led_state.caps_lock);
|
||||
return true;
|
||||
}
|
||||
|
||||
void keyboard_post_init_user(void) {
|
||||
// Enable the LED layers
|
||||
rgblight_layers = rgb_layers;
|
||||
}
|
||||
// Loop
|
||||
void matrix_scan_user(void) {
|
||||
// Empty
|
||||
};
|
||||
|
||||
static bool control_disabled = false;
|
||||
static bool delete_pressed = false;
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record)
|
||||
{
|
||||
if (keycode == KC_BSPC)
|
||||
{
|
||||
if (record->event.pressed)
|
||||
{
|
||||
if (keyboard_report->mods & MOD_BIT(KC_LCTL))
|
||||
{
|
||||
delete_pressed = true;
|
||||
control_disabled = true;
|
||||
unregister_code(KC_LCTL);
|
||||
register_code(KC_DEL);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (delete_pressed)
|
||||
{
|
||||
delete_pressed = false;
|
||||
unregister_code(KC_DEL);
|
||||
|
||||
if (control_disabled)
|
||||
{
|
||||
control_disabled = false;
|
||||
register_code(KC_LCTL);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (keycode == KC_LCTL && !record->event.pressed && delete_pressed)
|
||||
{
|
||||
delete_pressed = false;
|
||||
control_disabled = false;
|
||||
unregister_code(KC_DEL);
|
||||
register_code(KC_BSPC);
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keycode)
|
||||
{
|
||||
case PASS_A:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
SEND_STRING(PASSWORD_A "\n");
|
||||
}
|
||||
break;
|
||||
case PASS_B:
|
||||
if (record->event.pressed)
|
||||
{
|
||||
SEND_STRING(PASSWORD_B "\n");
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
10
keyboards/xiudi/xd60/keymaps/melka/passwd_template.h
Normal file
10
keyboards/xiudi/xd60/keymaps/melka/passwd_template.h
Normal file
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
To define your password, rename this file to passwd.h and edit the defines below.
|
||||
|
||||
Security Note: While it is possible to use macros to send passwords, credit card numbers,
|
||||
and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold
|
||||
of your keyboard will be able to access that information by opening a text editor.
|
||||
*/
|
||||
|
||||
#define PASSWORD_A "enter your first password here"
|
||||
#define PASSWORD_B "second password if you need"
|
||||
21
keyboards/xiudi/xd60/keymaps/melka/readme.md
Normal file
21
keyboards/xiudi/xd60/keymaps/melka/readme.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# melka's keymap for XIUDI's 60% XD60 rev3 PCB
|
||||
|
||||
## Additional Notes
|
||||
Custom Keymap for XD60 rev3. French Mac layout.
|
||||
|
||||
## Security Note
|
||||
This keymap includes macros for entering passwords.
|
||||
|
||||
While it is possible to use macros to send passwords, credit card numbers,
|
||||
and other sensitive information it is a supremely bad idea to do so. Anyone who gets a hold
|
||||
of your keyboard will be able to access that information by opening a text editor.
|
||||
|
||||
Use this functionnality at your own risk.
|
||||
|
||||
To define your password, rename passwd_template.h file to passwd.h and edit the defines inside.
|
||||
|
||||
## Build
|
||||
|
||||
To build this keymap, simply run:
|
||||
|
||||
make xd60/rev3:melka # XD60 rev3
|
||||
26
keyboards/xiudi/xd60/keymaps/petesmom/README.md
Normal file
26
keyboards/xiudi/xd60/keymaps/petesmom/README.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# pete's mom Layout
|
||||
|
||||
Customized xd60 keymap based on yuuki's but a step sideways with Mac support. For Pete on his 40th
|
||||
|
||||
## Programming Instructions
|
||||
|
||||
Change the layout in `keymap.c` then run `make xd60-petesmom`. The compiled file will be located in `.build/xd60_petesmom.hex` relative to the project root. To flash it onto your keyboard, use whatever program works on your OS. I personally use `dfu-programmer`, and run:
|
||||
|
||||
* `sudo dfu-programmer atmega32u4 erase`
|
||||
* `sudo dfu-programmer atmega32u4 flash .build/xd60-petesmom.hex`
|
||||
* `sudo dfu-programmer atmega32u4 start`
|
||||
|
||||
## Layout
|
||||
|
||||
See `keymap.c` for the details, but here are the important features:
|
||||
|
||||
| Key | Function |
|
||||
| -------------------------- | ---------------------------------- |
|
||||
| ESC | ESC when pressed alone but acts as ~ when pressed with Shift or LGUI down |
|
||||
| FN + ESC | Grave |
|
||||
| Right Shift | When tapped generates / |
|
||||
| FN + HJKL | Arrow Keys |
|
||||
| FN + C | ^ |
|
||||
| FN + V | & |
|
||||
| FN + , . RShift | Mac Vol - + Mute |
|
||||
| FN + P [ ] \ | Mac Play/Pause, Prev Track, Next Track, Stop |
|
||||
28
keyboards/xiudi/xd60/keymaps/petesmom/keymap.c
Normal file
28
keyboards/xiudi/xd60/keymaps/petesmom/keymap.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
#define BASE 0
|
||||
#define FN 1
|
||||
|
||||
#define CTL_SLSH CTL_T(KC_SLSH)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[BASE] = LAYOUT_all(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, RSFT_T(KC_SLASH), KC_UP, KC_RCTL, \
|
||||
CTL_SLSH, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(FN), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
// 1: Function Layer
|
||||
[FN] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
KC_TRNS, RGB_MOD, RGB_VAI, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MRWD, KC_MFFD, KC_MSTP, \
|
||||
KC_TRNS, RGB_TOG, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_ENT, \
|
||||
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_CIRC, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS,KC__VOLDOWN,KC__VOLUP,KC_NO, KC__MUTE,KC_PGUP, RESET, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN,KC_END
|
||||
),
|
||||
|
||||
};
|
||||
2
keyboards/xiudi/xd60/keymaps/rooski/instructions.txt
Normal file
2
keyboards/xiudi/xd60/keymaps/rooski/instructions.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
cd c:/QMK
|
||||
make xd60 / / / / / / / /
|
||||
57
keyboards/xiudi/xd60/keymaps/rooski/keymap.c
Normal file
57
keyboards/xiudi/xd60/keymaps/rooski/keymap.c
Normal file
@@ -0,0 +1,57 @@
|
||||
// XD60 Rev 2.0
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
//#include "action_tapping.h"
|
||||
#include "backlight.h"
|
||||
|
||||
// Define tapping term
|
||||
#define TAPPING_TERM 150
|
||||
|
||||
// Layer definitions~
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
#define _LK 2
|
||||
|
||||
// RShift TapHold
|
||||
#define RSTT MT(MOD_RSFT, KC_SLSH)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------.
|
||||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |
|
||||
* |-----------------------------------------------------------|
|
||||
* | Caps | A| S| D| F| G| H| J| K| L| ;| '| Return |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .|Shift| Up |Del |
|
||||
* |-----------------------------------------------------------|
|
||||
* |Ctrl|Gui |Alt | Space |Ctrl|Fn| LT| DN | RT |
|
||||
* `-----------------------------------------------------------'
|
||||
*/
|
||||
// 0: Base Layer
|
||||
[_BL] = LAYOUT_all(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, XXXXXXX, KC_ENT, \
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, XXXXXXX, RSTT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
[_FL] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG(_LK), _______, KC_HOME, _______, KC_END),
|
||||
|
||||
// 2: Lighting Keys
|
||||
[_LK] = LAYOUT_all(
|
||||
TO(_BL), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, RESET, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
RESET , KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, XXXXXXX, XXXXXXX, RGB_SAD, RGB_SAI, RGB_HUD, RGB_HUI, XXXXXXX, XXXXXXX, RGB_VAI, BL_STEP, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TO(_BL), XXXXXXX, RGB_TOG, RGB_VAD, RGB_MOD),
|
||||
|
||||
};
|
||||
24
keyboards/xiudi/xd60/keymaps/semicolonsnet/keymap.c
Normal file
24
keyboards/xiudi/xd60/keymaps/semicolonsnet/keymap.c
Normal file
@@ -0,0 +1,24 @@
|
||||
/* Copyright 2021 Chase Nordengren
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_SLSH), KC_UP, KC_DEL, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
[1] = LAYOUT_all(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_VOLU, KC_VOLD, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, LCAG(KC_SCLN), LCAG(KC_QUOT), KC_NO, KC_TRNS, KC_TRNS, KC_NO, LCAG(KC_Z), LCAG(KC_X), LCAG(KC_ASTR), LCAG(KC_V), LCAG(KC_B), LCAG(KC_N), LCAG(KC_M), LCAG(KC_COMM), KC_INS, KC_DEL, KC_TRNS, KC_PGUP, KC_INS, KC_TRNS, KC_TRNS, KC_TRNS, LCAG(KC_SPC), KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END)
|
||||
};
|
||||
|
||||
// Loop
|
||||
13
keyboards/xiudi/xd60/keymaps/semicolonsnet/readme.md
Normal file
13
keyboards/xiudi/xd60/keymaps/semicolonsnet/readme.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Semicolonsnet Keymap for XIUDI's 60% XD60 PCB
|
||||
|
||||

|
||||
|
||||
## Additional Notes
|
||||
Custom Keymap for XD60 - uses a META key and lots of shortcut keys that are later software controlled
|
||||
|
||||
## Build
|
||||
|
||||
To build the default keymap, simply run:
|
||||
|
||||
make xd60/rev2:default # XD60 rev2
|
||||
make xd60/rev3:default # XD60 rev3
|
||||
34
keyboards/xiudi/xd60/keymaps/split_bksp_arrows/keymap.c
Normal file
34
keyboards/xiudi/xd60/keymaps/split_bksp_arrows/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* (Base Layer) Default Layer
|
||||
* ,-----------------------------------------------------------.
|
||||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| \|Ins|
|
||||
* |-----------------------------------------------------------|
|
||||
* | Tab| Q| W| E| R| T| Y| U| I| O| P| [| ]| Bksp|
|
||||
* |-----------------------------------------------------------|
|
||||
* | Fn| A| S| D| F| G| H| J| K| L| ;| '| Return|
|
||||
* |-----------------------------------------------------------|
|
||||
* | Shift| Z| X| C| V| B| N| M| ,| .| /| Up | Del|
|
||||
* |-----------------------------------------------------------|
|
||||
* |Ctrl| Alt| Super| Space |Caps| Shft| LT| DN| RT|
|
||||
* `-----------------------------------------------------------'
|
||||
*/
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_INS, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
|
||||
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_TRNS, KC_ENT, \
|
||||
KC_LSFT, KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SLSH, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_CAPS, KC_RSFT, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, BL_TOGG, BL_STEP, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_DEL, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN, KC_END),
|
||||
|
||||
};
|
||||
8
keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md
Normal file
8
keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## Instructions
|
||||
make xd60:split_bksp_arrows
|
||||
|
||||
## Layout
|
||||

|
||||
|
||||
## KLE Link
|
||||
http://www.keyboard-layout-editor.com/#/gists/5bb96ed3f4974bf74b1c448c8349d01f
|
||||
30
keyboards/xiudi/xd60/keymaps/stanleylai/keymap.c
Normal file
30
keyboards/xiudi/xd60/keymaps/stanleylai/keymap.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, \
|
||||
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MO(2), KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
KC_CAPS, KC_MPRV, KC_UP, KC_MNXT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \
|
||||
MO(1), KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_VOLD, KC_MUTE, KC_VOLU,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_INS, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_MPLY, KC_RGUI, KC_RALT, KC_HOME, KC_PGDOWN,KC_END),
|
||||
|
||||
// 2: RGB Layer
|
||||
LAYOUT_all(
|
||||
KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, RGB_TOG, RGB_MOD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, \
|
||||
KC_NO, KC_NO, RGB_HUD, RGB_SAD, RGB_VAD,KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, MO(2), KC_NO, KC_NO, \
|
||||
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),
|
||||
|
||||
};
|
||||
56
keyboards/xiudi/xd60/keymaps/styr/keymap.c
Normal file
56
keyboards/xiudi/xd60/keymaps/styr/keymap.c
Normal file
@@ -0,0 +1,56 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
#define _LL 2
|
||||
|
||||
enum custom_keycodes {
|
||||
MACRO_STRING
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[_BL] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
MO(_LL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL, \
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(_FL), KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
[_FL] = LAYOUT_all(
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
XXXXXXX, RGB_TOG, RGB_MOD, RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_HUI, RGB_HUD, XXXXXXX, RGB_VAI, RGB_VAD, 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, KC_MS_BTN1, KC_MS_UP, KC_MS_BTN2, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, MACRO_STRING, XXXXXXX, F(0), KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT),
|
||||
|
||||
[_LL] = LAYOUT_all(
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC__MUTE, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, KC_MPLY, \
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, F(0), KC_MRWD, KC_VOLD, KC_MFFD),
|
||||
|
||||
|
||||
};
|
||||
|
||||
// Macros
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case MACRO_STRING:
|
||||
if(record->event.pressed){
|
||||
SEND_STRING("My Custom String");
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// Loop
|
||||
void matrix_scan_user(void) {
|
||||
// Empty
|
||||
};
|
||||
7
keyboards/xiudi/xd60/keymaps/styr/readme.md
Normal file
7
keyboards/xiudi/xd60/keymaps/styr/readme.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Keyboard Layout by Styr
|
||||
|
||||
## Additional Notes
|
||||
Default Keymap for XD60 as indicated on the original sale page.
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60/rev3:styr`.
|
||||
22
keyboards/xiudi/xd60/keymaps/supercoffee/keymap.c
Normal file
22
keyboards/xiudi/xd60/keymaps/supercoffee/keymap.c
Normal file
@@ -0,0 +1,22 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
LAYOUT_all(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NO, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSHIFT, KC_NO, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_NO, KC_RGUI, KC_RCTL),
|
||||
|
||||
// 1: Function Layer
|
||||
LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14, \
|
||||
KC_NO, KC_NO, KC_UP, KC_END, KC_NO, KC_NO, KC_CALC, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DEL, \
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_PGUP, KC_NO, KC_ENT, \
|
||||
KC_LSFT, KC_NO, KC_NO, KC_DEL, BL_STEP,KC_NO, KC_NO, KC_VOLD, KC_VOLU,KC_MUTE, KC_NO, KC_PGDN, KC_RSFT, KC_NO, KC_NO, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_NO, KC_RGUI, KC_RCTL),
|
||||
|
||||
};
|
||||
9
keyboards/xiudi/xd60/keymaps/supercoffee/readme.md
Normal file
9
keyboards/xiudi/xd60/keymaps/supercoffee/readme.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Supercoffee Keymap for DeskCandy 60% XD60 PCB
|
||||
|
||||

|
||||
|
||||
## Additional Notes
|
||||
60% Keymap for XD60 with GH60 ANSI layout. Arrow keys mapped to WASD in function layer.
|
||||
|
||||
## Build
|
||||
To build the default keymap, simply run `make xd60:supercoffee`.
|
||||
16
keyboards/xiudi/xd60/keymaps/suryanisaac/README.md
Normal file
16
keyboards/xiudi/xd60/keymaps/suryanisaac/README.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# suryanisaac's layout
|
||||
|
||||
Just my custom layout, works really well for me so hopefully you guys like it.
|
||||
|
||||
## Features:
|
||||
|
||||
- Arrow keys on IJKL on Layer 1
|
||||
- Layer 1 toggle is the Caps Lock (No one likes caps lock)
|
||||
- Nav keys close to arrow keys, good for programming
|
||||
- Non-convoluted media control
|
||||
- For Mac or Linux with Kinto
|
||||
- Left and Right brackets on left shift and right shift
|
||||
- Layer 1 has F1 to F12 on number keys
|
||||
|
||||
|
||||
Pictures Available Here: https://imgur.com/a/7UzkhOu
|
||||
29
keyboards/xiudi/xd60/keymaps/suryanisaac/keymap.c
Normal file
29
keyboards/xiudi/xd60/keymaps/suryanisaac/keymap.c
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright 2021 Suryan Isaac
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
/* THIS FILE WAS GENERATED!
|
||||
*
|
||||
* This file was generated by qmk json2c. You may or may not want to
|
||||
* edit it directly.
|
||||
*/
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_60_ansi(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSPC, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, TG(1)),
|
||||
[1] = LAYOUT_60_ansi(RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_UP, KC_PGDN, KC_END, KC_TRNS, KC_TRNS, KC_PSCR, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
||||
|
||||
35
keyboards/xiudi/xd60/keymaps/via/keymap.c
Normal file
35
keyboards/xiudi/xd60/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,35 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT,
|
||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
// 1: Function Layer
|
||||
[1] = LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_F14,
|
||||
KC_NO, KC_WH_U, KC_UP, KC_WH_D, KC_BSPC,KC_HOME,KC_CALC,KC_NO, KC_INS, KC_NO, KC_PSCR, KC_SLCK, KC_PAUS, KC_DEL,
|
||||
KC_NO, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, KC_END, KC_PGDN,KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGUP, KC_NO, KC_ENT,
|
||||
KC_LSFT, KC_NO, KC_NO, KC_APP, BL_STEP,KC_NO, KC_NO, KC_VOLD,KC_VOLU,KC_MUTE, KC_END, KC_PGDN, KC_RSFT, KC_PGUP, KC_INS,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, _______, KC_HOME, KC_PGDOWN,KC_END),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[3] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
};
|
||||
1
keyboards/xiudi/xd60/keymaps/via/readme.md
Normal file
1
keyboards/xiudi/xd60/keymaps/via/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The VIA default layout
|
||||
1
keyboards/xiudi/xd60/keymaps/via/rules.mk
Normal file
1
keyboards/xiudi/xd60/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
31
keyboards/xiudi/xd60/keymaps/yuuki/README.md
Normal file
31
keyboards/xiudi/xd60/keymaps/yuuki/README.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# yuuki's Layout
|
||||
|
||||
Customized xd60 keymap with inspirations from HHKB and the layout I used on my Vortex Core (a 40% keyboard).
|
||||
|
||||
## Programming Instructions
|
||||
|
||||
Change the layout in `keymap.c` then run `make xd60:yuuki`. The compiled file will be located in `.build/xd60_yuuki.hex` relative to the project root. To flash it onto your keyboard, use whatever program works on your OS. I personally use `dfu-programmer`, and run:
|
||||
|
||||
* reset keyboard by pressing the reset button on the back of the PCB
|
||||
* `sudo dfu-programmer atmega32u4 erase`
|
||||
* `sudo dfu-programmer atmega32u4 flash .build/xd60_yuuki.hex`
|
||||
* `sudo dfu-programmer atmega32u4 start`
|
||||
|
||||
## Layout
|
||||
|
||||

|
||||
|
||||
Upper row is default layer, bottom row is function layer. I Didn't include the symbols, such as @,# or $, as their placement is just as you'd expect it.
|
||||
|
||||
## Summary of Changes
|
||||
|
||||
| Key | Function |
|
||||
| -------------------------- | ---------------------------------- |
|
||||
| Capslock | Forward Slash when tapped and Left Control when held |
|
||||
| Left Control | Temporarily activate function layer |
|
||||
| FN + ESC | Grave |
|
||||
| Space Cadet Shift | Left Shift tapped writes ( and Right Shift tapped writes ) |
|
||||
| FN + HJKL | Arrow Keys |
|
||||
| Rightmost key in second row from bottom | Temporarily activate function layer |
|
||||
| FN + C | ^ |
|
||||
| FN + V | & (both for convenience as I use these keys a lot with VIM navigation and I find them hard reach) |
|
||||
28
keyboards/xiudi/xd60/keymaps/yuuki/keymap.c
Normal file
28
keyboards/xiudi/xd60/keymaps/yuuki/keymap.c
Normal file
@@ -0,0 +1,28 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "action_layer.h"
|
||||
|
||||
#define BASE 0
|
||||
#define FN 1
|
||||
|
||||
#define CTL_SLSH CTL_T(KC_SLSH)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
// 0: Base Layer
|
||||
[BASE] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, \
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
CTL_SLSH, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NO, KC_ENT, \
|
||||
KC_LSPO, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_NO, KC_RSPC, KC_UP, MO(FN), \
|
||||
MO(FN), KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
// 1: Function Layer
|
||||
[FN] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||
KC_TRNS, RGB_MOD, RGB_VAI, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, \
|
||||
KC_TRNS, RGB_TOG, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_TRNS, KC_TRNS, KC_NO, KC_ENT, \
|
||||
KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_CIRC, KC_AMPR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, \
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDOWN,KC_END
|
||||
),
|
||||
|
||||
};
|
||||
17
keyboards/xiudi/xd60/readme.md
Normal file
17
keyboards/xiudi/xd60/readme.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# XD60
|
||||
|
||||
Compact 60% with arrows.
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: QMK Community
|
||||
* Hardware Supported: XD60 PCB rev2 & rev3
|
||||
* Hardware Availability: [Drop.com](https://www.drop.com/buy/xd60-xd64-custom-mechanical-keyboard-kit?mode=guest_open), [KPRepublic on AliExpress](https://www.aliexpress.com/item/32814945677.html)
|
||||
* Schematic Availability: Public Domain [on EasyEDA](https://easyeda.com/langzisanshao/xd60)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make xd60/rev2:default # rev2
|
||||
make xd60/rev3:default # rev3
|
||||
|
||||
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).
|
||||
0
keyboards/xiudi/xd60/rev2/.noci
Normal file
0
keyboards/xiudi/xd60/rev2/.noci
Normal file
71
keyboards/xiudi/xd60/rev2/config.h
Normal file
71
keyboards/xiudi/xd60/rev2/config.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7844 // "XD"
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER XIUDI
|
||||
#define PRODUCT XD60v2
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* 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 MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* Backlight Setup */
|
||||
#define BACKLIGHT_PIN F5
|
||||
#define BACKLIGHT_LEVELS 6
|
||||
#define BACKLIGHT_ON_STATE 0
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* RGB Underglow
|
||||
* F6 PIN for XD60v2 that has pre-soldered WS2812 LEDs
|
||||
*/
|
||||
#define RGB_DI_PIN F6
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 6 // Number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
/* 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
|
||||
28
keyboards/xiudi/xd60/rev2/rules.mk
Normal file
28
keyboards/xiudi/xd60/rev2/rules.mk
Normal file
@@ -0,0 +1,28 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # 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 # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
|
||||
71
keyboards/xiudi/xd60/rev3/config.h
Normal file
71
keyboards/xiudi/xd60/rev3/config.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
Copyright 2019 Rodrigo Feijao <hello@rodrigofeijao.com>
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7844 // "XD"
|
||||
#define PRODUCT_ID 0x6363
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER XIUDI
|
||||
#define PRODUCT XD60rev3
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 14
|
||||
|
||||
/*
|
||||
* 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 MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* Backlight Setup */
|
||||
#define BACKLIGHT_PIN F5
|
||||
#define BACKLIGHT_LEVELS 6
|
||||
#define BACKLIGHT_ON_STATE 0
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* RGB Underglow
|
||||
* F6 PIN for XD60v3 that has pre-soldered LEDs
|
||||
*/
|
||||
#define RGB_DI_PIN F6
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 12
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
#define RGBLIGHT_VAL_STEP 17
|
||||
|
||||
/* 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
|
||||
28
keyboards/xiudi/xd60/rev3/rules.mk
Normal file
28
keyboards/xiudi/xd60/rev3/rules.mk
Normal file
@@ -0,0 +1,28 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# ATmega32A bootloadHID
|
||||
# ATmega328P USBasp
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
# Build Options
|
||||
BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = yes # 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 # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||
AUDIO_ENABLE = no # Audio output on port C6
|
||||
UNICODE_ENABLE = no # Unicode
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||
RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
|
||||
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_iso 60_iso_split_bs_rshift
|
||||
33
keyboards/xiudi/xd60/xd60.c
Normal file
33
keyboards/xiudi/xd60/xd60.c
Normal file
@@ -0,0 +1,33 @@
|
||||
#include "xd60.h"
|
||||
|
||||
|
||||
extern inline void xd60_caps_led_on(void);
|
||||
extern inline void xd60_bl_led_on(void);
|
||||
|
||||
extern inline void xd60_caps_led_off(void);
|
||||
extern inline void xd60_bl_led_off(void);
|
||||
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
|
||||
xd60_caps_led_on();
|
||||
} else {
|
||||
xd60_caps_led_off();
|
||||
}
|
||||
|
||||
// if (usb_led & (1<<USB_LED_NUM_LOCK)) {
|
||||
// xd60_esc_led_on();
|
||||
// } else {
|
||||
// xd60_esc_led_off();
|
||||
// }
|
||||
|
||||
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
|
||||
// xd60_fn_led_on();
|
||||
// } else {
|
||||
// xd60_fn_led_off();
|
||||
// }
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
||||
89
keyboards/xiudi/xd60/xd60.h
Normal file
89
keyboards/xiudi/xd60/xd60.h
Normal file
@@ -0,0 +1,89 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* XD60 LEDs
|
||||
* GPIO pads
|
||||
* 0 F7 not connected
|
||||
* 1 F6 RGB PWM Underglow
|
||||
* 2 F5 Backlight LED
|
||||
* 3 F4 not connected
|
||||
* B2 Capslock LED
|
||||
* B0 not connected
|
||||
*/
|
||||
inline void xd60_caps_led_on(void) { DDRB |= (1<<2); PORTB &= ~(1<<2); }
|
||||
inline void xd60_bl_led_on(void) { DDRF |= (1<<5); PORTF &= ~(1<<5); }
|
||||
|
||||
inline void xd60_caps_led_off(void) { DDRB &= ~(1<<2); PORTB &= ~(1<<2); }
|
||||
inline void xd60_bl_led_off(void) { DDRF &= ~(1<<5); PORTF &= ~(1<<5); }
|
||||
|
||||
/* XD60 Keymap Definition Macro */
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K47, K3D, K3C, \
|
||||
K40, K41, K42, K45, K4A, K4B, K48, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, K47, K48, K49, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \
|
||||
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_iso( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_iso_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K49, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3C, \
|
||||
K40, K41, K42, K45, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
115
keyboards/xiudi/xd68/config.h
Normal file
115
keyboards/xiudi/xd68/config.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/*
|
||||
Copyright 2019 Michael Campbell
|
||||
|
||||
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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x7844 // "XD"
|
||||
#define PRODUCT_ID 0x6868
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER xiudi
|
||||
#define PRODUCT XD68
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
/*
|
||||
* 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 MATRIX_ROW_PINS { D0, D1, D2, D3, D5 }
|
||||
#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, F7 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_CAPS_LOCK_PIN B2
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
#define BACKLIGHT_PIN F5
|
||||
#define BACKLIGHT_LEVELS 6
|
||||
#define BACKLIGHT_BREATHING
|
||||
#define BREATHING_PERIOD 6
|
||||
#define BACKLIGHT_ON_STATE 0
|
||||
|
||||
/* 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
|
||||
|
||||
/* 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
|
||||
|
||||
/*
|
||||
* 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 NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
// ws2812 options
|
||||
#define RGB_DI_PIN F6 // pin the DI on the ws2812 is hooked-up to
|
||||
#define RGBLIGHT_ANIMATIONS // run RGB animations
|
||||
#define RGBLED_NUM 12 // number of LEDs
|
||||
#define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue
|
||||
#define RGBLIGHT_SAT_STEP 25 // units to step when in/decresing saturation
|
||||
#define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness)
|
||||
229
keyboards/xiudi/xd68/info.json
Normal file
229
keyboards/xiudi/xd68/info.json
Normal file
@@ -0,0 +1,229 @@
|
||||
{
|
||||
"keyboard_name": "xd68",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"width": 16,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi": {
|
||||
"key_count": 68,
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"1", "x":1, "y":0},
|
||||
{"label":"2", "x":2, "y":0},
|
||||
{"label":"3", "x":3, "y":0},
|
||||
{"label":"4", "x":4, "y":0},
|
||||
{"label":"5", "x":5, "y":0},
|
||||
{"label":"6", "x":6, "y":0},
|
||||
{"label":"7", "x":7, "y":0},
|
||||
{"label":"8", "x":8, "y":0},
|
||||
{"label":"9", "x":9, "y":0},
|
||||
{"label":"0", "x":10, "y":0},
|
||||
{"label":"-", "x":11, "y":0},
|
||||
{"label":"=", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Home", "x":15, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"[", "x":11.5, "y":1},
|
||||
{"label":"]", "x":12.5, "y":1},
|
||||
{"label":"\\", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Page Up", "x":15, "y":1},
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":";", "x":10.75, "y":2},
|
||||
{"label":"'", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"Page Down", "x":15, "y":2},
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":",", "x":9.25, "y":3},
|
||||
{"label":".", "x":10.25, "y":3},
|
||||
{"label":"/", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"Up", "x":14, "y":3},
|
||||
{"label":"End", "x":15, "y":3},
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Menu", "x":10, "y":4},
|
||||
{"label":"Ctrl", "x":11, "y":4},
|
||||
{"label":"Fn", "x":12, "y":4},
|
||||
{"label":"Left", "x":13, "y":4},
|
||||
{"label":"Down", "x":14, "y":4},
|
||||
{"label":"Right", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_split_bs": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"1", "x":1, "y":0},
|
||||
{"label":"2", "x":2, "y":0},
|
||||
{"label":"3", "x":3, "y":0},
|
||||
{"label":"4", "x":4, "y":0},
|
||||
{"label":"5", "x":5, "y":0},
|
||||
{"label":"6", "x":6, "y":0},
|
||||
{"label":"7", "x":7, "y":0},
|
||||
{"label":"8", "x":8, "y":0},
|
||||
{"label":"9", "x":9, "y":0},
|
||||
{"label":"0", "x":10, "y":0},
|
||||
{"label":"-", "x":11, "y":0},
|
||||
{"label":"=", "x":12, "y":0},
|
||||
{"label":"Grave.", "x":13, "y":0},
|
||||
{"label":"Backspace", "x":14, "y":0},
|
||||
{"label":"Home", "x":15, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"[", "x":11.5, "y":1},
|
||||
{"label":"]", "x":12.5, "y":1},
|
||||
{"label":"\\", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"Page Up", "x":15, "y":1},
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":";", "x":10.75, "y":2},
|
||||
{"label":"'", "x":11.75, "y":2},
|
||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25},
|
||||
{"label":"Page Down", "x":15, "y":2},
|
||||
{"label":"Shift", "x":0, "y":3, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":",", "x":9.25, "y":3},
|
||||
{"label":".", "x":10.25, "y":3},
|
||||
{"label":"/", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"Up", "x":14, "y":3},
|
||||
{"label":"End", "x":15, "y":3},
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Menu", "x":10, "y":4},
|
||||
{"label":"Ctrl", "x":11, "y":4},
|
||||
{"label":"Fn", "x":12, "y":4},
|
||||
{"label":"Left", "x":13, "y":4},
|
||||
{"label":"Down", "x":14, "y":4},
|
||||
{"label":"Right", "x":15, "y":4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso": {
|
||||
"key_count": 69,
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"1", "x":1, "y":0},
|
||||
{"label":"2", "x":2, "y":0},
|
||||
{"label":"3", "x":3, "y":0},
|
||||
{"label":"4", "x":4, "y":0},
|
||||
{"label":"5", "x":5, "y":0},
|
||||
{"label":"6", "x":6, "y":0},
|
||||
{"label":"7", "x":7, "y":0},
|
||||
{"label":"8", "x":8, "y":0},
|
||||
{"label":"9", "x":9, "y":0},
|
||||
{"label":"0", "x":10, "y":0},
|
||||
{"label":"-", "x":11, "y":0},
|
||||
{"label":"=", "x":12, "y":0},
|
||||
{"label":"Backspace", "x":13, "y":0, "w":2},
|
||||
{"label":"Home", "x":15, "y":0},
|
||||
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":1},
|
||||
{"label":"W", "x":2.5, "y":1},
|
||||
{"label":"E", "x":3.5, "y":1},
|
||||
{"label":"R", "x":4.5, "y":1},
|
||||
{"label":"T", "x":5.5, "y":1},
|
||||
{"label":"Y", "x":6.5, "y":1},
|
||||
{"label":"U", "x":7.5, "y":1},
|
||||
{"label":"I", "x":8.5, "y":1},
|
||||
{"label":"O", "x":9.5, "y":1},
|
||||
{"label":"P", "x":10.5, "y":1},
|
||||
{"label":"[", "x":11.5, "y":1},
|
||||
{"label":"]", "x":12.5, "y":1},
|
||||
{"label":"PgUp", "x":15, "y":1},
|
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":2},
|
||||
{"label":"S", "x":2.75, "y":2},
|
||||
{"label":"D", "x":3.75, "y":2},
|
||||
{"label":"F", "x":4.75, "y":2},
|
||||
{"label":"G", "x":5.75, "y":2},
|
||||
{"label":"H", "x":6.75, "y":2},
|
||||
{"label":"J", "x":7.75, "y":2},
|
||||
{"label":"K", "x":8.75, "y":2},
|
||||
{"label":"L", "x":9.75, "y":2},
|
||||
{"label":";", "x":10.75, "y":2},
|
||||
{"label":"'", "x":11.75, "y":2},
|
||||
{"label":"#", "x":12.75, "y":2},
|
||||
{"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||
{"label":"PgDn", "x":15, "y":2},
|
||||
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||
{"label":"\\", "x":1.25, "y":3},
|
||||
{"label":"Z", "x":2.25, "y":3},
|
||||
{"label":"X", "x":3.25, "y":3},
|
||||
{"label":"C", "x":4.25, "y":3},
|
||||
{"label":"V", "x":5.25, "y":3},
|
||||
{"label":"B", "x":6.25, "y":3},
|
||||
{"label":"N", "x":7.25, "y":3},
|
||||
{"label":"M", "x":8.25, "y":3},
|
||||
{"label":",", "x":9.25, "y":3},
|
||||
{"label":".", "x":10.25, "y":3},
|
||||
{"label":"/", "x":11.25, "y":3},
|
||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"Up", "x":14, "y":3},
|
||||
{"label":"End", "x":15, "y":3},
|
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"Menu", "x":10, "y":4},
|
||||
{"label":"Ctrl", "x":11, "y":4},
|
||||
{"label":"Fn", "x":12, "y":4},
|
||||
{"label":"Left", "x":13, "y":4},
|
||||
{"label":"Down", "x":14, "y":4},
|
||||
{"label":"Right", "x":15, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
48
keyboards/xiudi/xd68/keymaps/default/keymap.c
Normal file
48
keyboards/xiudi/xd68/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||
* |----------------------------------------------------------------|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|End |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |App|Ctrl|FN |Lef|Dow|Rig |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = LAYOUT_65_ansi(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||
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_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Keymap _FL: Function Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |~ `| F1|F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12|Del |Ins |
|
||||
* |----------------------------------------------------------------|
|
||||
* |RESET| |Up | | | | | | | | | | | | |
|
||||
* |----------------------------------------------------------------|
|
||||
* | |<- |Dn | ->| | | | | | | | | | |
|
||||
* |----------------------------------------------------------------|
|
||||
* |HUI |SAI|VAI|RGBMOD|BL-|BL |BL+| | | | |Play |V+ |Mut |
|
||||
* |----------------------------------------------------------------|
|
||||
* |HUD |SAD |VAD | RGB_Tog | | | | <M|V- |M> |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_FL] = LAYOUT_65_ansi(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
|
||||
RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE,
|
||||
RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
};
|
||||
5
keyboards/xiudi/xd68/keymaps/default/readme.md
Normal file
5
keyboards/xiudi/xd68/keymaps/default/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# XD68 layout for Default ANSI
|
||||
|
||||
```
|
||||
make xd68:default
|
||||
```
|
||||
48
keyboards/xiudi/xd68/keymaps/default_iso/keymap.c
Normal file
48
keyboards/xiudi/xd68/keymaps/default_iso/keymap.c
Normal file
@@ -0,0 +1,48 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
#define _BL 0
|
||||
#define _FL 1
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Keymap _BL: (Base Layer) Default Layer
|
||||
* ,----------------------------------------------------------------.
|
||||
* |Esc | 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| |PgUp|
|
||||
* |------------------------------------------------------- -----|
|
||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '| #|Entr|PgDn|
|
||||
* |----------------------------------------------------------------|
|
||||
* |Shift| \ | Z| X| C| V| B| N| M| ,| .| /|Rshift|Up|End |
|
||||
* |----------------------------------------------------------------|
|
||||
* |Ctrl|Win |Alt | Space |App|Ctrl |Fn|Lef|Dow|Rig |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_BL] = LAYOUT_65_iso(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RCTL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Keymap _FL1: Function Layer 1
|
||||
* ,----------------------------------------------------------------.
|
||||
* |~ `| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete| Ins|
|
||||
* |----------------------------------------------------------------|
|
||||
* |RESET| | ↑ | | | | | | | | | | | | |
|
||||
* |------------------------------------------------------- -----|
|
||||
* | | ← | ↓ | → | | | | | | | | | | | |
|
||||
* |----------------------------------------------------------------|
|
||||
* |HUI |SAI|VAI |RGBMOD| L+|LED| L-| | | | | |Play|V+|Mut|
|
||||
* |----------------------------------------------------------------|
|
||||
* |HUD |SAD |VAD | RGB_Tog | | | | <M | V-| M> |
|
||||
* `----------------------------------------------------------------'
|
||||
*/
|
||||
[_FL] = LAYOUT_65_iso(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_INS,
|
||||
RESET, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RGB_HUI, RGB_SAI, RGB_VAI, RGB_MOD, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, KC_MPLY, KC_VOLU, KC_MUTE,
|
||||
RGB_HUD, RGB_SAD, RGB_VAD, RGB_TOG, _______, _______, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
)
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user