Compare commits

..
8 Commits
Author SHA1 Message Date
Dan McClain f04e58dad6 [CLI] Add qmk list_keyboards (#6927)
`list_keyboards` replicates the `make list-keyboards` by globbing for all paths
that include `rules.mk` and then removing the paths that include `keymaps`.

This basis of this cli command could be reused in the future as a util, but is
not done so here since this would be the only place that would use it currently

Resolves #6911
2019-10-07 11:32:30 -07:00
Jesper Nellemann Jakobsen d9b056486b [Keymap] Move brightness controls one key over (#6945)
I forgot to count the extra ISO-only key next to left shift when
initially adding these brightness controls.
2019-10-07 11:17:08 -07:00
Jonas Avellana 2881f53dd4 [Keymap] updating ninjonas userspace (#6903)
* [refactor] updating ninjonas layout blocks and standardized LOWER & ADJUST

* [feat] added new macro M_TERM to open MacOS terminal app

* [feat] introducing mod-tap functionality on keymap

* [fix] fixing oled turning on when it feels like it. thanks @drashna for helping

* [feat] updating OLED to rotate logo 180 degrees

* [feat] updating keymaps to reflect VSCode frequent habits

* [refactor] converting crkbd modifier keys to layer blocks

* [fix(#6903)] converting _delay_ms to wait_ms on launching terminal macro
2019-10-07 10:42:03 -07:00
Erdem Efe Erol d0ef139749 [Docs] Typo fix for feature_hd44780.md (#6917)
* Typo fix

Fixed a typo.

* Update feature_hd44780.md

* Update feature_hd44780.md
2019-10-06 16:39:23 -07:00
Erovia 60cd12f8a4 Dimple: Fix Caps Lock LED behaviour (#6936)
* Dimple: Fix Caps Lock LED behaviour

* Dimple: fix helper functions and cleanup unnecessary code
2019-10-07 05:15:17 +11:00
Erdem Efe Erol c73d6f6ac8 [Docs] Removed dead link (#6922)
Removed an old link and fixed a typo
2019-10-06 07:56:35 -07:00
Janne Peippo f73f71db9c [Keymap] Add new Cyclops keymap (#6923) 2019-10-06 07:44:02 -07:00
Daniel Klugandnoroadsleft 345d3cc046 [Keymap] dactyl_left (#6775)
* [keymap] dactyl_left

Special layout for the left side of the ergodox dactyl.

* [keymap] dactyl_left

Special layout for the left side of the ergodox dactyl.

* Updated readme.md

* Update keyboards/handwired/dactyl_left/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/handwired/dactyl_left/readme.md

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/handwired/dactyl_left/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/handwired/dactyl_left/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Update keyboards/handwired/dactyl_left/info.json

Co-Authored-By: noroadsleft <[email protected]>

* Addressing changes for PR

removed layers.json and 15-24 from rules.mk

* Updating keymap for better a default

Hopefully this works as a starting point
2019-10-05 23:58:23 -07:00
31 changed files with 760 additions and 64 deletions

No files matched your search

+10
View File
@@ -115,6 +115,16 @@ This command examines your environment and alerts you to potential build or flas
qmk doctor qmk doctor
``` ```
## `qmk list_keyboards`
This command lists all the keyboards currently defined in `qmk_firmware`
**Usage**:
```
qmk list_keyboards
```
## `qmk new-keymap` ## `qmk new-keymap`
This command creates a new keymap based on a keyboard's existing default keymap. This command creates a new keymap based on a keyboard's existing default keymap.
+4 -3
View File
@@ -6,7 +6,8 @@ You can enable support for HD44780 Displays by setting the `HD44780_ENABLE` flag
## Configuration ## Configuration
You will need to configure the pins used by your display and its number of lines and collumn in your keyboards `config.h`. You will need to configure the pins used by your display, and its number of lines and columns in your keyboard's `config.h`.
Uncomment the section labled HD44780 and change the parameters as needed. Uncomment the section labled HD44780 and change the parameters as needed.
```` ````
@@ -40,7 +41,7 @@ Should you need to configure other properties you can copy them from `quantum/hd
## Usage ## Usage
To initialize your display call lcd_init() with one of these parameters: To initialize your display, call `lcd_init()` with one of these parameters:
```` ````
LCD_DISP_OFF : display off LCD_DISP_OFF : display off
LCD_DISP_ON : display on, cursor off LCD_DISP_ON : display on, cursor off
@@ -53,4 +54,4 @@ To do so call `lcd_clrsrc()`.
To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`. To now print something to your Display you first call `lcd_gotoxy(column, line)`. To go to the start of the first line you would call `lcd_gotoxy(0, 0)` and then print a string with `lcd_puts("example string")`.
There are more posible methods to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html) There are more methods available to control the display. [For in depth documentation please visit the linked page.](http://homepage.hispeed.ch/peterfleury/doxygen/avr-gcc-libraries/group__pfleury__lcd.html)
+2 -2
View File
@@ -149,7 +149,7 @@ In your keyboard config.h:
#### PS/2 Mouse Features #### PS/2 Mouse Features
These enable settings supported by the PS/2 mouse protocol: http://www.computer-engineering.org/ps2mouse/ These enable settings supported by the PS/2 mouse protocol.
``` ```
/* Use remote mode instead of the default stream mode (see link) */ /* Use remote mode instead of the default stream mode (see link) */
@@ -202,7 +202,7 @@ Note: you can also use `ps2_mouse_set_resolution` for the same effect (not suppo
#### Scroll Button #### Scroll Button
If you're using a trackpoint, you will likely want to be able to use it for scrolling. If you're using a trackpoint, you will likely want to be able to use it for scrolling.
Its possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving. It's possible to enable a "scroll button/s" that when pressed will cause the mouse to scroll instead of moving.
To enable the feature, you must set a scroll button mask as follows: To enable the feature, you must set a scroll button mask as follows:
``` ```
+9 -9
View File
@@ -10,7 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________, _____________________QWERTY_L3______________________, _____________________QWERTY_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL ________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------' //`---------------------' `---------------------'
), ),
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________, _____________________DVORAK_L3______________________, _____________________DVORAK_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL ________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------' //`---------------------' `---------------------'
), ),
@@ -34,17 +34,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________, _____________________COLEMAK_L3_____________________, _____________________COLEMAK_R3_____________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
T_GUI, KC_LCTL,LT_RAI, LT_LOW,KC_BSPC,KC_DEL ________MOD_LEFT_________, ________MOD_RIGHT________
//`---------------------' `---------------------' //`---------------------' `---------------------'
), ),
[_LOWER] = LAYOUT_wrapper( [_LOWER] = LAYOUT_wrapper(
//,----------------------------------------------------. ,----------------------------------------------------. //,----------------------------------------------------. ,----------------------------------------------------.
M_XXX2, M_XXX3, _________MEDIA_1_________, K_CSCN, _______________NAV_1______________, XXXXXXX, K_MDSH, _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_XXX4, M_XXX5, _________MEDIA_2_________, XXXXXXX, _______________NAV_2______________, K_LOCK, XXXXXXX, _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
KC_LSFT, M_SHFT, _________MEDIA_3_________, T_LBRC, T_RBRC, KC_M, XXXXXXX, M_CODE, M_XXX1, M_PYNV, _____________________LOWER_L3_______________________, _____________________LOWER_R3_______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______ _______,_______,_______, _______,_______,_______
//`---------------------' `---------------------' //`---------------------' `---------------------'
@@ -64,11 +64,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_wrapper( \ [_ADJUST] = LAYOUT_wrapper( \
//,----------------------------------------------------. ,----------------------------------------------------. //,----------------------------------------------------. ,----------------------------------------------------.
M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY, _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_VRSN, M_MALL, RGB_SPI, RGB_SAI, RGB_HUI, RGB_VAI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
M_FLSH, XXXXXXX, RGB_SPD, RGB_SAD, RGB_HUD, RGB_VAD, RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _____________________ADJUST_L3______________________, _____________________ADJUST_R3______________________,
//|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------| //|--------+--------+--------+--------+--------+-------| |--------+--------+--------+--------+--------+-------|
_______,_______,_______, _______,_______,_______ _______,_______,_______, _______,_______,_______
//`---------------------' `---------------------' //`---------------------' `---------------------'
+1 -1
View File
@@ -80,7 +80,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, 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_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,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET, _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_BRMD, KC_BRMU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRMD, KC_BRMU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
// TEMPLATE // TEMPLATE
+251
View File
@@ -0,0 +1,251 @@
/*
Copyright 2019 RedForty
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 0xFEED
#define PRODUCT_ID 0x0000
#define DEVICE_VER 0x0001
#define MANUFACTURER RedForty
#define PRODUCT dactyl_left
#define DESCRIPTION A custom keyboard
/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 6
/*
* 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 \
{ F0, F1, F4, F5, F6, F7 }
#define MATRIX_COL_PINS \
{ D0, B7, B3, B2, B1, B0 }
#define UNUSED_PINS
/* COL2ROW, ROW2COL*/
#define DIODE_DIRECTION COL2ROW
/*
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
*/
#define SOFT_SERIAL_PIN D2 // or D1, D2, D3, E6
// #define BACKLIGHT_PIN B7
// #define BACKLIGHT_BREATHING
// #define BACKLIGHT_LEVELS 3
// #define RGB_DI_PIN E2
// #ifdef RGB_DI_PIN
// #define RGBLED_NUM 16
// #define RGBLIGHT_HUE_STEP 8
// #define RGBLIGHT_SAT_STEP 8
// #define RGBLIGHT_VAL_STEP 8
// #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
// /*== all animations enable ==*/
// #define RGBLIGHT_ANIMATIONS
// /*== or choose animations ==*/
// #define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
// #define RGBLIGHT_EFFECT_SNAKE
// #define RGBLIGHT_EFFECT_KNIGHT
// #define RGBLIGHT_EFFECT_CHRISTMAS
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// /*== customize breathing effect ==*/
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
// /*==== use exp() and sin() ====*/
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
// #endif
/* 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
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
*/
// #define GRAVE_ESC_CTRL_OVERRIDE
/*
* Force NKRO
*
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
* makefile for this to work.)
*
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
* until the next keyboard reset.
*
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
* fully operational during normal computer usage.
*
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
* power-up.
*
*/
//#define FORCE_NKRO
/*
* Magic Key Options
*
* Magic keys are hotkey commands that allow control over firmware functions of
* the keyboard. They are best used in combination with the HID Listen program,
* found here: https://www.pjrc.com/teensy/hid_listen.html
*
* The options below allow the magic key functionality to be changed. This is
* useful if your keyboard/keypad is missing keys and you want magic key support.
*
*/
/* key combination for magic key command */
/* defined by default; to change, uncomment and set to the combination you want */
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
/* control how magic key switches layers */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
/* override magic key keymap */
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
//#define MAGIC_KEY_HELP H
//#define MAGIC_KEY_HELP_ALT SLASH
//#define MAGIC_KEY_DEBUG D
//#define MAGIC_KEY_DEBUG_MATRIX X
//#define MAGIC_KEY_DEBUG_KBD K
//#define MAGIC_KEY_DEBUG_MOUSE M
//#define MAGIC_KEY_VERSION V
//#define MAGIC_KEY_STATUS S
//#define MAGIC_KEY_CONSOLE C
//#define MAGIC_KEY_LAYER0 0
//#define MAGIC_KEY_LAYER0_ALT GRAVE
//#define MAGIC_KEY_LAYER1 1
//#define MAGIC_KEY_LAYER2 2
//#define MAGIC_KEY_LAYER3 3
//#define MAGIC_KEY_LAYER4 4
//#define MAGIC_KEY_LAYER5 5
//#define MAGIC_KEY_LAYER6 6
//#define MAGIC_KEY_LAYER7 7
//#define MAGIC_KEY_LAYER8 8
//#define MAGIC_KEY_LAYER9 9
//#define MAGIC_KEY_BOOTLOADER B
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
//#define MAGIC_KEY_LOCK CAPS
//#define MAGIC_KEY_EEPROM E
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
//#define MAGIC_KEY_NKRO N
//#define MAGIC_KEY_SLEEP_LED Z
/*
* 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
/*
* MIDI options
*/
/* Prevent use of disabled MIDI features in the keymap */
//#define MIDI_ENABLE_STRICT 1
/* enable basic MIDI features:
- MIDI notes can be sent when in Music mode is on
*/
//#define MIDI_BASIC
/* enable advanced MIDI features:
- MIDI notes can be added to the keymap
- Octave shift and transpose
- Virtual sustain, portamento, and modulation wheel
- etc.
*/
//#define MIDI_ADVANCED
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
//#define MIDI_TONE_KEYCODE_OCTAVES 1
/*
* HD44780 LCD Display Configuration
*/
/*
#define LCD_LINES 2 //< number of visible lines of the display
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
#if LCD_IO_MODE
#define LCD_PORT PORTB //< port for the LCD lines
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
#define LCD_RS_PORT LCD_PORT //< port for RS line
#define LCD_RS_PIN 3 //< pin for RS line
#define LCD_RW_PORT LCD_PORT //< port for RW line
#define LCD_RW_PIN 2 //< pin for RW line
#define LCD_E_PORT LCD_PORT //< port for Enable line
#define LCD_E_PIN 1 //< pin for Enable line
#endif
*/
/* Bootmagic Lite key configuration */
// #define BOOTMAGIC_LITE_ROW 0
// #define BOOTMAGIC_LITE_COLUMN 0
@@ -0,0 +1,51 @@
/* Copyright 2019 RedForty
*
* 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 "dactyl_left.h"
// Optional override functions below.
// You can leave any or all of these undefined.
// These are only required if you want to perform custom actions.
/*
void matrix_init_kb(void) {
// put your keyboard start-up code here
// runs once when the firmware starts up
matrix_init_user();
}
void matrix_scan_kb(void) {
// put your looping keyboard code here
// runs every cycle (a lot)
matrix_scan_user();
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
// put your per-action keyboard code here
// runs for every action, just before processing by the firmware
return process_record_user(keycode, record);
}
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);
}
*/
@@ -0,0 +1,42 @@
/* Copyright 2019 RedForty
*
* 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(\
k00, k01, k02, k03, k04, k05, \
k10, k11, k12, k13, k14, k15, \
k20, k21, k22, k23, k24, k25, \
k30, k31, k32, k33, k34, k35, \
k40, k41, k42, k43, k44, \
k50, k51, k52, k53, k54, k55 \
) { \
{ k00, k01, k02, k03, k04, k05 }, \
{ k10, k11, k12, k13, k14, k15 }, \
{ k20, k21, k22, k23, k24, k25 }, \
{ k30, k31, k32, k33, k34, k35 }, \
{ k40, k41, k42, k43, k44, KC_NO }, \
{ k50, k51, k52, k53, k54, k55 } \
}
+12
View File
@@ -0,0 +1,12 @@
{
"keyboard_name": "dactyl_left",
"url": "",
"maintainer": "RedForty",
"width": 8,
"height": 7.75,
"layouts": {
"LAYOUT": {
"layout": [{"x":0, "y":0.375, "w":1.5}, {"x":1.5, "y":0.375}, {"x":2.5, "y":0.125}, {"x":3.5, "y":0}, {"x":4.5, "y":0.125}, {"x":5.5, "y":0.25}, {"x":0, "y":1.375, "w":1.5}, {"x":1.5, "y":1.375}, {"x":2.5, "y":1.125}, {"x":3.5, "y":1}, {"x":4.5, "y":1.125}, {"x":5.5, "y":1.25}, {"x":0, "y":2.375, "w":1.5}, {"x":1.5, "y":2.375}, {"x":2.5, "y":2.125}, {"x":3.5, "y":2}, {"x":4.5, "y":2.125}, {"x":5.5, "y":2.25}, {"x":0, "y":3.375, "w":1.5}, {"x":1.5, "y":3.375}, {"x":2.5, "y":3.125}, {"x":3.5, "y":3}, {"x":4.5, "y":3.125}, {"x":5.5, "y":3.25}, {"x":0.5, "y":4.375}, {"x":1.5, "y":4.375}, {"x":2.5, "y":4.125}, {"x":3.5, "y":4}, {"x":4.5, "y":4.125}, {"x":6, "y":4.75}, {"x":7, "y":4.75}, {"x":5, "y":5.75, "h":2}, {"x":6, "y":5.75, "h":2}, {"x":7, "y":5.75}, {"x":7, "y":6.75}]
}
}
}
@@ -0,0 +1,19 @@
/* Copyright 2019 RedForty
*
* 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
// place overrides here
@@ -0,0 +1,57 @@
/* Copyright 2019 RedForty
*
* 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
// Defines the keycodes used by our macros in process_record_user
enum custom_keycodes { QMKBEST = SAFE_RANGE, QMKURL };
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(/* Base */
KC_SPC, KC_1, KC_2, KC_3, KC_4, KC_5,
KC_SPC, KC_Q, KC_W, KC_E, KC_R, KC_T,
KC_SPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B,
KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC,
KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
// when keycode QMKBEST is pressed
SEND_STRING("QMK is the best thing ever!");
} else {
// when keycode QMKBEST is released
}
break;
case QMKURL:
if (record->event.pressed) {
// when keycode QMKURL is pressed
SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
} else {
// when keycode QMKURL is released
}
break;
}
return true;
}
void matrix_init_user(void) {}
void matrix_scan_user(void) {}
void led_set_user(uint8_t usb_led) {}
@@ -0,0 +1 @@
# The default keymap for dactyl_left
+15
View File
@@ -0,0 +1,15 @@
# dactyl_left
![dactyl_left](https://i.imgur.com/PYL3Ca2.png)
A custom build of an ergodox dactyl using a Teensy. Pins are custom.
Keyboard Maintainer: [RedForty](https://github.com/RedForty)
Hardware Supported: Left side of the dactyl only
Hardware Availability: Custom job
Make example for this keyboard (after setting up your build environment):
make handwired/dactyl_left: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).
+34
View File
@@ -0,0 +1,34 @@
# 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
BOOTLOADER = halfkay
# Build Options
# change yes to no to disable
#
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
+3 -3
View File
@@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_RGHT, KC_LEFT, KC_RGHT,
KC_PGUP, KC_PGUP,
KC_PGDN, KC_PGDN,
KC_DEL, LT_LOW MT_DEL, LT_LOW
), ),
/* DVORAK /* DVORAK
@@ -108,7 +108,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_RGHT, KC_LEFT, KC_RGHT,
KC_PGUP, KC_PGUP,
KC_PGDN, KC_PGDN,
KC_DEL, LT_LOW MT_DEL, LT_LOW
), ),
/* COLEMAK /* COLEMAK
@@ -155,7 +155,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, KC_RGHT, KC_LEFT, KC_RGHT,
KC_PGUP, KC_PGUP,
KC_PGDN, KC_PGDN,
KC_DEL, LT_LOW MT_DEL, LT_LOW
), ),
/* LOWER /* LOWER
-6
View File
@@ -58,9 +58,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* #define RGBLIGHT_SAT_STEP 8 */ /* #define RGBLIGHT_SAT_STEP 8 */
/* #define RGBLIGHT_VAL_STEP 8 */ /* #define RGBLIGHT_VAL_STEP 8 */
#endif #endif
/* CapsLock LED */
#define BACKLIGHT_PIN E6
#ifdef BACKLIGHT_PIN
#define BACKLIGHT_LEVELS 6
#endif
+2 -2
View File
@@ -16,11 +16,11 @@
#include "dimple.h" #include "dimple.h"
void dimple_led_on() { void dimple_led_on() {
writePinHigh(E6); writePinLow(E6);
} }
void dimple_led_off() { void dimple_led_off() {
writePinLow(E6); writePinHigh(E6);
} }
void keyboard_pre_init_kb(void) { void keyboard_pre_init_kb(void) {
+11 -11
View File
@@ -100,9 +100,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
[_LOWER] = LAYOUT_wrapper( \ [_LOWER] = LAYOUT_wrapper( \
_____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________, \ _____________________FUNC_LEFT______________________, _____________________FUNC_RIGHT_____________________, \
M_XXX2, M_XXX3, _________MEDIA_1_________, _______, _______________NAV_1______________, _______, K_MDSH, \ _____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________, \
M_XXX4, M_XXX5, _________MEDIA_2_________, _______, _______________NAV_2______________, K_LOCK, _______, \ _____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________, \
_______, M_SHFT, _________MEDIA_3_________, _______, _______, _______, _______, KC_M, _______, _______, M_XXX1, M_PYNV, \ _____________________LOWER_L3_______________________, _______, _______, _____________________LOWER_R3_______________________, \
__________________________________, _______, _______, M_CODE, _______ \ __________________________________, _______, _______, M_CODE, _______ \
), ),
@@ -121,7 +121,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------' '------''--------------------' * `----------------------------' '------''--------------------'
*/ */
[_RAISE] = LAYOUT_wrapper( \ [_RAISE] = LAYOUT_wrapper( \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ XXXXXXX, XXXXXXX, _____________MOUSE_2______________, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\
@@ -130,9 +130,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* ADJUST /* ADJUST
* ,------------------------------------------. ,-----------------------------------------. * ,------------------------------------------. ,-----------------------------------------.
* |EEP_RST| | | | | | | | | |COLMAK|DVORAK|QWERTY| * | | | | | | | | | | | | | |
* |-------+------+------+------+------+------| |------+------+------+------+------+------| * |-------+------+------+------+------+------| |------+------+------+------+------+------|
* |M_MAKE | | | | | | | | | | | | | * |M_MAKE |EEPRST| | | | | | | | |COLMAK|DVORAK|QWERTY|
* |-------+------+------+------+------+------| |------+------+------+------+------+------| * |-------+------+------+------+------+------| |------+------+------+------+------+------|
* |M_VRSN |M_MALL| | | | |-------. ,-------| | | | | | | * |M_VRSN |M_MALL| | | | |-------. ,-------| | | | | | |
* |-------+------+------+------+------+------| | | |------+------+------+------+------+------| * |-------+------+------+------+------+------| | | |------+------+------+------+------+------|
@@ -143,10 +143,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* `----------------------------' '------''--------------------' * `----------------------------' '------''--------------------'
*/ */
[_ADJUST] = LAYOUT_wrapper( \ [_ADJUST] = LAYOUT_wrapper( \
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY, \ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________, \
M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \ _____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________, \
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,\ _____________________ADJUST_L3______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R3______________________,\
__________________________________, __________________________________ \ __________________________________, __________________________________ \
), ),
}; };
+6 -6
View File
@@ -61,11 +61,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LOWER] = LAYOUT_wrapper( [_LOWER] = LAYOUT_wrapper(
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------. //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
M_XXX2, M_XXX3, _________MEDIA_1_________, XXXXXXX, K_CSCN, XXXXXXX, _______________NAV_1______________, XXXXXXX, K_MDSH, _____________________LOWER_L1_______________________, K_CSCN, XXXXXXX, _____________________LOWER_R1_______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
M_XXX4, M_XXX5, _________MEDIA_2_________, XXXXXXX, XXXXXXX, XXXXXXX, _______________NAV_2______________, K_LOCK, XXXXXXX, _____________________LOWER_L2_______________________, XXXXXXX, XXXXXXX, _____________________LOWER_R2_______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
XXXXXXX, M_SHFT, _________MEDIA_3_________, XXXXXXX, _______, _______, XXXXXXX, KC_M, XXXXXXX, XXXXXXX, M_XXX1, M_PYNV, _____________________LOWER_L3_______________________, _______, _______, _____________________LOWER_R3_______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
__________________________________, _______, _______, M_CODE, _______ __________________________________, _______, _______, M_CODE, _______
//`---------------------------------------' `---------------------------------------' //`---------------------------------------' `---------------------------------------'
@@ -85,11 +85,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_ADJUST] = LAYOUT_wrapper( [_ADJUST] = LAYOUT_wrapper(
//,---------------------------------------------------------------------. ,---------------------------------------------------------------------. //,---------------------------------------------------------------------. ,---------------------------------------------------------------------.
M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY, _____________________ADJUST_L1______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R1______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _____________________XXXXXXX________________________, _____________________ADJUST_L2______________________, XXXXXXX, XXXXXXX, _____________________ADJUST_R2______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _____________________XXXXXXX________________________, _____________________ADJUST_L3______________________, _______, _______, _____________________ADJUST_R3______________________,
//|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------| //|---------+---------+---------+---------+---------+---------+---------| |---------+---------+---------+---------+---------+---------+---------|
__________________________________, __________________________________ __________________________________, __________________________________
//`---------------------------------------' `---------------------------------------' //`---------------------------------------' `---------------------------------------'
@@ -0,0 +1,19 @@
/* Copyright 2018 'mechmerlin'
*
* 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
// place overrides here
@@ -0,0 +1,79 @@
/* Copyright 2018 westfoxtrot
*
* 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] = {
/* Default layer
* ,--------------------------------------------------------------------------------------------------------------------. ,-------.
* | GrvEsc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | + | ´ | Backspace | | PgUp |
* |--------------------------------------------------------------------------------------------------------------------+ +-------+
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Å | ¨ | Enter | | PgDn |
* |-----------------------------------------------------------------------------------------------------------, | `-------`
* | Mod Layer | A | S | D | F | G | H | J | K | L | Ö | Ä | ' | |
* |-----------------------------------------------------------------------------------------------------------------------,
* | Shift | < | Z | X | C | V | B | N | M | , | . | - | Shift | Up |
* |-----------------------------------------------------------------------------------------------------------------------+-------,
* | Control | Option | Command | Space | Command | Option | Left | Down | Right |
* `-------------------------------------------------------------------------------------------------------------------------------'
*/
[0] = LAYOUT(
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_PGUP,
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_PGDN,
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_RSFT, KC_NO, KC_UP,
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT),
/* Modifier layer
* ,--------------------------------------------------------------------------------------------------------------------. ,-------.
* | Esc | | | | | | | | [ | ] | | | | Delete | | VolUp |
* |--------------------------------------------------------------------------------------------------------------------+ +-------+
* | | | | | | | | PgUp | Up | PgDn | | | | | | VolDn |
* |-----------------------------------------------------------------------------------------------------------, | `-------`
* | | |Scrnsht|Desktop| | | | Left | Down | Right | | | Reset | |
* |-----------------------------------------------------------------------------------------------------------------------,
* | Shift | | | | | | | | | | | | Shift | Play |
* |-----------------------------------------------------------------------------------------------------------------------+-------,
* | | | | | | | Prev | Mute | Next |
* `-------------------------------------------------------------------------------------------------------------------------------'
*/
[1] = LAYOUT(
KC_ESC, _______, _______, _______, _______, _______, _______, _______, RALT(KC_8), RALT(KC_9), _______, _______, _______, KC_DEL, KC__VOLUP,
_______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_UP, KC_PGDN, _______, _______, _______, KC__VOLDOWN,
_______, _______, SGUI(KC_5), KC_F11, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RESET , _______,
KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_RSFT, _______, KC_MPLY,
_______, _______, _______, _______, _______, _______, KC_MRWD, KC__MUTE, KC_MFFD),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
void matrix_init_user(void) {
}
void matrix_scan_user(void) {
}
void led_set_user(uint8_t usb_led) {
}
@@ -0,0 +1,20 @@
# Cyclops keymap by peippo
Nordic layout with faster access to cursor movement keys and brackets.
## Keymap notes
- Default layer has a Grave Escape which outputs Escape when pressed normally, and `§` when Shift or Command are held. I like to setup Command+Esc to moving focus to next window (MacOS preferences, Keyboard / Shortcuts / Keyboard).
- `Caps Lock` can be held to access the modifier layer.
## Modifier layer
- Additional cursor movement keys on `J/K/L/I`, and Page Up/Page Down on `U/O`.
- Easier access to [] & {} (w/ Shift) on `8/9`.
- Show desktop on `D`.
- Screen capture tool on `S`.
- Media shortcuts on Arrow keys & Page Up/Page Down.
### Build
To build the firmware, run `make westfoxtrot/cyclops:peippo`.
+1
View File
@@ -8,6 +8,7 @@ from . import config
from . import doctor from . import doctor
from . import hello from . import hello
from . import json from . import json
from . import list
from . import new from . import new
from . import pyformat from . import pyformat
from . import pytest from . import pytest
+1
View File
@@ -0,0 +1 @@
from . import keyboards
+26
View File
@@ -0,0 +1,26 @@
"""List the keyboards currently defined within QMK
"""
import os
import re
import glob
from milc import cli
@cli.subcommand("List the keyboards currently defined within QMK")
def list_keyboards(cli):
"""List the keyboards currently defined within QMK
"""
base_path = os.path.join(os.getcwd(), "keyboards") + os.path.sep
kb_path_wildcard = os.path.join(base_path, "**", "rules.mk")
# find everywhere we have rules.mk where keymaps isn't in the path
paths = [path for path in glob.iglob(kb_path_wildcard, recursive=True) if 'keymaps' not in path]
# strip the keyboard directory path prefix and rules.mk suffix and alphabetize
find_name = lambda path: path.replace(base_path, "").replace(os.path.sep + "rules.mk", "")
names = sorted(map(find_name, paths))
for name in names:
# We echo instead of cli.log.info to allow easier piping of this output
cli.echo(name)
@@ -37,3 +37,11 @@ def test_pyformat():
result = check_subcommand('pyformat') result = check_subcommand('pyformat')
assert result.returncode == 0 assert result.returncode == 0
assert 'Successfully formatted the python code' in result.stderr assert 'Successfully formatted the python code' in result.stderr
def test_list_keyboards():
result = check_subcommand('list_keyboards')
assert result.returncode == 0
# check to see if a known keyboard is returned
# this will fail if handwired/onekey/pytest is removed
assert 'handwired/onekey/pytest' in result.stdout
+10 -3
View File
@@ -19,7 +19,7 @@ See: https://docs.qmk.fm/#/feature_userspace
### [Keys](ninjonas.h#L37) ### [Keys](ninjonas.h#L37)
|Code | Description | |Code | Description |
|---|---| |---|---|
|K_LOCK | MacOS shortcut to execute lock command  + ctrl + Q | |K_LOCK | MacOS shortcut to execute lock command  + CTRL + Q |
|K_CSCN | MacOS shortcut to copy a portion of the screen to the clipboard | |K_CSCN | MacOS shortcut to copy a portion of the screen to the clipboard |
|K_MDSH | MacOS shortcut to get em-dash `–` | |K_MDSH | MacOS shortcut to get em-dash `–` |
|K_RAPP | MacOS shortcut to switch apps to the right | |K_RAPP | MacOS shortcut to switch apps to the right |
@@ -34,7 +34,13 @@ See: https://docs.qmk.fm/#/feature_userspace
|LM_LOW | Dedicated key to momentarily toggle to use LOWER layer | |LM_LOW | Dedicated key to momentarily toggle to use LOWER layer |
|LM_RAI | Dedicated key to momentarily toggle to use RAISE layer | |LM_RAI | Dedicated key to momentarily toggle to use RAISE layer |
### [Layout Blocks](ninjonas.h#L50) ### [Mod-Taps](ninjonas.h#L50)
|Code | Description |
|---|---|
|MT_DEL | Tap for Delete, hold for  + ALT + SHIFT |
|MT_EQL | Tap for =, hold for ALT + SHIFT |
### [Layout Blocks](ninjonas.h#L54)
Predefined keyboard layout templates to speed up configuring split keyboards Predefined keyboard layout templates to speed up configuring split keyboards
|Code | Description | |Code | Description |
@@ -59,6 +65,7 @@ Predefined keyboard layout templates to speed up configuring split keyboards
|M_VRSN | macro to send QMK version | |M_VRSN | macro to send QMK version |
|M_SHFT | Sends  + alt + shift to a keycode to activate [ShiftIt](https://github.com/fikovnik/ShiftIt) | |M_SHFT | Sends  + alt + shift to a keycode to activate [ShiftIt](https://github.com/fikovnik/ShiftIt) |
|M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory | |M_CODE | Opens [Visual Studio Code](https://code.visualstudio.com/) on current directory |
|M_TERM | Launches Spotlight and calls Terminal |
|M_XXX1 to M_XXX5 | Reserved for secret macros see [Secrets](#secrets) | |M_XXX1 to M_XXX5 | Reserved for secret macros see [Secrets](#secrets) |
### [Tap-Dance](tap_dances.h) ### [Tap-Dance](tap_dances.h)
@@ -78,7 +85,7 @@ There's times where you have macros you don't want to share like emails, an addr
```c ```c
// secrets.c // secrets.c
#include "ninjonas.h" #include "ninjonas.h"
static const char * const secret[] = { static const char * const secret[] = {
"BLANK1", "BLANK1",
+39 -8
View File
@@ -47,6 +47,10 @@
#define LT_LOW LT(_LOWER, KC_ENT) #define LT_LOW LT(_LOWER, KC_ENT)
#define LT_RAI LT(_RAISE, KC_SPC) #define LT_RAI LT(_RAISE, KC_SPC)
// Mod-Tap Keys
#define MT_DEL MT(MOD_LGUI | MOD_LALT | MOD_LSFT, KC_DEL)
#define MT_EQL MT(MOD_LALT | MOD_LSFT, KC_EQL)
// Layout blocks // Layout blocks
#define _____________________QWERTY_L1______________________ T_TAB, T_Q, T_W, KC_E, KC_R, KC_T #define _____________________QWERTY_L1______________________ T_TAB, T_Q, T_W, KC_E, KC_R, KC_T
#define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G #define _____________________QWERTY_L2______________________ T_ESC, KC_A, KC_S, KC_D, KC_F, KC_G
@@ -54,7 +58,7 @@
#define _____________________QWERTY_R1______________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS #define _____________________QWERTY_R1______________________ KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS
#define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT #define _____________________QWERTY_R2______________________ KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT
#define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL #define _____________________QWERTY_R3______________________ KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL
#define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y #define _____________________DVORAK_L1______________________ T_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y
#define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I #define _____________________DVORAK_L2______________________ T_ESC, KC_A, KC_O, KC_E, KC_U, KC_I
@@ -62,7 +66,7 @@
#define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS #define _____________________DVORAK_R1______________________ KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSLS
#define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH #define _____________________DVORAK_R2______________________ KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH
#define _____________________DVORAK_R3______________________ KC_B, KC_M, T_W, KC_V, KC_Z, KC_EQL #define _____________________DVORAK_R3______________________ KC_B, KC_M, T_W, KC_V, KC_Z, MT_EQL
#define _____________________COLEMAK_L1_____________________ T_TAB, T_Q, T_W, KC_F, KC_P, KC_G #define _____________________COLEMAK_L1_____________________ T_TAB, T_Q, T_W, KC_F, KC_P, KC_G
#define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D #define _____________________COLEMAK_L2_____________________ T_ESC, KC_A, KC_R, KC_S, KC_T, KC_D
@@ -70,7 +74,7 @@
#define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS #define _____________________COLEMAK_R1_____________________ KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS
#define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT #define _____________________COLEMAK_R2_____________________ KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT
#define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_EQL #define _____________________COLEMAK_R3_____________________ KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_EQL
#define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5 #define _____________________NUM_LEFT_______________________ T_GRV, KC_1, KC_2, KC_3, KC_4, KC_5
#define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS #define _____________________NUM_RIGHT______________________ KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS
@@ -81,8 +85,31 @@
#define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC #define _____________________SYM_LEFT_______________________ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC
#define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS #define _____________________SYM_RIGHT______________________ KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS
#define ____________________________________________________ _______, _______, _______, _______, _______, _______ #define _____________________LOWER_L1_______________________ M_XXX2, M_XXX3, _________MEDIA_1_________, K_CSCN
#define _____________________XXXXXXX________________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX #define _____________________LOWER_L2_______________________ M_XXX4, M_XXX5, _________MEDIA_2_________, XXXXXXX
#define _____________________LOWER_L3_______________________ KC_LSFT, M_SHFT, _________MEDIA_3_________, T_LBRC
#define _____________________LOWER_R1_______________________ _______________NAV_1______________, XXXXXXX, K_MDSH
#define _____________________LOWER_R2_______________________ _______________NAV_2______________, K_LOCK, XXXXXXX
#define _____________________LOWER_R3_______________________ T_RBRC, KC_M, M_TERM, M_CODE, M_XXX1, M_PYNV
#define _____________________ADJUST_L1______________________ M_MAKE, EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#ifdef RGB_MATRIX_ENABLE
#define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, RGB_SPI, RGB_SAI, RGB_HUI, RGB_VAI
#define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, RGB_SPD, RGB_SAD, RGB_HUD, RGB_VAD
#else
#define _____________________ADJUST_L2______________________ M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define _____________________ADJUST_L3______________________ M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#endif
#ifdef RGB_MATRIX_ENABLE
#define _____________________ADJUST_R1______________________ RGB_TOG, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY
#define _____________________ADJUST_R3______________________ RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#else
#define _____________________ADJUST_R1______________________ XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY
#define _____________________ADJUST_R3______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#endif
#define _____________________ADJUST_R2______________________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END #define _______________NAV_1______________ KC_PGUP, KC_HOME, KC_UP, KC_END
#define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT #define _______________NAV_2______________ KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT
@@ -91,14 +118,18 @@
#define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U #define _____________MOUSE_2______________ KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U
#define __________________________________ _______, _______, _______, _______ #define __________________________________ _______, _______, _______, _______
#define _____________XXXXXXX______________ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
#define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE #define _________MEDIA_1_________ KC_BRIU, KC_MPLY, KC_MUTE
#define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC__VOLUP #define _________MEDIA_2_________ KC_BRID, KC_MFFD, KC__VOLUP
#define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC__VOLDOWN #define _________MEDIA_3_________ XXXXXXX, KC_MRWD, KC__VOLDOWN
#define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL #ifdef KEYBOARD_crkbd_rev1
#define ________MOD_RIGHT________ KC_BSPC, KC_DEL, LM_LOW #define ________MOD_LEFT_________ T_GUI, KC_LCTL, LT_RAI
#define ________MOD_RIGHT________ LT_LOW, KC_BSPC, MT_DEL
#else
#define ________MOD_LEFT_________ KC_LALT, T_GUI, KC_LCTL
#define ________MOD_RIGHT________ KC_BSPC, MT_DEL, LM_LOW
#endif
// Layout wrappers // Layout wrappers
#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) #define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__)
+11 -4
View File
@@ -4,12 +4,19 @@
#ifdef OLED_DRIVER_ENABLE #ifdef OLED_DRIVER_ENABLE
static uint16_t oled_timer = 0; static uint32_t oled_timer = 0;
extern uint8_t is_master; extern uint8_t is_master;
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
if (is_master) {
return OLED_ROTATION_0;
}
return OLED_ROTATION_180;
}
bool process_record_oled(uint16_t keycode, keyrecord_t *record) { bool process_record_oled(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) { if (record->event.pressed) {
oled_timer = timer_read(); oled_timer = timer_read32();
} }
return true; return true;
} }
@@ -64,7 +71,7 @@ static void render_logo(void) {
} }
void oled_task_user(void) { void oled_task_user(void) {
if (timer_elapsed(oled_timer) > 30000) { if (timer_elapsed32(oled_timer) > 30000) {
oled_off(); oled_off();
return; return;
} }
@@ -75,8 +82,8 @@ void oled_task_user(void) {
if (is_master) { if (is_master) {
render_status(); render_status();
} else { } else {
oled_write_P(PSTR("\n"), false);
render_logo(); render_logo();
oled_write_P(PSTR("\n"), false);
oled_scroll_left(); oled_scroll_left();
} }
} }
+15 -6
View File
@@ -12,10 +12,6 @@ bool process_record_oled(uint16_t keycode, keyrecord_t *record) { return true; }
#endif #endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#ifdef OLED_DRIVER_ENABLE
process_record_oled(keycode, record);
#endif
switch (keycode) { switch (keycode) {
// Sends pyenv to activate 'jira' environment // Sends pyenv to activate 'jira' environment
@@ -81,7 +77,16 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// Opens Visual Studio Code on current directory // Opens Visual Studio Code on current directory
case M_CODE: case M_CODE:
if (record->event.pressed) { if (record->event.pressed) {
SEND_STRING("code ." SS_TAP(X_ENTER)); SEND_STRING("code .\n");
}
break;
// Opens Terminal
case M_TERM:
if (record->event.pressed) {
SEND_STRING(SS_DOWN(X_LGUI) SS_TAP(X_SPACE) SS_UP(X_LGUI));
wait_ms(250);
SEND_STRING("terminal\n");
} }
break; break;
@@ -104,5 +109,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// END: Layer macros // END: Layer macros
} }
return process_record_keymap(keycode, record) && process_record_secrets(keycode, record); return process_record_keymap(keycode, record) && process_record_secrets(keycode, record)
#ifdef OLED_DRIVER_ENABLE
&& process_record_oled(keycode, record)
#endif
; // Close return
} }
+1
View File
@@ -14,6 +14,7 @@ enum custom_keycodes {
M_FLSH, M_FLSH,
M_VRSN, M_VRSN,
M_CODE, M_CODE,
M_TERM,
// Secret Macros // Secret Macros
M_XXX1, M_XXX1,
M_XXX2, M_XXX2,