Compare commits

...
280 Commits
Author SHA1 Message Date
Jack Humbert fe47b36065 fix tag increment 2017-07-03 00:23:37 -04:00
Jack Humbert ea134be36a fix up travis script 2017-07-02 23:38:20 -04:00
Jack Humbert b7afa59c97 remove warning 2017-06-30 16:33:49 -04:00
Jack Humbert 753809eed7 adds debouncing to sixkeyboard 2017-06-30 16:33:49 -04:00
Jack Humbert b476d65b9c Update keyboards' rules.mk/Makefiles (#1442)
this may change some of the keyboards' default settings - if you experience anything odd, please check back to this commit
2017-06-30 16:09:52 -04:00
Jack Humbert 61ef949576 update some copyright headers 2017-06-28 12:58:58 -04:00
Jack Humbert 56634ca065 cleanup nyquist 2017-06-28 10:42:23 -04:00
Jack Humbert 663d3906ec cleanup orthodox 2017-06-28 10:42:23 -04:00
Jack Humbert f5f7dfa064 cleanup lets_split 2017-06-28 10:42:23 -04:00
Jack Humbert 4ea247e673 create initial code of conduct 2017-06-27 21:36:44 -04:00
Jack Humbert a52836e669 Merge pull request #1445 from qmk/dual_audio
Allow for duophony (C6 and B5) and B5 audio
2017-06-27 16:57:19 -04:00
Jack Humbert 7d28a417c0 don't let timer1 exist without b5 being enabled 2017-06-27 15:28:13 -04:00
Jack Humbert ea7590c894 add new arguements, docs 2017-06-27 14:35:08 -04:00
Jack Humbert 9f5b4e1d7a Merge branch 'master' of https://github.com/qmk/qmk_firmware into dual_audio 2017-06-27 14:21:42 -04:00
Jack Humbert b82604dada no glide 2017-06-27 14:20:53 -04:00
Jack Humbert bfc73e90cf working duopholy 2017-06-27 14:20:44 -04:00
Jack Humbert eabf530a0e b5 audio 2017-06-27 14:20:14 -04:00
Jack Humbert 4ba9438c3f Add eclipse to the _summary 2017-06-27 13:07:50 -04:00
Jack Humbert b2979eba23 Adds parenthesis where they might be needed
Addresses #764
2017-06-27 12:55:18 -04:00
Erez Zukerman 98391605ca Merge pull request #1441 from lindhe/swedish
Create sv_SE Qwerty layout for ErgoDox EZ
2017-06-27 11:33:29 -04:00
Andreas Lindhé a25dbaad32 Create sv_SE Qwerty layout for ErgoDox
*NOTE:* it might still be desirable to set the software layout to sv_SE in your
OS.

Swedish (sv_SE) Qwerty layout for ErgoDox, based on the Default configuration

I have tried making this as close of a match I could between the [default
ErgoDox EZ configuration](https://ergodox-ez.com/pages/our-firmware) and a
standard Swedish Qwerty layout.

Notable differences from default:
=================================

* There are three special character buttons (acute accent, circumflex/tilde and
  apostrophe/asterisk) that don't have any buttons to map to naturally. I've put
  these at other places:

    * Acute accent (´) can be found in the lower left corner, conveniently
      placed to reach for making an é.

    * Apostrophe (') was put in the lower left corner, close to acute accent.

    * Circumflex (^) and asterisk (*) was placed in the lower right corner.

    * Tilde (~) and diaeresis (¨) I couldn't find a good place for, so I left
      those out. I could only get the buttons to produce a single one of the
      characters. How can I get it to work properly?

* The Alt button on right thumb was exchanged for AltGr (RAlt).

* I changed the backslash in the numpad (layer 1) for a minus. Thought it was
  more sensible.

* I didn't find a good place for the "<>|" button, so that one was left out.
  That is a problem that really needs to be resolved. Pipe can be found on layer
  one, however.
2017-06-27 15:17:21 +02:00
Jack Humbert 61cdc9aaa4 Allow mod swapping for mod tap (MT) (#1202)
* allow mod swapping for mod tap

* quick include

* fix the mod swapping

* make changes consistent with action code

* fix bug

* re-enable no gui, etc

* fix binary comps

* solid logic
2017-06-26 18:54:01 -04:00
Jack Humbert d1fb8d2296 Merge pull request #1431 from rai-suta/master
Bugg fix and add keymap for testing JIS_KEYCODE switch.
2017-06-25 21:31:10 -04:00
Ethan Madden 42e6ecc36b Whitefox LED control (#1432)
* use new grave_esc functionality

* Port LED control from Ergodox Infinity to Whitefox
2017-06-25 21:30:40 -04:00
Art Ortenburger 43579a80a7 add support for Orthodox keyboard (#1436)
* Added orthodox

* Modified readme

* Modified readme

* Modified readme

* Updated makefile

* Fixed keymap issues

* Modified serial communications to allow for over 8 columns

* Fixed sizeof command

* Fixed some typing issues

* Testing issue #1191 (n-column split i2c slave)

Based on initial OrthoDox (serial) config by @reddragond and others,
this attempts to add TWI (I2C) support.
Relevant: <https://github.com/qmk/qmk_firmware/issues/1191>

- per @ahtn recommendation, using memcpy for moving slave matrix
  into slave sending buffer
- slave buffer has been enlarged using sizeof(matrix_row_t)
- note: i2c.h now includes matrix.h
- note: matrix.c includes <string.h>

* Added i2c keymap - right col still not working

* orthodox: re-added i2c keymap, based on serial

* orthodox / issue #1191: trying 9-bit serial

- orthodox serial protocol now sends 9 bits per row, instead of 16.
  Technically it's using MATRIX_COLS, so it might work generically.
- ROW_MASK is #defined in serial.c to truncate the checksums to prevent
  overflows causing false errors. This macro should be renamed if it's
  kept.

* Revert "Fixed sizeof command"

This reverts commit f62a5b9939d6a9c0e442ec403de00c14431a55f9.

Changes had been made to the lets_split serial driver for testing which
mirrored the multi-byte-row changes made to support the orthodox. As the
lets_split does not require these changes, and new improvements had
been added to the orthodox port only, this commit reverts them.

Because the new code could potentially reduce latency over the serial
transport, it may be desirable to re-add in the future, by backporting
the current working orthodox code.

* orthodox: default serial keymap improvements

- formatting has been improved
- a few keys have been shifted, mainly in Raise and Lower layers,
  to be more like the default Planck layout
- Now available: F12, Home, End, PgUp, PgDn, Media-Next, Media-Play

Still To Do:
- duplicate for TWI
- Alt modifier
- GUI modifier

* orthodox: failed attempt at 16b/row TWI

- duplicated updated serial keymap for "i2c"
- removed string.h/memcpy, instead
- hardcoded copying of six bytes per update
- still doesn't work; master reports interconnect errors on txled

* orthodox: adjusted default keymap

- this is applied to both 'serial' and 'i2c' keymaps
- Alt and GUI have been added, as they were missing
- comma and period persist across more layers; Home/PgUp and End/PgDn
  have been moved slightly to accommodate

* orthodox: revert TWI support to minimum to debug

- disabled ssd1306 and hardware locking in build configuration
- increased TWI buffer from 0x10 to 0x20 bytes
- decreased TWI clock from 400000 to 100000
- removed hardcoded TWI multi-byte sending/receiving

An 'i2c' build of this was found to work on a rev1 Orthodox, although
slave-side col9 was understandably not working. When testing-time
permits, features will be gradually re-enabled towards getting the full
matrix supported over TWI.

* orthodox: TWI (i2c) is working, kludge for col9

The TWI interconnect ("i2c" in directories and build config) is now
working for the Orthodox, including the slave half's column #9.
This is intended as an interim solution, as it's a kludge, not a fix.

Rather than a working multi-byte implementation, the two col9 keys'
bits are packed-into and unpacked-from the two unused bits in row1.
Furthermore, the TWI clock constant has been reduced to 100000 from
400000, as testing revealed the higher value just didn't work.
Testing also found that (with this kludge) increasing the TWI buffer
was not necessary.

This commit leaves many commented-out lines in matrix.c from previous
testing, which will be removed in a future commit once the
interconnects' multi-byte problems have been debugged more thoroughly.

* orthodox: updated readme.md

The readme for the Orthodox now includes a description of the keyboard,
allusions to its author and availability, a linked photo, and links to
the evolving build guide and the current keymap on KLE.
This update has been prepared with /u/Deductivemonkee's assistance.
2017-06-25 21:30:07 -04:00
Jack Humbert 1a4a66fd01 updates olkb readmes #1362 2017-06-25 12:40:25 -04:00
rai-suta 3a2ae6a213 Add a keymap for testing JIS_KEYCODE. 2017-06-26 00:37:46 +09:00
rai-suta e740520b3f Fix bug. 2017-06-26 00:24:32 +09:00
Jack Humbert 169ede0715 Merge pull request #1427 from blakedietz/master
Add keymaps for ergodox ez, hhkb and jd45 under user blakedietz
2017-06-25 10:29:24 -04:00
Jack Humbert de833659ae Merge pull request #1429 from fredizzimo/fixes_for_emulator
Minor fixes to support the emulator
2017-06-25 10:29:00 -04:00
Fred Sundvik 1e6a3f9e17 Change M_2_PI to 2 * PI as it should be 2017-06-25 12:55:18 +03:00
Blake Dietz daf16535f1 Add keymaps for ergodox ez, hhkb and jd45 under user blakedietz 2017-06-24 22:46:07 -06:00
skullY 62c77e7dbf Remove the DIODE_DIRECTION defines from lets_split so we can close #1067 2017-06-24 17:08:43 -07:00
skullY 582a6ac75c Fix #1135 by changing the default to at90usb1286 2017-06-24 15:28:13 -07:00
Jack Humbert 901a92a2fd Update _summary.md 2017-06-24 13:11:25 -04:00
Jack Humbert f175f5df95 Merge pull request #1425 from kynikos/patch-1
Fix typo
2017-06-24 11:39:15 -04:00
Jack Humbert 6c81656e8e Merge pull request #1426 from rai-suta/master
Add JIS_KEYCODE layout for send_string()
2017-06-24 11:38:38 -04:00
rai-suta 5dae013ff8 Add JIS_KEYCODE layout for send_string() 2017-06-24 18:29:37 +09:00
Dario Giovannetti 30ab4dd14f Fix typo 2017-06-24 16:32:10 +08:00
Jack Humbert c208a6d4e5 update docs for isp 2017-06-23 23:09:14 -04:00
Jack Humbert b9987d65f9 Merge branch 'master' of https://github.com/qmk/qmk_firmware 2017-06-23 23:07:01 -04:00
Jack Humbert 2c65a17752 add other mcu bootloaders 2017-06-23 23:05:42 -04:00
Jack Humbert dfa6417ae3 Merge pull request #1422 from nstickney/master
update ErgoDox "Familiar" layout
2017-06-23 21:48:17 -04:00
Jack Humbert 918aea5b47 Update _summary.md 2017-06-23 21:29:35 -04:00
Jack Humbert b4f2f44a6f Create isp_flashing_guide.md 2017-06-23 21:29:04 -04:00
Jack Humbert 1524c2cb16 Merge pull request #1418 from npoirey/master
Frenchdev v1
2017-06-23 18:05:33 -04:00
npoirey 8ad12b1eb7 Updated frenchdev readme 2017-06-23 23:59:30 +02:00
Fred Sundvik dcf9fa1aaa Update the ugfx submodule 2017-06-24 00:37:27 +03:00
Fred Sundvik f912c74fe7 Change inline to static inline 2017-06-24 00:34:16 +03:00
Fred Sundvik 574ca7f59c Delete emulator drivers 2017-06-24 00:34:16 +03:00
Fred Sundvik da19852964 Add function for getting the LCD backlight brightness 2017-06-24 00:34:16 +03:00
Fred Sundvik ff49259a1a Include config.h from visualizer.h 2017-06-24 00:34:16 +03:00
Fred Sundvik b0094e631e Change remote url of uGFX to relative path 2017-06-24 00:34:16 +03:00
Fred Sundvik 6c9b4743f7 Include config.h before visualizer.h 2017-06-24 00:33:23 +03:00
Stick e43e58aad1 updated README.md 2017-06-23 16:28:06 -05:00
Stick f4e4d6f8d0 Merge remote-tracking branch 'upstream/master' 2017-06-23 16:02:44 -05:00
Stick 37987837b1 added media keys; many bug fixes 2017-06-23 16:02:01 -05:00
npoirey a3f151b8e9 Refactoring frenchdev 2017-06-23 21:35:33 +02:00
npoirey de80e2c756 Moved frenchdev to handwired 2017-06-23 21:25:46 +02:00
Jack Humbert a1ce43781a Merge pull request #1421 from 333fred/update-layout
Update my layout
2017-06-23 14:43:51 -04:00
Jack Humbert 91f3a73a28 Merge pull request #1419 from Wraul/phantom-improvements
Phantom improvements
2017-06-23 14:43:32 -04:00
Fredric Silberberg 6794495336 Doc updates 2017-06-23 11:36:14 -07:00
Fredric Silberberg 2b26abf9a9 Copy/paste additions. 2017-06-23 11:24:55 -07:00
Fredric Silberberg 946f4854c5 Added backlight control keys 2017-06-23 11:07:28 -07:00
Fredric Silberberg a2fbd671ad Added a few more VS macros and another ctrl 2017-06-23 11:07:28 -07:00
Fredric Silberberg 7389beb18c Small keymap layout updates 2017-06-23 11:07:28 -07:00
Mathias Andersson dd9b00543b Update Phantom readme
Added basic description of the keyboard and some build and configuration
instructions.

Also moved the RGB underlight modification instructions to the readme.
2017-06-23 12:07:18 +02:00
Mathias Andersson 7ca335cf5b Adjust Phantom for standard PCB
The previous default configuration and keymap was made for a Phantom
modified with RGB underlight.

This commit makes the default more in line with the "official"
configurations provided by the PCB.

The previous default have been moved to a separate keymap named
`rgbmod`. It has also been updated to better match the template keymap.
2017-06-23 12:07:18 +02:00
Mathias Andersson 3522496f24 Update Phantom config to better match template 2017-06-23 12:07:18 +02:00
Mathias Andersson 67b8bf8f70 Move Phantom LED handling to phantom.c
This is more in line with the structure provided by the keyboard
template.
2017-06-23 12:07:18 +02:00
Stick 98373f2fc1 added tapdance locking 2017-06-22 22:22:43 -05:00
npoirey a012c24225 Removed image from git and added references to imgur album for Frenchdev keyboard. 2017-06-22 22:19:50 +02:00
Stick fa96d64f37 Merge remote-tracking branch 'upstream/master' 2017-06-22 13:06:30 -05:00
Jack Humbert 2b98ec67f3 Update _summary.md 2017-06-22 13:23:08 -04:00
Jack Humbert 7b3c9cc8de Create adding_a_keyboard_to_qmk.md 2017-06-22 13:22:21 -04:00
Jack Humbert f32c68ee65 Update porting_your_keyboard_to_qmk.md 2017-06-22 13:21:43 -04:00
Jack Humbert c21c2cc92b Merge pull request #1416 from geofflane/feature/s65_x_std_grv_esc
Use the new Quantum KC_GESC instead of custom code
2017-06-22 12:38:45 -04:00
Erez Zukerman fe9556104b Merge pull request #1331 from ariasuni/master
Fix undefined reference errors with avr-gcc 7.1
2017-06-22 08:40:59 -04:00
npoirey 0fb835c54c Fix warning in frenchdev 2017-06-22 10:47:44 +02:00
npoirey 23b0fc20e3 Frenchdev v1 2017-06-22 10:34:23 +02:00
Jack Humbert 9d22a1a6d8 add group edge via travis updates 2017-06-21 11:23:33 -04:00
Geoff Lane 8705ac408d Use the new Quantum KC_GESC instead of custom code 2017-06-21 09:37:20 -04:00
Jack Humbert 23df3016e8 Merge pull request #1405 from cquiroz/oneshot-mods-timeout
Oneshot mods timeout
2017-06-20 11:40:10 -04:00
Jack Humbert 9019d65b3c Merge pull request #1414 from dvdizon/kbd75
KBD75 - Initial KBD75 port from qmkeyboard.cn source files
2017-06-20 09:19:48 -04:00
Jack Humbert 2c171b3e5f Merge pull request #1413 from lasko/master
This is a complete redo of my keymap. It includes several
2017-06-20 09:18:02 -04:00
Jack Humbert 33a271b8e3 Merge pull request #1412 from nall/master
Fixed offset for knight rgb mode
2017-06-20 09:17:36 -04:00
David Dizon e71b3c6572 KBD75 - Initial KBD75 port from qmkeyboard.cn source files 2017-06-19 22:59:17 -07:00
Jon Nall f169c715eb Added custom keymap and enabled Space Cadet 2017-06-19 22:44:42 -07:00
Brandon Height 2ffcf47793 This is a complete redo of my keymap. It includes several
layers including qwerty, colemak, navigation, and gui layers.

I also was playing around with dancing tap keys.
2017-06-19 20:12:30 -07:00
Jon Nall 7ce056cad7 Fixed offset for knight rgb mode 2017-06-19 19:51:37 -07:00
Jack Humbert 3e7bb19612 Merge pull request #1410 from belak/tv44-core
tv44: Add core layout based on the Core 47
2017-06-19 14:05:02 -04:00
Jack Humbert e951317acb Merge pull request #1409 from fredizzimo/full_unit_test
Take first baby steps towards testing the whole QMK
2017-06-19 14:04:19 -04:00
Kaleb Elwert f71c990215 tv44: Add core layout based on the Core 47 2017-06-18 22:44:52 -07:00
Fred Sundvik 1aa0be4cf1 Fix serial_link vpath problem 2017-06-19 00:46:53 +03:00
Fred Sundvik 0f163c0028 Add todo to timer.c 2017-06-19 00:24:32 +03:00
Fred Sundvik fb9b8dadb9 Add a couple of todos to keyboard_report_util.cpp
Also print the modifier state
2017-06-19 00:22:12 +03:00
Fred Sundvik 43d8fa5bf1 More natural interface for setting keyboard leds 2017-06-19 00:19:09 +03:00
Fred Sundvik 36f820be7e Add a test fixture
It only initializes QMK once, and clears the matrix after each test.
2017-06-18 23:49:38 +03:00
Fred Sundvik e85b185796 Test two keys pressed at once 2017-06-18 21:22:22 +03:00
Fred Sundvik 6a76192fa4 Fix problems with undefined inlines in debug mode 2017-06-18 21:22:22 +03:00
Fred Sundvik bd1729d5be Actually test for correct key presses 2017-06-18 21:22:22 +03:00
Fred Sundvik fb95d86b39 Move functions for adding keys from to reports to report.h 2017-06-18 21:22:22 +03:00
Fred Sundvik 017458a07b Move functionality from action_util to report
The functions also takes report_kebyoard_t parameters, so that they can
be used elsewhere.
2017-06-18 21:22:22 +03:00
Fred Sundvik c38589d861 Fix the order of init and driver creation 2017-06-18 21:22:22 +03:00
Fred Sundvik 3bb0586acc Add a couple of basic tests and implement driver mock 2017-06-18 21:22:22 +03:00
Fred Sundvik 617578399c Add keymap 2017-06-18 21:22:22 +03:00
Fred Sundvik c588fca06c Empty bootloader_jump 2017-06-18 21:22:22 +03:00
Fred Sundvik a72e8f0865 Dummy test matrix implementation 2017-06-18 21:22:22 +03:00
Fred Sundvik 1c0fe956ac Split common.mk into common.mk and common_features.mk
To support including keyboard/keymap specific rules before it
2017-06-18 21:22:22 +03:00
Fred Sundvik d29906cb64 Emulate eeprom 2017-06-18 21:10:42 +03:00
Fred Sundvik f646f00b93 Rename native to test 2017-06-18 21:10:42 +03:00
Fred Sundvik 83509adc3a Add empty timer functions 2017-06-18 21:10:42 +03:00
Fred Sundvik 26eb97a4a8 Empty implementation of bootloader, suspend and timer 2017-06-18 21:10:42 +03:00
Fred Sundvik fdfd48e8c8 Fix program mem functionality 2017-06-18 21:10:42 +03:00
Fred Sundvik efaf0e830b Empty implementation of wait 2017-06-18 21:10:42 +03:00
Fred Sundvik 585d646128 Define MATRIX_COLS and MATRIX_ROWS 2017-06-18 21:10:42 +03:00
Fred Sundvik 8674f9c466 Make sure config.h is included 2017-06-18 21:10:42 +03:00
Fred Sundvik 7424261dae Try to build tmk_common 2017-06-18 21:10:42 +03:00
Fred Sundvik 30f22d450d Add basic infrastrucure for building full tests 2017-06-18 21:08:23 +03:00
Jack Humbert 621ae42a6c revert edit 2017-06-18 13:28:34 -04:00
Jack Humbert 4217cb5bbc Update key_functions.md 2017-06-18 13:26:20 -04:00
Jack Humbert 517f75d893 Merge pull request #1349 from jpetermans/infinity60
Infinity60 backlight support
2017-06-18 12:38:38 -04:00
Jack Humbert dd73e14c9b Merge pull request #1407 from take-a-CHANCE/master
Adding a planck keymap
2017-06-18 12:35:08 -04:00
Jack Humbert 66e2d6a063 Merge pull request #1406 from jprMesh/atreus52
Atreus52
2017-06-18 12:34:33 -04:00
Jack Humbert f2e1609801 remove hardware files, move arrow pad 2017-06-18 12:33:14 -04:00
Carlos Quiroz 74d752b531 Remove noisy debug line 2017-06-18 12:17:51 -04:00
Carlos Quiroz 3ab0f4d9e5 Deactivate oneshot mods once timedout 2017-06-18 12:17:51 -04:00
Jack Humbert 5682254f71 Merge pull request #1408 from fredizzimo/fix_build_improve_travis
Fix the two failing keymaps and improve the travis build script
2017-06-18 12:13:56 -04:00
Fred Sundvik 45d437ca04 Make only modified keymaps 2017-06-18 18:30:59 +03:00
Jack Humbert 51a86b85f3 Merge pull request #1361 from fredizzimo/ergodox_infinity_backlight
Add Ergodox Infinity backlight support
2017-06-18 10:15:02 -04:00
Fred Sundvik 2fd670bec0 Add missing include to Ergodox Belak keymap 2017-06-18 17:07:20 +03:00
Fred Sundvik 6ba22b5f5e Don't define RGBLED_NUM in let-split khord keymap
It's already defined correctly by the parent keyboard project, and was
causing problems for rev1, where the pin is different.
2017-06-18 17:03:07 +03:00
Fred Sundvik a15510b57b Always build everything on master 2017-06-18 17:03:05 +03:00
Fred Sundvik 5acc0e54aa Make all subprojects when a keymap is modified 2017-06-18 16:44:51 +03:00
root 1a8042ae91 Added personal keymap with underglow, right shift, numpad, and bright hidden behind raise/lower 2017-06-17 23:11:37 -04:00
Jonas Rogers a284245f77 Atreus52- moved parens and braces to left hand. 2017-06-17 22:51:50 -04:00
Jonas Rogers 85d688e92c Atreus52- made dvorak layer default. 2017-06-17 21:21:46 -04:00
Jonas Rogers 4c2f04986a Atreus52- added software reset key. 2017-06-17 21:21:38 -04:00
Jonas 3007d01718 Atreus52- Modified BDO map. 2017-06-17 21:21:30 -04:00
Jonas 3b9fabb9aa Atreus52- BDO keymap. 2017-06-17 21:21:21 -04:00
jprmesh a8992a2cfe Atreus52- Added Nav layer keymap. 2017-06-17 21:20:16 -04:00
Jonas 7837d96b6e Atreus52- Reworked keymap to be more 40% like. 2017-06-17 21:20:09 -04:00
jprmesh 56026dd4df Atreus52- Swapped thumb keys. 2017-06-17 21:19:59 -04:00
jprmesh 1552fd6ae1 Atreus52- Last changes to config to get it workin. 2017-06-17 21:19:48 -04:00
jprmesh 133908da74 Atreus52- Some keymap changes. 2017-06-17 21:19:45 -04:00
jprMesh 3c2c489768 Atreus52- Fixed spacing and changed to KC_KEYMAP macro. 2017-06-17 21:19:36 -04:00
jprmesh b236e51b69 Atreus52- finished initial keymap layout. 2017-06-17 21:19:29 -04:00
jprmesh 17e81baab3 Atreus52- Fixed config. 2017-06-17 21:19:18 -04:00
jprmesh f9eb11a674 Atreus52- Fixed Qwerty Dvorak switch 2017-06-17 21:18:58 -04:00
jprmesh bb99d7117c Atreus52- Changed to KEYMAP macro format. 2017-06-17 21:18:40 -04:00
jprMesh a5ba30338f Atreus52- Initial Atreus52 file creation. 2017-06-17 21:18:04 -04:00
Jack Humbert 7feadbd66d Merge pull request #1401 from geofflane/s65_x_fixes3
S65-X Fixes Part 3
2017-06-17 20:14:49 -04:00
Jack Humbert 206233d98c Merge pull request #1402 from belak/tv44-belak-tap-magic
tv44: Rearrange belak keymap and add some tap dance magic
2017-06-17 20:14:23 -04:00
Jack Humbert 82372d36af Merge pull request #1403 from Wraul/kmac-fixes
KMAC fixes
2017-06-17 20:14:05 -04:00
Mathias Andersson df26ede131 Unify KMAC code indentation
It's a little unclear what the style guidelines are for the QMK project.
But I figured that I should at least keep the indentation consistent
within the KMAC part.
2017-06-17 20:06:28 +02:00
Mathias Andersson 67e150a08a Enable backlight support by default for KMAC 2017-06-17 20:06:28 +02:00
Mathias Andersson ba945c5e77 Correct layer switching in KMAC keymap readmes 2017-06-17 20:06:28 +02:00
Mathias Andersson be002137f9 Fix some KMAC code formating 2017-06-17 20:06:28 +02:00
Mathias Andersson a621c7f88b Don't include the console by default on the KMAC 2017-06-17 20:06:28 +02:00
Kaleb Elwert 722adce095 tv44: Rearrange belak keymap and add some tap dance magic 2017-06-16 17:08:00 -07:00
jamesofarrell 98316ef017 Added Grave Escape (#1391)
* added QK_GRAVE_ESC and KC_GESC

* fixed name

* Fixed keycode emnu

* Removed layer check, added left and right GUI mod detection for OSX GUI+~
2017-06-16 14:56:50 -07:00
Jack Humbert ff2b01da49 Merge pull request #1400 from belak/belak-ergodox-theme
ergodox: initial addition of belak theme
2017-06-16 17:01:54 -04:00
Jack Humbert 6549e169f8 Merge pull request #1398 from belak/tv44-keymap-changes
TV44 keymap changes
2017-06-16 17:00:36 -04:00
Kaleb Elwert e9a4a5e961 tv44: add belak keymap 2017-06-16 13:11:40 -07:00
Kaleb Elwert ef4abfeb31 ergodox: initial addition of belak theme
Imported from external repo https://github.com/belak/ergodox-layout at commit
233008ad8c46a85cb118fca0be093c3e751075b0
2017-06-16 10:57:58 -07:00
Geoff Lane b4802d7567 Fix home and end to be on <> 2017-06-16 11:57:43 -04:00
Geoff Lane d2a11b523b LED control on the BL layer 2017-06-15 21:57:50 -04:00
Fred Sundvik 086aad0d7e Make sure backlight is in the range 0-100 2017-06-16 02:06:30 +03:00
Fred Sundvik ec88a0b3cc Make sure that the backlight level is within the right range 2017-06-16 02:05:38 +03:00
Fred Sundvik 7d5606085f Correctly calculate backlight level 2017-06-16 02:05:15 +03:00
Fred Sundvik 19f0285a76 Fix typo in BACKLIGHT_ENABLE 2017-06-15 23:21:01 +03:00
Kaleb Elwert 29108d1477 tv44: update tong92 keymap to use KEYMAP macro 2017-06-15 12:48:59 -07:00
Kaleb Elwert 4cefb45a2d tv44: update xyverz keymap to use KEYMAP macro 2017-06-15 12:48:44 -07:00
Kaleb Elwert f894103997 tv44: update default keymap to use KEYMAP macro 2017-06-15 12:47:57 -07:00
Kaleb Elwert b56a9a9899 tv44: update jeebak keymap to use new macros and remove custom ones 2017-06-15 12:46:25 -07:00
Kaleb Elwert e32e7dc0f5 tv44: update smt keymap to use new macros and remove custom ones 2017-06-15 12:45:53 -07:00
Kaleb Elwert 44ce179192 tv44: Fix up the KEYMAP macro
Previously KEYMAP referred to the KEYMAP_ARROW layout and had 45 keys. It makes
more sense for the default keymap to be the 44 key layout, as is implied by the
name.

Additionally keymaps for all other known layouts have been added:

KEYMAP - base layout
KEYMAP_ARROW - additional key in bottom right
KEYMAP_COMMAND - additional key in bottom left
KEYMAP_ARROW_COMMAND - combination of KEYMAP_ARROW and KEYMAP_COMMAND
2017-06-15 12:42:23 -07:00
Jack Humbert d9ffd77ee7 Merge pull request #1397 from geofflane/s65x_fixes
S65x fixes
2017-06-15 15:16:52 -04:00
Geoff Lane e553bb3af4 LED init works with just pin declared 2017-06-15 13:42:14 -04:00
Geoff Lane b107d64d69 Use standard QMK key codes for RGB control 2017-06-15 13:12:36 -04:00
Geoff Lane c81be932d2 Fix left shift in ansi layout 2017-06-15 13:12:36 -04:00
Geoff Lane 899584187f Fix esc key 2017-06-15 13:12:36 -04:00
Jack Humbert 6a75a7d672 Merge pull request #1394 from Khord/master
Adding custom keymap for Let's Split and updates to custom Planck keymap
2017-06-15 12:34:18 -04:00
Jack Humbert be9fd4b4fa Merge pull request #1396 from shieldsd/master
Minor updates to planck/keymaps/dshields
2017-06-15 12:33:44 -04:00
Daniel Shields cc158d90ae Minor updates to planck/keymaps/dshields
* tweaks to tap dance keys
* tidy up code
* save a few bytes
2017-06-15 09:41:59 +01:00
Dylan Khor 5c11ba74d8 tap dance and hold changes to make planck match lets split 2017-06-15 03:34:08 -04:00
Dylan Khor a44ba492ea minor fixes 2017-06-15 03:26:04 -04:00
Dylan Khor 22f985eba7 Add custom let's split keymap 2017-06-15 07:15:27 +00:00
Martin Gondermann 49cfdb544d Added HyperTab and Ctrl/Fn as well as Space cadet parens (#1390)
* Added HyperTab and Ctrl/Escape as well as Space cadet parens to magicmonty keymap

* Replaced CTL_ESC With FN_ESC
2017-06-14 07:20:43 -07:00
fredizzimo 3aa620c1ac Update uGFX and Chibios submodules + fixes (#1363)
* Make submodules point to qmk

* Update uGFX to 2.7

* Use ugfx with custom fixes

* Fix the ChibiOs submodule commit hash

To match the hashes in the mabl/ChibiOS and therefore QMK repository.
2017-06-13 21:13:39 -07:00
Jack Humbert c2c9cb2505 Merge pull request #1392 from jetpacktuxedo/whitefox
Added whitefox keymap
2017-06-13 22:21:52 -04:00
Ethan Madden a7942c4f48 Added whitefox keymap 2017-06-13 16:01:28 -07:00
Jack Humbert 3d5d3e1b0c Merge pull request #1387 from antelaurijssen/master
Submitting my own custom layout for S60X keyboard
2017-06-12 20:47:35 -04:00
Ante Laurijssen f37daa5343 Properly formatted unordered lists in readme.md 2017-06-12 20:24:56 -04:00
Ante Laurijssen 3ee346c07b Mods to readme.md 2017-06-12 20:20:28 -04:00
Ante Laurijssen 78a4cfd453 Modifications to readme.md and deletion of keyboard layout images 2017-06-12 20:13:17 -04:00
Jack Humbert 6b5d67fcc6 Merge pull request #1389 from geofflane/keyboard_s65_x_2
Keyboard S65-X Support #2
2017-06-12 17:08:27 -04:00
Jack Humbert d1854e0e04 Merge pull request #1388 from bigbigtor/fix_spanish
Fix spanish keymap
2017-06-12 17:06:11 -04:00
Geoff Lane 0440c0f072 Add ISO layout for S65-X 2017-06-12 16:57:01 -04:00
Geoff Lane 568c662c14 Fix media controls in default layout 2017-06-12 16:19:57 -04:00
Geoff Lane 96b0382fb4 Fix backslash and some of the docs 2017-06-12 16:16:42 -04:00
Víctor 21fa16651c Rename ES_RCRB to ES_RCBR for consistency reasons (left curly bracket is defined as ES_LCBR) 2017-06-12 21:44:40 +02:00
Víctor 2c404cca12 Fix keymap definitions referencing inexistent macros 2017-06-12 21:43:34 +02:00
Martin Gondermann a5b5279da9 Add MIDI layer to magicmonty keymap (#1386)
* Add MIDI layer

* Respect brightness level on layer signalling

* Add hotkey in control layer for signalling state

* Update layout.png

* Remove image and replace it with imgur link
2017-06-12 08:48:01 -07:00
Ante Laurijssen 54d48140cd -MIDI Chords now using process_record_user instead of F(n) keys
-Morse Code shift keys implemented
2017-06-11 16:00:40 -04:00
Stick 4b50ab029d Revert "ugly workaround for ErgoDoxEZ LED bugs: turn 'em all off"
This reverts commit f397402e10.
2017-06-08 08:59:33 -05:00
Stick 5a70cb30ee trying to fix LEDs 2017-06-08 08:59:30 -05:00
Stick 3af2bca1fc Merge remote-tracking branch 'upstream/master' 2017-06-08 08:52:32 -05:00
Ante Laurijssen 7146dfea6e Created special shift keys for Morse layer that change variable value, enabling to send “shifted” special morse code characters. 2017-06-07 23:57:14 -04:00
Ante Laurijssen 8f80f35186 Working on Morse Code Macros 2017-06-07 22:01:28 -04:00
Stick 035f7bb1bf Merge remote-tracking branch 'upstream/master' 2017-06-07 15:55:52 -05:00
Ante Laurijssen 1b8ed53f21 Added a couple of custom keys and updated layer image 2017-06-05 22:17:35 -04:00
Fred Sundvik b51a0db6ed Add backlight support to the default Ergodox Infinity animations 2017-06-03 22:04:10 +03:00
Fred Sundvik 2a7f9a7e46 Add backlight control to the IS31FL3731 driver 2017-06-03 21:30:52 +03:00
Fred Sundvik effffa33a5 Backlight level handling for the visualizer 2017-06-03 21:14:26 +03:00
Fred Sundvik 0f9bfafb9e Turn off LED matrix by default 2017-06-03 15:31:02 +03:00
Fred Sundvik a916f4e8b8 Let BACKLIGHT_ENABLE control the Infinity LEDs 2017-06-03 14:34:50 +03:00
Ante Laurijssen 9cfa37bb3d Improvements and corrections to morse code macros layer 2017-06-02 22:57:57 -04:00
Stick f397402e10 ugly workaround for ErgoDoxEZ LED bugs: turn 'em all off 2017-06-02 20:02:02 -05:00
Stick 4cf17210b6 moved alt out from under space 2017-06-02 19:51:29 -05:00
Stick 4ba9917f82 Merge remote-tracking branch 'upstream/master' 2017-06-02 19:50:54 -05:00
jpetermans 9af272e4bb Update lock led processing and remove debug msgs 2017-05-30 21:52:44 -07:00
Ante Laurijssen fbaf964a85 Improvements to Midi and keymap 2017-05-30 21:27:00 -04:00
Ante Laurijssen 06684555d2 Another typo... 2017-05-29 22:16:17 -04:00
Ante Laurijssen cd4ccee703 Corrected typo in readme.md 2017-05-29 22:13:52 -04:00
Ante Laurijssen 1ef911d150 Added a few images 2017-05-29 22:11:48 -04:00
Ante Laurijssen 4c48c29c0e Added MIDI_CHORD layer and other little fixes.
Updated readme.md
2017-05-29 22:09:06 -04:00
Ante Laurijssen a584675735 Midi Chord Function is now working! But some chords lag... 2017-05-28 08:14:17 -04:00
ariasuni e87691fa5d Fix undefined reference errors with avr-gcc 7.1 2017-05-27 00:25:35 +02:00
Ante Laurijssen 6b1f707ce9 Still working on these MIDI CHORDS! 2017-05-26 09:54:40 -04:00
Ante Laurijssen b4b06f81b5 More changes to keymap.c to try and get midi chords to work 2017-05-25 23:03:33 -04:00
jpetermans ac97870801 reduce recurring writes to lock leds 2017-05-25 13:00:21 -07:00
Ante Laurijssen 1a0dfbbc96 More updates to keymap.c - still errors with midi when trying to compile 2017-05-24 21:15:41 -04:00
jpetermans 083267680d Restore deleted MEMO.txt from master 2017-05-24 12:26:56 -07:00
jpetermans e6c9b07e1c Merge branch 'user_led_configuration' into infinity60
Conflicts:
	keyboards/infinity60/keymaps/jpetermans/keymap.c
2017-05-24 12:07:18 -07:00
jpetermans 2dcd6c38fa Merge remote-tracking branch 'upstream/master' into infinity60 2017-05-24 11:51:20 -07:00
jpetermans f54b4771eb keymap example update and tweak to set_led_bit function 2017-05-24 11:20:50 -07:00
Ante Laurijssen 4d783d0e69 More work on my keymap.c and added .png images of my different layers. 2017-05-22 23:30:25 -04:00
Ante Laurijssen 06433eb1a0 More work on keymap.c and config.h 2017-05-21 22:37:20 -04:00
Ante Laurijssen 34a1bf9e20 Merge https://github.com/qmk/qmk_firmware
Update my qmk_firmware fork
2017-05-21 08:44:52 -04:00
Ante Laurijssen b766407cbe Continuing work on keymap.c 2017-05-21 08:40:42 -04:00
Ante Laurijssen c686793b59 Merge https://github.com/qmk/qmk_firmware
Update from QMK main
2017-05-17 23:06:57 -04:00
Ante Laurijssen 26c6f6a85c Added Space Cadet Rollover Disable to config.h 2017-05-16 22:08:45 -04:00
Ante Laurijssen 814b570ba1 Working on keymap.c file... 2017-05-15 22:56:33 -04:00
Ante Laurijssen ee0b34feaf Started working on custom midi chord function 2017-05-14 20:07:35 -04:00
Ante Laurijssen f006ebebbd Initial push of my keymap 2017-05-14 16:07:44 -04:00
jpetermans 164a6c994b reorder mailbox msg data; formatting 2017-05-10 15:53:59 -07:00
jpetermans a144968807 remove breath functions from keymap 2017-05-08 16:38:44 -07:00
jpetermans 16774333ad last readme fix 2017-05-08 16:28:04 -07:00
jpetermans 5fc5661147 third readme fix attempt 2017-05-08 16:19:11 -07:00
jpetermans d1ff2bb9db readme fix 2017-05-08 16:17:40 -07:00
jpetermans 821f72eae9 documentation cleanup 2017-05-08 16:15:20 -07:00
jpetermans b5675e2025 Merge branch 'user_led_configuration' of https://github.com/jpetermans/qmk_firmware into user_led_configuration
Conflicts:
	keyboards/infinity60/led_controller.c
	keyboards/infinity60/led_controller.h
2017-05-08 15:42:27 -07:00
jpetermans 967cf0f6d4 Merge remote-tracking branch 'upstream/master' into user_led_configuration 2017-05-08 15:24:50 -07:00
jpetermans 5df74f3ba7 updated keymap for new led functions 2017-05-08 15:13:02 -07:00
jpetermans f1d81d2cc6 minor change on lock leds 2017-05-08 14:55:57 -07:00
jpetermans 2c5b551970 CLeaned out debug code 2017-05-08 14:35:08 -07:00
jpetermans 52f671c23e small code cleanup 2017-05-08 11:57:40 -07:00
jpetermans b27fb216ef Testing initial blink support 2017-04-30 16:27:46 -07:00
jpetermans ff6beeb7a3 simplified lock led function 2017-04-29 09:22:40 -07:00
jpetermans b3945c103c Simplified processing in led_controller; more control at user level. 2017-04-26 23:12:25 -07:00
Stick 8665ed3efc small changes 2017-04-18 09:46:07 -05:00
jpetermans 046f1baf30 more stable lock led process, added debugging code 2017-04-15 14:37:55 -07:00
jpetermans c0ec1756af Added backlight step functionality 2017-04-14 18:20:12 -07:00
jpetermans ec1e936dfb fixed bit shift in led_set_bit 2017-04-13 17:51:37 -07:00
jpetermans 1b1adf35bb more flexible led processing functions, all and on/off/toggle
functioning
2017-04-13 17:15:24 -07:00
jpetermans 15635817b5 Updated lock led init 2017-04-12 23:32:38 -07:00
jpetermans 0881f2dbfa fixed write_led_page col shift, added option for lock led display 2017-04-11 23:33:48 -07:00
jpetermans d8e9c183be led init code missing pwm writes for Frame 1 2017-04-10 22:23:45 -07:00
jpetermans dda858c437 revised led controller code to allow for more options
unable to switch picture displays
2017-04-10 17:36:47 -07:00
jpetermans a2ac883779 add ability to toggle individual led by address 2017-04-07 15:58:17 -07:00
jpetermans af13e9a12d Moved led page arrays to keymap.c and added keymap header to define
individual led addresses
2017-04-06 16:27:51 -07:00
jpetermans d89114400c Small keymap tweak and clean up. 2017-04-06 15:22:13 -07:00
jpetermans 56be300757 Add Kinetis_i2c settings consistent with whitefox mcuconf 2017-04-06 14:23:14 -07:00
jpetermans 91f2e9fb5e match hal settings to whitefox, fix make rules 2017-04-06 13:53:18 -07:00
jpetermans 02ef122cbb Add led_controller.h to user keymap.c 2017-04-06 13:51:33 -07:00
jpetermans f66361d678 add led init function to header for use in keymap.c 2017-04-06 13:48:31 -07:00
jpetermans da4c2d2e3e Adjust led_controller.c matrix sttings and init function 2017-04-06 13:46:54 -07:00
jpetermans b73c935d36 Added tmk whitefox led files 2017-04-06 13:45:15 -07:00
jpetermans dfb0a512a0 Added personal configs and keymap to infinity60/keymaps 2017-04-06 13:43:22 -07:00
375 changed files with 16533 additions and 24959 deletions

No files matched your search

+3 -3
View File
@@ -1,12 +1,12 @@
[submodule "lib/chibios"] [submodule "lib/chibios"]
path = lib/chibios path = lib/chibios
url = https://github.com/ChibiOS/ChibiOS.git url = https://github.com/qmk/ChibiOS
[submodule "lib/chibios-contrib"] [submodule "lib/chibios-contrib"]
path = lib/chibios-contrib path = lib/chibios-contrib
url = https://github.com/ChibiOS/ChibiOS-Contrib.git url = https://github.com/qmk/ChibiOS-Contrib
[submodule "lib/ugfx"] [submodule "lib/ugfx"]
path = lib/ugfx path = lib/ugfx
url = https://bitbucket.org/Tectu/ugfx url = https://github.com/qmk/uGFX
[submodule "lib/googletest"] [submodule "lib/googletest"]
path = lib/googletest path = lib/googletest
url = https://github.com/google/googletest url = https://github.com/google/googletest
+3 -2
View File
@@ -1,6 +1,7 @@
os: linux os: linux
dist: trusty dist: trusty
sudo: required sudo: required
group: edge
language: c language: c
branches: branches:
except: except:
@@ -33,7 +34,7 @@ after_success:
notifications: notifications:
webhooks: webhooks:
urls: urls:
- https://webhooks.gitter.im/e/cca31de3d44b9adb617b - https://webhooks.gitter.im/e/afce403d65f143dfac09
on_success: change # options: [always|never|change] default: always on_success: always # options: [always|never|change] default: always
on_failure: always # options: [always|never|change] default: always on_failure: always # options: [always|never|change] default: always
on_start: never # options: [always|never|change] default: always on_start: never # options: [always|never|change] default: always
+15
View File
@@ -0,0 +1,15 @@
# Code Of Conduct
QMK strives to be an inclusive and tolerant community. We welcome participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation.
> “A gentle word turns away wrath, but a harsh word stirs up anger.”
Our users, contributors, and collaborators are expected to treat each other with respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. Some examples of behavior we will not tolerate include, but is not limited to:
* The use of sexualized language or imagery
* Unwelcome advances, sexual or otherwise
* Insults or derogatory comments, or personal or political attacks
* Publishing others’ private information without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
If someone is violating this Code of Conduct you may email hello@qmk.fm to bring your concern to the Members. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
+1 -1
View File
@@ -419,7 +419,7 @@ define BUILD_TEST
MAKE_TARGET := $2 MAKE_TARGET := $2
COMMAND := $1 COMMAND := $1
MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET) MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET)
MAKE_VARS := TEST=$$(TEST_NAME) MAKE_VARS := TEST=$$(TEST_NAME) FULL_TESTS=$$(FULL_TESTS)
MAKE_MSG := $$(MSG_MAKE_TEST) MAKE_MSG := $$(MSG_MAKE_TEST)
$$(eval $$(call BUILD)) $$(eval $$(call BUILD))
ifneq ($$(MAKE_TARGET),clean) ifneq ($$(MAKE_TARGET),clean)
+30
View File
@@ -0,0 +1,30 @@
# Copyright 2017 Fred Sundvik
#
# 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 $(TMK_PATH)/protocol.mk
TEST_PATH=tests/$(TEST)
$(TEST)_SRC= \
$(TEST_PATH)/test.cpp \
$(TMK_COMMON_SRC) \
$(QUANTUM_SRC) \
tests/test_common/matrix.c \
tests/test_common/test_driver.cpp \
tests/test_common/keyboard_report_util.cpp \
tests/test_common/test_fixture.cpp
$(TEST)_DEFS=$(TMK_COMMON_DEFS)
$(TEST)_CONFIG=$(TEST_PATH)/config.h
VPATH+=$(TOP_DIR)/tests/test_common
+3 -132
View File
@@ -31,8 +31,6 @@ $(error MASTER does not have a valid value(left/right))
endif endif
endif endif
KEYBOARD_PATH := keyboards/$(KEYBOARD) KEYBOARD_PATH := keyboards/$(KEYBOARD)
KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c KEYBOARD_C := $(KEYBOARD_PATH)/$(KEYBOARD).c
@@ -42,7 +40,6 @@ else
$(error "$(KEYBOARD_C)" does not exist) $(error "$(KEYBOARD_C)" does not exist)
endif endif
ifneq ($(SUBPROJECT),) ifneq ($(SUBPROJECT),)
SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT) SUBPROJECT_PATH := keyboards/$(KEYBOARD)/$(SUBPROJECT)
SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c SUBPROJECT_C := $(SUBPROJECT_PATH)/$(SUBPROJECT).c
@@ -118,139 +115,12 @@ endif
# # project specific files # # project specific files
SRC += $(KEYBOARD_C) \ SRC += $(KEYBOARD_C) \
$(KEYMAP_C) \ $(KEYMAP_C) \
$(QUANTUM_DIR)/quantum.c \ $(QUANTUM_SRC)
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
ifneq ($(SUBPROJECT),) ifneq ($(SUBPROJECT),)
SRC += $(SUBPROJECT_C) SRC += $(SUBPROJECT_C)
endif endif
ifndef CUSTOM_MATRIX
SRC += $(QUANTUM_DIR)/matrix.c
endif
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
endif
MUSIC_ENABLE := 0
ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/audio/audio.c
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(MUSIC_ENABLE), 1)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/light_ws2812.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE = yes
LED_BREATHING_TABLE = yes
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(LED_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
# Optimize size but this may cause error "relocation truncated to fit" # Optimize size but this may cause error "relocation truncated to fit"
#EXTRALDFLAGS = -Wl,--relax #EXTRALDFLAGS = -Wl,--relax
@@ -262,9 +132,10 @@ endif
VPATH += $(KEYBOARD_PATH) VPATH += $(KEYBOARD_PATH)
VPATH += $(COMMON_VPATH) VPATH += $(COMMON_VPATH)
include common_features.mk
include $(TMK_PATH)/protocol.mk include $(TMK_PATH)/protocol.mk
include $(TMK_PATH)/common.mk include $(TMK_PATH)/common.mk
SRC += $(TMK_COMMON_SRC) SRC += $(TMK_COMMON_SRC)
OPT_DEFS += $(TMK_COMMON_DEFS) OPT_DEFS += $(TMK_COMMON_DEFS)
EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS)
+10
View File
@@ -40,13 +40,23 @@ VPATH +=\
all: elf all: elf
VPATH += $(COMMON_VPATH) VPATH += $(COMMON_VPATH)
PLATFORM:=TEST
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include tests/$(TEST)/rules.mk
endif
include common_features.mk
include $(TMK_PATH)/common.mk include $(TMK_PATH)/common.mk
include $(QUANTUM_PATH)/serial_link/tests/rules.mk include $(QUANTUM_PATH)/serial_link/tests/rules.mk
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
include build_full_test.mk
endif
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC) $(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC) $(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS) $(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
$(TEST_OBJ)/$(TEST)_CONFIG := $($(TEST)_CONFIG)
include $(TMK_PATH)/native.mk include $(TMK_PATH)/native.mk
include $(TMK_PATH)/rules.mk include $(TMK_PATH)/rules.mk
+1 -8
View File
@@ -11,17 +11,10 @@ QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR)
BUILD_DIR := $(TOP_DIR)/.build BUILD_DIR := $(TOP_DIR)/.build
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH := $(TOP_DIR) COMMON_VPATH := $(TOP_DIR)
COMMON_VPATH += $(TMK_PATH) COMMON_VPATH += $(TMK_PATH)
COMMON_VPATH += $(QUANTUM_PATH) COMMON_VPATH += $(QUANTUM_PATH)
COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras COMMON_VPATH += $(QUANTUM_PATH)/keymap_extras
COMMON_VPATH += $(QUANTUM_PATH)/audio COMMON_VPATH += $(QUANTUM_PATH)/audio
COMMON_VPATH += $(QUANTUM_PATH)/process_keycode COMMON_VPATH += $(QUANTUM_PATH)/process_keycode
COMMON_VPATH += $(QUANTUM_PATH)/api COMMON_VPATH += $(QUANTUM_PATH)/api
COMMON_VPATH += $(SERIAL_PATH)
+153
View File
@@ -0,0 +1,153 @@
# Copyright 2017 Fred Sundvik
#
# 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/>.
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH += $(SERIAL_PATH)
ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes
endif
MUSIC_ENABLE := 0
ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/audio/audio.c
SRC += $(QUANTUM_DIR)/audio/voices.c
SRC += $(QUANTUM_DIR)/audio/luts.c
endif
ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif
ifeq ($(MUSIC_ENABLE), 1)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(VIRTSER_ENABLE)), yes)
OPT_DEFS += -DVIRTSER_ENABLE
endif
ifeq ($(strip $(FAUXCLICKY_ENABLE)), yes)
OPT_DEFS += -DFAUXCLICKY_ENABLE
SRC += $(QUANTUM_DIR)/fauxclicky.c
endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
OPT_DEFS += -DRGBLIGHT_ENABLE
SRC += $(QUANTUM_DIR)/light_ws2812.c
SRC += $(QUANTUM_DIR)/rgblight.c
CIE1931_CURVE = yes
LED_BREATHING_TABLE = yes
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH)
endif
ifneq ($(strip $(VARIABLE_TRACE)),)
SRC += $(QUANTUM_DIR)/variable_trace.c
OPT_DEFS += -DNUM_TRACED_VARIABLES=$(strip $(VARIABLE_TRACE))
ifneq ($(strip $(MAX_VARIABLE_TRACE_SIZE)),)
OPT_DEFS += -DMAX_VARIABLE_TRACE_SIZE=$(strip $(MAX_VARIABLE_TRACE_SIZE))
endif
endif
ifeq ($(strip $(LCD_ENABLE)), yes)
CIE1931_CURVE = yes
endif
ifeq ($(strip $(BACKLIGHT_ENABLE)), yes)
ifeq ($(strip $(VISUALIZER_ENABLE)), yes)
CIE1931_CURVE = yes
endif
endif
ifeq ($(strip $(CIE1931_CURVE)), yes)
OPT_DEFS += -DUSE_CIE1931_CURVE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_BREATHING_TABLE)), yes)
OPT_DEFS += -DUSE_LED_BREATHING_TABLE
LED_TABLES = yes
endif
ifeq ($(strip $(LED_TABLES)), yes)
SRC += $(QUANTUM_DIR)/led_tables.c
endif
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c \
$(QUANTUM_DIR)/process_keycode/process_leader.c
ifndef CUSTOM_MATRIX
QUANTUM_SRC += $(QUANTUM_DIR)/matrix.c
endif
+5 -1
View File
@@ -3,6 +3,7 @@
* [Introduction](home.md) * [Introduction](home.md)
* [QMK Overview](qmk_overview.md) * [QMK Overview](qmk_overview.md)
* [Build Environment Setup](build_environment_setup.md) * [Build Environment Setup](build_environment_setup.md)
* [Make instructions](make_instructions.md)
### Making a keymap ### Making a keymap
* [Keymap overview](keymap.md) * [Keymap overview](keymap.md)
@@ -19,10 +20,13 @@
* [FAQ: Compiling QMK](faq_build.md) * [FAQ: Compiling QMK](faq_build.md)
### For hardware makers and modders ### For hardware makers and modders
* [Modding your keyboard](modding_your_keyboard.md) * [Adding a keyboard to QMK](adding_a_keyboard_to_qmk.md)
* [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md) * [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md)
* [Modding your keyboard](modding_your_keyboard.md)
* [Adding features to QMK](adding_features_to_qmk.md) * [Adding features to QMK](adding_features_to_qmk.md)
* [ISP flashing guide](isp_flashing_guide.md)
### Other topics ### Other topics
* [General FAQ](faq.md) * [General FAQ](faq.md)
* [Differences from TMK](differences_from_tmk.md) * [Differences from TMK](differences_from_tmk.md)
* [Using Eclipse with QMK](eclipse.md)
+35
View File
@@ -0,0 +1,35 @@
# Adding your keyboard to QMK
We welcome all keyboard projects into QMK, but ask that you try to stick to a couple guidelines that help us keep things organised and consistent.
## Naming your directory/project
All names should be lowercase alphanumeric, and separated by an underscore (`_`), but not begin with one. Dashes (`-`) aren't allow by our build system, and will confuse it with keymaps/subprojects. Your directory and your `.h` and `.c` files should have exactly the same name. Subprojects/revision should follow the same format.
## `readme.md`
All projects need to have a `readme.md` file that explains what the keyboard is, who made it, where it is available, and links to move information (template coming).
## Image/Hardware files
In an effort to keep the repo size down, we're no longer accepting images of any format in the repo, with few exceptions. Hosting them elsewhere (imgur) and linking them in the readme.md is the preferred method.
Any sort of hardware file (plate, case, pcb) can't be stored in qmk_firmware, but we have the [qmk.fm repo](https://github.com/qmk/qmk.fm) where such files (as well as in-depth info) can be store, and viewed on [qmk.fm](http://qmk.fm). Downloadable files are stored in `/<keyboard>/` (name follows the same format as above) which are served at `http://qmk.fm/<keyboard>/`, and pages are generated from `/_pages/<keyboard>/` which are served at the same location (.md files are generated into .html files through Jekyll). Check out the `lets_split` directory for an example.
## Non-production/handwired projects
We're happy to accept any project that uses QMK, including prototypes and handwired ones, but we have a separate `/keyboards/handwired/` folder for them, so the main `/keyboards/` folder doesn't get overcrowded. If a prototype project becomes a production project at some point in the future, we'd be happy to move it to the main `/keyboards/` folder!
## Warnings as errors
When developing your keyboard, keep in mind that all warnings will be treated as errors - these small warnings can build-up and cause larger errors down the road (and keeping them is generally a bad practice).
## Licenses
If you're adapting your keyboard's setup from another project, but not using the same code, but sure to update the copyright header at the top of the files to show your name, it this format:
Copyright 2017 Your Name <your@email.com>
## Technical details
If you're looking for more information on making your keyboard work with QMK, [check out this guide](porting_your_keyboard_to_qmk.md)!
+106
View File
@@ -0,0 +1,106 @@
# ISP Flashing Guide
If you're having trouble flashing/erasing your board, and running into cryptic error messages like any of the following:
libusb: warning [darwin_transfer_status] transfer error: timed out
dfu.c:844: -ETIMEDOUT: Transfer timed out, NAK 0xffffffc4 (-60)
atmel.c:1627: atmel_flash: flash data dfu_download failed.
atmel.c:1629: Expected message length of 1072, got -60.
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
dfu.c:844: -EPIPE: a) Babble detect or b) Endpoint stalled 0xffffffe0 (-32)
Device is write protected.
dfu.c:252: dfu_clear_status( 0x7fff4fc2ea80 )
atmel.c:1434: Error flashing the block: err -2.
ERROR
Memory write error, use debug for more info.
commands.c:360: Error writing memory data. (err -4)
You're likely going to need to ISP flash your board/device to get it working again. Luckily, this process is pretty straight-forward, provided you have any extra programmable keyboard, Arduino, or Teensy 2.0/Teensy 2.0++. There are also dedicated ISP flashers available for this, but most cost >$15, and it's assumed that if you are googling this error, this is the first you've heard about ISP flashing, and don't have one readily available (whereas you might have some other AVR board). __We'll be using a Teensy 2.0 with Windows 10 in this guide__ - if you are comfortable doing this on another system, please consider editing this guide and contributing those instructions!
## Software needed
* [The Arduino IDE](https://www.arduino.cc/en/Main/Software)
* [Teensyduino](https://www.pjrc.com/teensy/td_download.html) (if you're using a Teensy)
* [WinAVR](http://www.ladyada.net/learn/avr/setup-win.html) (Windows)
## Wiring
This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner:
Flasher B0 <-> Keyboard RESET
Flasher B1 <-> Keyboard B1 (SCLK)
Flasher B2 <-> Keyboard B2 (MOSI)
Flasher B3 <-> Keyboard B3 (MISO)
Flasher VCC <-> Keyboard VCC
Flasher GND <-> Keyboard GND
## The ISP firmware
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
1. Run Arduino after you have everything installed
2. Select `Tools > Board * > Teensy 2.0`
3. Click `File > Examples > 11.ArduinoISP > ArduinoISP`
Then scroll down until you see something that looks like this block of code:
// Configure which pins to use:
// The standard pin configuration.
#ifndef ARDUINO_HOODLOADER2
#define RESET 0 // Use 0 (B0) instead of 10
#define LED_HB 11 // Use 11 (LED on the Teensy 2.0)
#define LED_ERR 8 // This won't be used unless you have an LED hooked-up to 8 (D3)
#define LED_PMODE 7 // This won't be used unless you have an LED hooked-up to 7 (D2)
And make the changes in the last four lines. If you're using something besides the Teenys 2.0, you'll want to choose something else that makes sense for `LED_HB`. We define `RESET` as `0`/`B0` because that's what's close - if you want to use another pin for some reason, [you can use the pinouts to choose something else](https://www.pjrc.com/teensy/pinout.html).
Once you've made your changes, you can click the Upload button (right arrow), which will open up the Teensy flasher app - you'll need to press the reset button on the Teensy the first time, but after that, it's automatic (you shouldn't be flashing this more than once, though). Once flashed, the orange LED on the Teensy will flash on and off, indicating it's ready for some action.
## The .hex file
Before flashing your firmware, you're going to need to and do a little preparation. We'll be appending [this bootloader (also a .hex file)](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) to the end of our firmware by opening the original .hex file in a text editor, and removing the last line, which should be `:00000001FF` (this is an EOF message). After that's been removed, copy the entire bootloader's contents and paste it at the end of the original file, and save it.
It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to ISP to write new firmware to your keyboard.
## Flashing your firmware
Make sure your keyboard is unplugged from any device, and plug in your Teensy.
Open `cmd` and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with:
avrdude -c avrisp -P COM3 -p atmega32u4
and you should get something like the following output:
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.02s
avrdude: Device signature = 0x1e9587
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Since our keyboard uses an `atmega32u4` (common), that is the chip we'll specify. This is the full command:
avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i
You should see a couple of progress bars, then you should see:
avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: safemode: Fuses OK
avrdude done. Thank you.
Which means everything should be ok! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works.
If you have any questions/problems, feel free to [open an issue](https://github.com/qmk/qmk_firmware/issues/new)!
@@ -7,7 +7,7 @@ In rare circumstances, your keyboard/device can become unwritable, and `dfu-prog
[ X ERROR [ X ERROR
Memory write error, use debug for more info. Memory write error, use debug for more info.
Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked up to a couple of exposed pins on the PCB. There is a guide on how to do this [here](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt). Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked up to a couple of exposed pins on the PCB. __[We now have a guide on ISP flashing](isp_flashing_guide.md)__ and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt).
An example command to flash the board once things are hooked up is: An example command to flash the board once things are hooked up is:
+1 -1
View File
@@ -1,7 +1,7 @@
## Audio output from a speaker ## Audio output from a speaker
Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 port, you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes. Your keyboard can make sounds! If you've got a Planck, Preonic, or basically any keyboard that allows access to the C6 or B5 port (`#define C6_AUDIO` and `#define B5_AUDIO`), you can hook up a simple speaker and make it beep. You can use those beeps to indicate layer transitions, modifiers, special keys, or just to play some funky 8bit tunes.
The audio code lives in [quantum/audio/audio.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/default/keymap.c). Here are the important bits: The audio code lives in [quantum/audio/audio.h](https://github.com/qmk/qmk_firmware/blob/master/quantum/audio/audio.h) and in the other files in the audio directory. It's enabled by default on the Planck [stock keymap](https://github.com/qmk/qmk_firmware/blob/master/keyboards/planck/keymaps/default/keymap.c). Here are the important bits:
+5 -1
View File
@@ -1,3 +1,7 @@
# Porting your keyboard to QMK
This page describes the technical details of porting an existing keyboard to QMK. If you're looking to add your keyboard to QMK, please [look through these guidelines](adding_a_keyboard_to_qmk.md)!
If your keyboard is running an Atmega chip (atmega32u4 and others), it's pretty easy to get things setup for compiling your own firmware to flash onto your board. There is a `/util/new_project.sh <keyboard>` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below. If your keyboard is running an Atmega chip (atmega32u4 and others), it's pretty easy to get things setup for compiling your own firmware to flash onto your board. There is a `/util/new_project.sh <keyboard>` script to help get you started - you can simply pass your keyboard's name into the script, and all of the necessary files will be created. The components of each are described below.
## `/keyboards/<keyboard>/config.h` ## `/keyboards/<keyboard>/config.h`
@@ -34,7 +38,7 @@ At the bottom of the file, you'll find lots of features to turn on and off - all
## `/keyboards/<keyboard>/readme.md` ## `/keyboards/<keyboard>/readme.md`
This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well. This file will be rendered into a webpage at qmk.fm/keyboards/<keyboard>/. This is where you'll describe your keyboard - please write as much as you can about it! Talking about default functionality/features is useful here. Feel free to link to external pages/sites if necessary. Images can be included here as well, as long as they're hosted elsewhere (imgur).
## `/keyboards/<keyboard>/<keyboard>.c` ## `/keyboards/<keyboard>/<keyboard>.c`
+8 -8
View File
@@ -55,12 +55,12 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # change to no to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
#NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA NKRO_ENABLE = no # USB Nkey Rollover - not yet supported in LUFA
+12 -12
View File
@@ -52,15 +52,15 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870) RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no AUDIO_ENABLE = no
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+12 -12
View File
@@ -52,15 +52,15 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality (+1150) BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality (+1150)
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no AUDIO_ENABLE = no
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+2
View File
@@ -49,6 +49,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define BACKLIGHT_PIN B7 #define BACKLIGHT_PIN B7
#define BACKLIGHT_BREATHING #define BACKLIGHT_BREATHING
#define C6_AUDIO
/* COL2ROW or ROW2COL */ /* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW #define DIODE_DIRECTION COL2ROW
+10 -20
View File
@@ -1,26 +1,16 @@
Atomic keyboard firmware Atomic
====================== ===
DIY/Assembled ortholinear 60% keyboard by [Ortholinear Keyboards](http://ortholinearkeyboards.com).
## Quantum MK Firmware ![Atomic](http://i.imgur.com/3gNDJAh.jpg)
For the full Quantum feature list, see [the parent readme.md](/readme.md). A compact 60% (15x5) ortholinear keyboard kit made and sold by OLKB. [More info on qmk.fm](http://qmk.fm/atomic/)
## Building Keyboard Maintainer: [Jack Humbert](https://github.com/jackhumbert)
Hardware Supported: Atomic PCB rev1, Teensy 2.0
Hardware Availability: no longer available
Download or clone the whole firmware and navigate to the keyboards/atomic folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use `make dfu` to program your PCB once you hit the reset button. Make example for this keyboard (after setting up your build environment):
Depending on which keymap you would like to use, you will have to compile slightly differently. make atomic-default
### Default See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
To build with the default keymap, simply run `make default`.
### Other Keymaps
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create a file in the keymaps folder named `<name>.c` and see keymap document (you can find in top readme.md) and existent keymap files.
To build the firmware binary hex file with a keymap just do `make` with a keymap like this:
```
$ make [default|jack|<name>]
```
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder.
+13 -13
View File
@@ -52,18 +52,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # 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 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 ?= yes # Enable keyboard backlight functionality BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+11 -11
View File
@@ -64,19 +64,19 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# comment out to disable the options. # comment out to disable the options.
# #
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000) #BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - not yet supported in LUFA NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
# BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
UNICODE_ENABLE ?= YES # Unicode UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
USB ?= /dev/cu.usbmodem1411 USB = /dev/cu.usbmodem1411
upload: build upload: build
$(ATREUS_UPLOAD_COMMAND) $(ATREUS_UPLOAD_COMMAND)
+2 -2
View File
@@ -35,8 +35,8 @@ void promicro_bootloader_jmp(bool program);
{ KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_NO, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b }, \ { KC_##k00, KC_##k01, KC_##k02, KC_##k03, KC_##k04, KC_##k05, KC_NO, KC_##k06, KC_##k07, KC_##k08, KC_##k09, KC_##k0a, KC_##k0b }, \
{ KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_NO, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b }, \ { KC_##k10, KC_##k11, KC_##k12, KC_##k13, KC_##k14, KC_##k15, KC_NO, KC_##k16, KC_##k17, KC_##k18, KC_##k19, KC_##k1a, KC_##k1b }, \
{ KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_NO, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b }, \ { KC_##k20, KC_##k21, KC_##k22, KC_##k23, KC_##k24, KC_##k25, KC_NO, KC_##k26, KC_##k27, KC_##k28, KC_##k29, KC_##k2a, KC_##k2b }, \
{ KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k46, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \ { KC_##k30, KC_##k31, KC_##k32, KC_##k33, KC_##k34, KC_##k35, KC_##k47, KC_##k36, KC_##k37, KC_##k38, KC_##k39, KC_##k3a, KC_##k3b }, \
{ KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k47, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \ { KC_##k40, KC_##k41, KC_##k42, KC_##k43, KC_##k44, KC_##k45, KC_##k46, KC_##k48, KC_##k49, KC_##k4a, KC_##k4b, KC_##k4c, KC_##k4d } \
} }
#endif #endif
@@ -0,0 +1,4 @@
NKRO_ENABLE = true
MOUSEKEY_ENABLE = no
EXTRAKEY_ENABLE = yes
CONSOLE_ENABLE = no
@@ -0,0 +1,10 @@
<!-- -*- mode: markdown; fill-column: 8192 -*- -->
Atreus52 Modification
=======================
Firmware for my custom keyboard based on the Atreus layout, but with 5 rows and only 5 columns per hand.
More documentation coming soon.
# License
GPL-3+
@@ -0,0 +1,18 @@
#include "../../config.h"
#undef MANUFACTURER
#undef PRODUCT
#undef DESCRIPTION
#undef MATRIX_ROW_PINS
#undef MATRIX_COL_PINS
#undef DIODE_DIRECTION
/* USB Device descriptor parameter */
#define MANUFACTURER Mesh Industries
#define PRODUCT Atreus52 Treeboard
#define DESCRIPTION q.m.k. keyboard firmware for Atreus52
#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
#define MATRIX_COL_PINS { B2, B1, F7, F6, F5, F4, B6, D3, D2, D1, D0, D4, B3 }
#define DIODE_DIRECTION COL2ROW
@@ -0,0 +1,99 @@
#include "atreus62.h"
// Layers
#define DVORAK 0
#define QWERTY 1
#define RAISE 2
#define LOWER 3
#define BDO 4
#define RESETL 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[DVORAK] = KC_KEYMAP(
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \
NO, QUOT, COMM, DOT, P, Y, F, G, C, R, L, NO, \
NO, A, O, E, U, I, D, H, T, N, S, NO, \
NO, SCLN, Q, J, K, X, B, M, W, V, Z, NO, \
NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ),
[QWERTY] = KC_KEYMAP(
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \
NO, Q, W, E, R, T, Y, U, I, O, P, NO, \
NO, A, S, D, F, G, H, J, K, L, SCLN, NO, \
NO, Z, X, C, V, B, N, M, COMM, DOT, SLSH, NO, \
NO, FN2, LALT, LCTL, FN1, LSFT, BSPC, ENT, SPC, FN0, LGUI, LEFT, RGHT, NO ),
[RAISE] = KC_KEYMAP(
NO, MRWD, MPRV, MPLY, MNXT, MFFD, TRNS, MUTE, VOLD, VOLU, DEL, NO, \
NO, TILD, GRV, LCBR, RCBR, DQUO, QUOT, EQL, PLUS, MINS, QUES, NO, \
NO, ESC, TAB, LPRN, RPRN, BSLS, SLSH, LEFT, DOWN, UP, RGHT, NO, \
NO, TRNS, TRNS, LBRC, RBRC, TRNS, INS, PIPE, UNDS, TRNS, TRNS, NO, \
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, FN3, NO ),
[LOWER] = KC_KEYMAP(
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO, \
NO, EXLM, AT, HASH, DLR, PERC, CIRC, AMPR, ASTR, LPRN, RPRN, NO, \
NO, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, NO, \
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, DOT, TRNS, TRNS, TRNS, NO, \
NO, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, NO ),
[BDO] = KC_KEYMAP(
NO, ESC, 1, 2, 3, 4, 5, 0, SLSH, U, C, NO, \
NO, TAB, Q, W, E, R, 6, Y, I, O, P, NO, \
NO, LSFT, A, S, D, F, 7, G, H, J, K, NO, \
NO, T, Z, X, C, V, 8, B, N, M, L, NO, \
NO, LCTL, SPC, SPC, SPC, SPC, COMM, ENT, 9, NO, NO, NO, FN2, NO ),
[RESETL] = KEYMAP(
KC_NO, RESET, 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, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_FN3,KC_NO )
};
const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_LAYER_MOMENTARY(RAISE), // Raise layer
[1] = ACTION_LAYER_MOMENTARY(LOWER), // Lower layer
[2] = ACTION_LAYER_TOGGLE(BDO), // BDO layer
[3] = ACTION_LAYER_TOGGLE(RESETL) // RESET layer
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch (id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
}
else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
static uint8_t qw_dv_swap_state = 0;
bool process_record_user (uint16_t keycode, keyrecord_t *record) {
if (keycode == KC_LGUI) {
if (record->event.pressed)
qw_dv_swap_state |= 0b00000001;
else
qw_dv_swap_state &= ~(0b00000001);
}
if (keycode == KC_LCTL) {
if (record->event.pressed)
qw_dv_swap_state |= 0b00000010;
else
qw_dv_swap_state &= ~(0b00000010);
}
if (qw_dv_swap_state == 0b00000011) {
layer_invert(DVORAK);
}
return true;
}
+11 -11
View File
@@ -51,16 +51,16 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # 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 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 #BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
#MIDI_ENABLE ?= no # MIDI controls #MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= yes # Unicode UNICODE_ENABLE = yes # Unicode
#BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID #BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+11 -11
View File
@@ -53,15 +53,15 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
# NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work # NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+7 -7
View File
@@ -1,8 +1,8 @@
#BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration #BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
MOUSEKEY_ENABLE ?= yes # Mouse keys MOUSEKEY_ENABLE = yes # Mouse keys
EXTRAKEY_ENABLE ?= yes # Audio control and System control EXTRAKEY_ENABLE = yes # Audio control and System control
CONSOLE_ENABLE ?= yes # Console for debug CONSOLE_ENABLE = yes # Console for debug
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover NKRO_ENABLE = yes # USB Nkey Rollover
CUSTOM_MATRIX ?= yes # Custom matrix file CUSTOM_MATRIX = yes # Custom matrix file
@@ -1,2 +1,9 @@
MOUSEKEY_ENABLE = yes MOUSEKEY_ENABLE = yes
EXTRAKEY_ENABLE = yes EXTRAKEY_ENABLE = yes
MIDI_ENABLE = yes
# if MIDI_ENABLE is set to yes, then CONSOLE_ENABLE has to be disabled, because of the firmware size
CONSOLE_ENABLE = false
COMMAND_ENABLE = no
@@ -0,0 +1,44 @@
#ifndef CONFIG_USER_H
#define CONFIG_USER_H
#include "../../config.h"
/*
* 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 2
/* Disabling rollover allows you to use the opposite shift key to cancel the space cadet state in the event
of an erroneous press instead of emitting a pair of parentheses when the keys are released.
*/
#define DISABLE_SPACE_CADET_ROLLOVER
/*
Setting the Space Cadet Parens for German layout
Default is
#define LSPO_KEY KC_9
#define RSPC_KEY KC_0
*/
#define LSPO_KEY KC_8
#define RSPC_KEY KC_9
#endif
+103 -52
View File
@@ -3,62 +3,94 @@
// Helpful defines // Helpful defines
#define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT)) #define GRAVE_MODS (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)|MOD_BIT(KC_LGUI)|MOD_BIT(KC_RGUI)|MOD_BIT(KC_LALT)|MOD_BIT(KC_RALT))
#define _______ KC_TRNS #define _______ KC_TRNS
#define xxxxxxx KC_NO
#define HPR_TAB ALL_T(KC_TAB)
#define CTL_ESC CTL_T(KC_ESC)
// Each layer gets a name for readability, which is then used in the keymap matrix below. // Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name. // 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, obviously, and you can also skip them // Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers. // entirely and just use numbers.
#define _BL 0 #define _BL 0 // BASE Layer
#define _FL 1 #define _FL 1 // Function Layer
#define _ME 2 #define _ME 2 // Media Layer
#define _CL 3 #define _CL 3 // Control Layer
#define _ML 4 #define _ML 4 // Mouse Layer
#if defined(MIDI_ENABLE)
#define _MI 5 // MIDI Layer
#define TO_MIDI TO(_MI)
#else
#define TO_MIDI _______
#endif
#define TO_BASE TO(_BL)
#define MO_FUNC MO(_FL)
#define MEDIA MO(_ME)
#define MO_CTL MO(_CL)
#define L_MOUSE LT(_ML, KC_SPC)
#define ESC_FUN LT(_FL, KC_ESC)
#define ESC_GRV F(0)
#define RGB_RST F(1)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer) /* Keymap _BL: Base Layer (Default Layer) */
*/
[_BL] = KEYMAP( [_BL] = KEYMAP(
F(0), 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_INS, \ ESC_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_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_BSLS, KC_DEL, \ HPR_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_DEL, \
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_NUHS, KC_ENT, \ ESC_FUN, 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_UP, \ KC_LSPO, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______, KC_RSPC, KC_UP, \
KC_LCTL, KC_LGUI, KC_LALT, _______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_RALT, MO(_ME), MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), KC_LCTL, KC_LGUI, KC_LALT,_______, L_MOUSE, L_MOUSE, _______, KC_RALT, KC_RCTL, MO_FUNC, KC_LEFT, KC_DOWN, KC_RGHT),
/* Keymap _FL: Function Layer /* Keymap _FL: Function Layer */
*/
[_FL] = KEYMAP( [_FL] = KEYMAP(
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, _______, _______, BL_STEP, \ 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, _______, _______, BL_STEP, \
_______, _______, _______,_______,_______,_______,_______,_______,KC_PSCR,_______, KC_PAUS, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_PAUS, _______, _______, _______, _______, \
MO(_FL), _______, MO(_CL),_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RGHT, _______, _______, _______, _______, \ _______, _______, MO_CTL, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______, _______, \
_______, _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, _______, KC_PGUP, \ _______, _______, _______, _______, _______, _______, _______, _______, MEDIA, _______, _______, TO_MIDI, _______, _______, KC_PGUP, \
_______, _______, _______,_______, _______,_______, _______, _______, _______, MO(_FL), KC_HOME, KC_PGDN, KC_END), _______, _______, _______, _______, _______, _______, _______, _______, _______, MO_FUNC, KC_HOME, KC_PGDN, KC_END),
/* Keymap _ME: Media layer /* Keymap _ME: Media layer */
*/
[_ME] = KEYMAP( [_ME] = KEYMAP(
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLU, \
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_VOLD, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, \
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
MO(_FL), _______, _______,_______,_______,_______,_______,_______,MO(_ME),_______, _______, _______, _______, MO(_FL), _______, \ _______, _______, _______, _______, _______, _______, _______, _______, MEDIA, _______, _______, _______, _______, _______, _______, \
_______, _______, _______,_______, _______,_______, _______, _______, _______, _______, KC_MPRV, KC_MPLY,KC_MNXT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT),
/* Keymap _CL: Control layer /* Keymap _CL: Control layer */
*/
[_CL] = KEYMAP( [_CL] = KEYMAP(
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \ _______, RGB_RST, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, \
_______, _______, _______,_______,RESET, _______,_______,_______,_______,_______, _______, _______, _______, _______, RGB_VAD, \ _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \
_______, _______, MO(_CL),_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, \ _______, _______, MO_CTL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
MO(_FL), _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, MO(_FL), RGB_SAI, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \
_______, _______, _______,_______, RGB_MOD,RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI), _______, _______, _______, _______, RGB_MOD, RGB_MOD, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_HUI),
/* Keymap _ML: Mouse layer /* Keymap _ML: Mouse layer */
*/
[_ML] = KEYMAP( [_ML] = KEYMAP(
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
_______, _______, KC_BTN3,KC_BTN2,KC_BTN1,_______,KC_MS_L,KC_MS_D,KC_MS_U,KC_MS_R, _______, _______, _______, _______, \ _______, _______, KC_BTN3, KC_BTN2, KC_BTN1, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, \
_______, _______, _______,_______,_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, KC_MS_U, \ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MS_U, \
_______, _______, _______,_______, LT(_ML, KC_SPC),LT(_ML, KC_SPC), _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_D,KC_MS_R), _______, _______, _______, _______, L_MOUSE, L_MOUSE, _______, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_D, KC_MS_R),
#if defined(MIDI_ENABLE) && defined(MIDI_ADVANCED)
/* Keymap _MI: MIDI layer (Advanced)*/
[_MI] = KEYMAP(
TO_BASE,MI_VEL_1,MI_VEL_2,MI_VEL_3,MI_VEL_4,MI_VEL_5,MI_VEL_6,MI_VEL_7,MI_VEL_8,MI_VEL_9,MI_VEL_10, MI_CHD, MI_CHU, xxxxxxx, xxxxxxx, xxxxxxx, \
xxxxxxx, xxxxxxx, MI_Cs, MI_Ds, xxxxxxx, MI_Fs, MI_Gs, MI_As, xxxxxxx, MI_Cs_1, MI_Ds_1, xxxxxxx, MI_Fs_1, xxxxxxx, xxxxxxx, \
MI_MOD, MI_C, MI_D, MI_E, MI_F, MI_G, MI_A, MI_B, MI_C_1, MI_D_1, MI_E_1, MI_F_1, MI_G_1, xxxxxxx, \
MI_SUS, xxxxxxx, MI_OCTD, MI_OCTU,MI_MODSD,MI_MODSU, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, MI_TRNSD,MI_TRNSU,MI_TRNS_0, MI_SUS, xxxxxxx, \
xxxxxxx, xxxxxxx, xxxxxxx,xxxxxxx, MI_ALLOFF, MI_ALLOFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx),
#elif defined(MIDI_ENABLE) && defined(MIDI_BASIC)
/* Keymap _MI: MIDI layer (Basic)*/
[_MI] = KEYMAP(
TO_BASE, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \
xxxxxxx, xxxxxxx, MI_ON, MI_OFF, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, \
xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx, xxxxxxx),
#endif
}; };
/* This is a list of user defined functions. F(N) corresponds to item N /* This is a list of user defined functions. F(N) corresponds to item N
@@ -66,6 +98,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
*/ */
const uint16_t PROGMEM fn_actions[] = { const uint16_t PROGMEM fn_actions[] = {
[0] = ACTION_FUNCTION(0), // Calls action_function() [0] = ACTION_FUNCTION(0), // Calls action_function()
[1] = ACTION_FUNCTION(1), // Calls action_function()
}; };
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
@@ -102,6 +135,11 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) {
} }
} }
break; break;
case 1:
if (record->event.pressed) {
rgblight_mode(1);
rgblight_sethsv(206, 255, 255);
}
} }
} }
@@ -110,26 +148,34 @@ enum layer_id {
LAYER_FUNCTION, LAYER_FUNCTION,
LAYER_MEDIA, LAYER_MEDIA,
LAYER_CONTROL, LAYER_CONTROL,
LAYER_MOUSE LAYER_MOUSE,
#if defined(MIDI_ENABLE)
LAYER_MIDI
#endif
}; };
void clueboard_set_led(uint8_t id) { void clueboard_set_led(uint8_t id, uint8_t val) {
switch (id) { switch (id) {
case LAYER_BASE: case LAYER_BASE:
rgblight_sethsv_noeeprom(346, 0, 255); rgblight_sethsv_noeeprom(0, 0, val);
break; break;
case LAYER_FUNCTION: case LAYER_FUNCTION:
rgblight_sethsv_noeeprom(46, 255, 255); rgblight_sethsv_noeeprom(46, 255, val);
break; break;
case LAYER_MEDIA: case LAYER_MEDIA:
rgblight_sethsv_noeeprom(86, 255, 255); rgblight_sethsv_noeeprom(86, 255, val);
break; break;
case LAYER_CONTROL: case LAYER_CONTROL:
rgblight_sethsv_noeeprom(346, 255, 255); rgblight_sethsv_noeeprom(346, 255, val);
break; break;
case LAYER_MOUSE: case LAYER_MOUSE:
rgblight_sethsv_noeeprom(206, 255, 255); rgblight_sethsv_noeeprom(206, 255, val);
break; break;
#if defined(MIDI_ENABLE)
case LAYER_MIDI:
rgblight_sethsv_noeeprom(316, 255, val);
break;
#endif
} }
}; };
@@ -140,18 +186,23 @@ void matrix_scan_user(void) {
if (!rgblight_config.enable || rgblight_config.mode != 1) { return; } if (!rgblight_config.enable || rgblight_config.mode != 1) { return; }
uint32_t layer = layer_state; uint32_t layer = layer_state;
uint8_t val = rgblight_config.val;
if (layer & (1<<_FL)) { if (layer & (1<<_FL)) {
if (layer & (1<<_ME)) { if (layer & (1<<_ME)) {
clueboard_set_led(LAYER_MEDIA); clueboard_set_led(LAYER_MEDIA, val);
} else if (layer & (1<<_CL)) { } else if (layer & (1<<_CL)) {
clueboard_set_led(LAYER_CONTROL); clueboard_set_led(LAYER_CONTROL, val);
} else { } else {
clueboard_set_led(LAYER_FUNCTION); clueboard_set_led(LAYER_FUNCTION, val);
} }
} else if (layer & (1<<_ML)) { } else if (layer & (1<<_ML)) {
clueboard_set_led(LAYER_MOUSE); clueboard_set_led(LAYER_MOUSE, val);
#if defined(MIDI_ENABLE)
} else if (layer & (1<<_MI)) {
clueboard_set_led(LAYER_MIDI, val);
#endif
} else { } else {
clueboard_set_led(LAYER_BASE); clueboard_set_led(LAYER_BASE, val);
} }
}; };
@@ -1,6 +1,8 @@
![Clueboard Layout Image](http://i.imgur.com/ngg4EAY.png) # Layout of @magicmonty
# MouseKeys Layout [Keyboard Layout Editor File]
![Clueboard Layout Image](http://i.imgur.com/WFfJ15k.png)
This layout is a combination of the `mouse_keys` and the `win_optimized` layouts. This layout is a combination of the `mouse_keys` and the `win_optimized` layouts.
This layout is optimized for an ISO layout. This layout is optimized for an ISO layout.
@@ -10,7 +12,11 @@ will move your mouse cursor. You can click using the 3 mods to the left of the
arrow keys, or the 3 keys under your primary fingers on the home row. arrow keys, or the 3 keys under your primary fingers on the home row.
The Left, Down, Up and Right for the mouse movement are also VIM-Like on the HJKL keys The Left, Down, Up and Right for the mouse movement are also VIM-Like on the HJKL keys
The CapsLock is disabled and works as Function key. There is also a MIDI layer included.
The CapsLock is disabled and works as Escape when tapped and Fn when Hold.
The Tab key works as Tab when tapped, and [Hyper] (Ctrl + Alt + Shift + Cmd) when hold
The Shift-Keys are configured as [Space Cadet Shift Parentheses]
There is also a separate media layer with Volume/Play controls There is also a separate media layer with Volume/Play controls
@@ -21,3 +27,8 @@ The different layers are signalled throug setting of the underlight:
- Media layer: Green - Media layer: Green
- Mouse layer: Blue - Mouse layer: Blue
- Control layer: Red - Control layer: Red
- Midi layer: Purple
[Hyper]: http://brettterpstra.com/2012/12/08/a-useful-caps-lock-key/
[Space Cadet Shift Parentheses]: http://stevelosh.com/blog/2012/10/a-modern-space-cadet/#shift-parentheses
[Keyboard Layout Editor File]: http://www.keyboard-layout-editor.com/#/gists/f869b8789242a712e0f46eabbd550056
+11 -11
View File
@@ -90,14 +90,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= no # Audio control and System control(+450) EXTRAKEY_ENABLE = no # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
AUDIO_ENABLE ?= no AUDIO_ENABLE = no
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+13 -13
View File
@@ -53,18 +53,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
RGBLIGHT_ENABLE ?= yes # Enable keyboard underlight functionality (+4870) RGBLIGHT_ENABLE = yes # Enable keyboard underlight functionality (+4870)
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality by default BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality by default
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= yes # Audio output on port C6 AUDIO_ENABLE = yes # Audio output on port C6
+11 -11
View File
@@ -52,14 +52,14 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
# MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) # MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
# EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) # EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
BACKLIGHT_ENABLE ?= yes # Enable numpad's backlight functionality BACKLIGHT_ENABLE = yes # Enable numpad's backlight functionality
RGBLIGHT_ENABLE ?= yes RGBLIGHT_ENABLE = yes
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
@@ -2,24 +2,24 @@
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration 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 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 ?= no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE ?= yes UNICODEMAP_ENABLE = yes
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
PS2_USE_USART ?= yes PS2_USE_USART = yes
API_SYSEX_ENABLE ?= no API_SYSEX_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../../Makefile include ../../../../../Makefile
@@ -2,24 +2,24 @@
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration 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 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 ?= no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE ?= yes UNICODEMAP_ENABLE = yes
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
PS2_USE_USART ?= yes PS2_USE_USART = yes
API_SYSEX_ENABLE ?= no API_SYSEX_ENABLE = no
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../../Makefile include ../../../../../Makefile
+16 -16
View File
@@ -49,24 +49,24 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration 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 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 ?= no # Enable keyboard backlight functionality BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
UNICODEMAP_ENABLE ?= yes UNICODEMAP_ENABLE = yes
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
PS2_USE_USART ?= yes PS2_USE_USART = yes
API_SYSEX_ENABLE ?= n API_SYSEX_ENABLE = n
CUSTOM_MATRIX = yes CUSTOM_MATRIX = yes
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
SRC = matrix.c led.c SRC = matrix.c led.c
+14 -14
View File
@@ -5,17 +5,17 @@ F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
OPT_DEFS += -DBOOTLOADER_SIZE=4096 OPT_DEFS += -DBOOTLOADER_SIZE=4096
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
RGBLIGHT_ENABLE ?= no # Enable keyboard underlight functionality (+4870) RGBLIGHT_ENABLE = no # Enable keyboard underlight functionality (+4870)
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality (+1150) BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality (+1150)
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no AUDIO_ENABLE = no
UNICODE_ENABLE ?= yes # Unicode UNICODE_ENABLE = yes # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
SLEEP_LED_ENABLE ?= yes SLEEP_LED_ENABLE = yes
+2 -2
View File
@@ -1,7 +1,7 @@
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
RGBLIGHT_ENABLE ?= yes RGBLIGHT_ENABLE = yes
MIDI_ENABLE ?= no MIDI_ENABLE = no
ifndef MAKEFILE_INCLUDED ifndef MAKEFILE_INCLUDED
include ../../../Makefile include ../../../Makefile
+25 -1
View File
@@ -1,6 +1,30 @@
#include "ez.h" #include "ez.h"
#include "i2cmaster.h" #include "i2cmaster.h"
extern inline void ergodox_board_led_on(void);
extern inline void ergodox_right_led_1_on(void);
extern inline void ergodox_right_led_2_on(void);
extern inline void ergodox_right_led_3_on(void);
extern inline void ergodox_right_led_on(uint8_t led);
extern inline void ergodox_board_led_off(void);
extern inline void ergodox_right_led_1_off(void);
extern inline void ergodox_right_led_2_off(void);
extern inline void ergodox_right_led_3_off(void);
extern inline void ergodox_right_led_off(uint8_t led);
extern inline void ergodox_led_all_on(void);
extern inline void ergodox_led_all_off(void);
extern inline void ergodox_right_led_1_set(uint8_t n);
extern inline void ergodox_right_led_2_set(uint8_t n);
extern inline void ergodox_right_led_3_set(uint8_t n);
extern inline void ergodox_right_led_set(uint8_t led, uint8_t n);
extern inline void ergodox_led_all_set(uint8_t n);
bool i2c_initialized = 0; bool i2c_initialized = 0;
uint8_t mcp23018_status = 0x20; uint8_t mcp23018_status = 0x20;
@@ -57,7 +81,7 @@ uint8_t init_mcp23018(void) {
// cli(); // cli();
if (i2c_initialized == 0) { if (i2c_initialized == 0) {
i2c_init(); // on pins D(1,0) i2c_init(); // on pins D(1,0)
i2c_initialized++; i2c_initialized = true;
_delay_ms(1000); _delay_ms(1000);
} }
@@ -0,0 +1,289 @@
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
/**
* This section of macros is for tap or hold functionality. Keys will fire off the second symbol in the name if tapped
* or fire the first symbol in the name if held. For example
* GUI_Z
*
* - will fire z if tapped
* - will fire cmd/super/win if held
*/
#define ALT_DOT ALT_T(KC_DOT)
#define ALT_X ALT_T(KC_X)
#define CTL_SLSH CTL_T(KC_SLSH)
#define CTL_Z CTL_T(KC_Z)
#define GUI_C GUI_T(KC_C)
#define GUI_COMM GUI_T(KC_COMM)
#define HPR_ESC ALL_T(KC_ESC)
#define HPR_QUO ALL_T(KC_QUOT)
#define BASE 0
#define SYMB 1
#define MDIA 2
#define MOUSE 3
#define DEV 4
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | = | 1 | 2 | 3 | 4 | 5 | LEFT | | RIGHT| 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Del | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | \ |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | BkSp | A | S | D | F | G |------| |------| H | J | K | L |; / L2| '" |
* |--------+------+------+------+------+------| Hyper| | Meh |------+------+------+------+------+--------|
* | LShift |Z/Ctrl|X/Alt |C/GUI | V | B | | | | N | M |,/GUI |./ALT |//Ctrl| RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Grv/L1| '" |AltShf| Left | Right| | Up | Down | [ | ] | ~L1 |
* `----------------------------------' `----------------------------------'
* ,-------------. ,------------.
* |MOUSE | Home | | PgDn | PgUp|
* ,------|------|------| |------+-----+------.
* | | | ESC | | ESC | | |
* | Space|Backsp|------| |------| Tab |Enter |
* | |ace | LGui | | LGui | | |
* `--------------------' `-------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(DEV),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), ALT_T(KC_X), GUI_T(KC_C), KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,KC_GRV), KC_QUOT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
TG(MOUSE), KC_HOME,
KC_ESC,
KC_SPC, KC_BSPC, KC_LGUI,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, KC_SCLN), KC_QUOT,
MEH_T(KC_NO), KC_N, KC_M, GUI_COMM, ALT_DOT, CTL_SLSH, KC_RSFT,
KC_DOWN, KC_UP, KC_LBRC, KC_RBRC, KC_FN1,
KC_PGDN, KC_PGUP,
KC_ESC,
KC_LGUI, KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
KC_TRNS,KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_EXLM,KC_AT, KC_LCBR,KC_RCBR,KC_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,KC_DLR, KC_LPRN,KC_RPRN,KC_GRV,
KC_TRNS,KC_PERC,KC_CIRC,KC_LBRC,KC_RBRC,KC_TILD,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,
KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, KC_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, KC_PLUS, KC_TRNS,
KC_TRNS, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, KC_EQL, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | Prev | Next | Mute | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | VolDn| VolUp| | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA
[MDIA] = KEYMAP(
// left hand
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,
// right hand
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_MPRV, KC_MNXT, KC_MUTE, KC_TRNS, KC_MPLY,
KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, 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
),
[MOUSE] = KEYMAP(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, 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_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,
// right hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_ACL2, KC_ACL1, KC_ACL0, KC_TRNS, KC_TRNS,
KC_TRNS, KC_BTN1, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS
),
[DEV] = KEYMAP(
// left hand
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_TRNS,
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5,
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
// MACRODOWN only works in this function
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
switch(id) {
case 0:
if (record->event.pressed) {
register_code(KC_RSFT);
} else {
unregister_code(KC_RSFT);
}
break;
}
return MACRO_NONE;
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
case SYMB:
// Binary 1 represented by the leds
// --*
ergodox_right_led_3_on();
break;
case MDIA:
// Binary 2 represented by the leds
// -*-
ergodox_right_led_2_on();
break;
case MOUSE:
// Binary 3 represented by the leds
// -**
ergodox_right_led_3_on();
ergodox_right_led_2_on();
break;
case DEV:
// Binary 4 represented by the leds
// *--
ergodox_right_led_1_on();
break;
default:
// none
break;
}
};
//bool process_record_user(uint16_t keycode, keyrecord_t *record) {
// switch (keycode) {
// case QWERTY:
// return false
// break;
// case LOWER:
// if (record->event.pressed) {
// layer_on(_LOWER);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
// } else {
// layer_off(_LOWER);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
// }
// return false;
// break;
// case RAISE:
// if (record->event.pressed) {
// layer_on(_RAISE);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
// } else {
// layer_off(_RAISE);
// update_tri_layer(_LOWER, _RAISE, _ADJUST);
// }
// return false;
// break;
// }
// return true;
//}
+2 -2
View File
@@ -72,5 +72,5 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# #
SLEEP_LED_ENABLE = no SLEEP_LED_ENABLE = no
API_SYSEX_ENABLE ?= no API_SYSEX_ENABLE = no
RGBLIGHT_ENABLE ?= yes RGBLIGHT_ENABLE = yes
+60 -13
View File
@@ -25,43 +25,90 @@
#include "lcd_backlight_keyframes.h" #include "lcd_backlight_keyframes.h"
#endif #endif
#ifdef LED_ENABLE #ifdef BACKLIGHT_ENABLE
#include "led_keyframes.h" #include "led_keyframes.h"
#endif #endif
#include "visualizer_keyframes.h" #include "visualizer_keyframes.h"
#if defined(LCD_ENABLE) && defined(LCD_BACKLIGHT_ENABLE) #if defined(LCD_ENABLE) || defined(LCD_BACKLIGHT_ENABLE) || defined(BACKLIGHT_ENABLE)
static bool keyframe_enable(keyframe_animation_t* animation, visualizer_state_t* state) {
#ifdef LCD_ENABLE
lcd_keyframe_enable(animation, state);
#endif
#ifdef LCD_BACKLIGHT_ENABLE
backlight_keyframe_enable(animation, state);
#endif
#ifdef BACKLIGHT_ENABLE
led_keyframe_enable(animation, state);
#endif
return false;
}
static bool keyframe_disable(keyframe_animation_t* animation, visualizer_state_t* state) {
#ifdef LCD_ENABLE
lcd_keyframe_disable(animation, state);
#endif
#ifdef LCD_BACKLIGHT_ENABLE
backlight_keyframe_disable(animation, state);
#endif
#ifdef BACKLIGHT_ENABLE
led_keyframe_disable(animation, state);
#endif
return false;
}
static bool keyframe_fade_in(keyframe_animation_t* animation, visualizer_state_t* state) {
bool ret = false;
#ifdef LCD_BACKLIGHT_ENABLE
ret |= backlight_keyframe_animate_color(animation, state);
#endif
#ifdef BACKLIGHT_ENABLE
ret |= led_keyframe_fade_in_all(animation, state);
#endif
return ret;
}
static bool keyframe_fade_out(keyframe_animation_t* animation, visualizer_state_t* state) {
bool ret = false;
#ifdef LCD_BACKLIGHT_ENABLE
ret |= backlight_keyframe_animate_color(animation, state);
#endif
#ifdef BACKLIGHT_ENABLE
ret |= led_keyframe_fade_out_all(animation, state);
#endif
return ret;
}
// Don't worry, if the startup animation is long, you can use the keyboard like normal // Don't worry, if the startup animation is long, you can use the keyboard like normal
// during that time // during that time
keyframe_animation_t default_startup_animation = { keyframe_animation_t default_startup_animation = {
.num_frames = 4, .num_frames = 3,
.loop = false, .loop = false,
.frame_lengths = {0, 0, 0, gfxMillisecondsToTicks(5000), 0}, .frame_lengths = {0, 0, gfxMillisecondsToTicks(5000)},
.frame_functions = { .frame_functions = {
lcd_keyframe_enable, keyframe_enable,
backlight_keyframe_enable,
lcd_keyframe_draw_logo, lcd_keyframe_draw_logo,
backlight_keyframe_animate_color, keyframe_fade_in,
}, },
}; };
keyframe_animation_t default_suspend_animation = { keyframe_animation_t default_suspend_animation = {
.num_frames = 4, .num_frames = 3,
.loop = false, .loop = false,
.frame_lengths = {0, gfxMillisecondsToTicks(1000), 0, 0}, .frame_lengths = {0, gfxMillisecondsToTicks(1000), 0},
.frame_functions = { .frame_functions = {
lcd_keyframe_display_layer_text, lcd_keyframe_display_layer_text,
backlight_keyframe_animate_color, keyframe_fade_out,
lcd_keyframe_disable, keyframe_disable,
backlight_keyframe_disable,
}, },
}; };
#endif #endif
#if defined(LED_ENABLE) #if defined(BACKLIGHT_ENABLE)
#define CROSSFADE_TIME 1000 #define CROSSFADE_TIME 1000
#define GRADIENT_TIME 3000 #define GRADIENT_TIME 3000
+5
View File
@@ -56,6 +56,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define VISUALIZER_USER_DATA_SIZE 16 #define VISUALIZER_USER_DATA_SIZE 16
#define LCD_DISPLAY_NUMBER 0
#define LED_DISPLAY_NUMBER 1
#define LED_NUM_ROWS 7
#define LED_NUM_COLS 7
/* /*
* Feature disable options * Feature disable options
* These options are also useful to firmware size reduction. * These options are also useful to firmware size reduction.
@@ -43,7 +43,7 @@ extern const uint8_t CIE1931_CURVE[];
#define GDISP_INITIAL_CONTRAST 0 #define GDISP_INITIAL_CONTRAST 0
#endif #endif
#ifndef GDISP_INITIAL_BACKLIGHT #ifndef GDISP_INITIAL_BACKLIGHT
#define GDISP_INITIAL_BACKLIGHT 100 #define GDISP_INITIAL_BACKLIGHT 0
#endif #endif
#define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0) #define GDISP_FLG_NEEDFLUSH (GDISP_FLG_DRIVER<<0)
@@ -173,7 +173,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
} }
// software shutdown disable (i.e. turn stuff on) // software shutdown disable (i.e. turn stuff on)
write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_ON); write_register(g, IS31_FUNCTIONREG, IS31_REG_SHUTDOWN, IS31_REG_SHUTDOWN_OFF);
gfxSleepMilliseconds(10); gfxSleepMilliseconds(10);
// Finish Init // Finish Init
@@ -183,7 +183,7 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
g->g.Width = GDISP_SCREEN_WIDTH; g->g.Width = GDISP_SCREEN_WIDTH;
g->g.Height = GDISP_SCREEN_HEIGHT; g->g.Height = GDISP_SCREEN_HEIGHT;
g->g.Orientation = GDISP_ROTATE_0; g->g.Orientation = GDISP_ROTATE_0;
g->g.Powermode = powerOn; g->g.Powermode = powerOff;
g->g.Backlight = GDISP_INITIAL_BACKLIGHT; g->g.Backlight = GDISP_INITIAL_BACKLIGHT;
g->g.Contrast = GDISP_INITIAL_CONTRAST; g->g.Contrast = GDISP_INITIAL_CONTRAST;
return TRUE; return TRUE;
@@ -204,7 +204,8 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
uint8_t* src = PRIV(g)->frame_buffer; uint8_t* src = PRIV(g)->frame_buffer;
for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) { for (int y=0;y<GDISP_SCREEN_HEIGHT;y++) {
for (int x=0;x<GDISP_SCREEN_WIDTH;x++) { for (int x=0;x<GDISP_SCREEN_WIDTH;x++) {
PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[*src]; uint8_t val = (uint16_t)*src * g->g.Backlight / 100;
PRIV(g)->write_buffer[get_led_address(g, x, y)]=CIE1931_CURVE[val];
++src; ++src;
} }
} }
@@ -297,8 +298,13 @@ LLDSPEC bool_t gdisp_lld_init(GDisplay *g) {
g->g.Orientation = (orientation_t)g->p.ptr; g->g.Orientation = (orientation_t)g->p.ptr;
return; return;
case GDISP_CONTROL_CONTRAST: case GDISP_CONTROL_BACKLIGHT:
return; if (g->g.Backlight == (unsigned)g->p.ptr)
return;
unsigned val = (unsigned)g->p.ptr;
g->g.Backlight = val > 100 ? 100 : val;
g->flags |= GDISP_FLG_NEEDFLUSH;
return;
} }
} }
#endif // GDISP_NEED_CONTROL #endif // GDISP_NEED_CONTROL
@@ -1,2 +0,0 @@
GFXINC += drivers/gdisp/emulator_lcd
GFXSRC += drivers/gdisp/emulator_lcd/emulator_lcd.c
@@ -1,10 +0,0 @@
#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LCD_ERGODOX
#define GDISP_HARDWARE_DRAWPIXEL TRUE
#define GDISP_HARDWARE_PIXELREAD TRUE
#define GDISP_HARDWARE_CONTROL TRUE
#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO
#define GDISP_SCREEN_WIDTH 128
#define GDISP_SCREEN_HEIGHT 32
#define ROTATE_180_IS_FLIP
#include "emulator/emulator_driver_impl.h"
@@ -1,2 +0,0 @@
GFXINC += drivers/gdisp/emulator_led
GFXSRC += drivers/gdisp/emulator_led/emulator_led.c
@@ -1,10 +0,0 @@
#define GDISP_DRIVER_VMT GDISPVMT_EMULATOR_LED_ERGODOX
#define GDISP_HARDWARE_DRAWPIXEL TRUE
#define GDISP_HARDWARE_PIXELREAD TRUE
#define GDISP_HARDWARE_CONTROL TRUE
#define GDISP_LLD_PIXELFORMAT GDISP_PIXELFORMAT_MONO
#define GDISP_SCREEN_WIDTH 7
#define GDISP_SCREEN_HEIGHT 7
#define ROTATE_180_IS_FLIP
#include "emulator/emulator_driver_impl.h"
+6 -11
View File
@@ -58,19 +58,14 @@ OPT_DEFS += -DCORTEX_VTOR_INIT=0x00002000
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
CUSTOM_MATRIX ?= yes # Custom matrix file CUSTOM_MATRIX = yes # Custom matrix file
SERIAL_LINK_ENABLE = yes SERIAL_LINK_ENABLE = yes
VISUALIZER_ENABLE ?= yes VISUALIZER_ENABLE = yes
LCD_ENABLE ?= yes LCD_ENABLE = yes
LED_ENABLE ?= no BACKLIGHT_ENABLE = yes
LCD_BACKLIGHT_ENABLE ?= yes LCD_BACKLIGHT_ENABLE = yes
MIDI_ENABLE = no MIDI_ENABLE = no
RGBLIGHT_ENABLE = no RGBLIGHT_ENABLE = no
ifdef LCD_ENABLE
include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk include $(SUBPROJECT_PATH)/drivers/gdisp/st7565ergodox/driver.mk
endif include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk
ifdef LED_ENABLE
include $(SUBPROJECT_PATH)/drivers/gdisp/IS31FL3731C/driver.mk
endif
+1 -1
View File
@@ -123,7 +123,7 @@ void initialize_user_visualizer(visualizer_state_t* state) {
start_keyframe_animation(&default_startup_animation); start_keyframe_animation(&default_startup_animation);
} }
inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) { static inline bool is_led_on(visualizer_user_data_t* user_data, uint8_t num) {
return user_data->led_on & (1u << num); return user_data->led_on & (1u << num);
} }
@@ -1,7 +1,6 @@
SUBPROJECT_DEFAULT = infinity SUBPROJECT_DEFAULT = infinity
LCD_BACKLIGHT_ENABLE = yes LCD_BACKLIGHT_ENABLE = yes
LCD_ENABLE = yes LCD_ENABLE = yes
LED_ENABLE = yes
BACKLIGHT_ENABLE = yes BACKLIGHT_ENABLE = yes
NKRO_ENABLE = yes NKRO_ENABLE = yes
TAP_DANCE_ENABLE = yes TAP_DANCE_ENABLE = yes
+24 -18
View File
@@ -14,7 +14,7 @@
|LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI | |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI |
`----------------------------------' `----------------------------------' `----------------------------------' `----------------------------------'
,-------------. ,-------------. ,-------------. ,-------------.
| Home | End | | Alt |Ctrl/Esc| | Copy | Paste| | Alt |Ctrl/Esc|
,------|------|------| |------+--------+------. ,------|------|------| |------+--------+------.
| | | PgUp | | PgDn | | | | | | PgUp | | PgDn | | |
| Bcksp|OSL(2)|------| |------| Ent |Space | | Bcksp|OSL(2)|------| |------| Ent |Space |
@@ -32,23 +32,28 @@
| | | | | | | F10 | | F11 | | | | | | | | | | | | | | F10 | | F11 | | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| | | | | | |------| |------| | | | | | | | | | | | | |------| |------| | | | | | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |--------+------+------+------+------+------| L2 | | |------+------+------+------+------+--------|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | | | | | | | | | | | | | | | F12 |GoToIm| FAR | | |
`----------------------------------' `----------------------------------' `----------------------------------' `----------------------------------'
,-------------. ,---------------. ,-------------. ,---------------.
|Format| | | Test | DTest | |Format|Build | | Test | DTest |
,------|------|------| |------+--------+------. ,------|------|------| |------+--------+------.
| | |Refact| | | | | | | |Refact| |Sort U| | |
| | |------| |------| | | | | |------| |------| | |
| | | | | | | | | | | | | | | |
`--------------------' `----------------------' `--------------------' `----------------------'
``` ```
* Format - Visual Studio Format. Sends `CTRL + K, CTRL + D` * Build - Visualt Studio Build Solution. Sends `CTRL + SHFT + B`
* Refact - Visual Studio Refactor. Sends `CTRL + R, R`
* Test - Visual Studio Run Test. Sends `CTRL + R, T`
* DTest - Visual Studio Debug Test. Sends `CTRL + R, CTRL + T` * DTest - Visual Studio Debug Test. Sends `CTRL + R, CTRL + T`
* FAR - Visual Studio Find All References. Sends `CTRL + K, R`
* Format - Visual Studio Format. Sends `CTRL + K, CTRL + D`
* GoToIm - Visual Studio Go To Implementation. Sends `CTRL + F12`
* Refact - Visual Studio Refactor. Sends `CTRL + R, R`
* Sort U - Visual Studio Sort Usings. Sends `CTRL + R, CTRL + G`
* Test - Visual Studio Run Test. Sends `CTRL + R, T`
### Keymap 2: Symbol Layer ### Keymap 2: Symbol Layer
``` ```
@@ -87,9 +92,9 @@
| | | | Lclk | Rclk | | | | | | | | | | | Lclk | Rclk | | | | | | |
`----------------------------------' `----------------------------------' `----------------------------------' `----------------------------------'
,-------------. ,-------------. ,-------------. ,-------------.
| | | | Vol+ | | | Back+| Back-| | Vol+ | |
,------|------|------| |------+------+------. ,------|------|------| |------+------+------.
| | | | | Vol- | | | | | |BL_TOG| | Vol- | | |
| | |------| |------| PL/PS| Next | | | |------| |------| PL/PS| Next |
| | | | | Back | | | | | | | | Back | | |
`--------------------' `--------------------' `--------------------' `--------------------'
@@ -100,23 +105,24 @@
,--------------------------------------------------. ,--------------------------------------------------. ,--------------------------------------------------. ,--------------------------------------------------.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
| | | | | | | | | | | | | | | | | |KOpen |KType | | | | | | | Copy | | | | Paste| |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| |DLeft |DRight|LShift| | |------| |------| Left | Down | Up | Right| | | | |DLeft |DRight| LCTL | | |------| |------| Left | Down | Up | Right| | |
|--------+------+------+------+------+------| | | |------+------+------+------+------+--------| |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
| |KOpen |KType | | | | | | | | | | | | | | |SFT_TB| Tab | | | | | | | | | | | | |
`--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
| | | | | | | | | | | | | | | | | | | | | | | |
`----------------------------------' `----------------------------------' `----------------------------------' `----------------------------------'
,-------------. ,-------------. ,-------------. ,-------------.
| | | | | | | | | | Home | End |
,------|------|------| |------+------+------. ,------|------|------| |------+------+------.
| | | | | | | | | | | | | | | |
| | CTRL |------| |------| | | | | LSFT |------| |------| | |
| | | | | | | | | | | | | | | |
`--------------------' `--------------------' `--------------------' `--------------------'
``` ```
* DLeft - Move to the left Desktop. Sends `Ctrl + Win + Left Arrow` * DLeft - Move to the left Desktop. Sends `Ctrl + Win + Left Arrow`
* DRight - Move to the right Desktop. Sends `Ctrl + Win + Right Arrow` * DRight - Move to the right Desktop. Sends `Ctrl + Win + Right Arrow`
* KOpen - Opens KeePass. Sends `Ctrl + Alt + k` * KOpen - Opens KeePass. Sends `Ctrl + Alt + k`
* KType - Autotypes KeePass password. Sends `Ctrl + Alt + a` * KType - Autotypes KeePass password. Sends `Ctrl + Alt + a`
* SFT_TB - Sends `CTRL + TAB`.
@@ -0,0 +1,11 @@
#ifndef CONFIG_H_
#define CONFIG_H_
#include "../../config.h"
#undef TAPPING_TERM
#define TAPPING_TERM 150
#define PERMISSIVE_HOLD
#endif
+73 -44
View File
@@ -23,12 +23,17 @@ enum custom_macros {
DLEFT, DLEFT,
DRIGHT, DRIGHT,
PSCREEN_APP, PSCREEN_APP,
LSFT_TAB,
// VS Macros // VS Macros
REFACTOR, REFACTOR,
TEST, TEST,
DEBUG_TEST, DEBUG_TEST,
FORMAT, FORMAT,
BUILD,
GO_TO_IMPL,
FIND_ALL_REF,
REMOVE_SORT_USINGS,
// KeePass macros // KeePass macros
KEEPASS_OPEN, KEEPASS_OPEN,
@@ -61,11 +66,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI | * |LCTRL | F4 | F5 | LGUI | LALT | | Left | Down | Up | Right| RGUI |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | Home | End | | Alt |Ctrl/Esc| * | Copy | Paste| | Alt |Ctrl/Esc|
* ,------|------|------| |------+--------+------. * ,------|------|------| |------+--------+------.
* | | | PgUp | | PgDn | | | * | | | PgUp | | PgDn | | |
* | Bcksp|OSL(2)|------| |------| Ent |Space | * | Bcksp|OSL(2)|------| |------| Ent |Space |
* | | | Del | |OSL(2)| | | * | | | Del | | RCtrl| | |
* `--------------------' `----------------------' * `--------------------' `----------------------'
*/ */
// If it accepts an argument (i.e, is a function), it doesn't need KC_. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
@@ -75,20 +80,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB), KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_ESC, KC_A, KC_S, KC_D, LT(MOVE, KC_F),KC_G, KC_ESC, KC_A, KC_S, KC_D, LT(MOVE, KC_F),KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(CODE), OSM(MOD_LSFT), CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, TG(CODE),
KC_LCTRL, KC_F4, KC_F5, KC_LGUI,KC_LALT, OSM(MOD_LCTL), KC_F4, KC_F5, KC_LGUI,KC_LALT,
KC_HOME, KC_END, LCTL(KC_C),LCTL(KC_V),
KC_PGUP, KC_PGUP,
KC_BSPC,OSL(SYMB),KC_DEL, KC_BSPC,OSL(SYMB), KC_DEL,
// right hand // right hand
TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, TG(CODE), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_H, KC_J, KC_K, KC_L, TD(TD_SEMICOLON_COLON),KC_QUOT, KC_H, KC_J, KC_K, KC_L, TD(TD_SEMICOLON_COLON),KC_QUOT,
MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), KC_RSFT, MO(MDIA), KC_N, KC_M, KC_COMM,KC_DOT, CTL_T(KC_SLSH), OSM(MOD_RSFT),
KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI, KC_LEFT,KC_DOWN,KC_UP, KC_RIGHT, KC_RGUI,
KC_RALT, CTL_T(KC_ESC), KC_RALT, CTL_T(KC_ESC),
KC_PGDN, KC_PGDN,
OSL(SYMB),KC_ENT, KC_SPC KC_RCTL, KC_ENT, KC_SPC
), ),
/* Keymap 1: Code Layer /* Keymap 1: Code Layer
* *
@@ -98,15 +103,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | F10 | | F11 | | | | | | | * | | | | | | | F10 | | F11 | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | | | | | | * | | | | | | |------| |------| | | | | | |
* |--------+------+------+------+------+------|ACCESS| | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| L2 | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | | * | | | | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | | * | | | | | | | F12 |GoToIm| FAR | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,---------------. * ,-------------. ,---------------.
* |Format| | | Test | DTest | * |Format|Build | | Test | DTest |
* ,------|------|------| |------+--------+------. * ,------|------|------| |------+--------+------.
* | | |Refact| | | | | * | | |Refact| |Sort U| | |
* | | |------| |------| | | * | | |------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `----------------------' * `--------------------' `----------------------'
@@ -118,20 +123,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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_F10, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F10,
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, TG(SYMB),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
M(FORMAT), KC_TRNS, M(FORMAT),M(BUILD),
M(REFACTOR), M(REFACTOR),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// right hand // right hand
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_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F11, 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_F12, M(GO_TO_IMPL),M(FIND_ALL_REF),KC_TRNS, KC_TRNS,
M(TEST), M(DEBUG_TEST), M(TEST), M(DEBUG_TEST),
KC_TRNS, M(REMOVE_SORT_USINGS),
KC_TRNS, KC_TRNS, KC_TRNS KC_TRNS, KC_TRNS, KC_TRNS
), ),
/* Keymap 2: Symbol Layer /* Keymap 2: Symbol Layer
@@ -142,7 +147,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | ! | @ | ( | ) | | |ACCESS| |ACCESS| Up | 7 | 8 | 9 | * | F12 | * | | ! | @ | ( | ) | | |ACCESS| |ACCESS| Up | 7 | 8 | 9 | * | F12 |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |---------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | | * | | # | $ | { | } | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |---------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |---------+------+------+------+------+------|ACCESS| | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | | * | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `---------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | EPRM | | | | | | 0 | 0 | . | = | | * | EPRM | | | | | | 0 | 0 | . | = | |
@@ -190,9 +195,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | Lclk | Rclk | | | | | | | * | | | | Lclk | Rclk | | | | | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | Vol+ | | * | Back+| Back-| | Vol+ | |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | | | Vol- | | | * | | |BackTg| | Vol- | | |
* | | |------| |------| PL/PS| Next | * | | |------| |------| PL/PS| Next |
* | | | | | Back | | | * | | | | | Back | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
@@ -204,8 +209,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, 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_BTN1, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS, BL_INC, BL_DEC,
KC_TRNS, BL_TOGG,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
// right hand // right hand
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,
@@ -222,39 +227,39 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | | * | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | | | | | | * | |KOpen |KType | | | | | | | Copy | | | | Paste| |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |DLeft |DRight|LShift|ACCESS| |------| |------| Left | Down | Up | Right| | | * | |DLeft |DRight|LCTRL |ACCESS| |------| |------| Left | Down | Up | Right| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |KOpen |KType | | | | | | | | | | | | | * | |SFT_TB| TAB | | | | | | | | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | | | | * | | | | | | | | | | | |
* `----------------------------------' `----------------------------------' * `----------------------------------' `----------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | Home | End |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | | | | | | * | | | | | | | |
* | | CTRL |------| |------| | | * | |LSHIFT|------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
// MEDIA AND MOUSE // MEDIA AND MOUSE
[MOVE] = KEYMAP( [MOVE] = KEYMAP(
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, M(DLEFT), M(DRIGHT), KC_LSFT, KC_TRNS, KC_TRNS,
KC_TRNS, M(KEEPASS_OPEN),M(KEEPASS_TYPE),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, M(KEEPASS_OPEN),M(KEEPASS_TYPE),KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, M(DLEFT), M(DRIGHT), KC_LCTL, KC_TRNS, KC_TRNS,
KC_TRNS, M(LSFT_TAB), KC_TAB, 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_LCTRL,KC_TRNS, KC_TRNS, KC_LSFT, KC_TRNS,
// right hand // right hand
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, LCTL(KC_C),KC_TRNS, KC_TRNS, KC_TRNS, LCTL(KC_V),KC_TRNS,
KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,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_HOME, KC_END,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS KC_TRNS, KC_TRNS, KC_TRNS
@@ -291,9 +296,13 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
break; break;
case PSCREEN_APP: case PSCREEN_APP:
if (record->event.pressed) { if (record->event.pressed) {
return MACRO(D(LALT), T(PSCR), U(LALT)); return MACRO(D(LALT), T(PSCR), U(LALT), END);
} }
break; break;
case LSFT_TAB:
if (record->event.pressed) {
return MACRO(D(LSFT), T(TAB), U(LSFT), END);
}
case REFACTOR: case REFACTOR:
if (record->event.pressed) { // VS Refactor CTRL+R, R if (record->event.pressed) { // VS Refactor CTRL+R, R
return MACRO(D(LCTL), T(R), U(LCTL), T(R), END); return MACRO(D(LCTL), T(R), U(LCTL), T(R), END);
@@ -314,6 +323,26 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
return MACRO(D(LCTL), T(K), T(D), U(LCTL), END); return MACRO(D(LCTL), T(K), T(D), U(LCTL), END);
} }
break; break;
case BUILD:
if (record->event.pressed) { // VS Build. Sends CTRL+SHFT+B
return MACRO(D(LCTL), D(LSFT), T(B), U(LSFT), U(LCTL), END);
}
break;
case GO_TO_IMPL:
if (record->event.pressed) { // VS Go To Implementation. Sends CTRL+F12
return MACRO(D(LCTL), T(F12), U(LCTL), END);
}
break;
case FIND_ALL_REF:
if (record->event.pressed) { // VS Find All References. Sends CTRL+K, R
return MACRO(D(LCTL), T(K), U(LCTL), T(R), END);
}
break;
case REMOVE_SORT_USINGS:
if (record->event.pressed) {
return MACRO(D(LCTL), T(R), T(G), U(LCTL), END);
}
break;
case KEEPASS_OPEN: case KEEPASS_OPEN:
if (record->event.pressed) { // Keepass open application if (record->event.pressed) { // Keepass open application
return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END); return MACRO(D(LCTL), D(LALT), T(K), U(LALT), U(LCTL), END);
+3 -3
View File
@@ -1,15 +1,15 @@
BOOTMAGIC_ENABLE=no BOOTMAGIC_ENABLE=no
COMMAND_ENABLE=no COMMAND_ENABLE=no
SLEEP_LED_ENABLE=no SLEEP_LED_ENABLE=no
FORCE_NKRO ?= yes FORCE_NKRO = yes
DEBUG_ENABLE = no DEBUG_ENABLE = no
CONSOLE_ENABLE = no CONSOLE_ENABLE = no
TAP_DANCE_ENABLE = yes TAP_DANCE_ENABLE = yes
KEYLOGGER_ENABLE ?= yes KEYLOGGER_ENABLE = yes
UCIS_ENABLE = yes UCIS_ENABLE = yes
MOUSEKEY_ENABLE = no MOUSEKEY_ENABLE = no
AUTOLOG_ENABLE ?= no AUTOLOG_ENABLE = no
ifeq (${FORCE_NKRO},yes) ifeq (${FORCE_NKRO},yes)
OPT_DEFS += -DFORCE_NKRO OPT_DEFS += -DFORCE_NKRO
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2016 Kaleb Elwert
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+6
View File
@@ -0,0 +1,6 @@
TAP_DANCE_ENABLE=yes
UNICODE_ENABLE=yes
ifndef QUANTUM_DIR
include ../../../../Makefile
endif
+79
View File
@@ -0,0 +1,79 @@
# Belak's Ergodox Layout
This has been based off of [emacs\_osx\_dk](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/emacs_osx_dk)
from the main qmk repo. However, I've taken some of the ideas for the thumbs
from [dvorak\_emacs](https://github.com/jackhumbert/qmk_firmware/tree/master/keyboards/ergodox/keymaps/dvorak_emacs)
and tweaked it a bit based on the keycaps I have.
This keyboard is intended for use in emacs (one of the main reasons for easy
access to modifiers) but it could be useful in other instances as well.
The main repo is used as a testbed, so sometimes the layout may be in a strange
state. The qmk version should be relatively stable.
## Instructions
This is currently being used on a regular ergodox, but it should work fine on
the infinity as well. Though, you may have to modify the commands to build and
flash the firmware to match the separate halves as defined in the infinity
documentation.
If you are using this keymap in the qmk repo, you should be able to just run
`make ergodox-belak-teensy`. If you're using this externally (I sometimes make
changes before syncing them to qmk), use the following instructions:
1. Clone the main qmk repo
2. Clone this to `$QMK/keyboards/ergodox/keymaps/belak-external`
3. Run `make ergodox-belak-external-teensy` from the root of the qmk repo.
## Changelog
Fifth Revision
* Change layer keys to tap-dance keys which cycle through additional layers
* Add a few emoji keys (in preparation for an emoji layer)
Fourth Revision
* Remove media layer
* Add a layer which swaps control and gui on the thumb keys.
* Add some basic code to save settings to the eeprom
* Save the state of the keys swapped in the thumb in the eeprom
Third Revision
* Add numpad layer and remove numpad from symbols layer
* Disable media layer
* Add arrow keys on ijkl to the symbols layer
* Replace ALT on held enter and held delete with GUI (for better OSX
compatibility, as there's already an ALT key relatively close)
* Replace keys above enter and delete with temporary layer switch buttons not
matching the other layer switch for that hand.
* Reindent and space out most of the layer definitions
Second Revision
* Clean up definitions to make differences between layers easier to see
* Remove old LCD code
* Add new LCD code based on fredizzimo's branch
First Revision
* Reverse grave and escape
Initial Version
* Copy from emacs\_osx\_dk
* "Fix" right alt
* Change thumb keys to match default layout (backspace, delete, enter, space)
* Add modifiers to thumb keys (ctrl to backspace and space, alt to delete and
enter)
* Replace the RAlt below the brackets with LGui and RGui
* Remove LCtrl and RCtrl from the keys above shift
* Add browser forward, and move browser back
* "Fix" the order of volume keys
## Repository
The original code for this is kept at https://github.com/belak/ergodox-layout and
is synced to qmk every few main revisions.
+368
View File
@@ -0,0 +1,368 @@
#include "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "eeconfig.h"
#include "eeprom.h"
#define LAYER_ON(pos) ((layer_state) & (1<<(pos)))
#define _______ KC_TRNS
#define EECONFIG_BELAK_MAGIC (uint16_t)0xBE42
// NOTE: This is just a number that's a bit beyond the end of what's already
// defined. As there is no other define we can base this on, it may need to be
// changed in the future. The initial value here is used as a placeholder with a
// magic word, similar to the normal eeconfig. Note that all the storage being
// used needs to fit inside the 32 bytes of the Ergodox Infinity.
#define EECONFIG_BELAK (uint16_t *)16
// The correct way to do this would be how the normal eeconfig handles it and
// use a bitfield. However, the eeprom has a ton of space which isn't being
// used so I don't really care and have a separate byte for every setting.
#define EECONFIG_BELAK_SWAP_GUI_CTRL (uint8_t *)18
static uint8_t swap_gui_ctrl = 0;
static uint8_t td_led_override = 0;
enum belak_keycodes {
// Function codes
BEL_F0 = SAFE_RANGE,
BEL_F1,
E_SHRUG,
E_TFLIP,
E_TSET,
};
inline void tap(uint16_t keycode) {
register_code(keycode);
unregister_code(keycode);
};
// TODO: Add LED support to the tap dance by using the advanced macro
#define LTOGGLE TD(TD_LAYER_TOGGLE)
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define NUMP 2 // numpad
#define SWPH 3 // swap gui/ctrl on the hands
enum belak_td {
TD_LAYER_TOGGLE = 0,
};
void belak_td_each(qk_tap_dance_state_t *state, void *user_data);
void belak_td_finished(qk_tap_dance_state_t *state, void *user_data);
void belak_td_reset(qk_tap_dance_state_t *state, void *user_data);
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_LAYER_TOGGLE] = ACTION_TAP_DANCE_FN_ADVANCED(belak_td_each, belak_td_finished, belak_td_reset),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | L1 | | L2 | 6 | 7 | 8 | 9 | 0 | = |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | - |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | \ | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| LGui | | RGui |------+------+------+------+------+--------|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |Layers| LCtrl| Left | Right| LAlt | | RAlt | Up | Down | RCtrl|Layers|
* `----------------------------------' `----------------------------------'
* ,-------------. ,--------------.
* | ~L2 | Ins | | Grv | ~L1 |
* ,-------|------|------| |------+-------+-------.
* | Back | | Home | | PgUp | | |
* | Space | Del |------| |------| Enter | Space |
* | | | End | | PgDn | | |
* `---------------------' `----------------------'
*/
[BASE] = KEYMAP( // layer 0 : default
// left hand
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, TG(SYMB),
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC,
CTL_T(KC_BSLS), KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LGUI,
LTOGGLE, KC_LCTRL, KC_LEFT,KC_RGHT,KC_LALT,
MO(NUMP),KC_INS,
KC_HOME,
CTL_T(KC_BSPC),GUI_T(KC_DEL),KC_END,
// right hand
TG(NUMP), KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_RGUI, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
KC_RALT,KC_UP, KC_DOWN,KC_RCTRL, LTOGGLE,
KC_GRV, MO(SYMB),
KC_PGUP,
KC_PGDN, GUI_T(KC_ENT), CTL_T(KC_SPC)
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | | Up | | | F12 |
* |--------+------+------+------+------+------| TFLIP| | TSET |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | Left | Down | Rght | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | SHRUG| | | & | | | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |LClear| | | | | | | | | |LClear|
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | TOGL | | | | TOGL |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[SYMB] = KEYMAP(
// left hand
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, E_TFLIP,
_______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, E_TSET,
_______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV,
_______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, E_SHRUG,
BEL_F1, _______, _______, _______, _______,
BEL_F0, _______,
_______,
_______, _______, _______,
// right hand
_______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, KC_UP, _______, KC_UP, _______, _______, KC_F12,
KC_DOWN, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
_______, KC_AMPR, _______, _______, _______, _______, _______,
_______, _______, _______, _______, BEL_F1,
_______, BEL_F0,
_______,
_______, _______, _______
),
/* Keymap 2: Numpad Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | | | | | | | | 7 | 8 | 9 | * | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | |------| |------| | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* |LClear| | | | | | 0 | 0 | . | = |LClear|
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | TOGL | | | | TOGL |
* ,------|------|------| |------+------+------.
* | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
[NUMP] = KEYMAP(
// left hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
BEL_F1, _______, _______, _______, _______,
BEL_F0, _______,
_______,
_______, _______, _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, KC_7, KC_8, KC_9, KC_ASTR, _______,
_______, KC_4, KC_5, KC_6, KC_PLUS, _______,
_______, _______, KC_1, KC_2, KC_3, KC_BSLS, _______,
KC_0, KC_0, KC_DOT, KC_EQL, BEL_F1,
_______, BEL_F0,
_______,
_______, _______, _______
),
/* Keymap 3: Swap control and gui on the thumb */
[SWPH] = KEYMAP(
// left hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______,
_______,
GUI_T(KC_BSPC), CTL_T(KC_DEL), _______,
// right hand
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______,
_______, _______,
_______,
_______, CTL_T(KC_ENT), GUI_T(KC_SPC)
),
};
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
// If our magic word wasn't set properly, we need to zero out the settings.
if (eeprom_read_word(EECONFIG_BELAK) != EECONFIG_BELAK_MAGIC) {
eeprom_update_word(EECONFIG_BELAK, EECONFIG_BELAK_MAGIC);
eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, 0);
}
if (eeprom_read_byte(EECONFIG_BELAK_SWAP_GUI_CTRL)) {
layer_on(SWPH);
swap_gui_ctrl = 1;
}
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (td_led_override) {
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// Layer 1 and 2 are both overlay layers, so they could both be on. This
// means we can't use the lazy check of checking for the first significant
// bit.
if (LAYER_ON(SYMB)) {
ergodox_right_led_1_on();
}
if (LAYER_ON(NUMP)) {
ergodox_right_led_2_on();
}
}
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case BEL_F0:
if(record->event.pressed){
swap_gui_ctrl = !swap_gui_ctrl;
eeprom_update_byte(EECONFIG_BELAK_SWAP_GUI_CTRL, swap_gui_ctrl);
if (swap_gui_ctrl) {
layer_on(SWPH);
} else {
layer_off(SWPH);
}
return false;
}
break;
case BEL_F1:
if(record->event.pressed){
layer_off(SYMB);
layer_off(NUMP);
return false;
}
break;
case E_SHRUG: // ¯\_(ツ)_/¯
if (record->event.pressed) {
process_unicode((0x00AF|QK_UNICODE), record); // Hand
tap(KC_BSLS); // Arm
register_code(KC_RSFT);
tap(KC_UNDS); // Arm
tap(KC_LPRN); // Head
unregister_code(KC_RSFT);
process_unicode((0x30C4|QK_UNICODE), record); // Face
register_code(KC_RSFT);
tap(KC_RPRN); // Head
tap(KC_UNDS); // Arm
unregister_code(KC_RSFT);
tap(KC_SLSH); // Arm
process_unicode((0x00AF|QK_UNICODE), record); // Hand
}
return false;
break;
case E_TFLIP: // (╯°□°)╯ ︵ ┻━┻
if (record->event.pressed) {
register_code(KC_RSFT);
tap(KC_9);
unregister_code(KC_RSFT);
process_unicode((0x256F|QK_UNICODE), record); // Arm
process_unicode((0x00B0|QK_UNICODE), record); // Eye
process_unicode((0x25A1|QK_UNICODE), record); // Mouth
process_unicode((0x00B0|QK_UNICODE), record); // Eye
register_code(KC_RSFT);
tap(KC_0);
unregister_code(KC_RSFT);
process_unicode((0x256F|QK_UNICODE), record); // Arm
tap(KC_SPC);
process_unicode((0x0361|QK_UNICODE), record); // Flippy
tap(KC_SPC);
process_unicode((0x253B|QK_UNICODE), record); // Table
process_unicode((0x2501|QK_UNICODE), record); // Table
process_unicode((0x253B|QK_UNICODE), record); // Table
}
return false;
break;
case E_TSET: // ┬──┬ ノ( ゜-゜ノ)
if (record->event.pressed) {
process_unicode((0x252C|QK_UNICODE), record); // Table
process_unicode((0x2500|QK_UNICODE), record); // Table
process_unicode((0x2500|QK_UNICODE), record); // Table
process_unicode((0x252C|QK_UNICODE), record); // Table
tap(KC_SPC);
process_unicode((0x30CE|QK_UNICODE), record); // Arm
register_code(KC_RSFT);
tap(KC_9);
unregister_code(KC_RSFT);
tap(KC_SPC);
process_unicode((0x309C|QK_UNICODE), record); // Eye
tap(KC_MINS);
process_unicode((0x309C|QK_UNICODE), record); // Eye
process_unicode((0x30CE|QK_UNICODE), record); // Arm
register_code(KC_RSFT);
tap(KC_0);
unregister_code(KC_RSFT);
}
return false;
break;
}
return true;
}
void belak_td_each(qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1:
td_led_override = 1;
break;
case 2:
td_led_override = 2;
break;
default:
reset_tap_dance(state);
}
}
void belak_td_finished(qk_tap_dance_state_t *state, void *user_data) {
switch (state->count) {
case 1:
layer_on(SYMB);
break;
case 2:
layer_on(NUMP);
break;
}
td_led_override = 0;
}
void belak_td_reset(qk_tap_dance_state_t *state, void *user_data) {
td_led_override = 0;
}
@@ -0,0 +1,49 @@
/*
Copyright 2017 Fred Sundvik
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/>.
*/
// Currently we are assuming that both the backlight and LCD are enabled
// But it's entirely possible to write a custom visualizer that use only
// one of them
#ifndef LCD_BACKLIGHT_ENABLE
#error This visualizer needs that LCD backlight is enabled
#endif
#ifndef LCD_ENABLE
#error This visualizer needs that LCD is enabled
#endif
#include "simple_visualizer.h"
static void get_visualizer_layer_and_color(visualizer_state_t* state) {
uint8_t saturation = 60;
if (state->status.leds & (1u << USB_LED_CAPS_LOCK)) {
saturation = 255;
}
if (state->status.layer & 0x4) {
state->target_lcd_color = LCD_COLOR(0, saturation, 0xFF);
state->layer_text = "Media";
}
else if (state->status.layer & 0x2) {
state->target_lcd_color = LCD_COLOR(168, saturation, 0xFF);
state->layer_text = "Symbols";
}
else {
state->target_lcd_color = LCD_COLOR(84, saturation, 0xFF);
state->layer_text = "Base";
}
}
@@ -1,7 +1,7 @@
BOOTMAGIC_ENABLE=no BOOTMAGIC_ENABLE=no
COMMAND_ENABLE=no COMMAND_ENABLE=no
SLEEP_LED_ENABLE=no SLEEP_LED_ENABLE=no
FORCE_NKRO ?= yes FORCE_NKRO = yes
DEBUG_ENABLE = no DEBUG_ENABLE = no
CONSOLE_ENABLE = no CONSOLE_ENABLE = no
TAP_DANCE_ENABLE = no TAP_DANCE_ENABLE = no
@@ -3,8 +3,6 @@
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
COMMAND_ENABLE = no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
RGBLIGHT_ENABLE ?= yes
MIDI_ENABLE ?= yes
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
@@ -0,0 +1 @@
TAP_DANCE_ENABLE=yes
+10 -10
View File
@@ -1,5 +1,5 @@
# ErgoDox Familiar Layout # ErgoDox Familiar Layout
Familiar layout for those who regularly switch back and forth from ErgoDox to regular QWERTY. Familiar layout for those who regularly switch back and forth from ErgoDox to "normal" QWERTY.
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme) [![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme)
@@ -23,12 +23,12 @@ Key features of the familiar layout:
1. QWERTY default layout. 1. QWERTY default layout.
1. International symbols layer, mapped in the US-International layout default positions, through [UCIS](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable). 1. International symbols layer, mapped in the US-International layout default positions, through [UCIS](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable).
1. Numpad layer on right hand. 1. Numpad layer on right hand.
1. Thumb cluster holds spacebar, ALT, and access to secondary layers. 1. Thumb cluster holds spacebar and access to secondary layers.
1. Function-layer arrow keys in both the first-person-shooter (actually ESDF instead of WASD) and vim (HJKL) locations. 1. Function-layer arrow keys in both the first-person-shooter (actually ESDF instead of WASD) and vim (HJKL) locations.
## Install ## Install
If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 235). If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 253).
```c ```c
void matrix_init_user(void) { void matrix_init_user(void) {
set_unicode_input_mode(UC_LNX); // Linux set_unicode_input_mode(UC_LNX); // Linux
@@ -45,13 +45,13 @@ $ make ergodox-ez-familiar-teensy
## Usage ## Usage
[![Familiar Layout](https://i.imgur.com/jflmkBb.png)](http://www.keyboard-layout-editor.com/#/gists/13508a9f99cff381d58b7be6f7dcc644) [![Familiar Layout](http://i.imgur.com/6nLN9UT.png)](https://gist.github.com/nstickney/13508a9f99cff381d58b7be6f7dcc644)
### Layers ### Layers
1. Base Layer: QWERTY, with arrow keys at bottom right. 1. Base Layer: QWERTY, with arrow keys at bottom right.
1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `INTL` layer using the UCIS key (bottom of left thumb cluster). 1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `SYMB` layer using the UCIS key (bottom of left thumb cluster).
1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed through holding shift while the UCIS layer is active (toggles the `INSF` layer). 1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed by holding shift while the `SYMB` layer is active (toggles the `CSYM` layer).
1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NPAD key (bottom of right thumb cluster). 1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NUMP key (bottom of right thumb cluster).
1. Function Layer: F1-F12, arrows on ESDF and HJKL, media player controls. Accessed by holding either FN key (center key of each thumb cluster), which toggles the `ARRW` layer. I know, I need to work on my naming conventions. 1. Function Layer: F1-F12, arrows on ESDF and HJKL, media player controls. Accessed by holding either FN key (center key of each thumb cluster), which toggles the `ARRW` layer. I know, I need to work on my naming conventions.
## Contribute ## Contribute
@@ -61,9 +61,9 @@ $ make ergodox-ez-familiar-teensy
I'm terrible at this; I have no background in human-computer interaction, kinesiology, or keyboard-ology. Please send comments/issues/pull requests/angry tweets/etc. If you think there is a better way to take advantage of the ErgoDox/QMK comination without straying far from 84/101-key QWERTY, I want to know it. I'm terrible at this; I have no background in human-computer interaction, kinesiology, or keyboard-ology. Please send comments/issues/pull requests/angry tweets/etc. If you think there is a better way to take advantage of the ErgoDox/QMK comination without straying far from 84/101-key QWERTY, I want to know it.
### Issues ### Issues
1. The top two keys of the right thumb cluster are currently unused. I wanted them for screen brightness, but I haven't found a solution I like. 1. The `CSYM` layer is an ugly workaround. I should write a function for doing different things in the `SYMB` layer depending on whether SHIFT is being held. Or something. Ideas?
1. The `'`, `"`, `[`, and `]` keys are terrible to access; I want to put them somewhere else but I haven't figured out where. 1. Right now, the thumb cluster function keys double as slash and whack... this really isnt a great solution.
1. The `INSF` layer is an ugly workaround. I should write a function for doing different things in the `INTL` layer depending on whether SHIFT is being held. Or something. Ideas? 1. `MENU` and `LEAD` are useless, at the moment.
## License ## License
QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](blob/master/license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md). QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](blob/master/license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md).
+71 -53
View File
@@ -5,8 +5,8 @@
// Layers // Layers
#define BASE 0 // default layer #define BASE 0 // default layer
#define INTL 1 // international symbols #define SYMB 1 // international symbols
#define INSF 2 // international symbols shifted #define CSYM 2 // international symbols shifted
#define NUMP 3 // numpad #define NUMP 3 // numpad
#define ARRW 4 // function, media, arrow keys #define ARRW 4 // function, media, arrow keys
@@ -14,63 +14,81 @@
#define _______ KC_TRNS #define _______ KC_TRNS
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
// Tap Dancing
void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
if (state->count == 1) { // Press once for NUMLOCK
register_code (KC_NLCK);
unregister_code (KC_NLCK);
} else if (state->count == 2) { // Press twice for CAPSLOCK
register_code (KC_CAPS);
unregister_code (KC_CAPS);
} else if (state->count == 3) { //Press thrice for SCROLLLOCK
register_code (KC_SLCK);
unregister_code (KC_SLCK);
}
}
enum {LOCKS = 0};
qk_tap_dance_action_t tap_dance_actions[] = {
[LOCKS] = ACTION_TAP_DANCE_FN(dance_lock)
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// If it accepts an argument (i.e, is a function), it doesn't need KC_. // If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_* // Otherwise, it needs KC_*
/* layer 0 : default /* layer 0 : default
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC | * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE | * | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | ` | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER | * | ' | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER |
* |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------| * |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------|
* | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT | * | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | LCTRL | LGUI | MENU | ' | " | | [ | ] | LEFT | DOWN | RIGHT | * | LCTRL | LGUI | MENU | LEAD | LALT | |[/RALT|]/RCTL| LEFT | DOWN | RIGHT |
* `------------------------------------' `------------------------------------' * `------------------------------------' `------------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | VOL- | VOL+ | | | | * |PRTSCR| ESC | | VOL- | VOL+ |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | SPC/ |SLASH/| MUTE | |NUMLCK|WHACK/| SPC/ | * | |SLASH/| LOCKS| | MUTE |WHACK/| |
* | ALT | MO(1)|------| |------|MO(1) | ALT | * | SPC | MO(4)|------| |------|MO(4) | SPC |
* | | | LAY3 | | LAY2 | | | * | | | TO(1)| |TO(3) | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[BASE] = KEYMAP( [BASE] = KEYMAP(
// left hand // left hand
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_QUOT, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END,
KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT), KC_LCTL, KC_LGUI, KC_MENU, KC_LEAD, KC_LALT,
KC_VOLD, KC_VOLU, KC_PSCR, KC_ESC,
KC_MUTE, TD(LOCKS),
ALT_T(KC_SPC), LT(ARRW,KC_SLSH), TG(INTL), KC_SPC, LT(ARRW, KC_SLSH), TG(SYMB),
// right hand // right hand
KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC,
KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_RGHT, MT(MOD_RALT, KC_LBRC), MT(MOD_RCTL, KC_RBRC), KC_LEFT, KC_DOWN, KC_RGHT,
_______, _______, KC_VOLD, KC_VOLU,
KC_NLCK, KC_MUTE,
TG(NUMP), LT(ARRW,KC_BSLS), ALT_T(KC_SPC) TG(NUMP), LT(ARRW, KC_BSLS), KC_SPC
), ),
/* layer 1: International symbols, etc /* layer 1: International symbols, etc
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ´ | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | | * | | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | | * | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | á | ß | ð | | |------| |------| | | | ø | ¶ | | * | ´ | á | ß | ð | | |------| |------| | | | ø | ¶ | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* |MO(INSF)| æ | | © | | | | | | ñ | µ | ç | | |MO(INSF)| * |MO(CSYM)| æ | ¿ | © | ¬ | | | | | ñ | µ | ç | | |MO(CSYM)|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | ¬ | ¿ | | « | » | | | | * | | | | | | | « | » | | | |
* `------------------------------------' `------------------------------------' * `------------------------------------' `------------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | | |
@@ -80,13 +98,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[INTL] = KEYMAP( [SYMB] = KEYMAP(
// left hand // left hand
UC(0x00B4), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC), _______, UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC),
_______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______, _______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
_______, UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______, UC(0x00B4), UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______,
MO(INSF), UC(0x00E6), _______, UC(0x00A9), _______, _______, _______, MO(CSYM), UC(0x00E6), UC(0x00BF), _______, UC(0x00AC), UC(0x00A9), _______,
_______, _______, _______, UC(0x00AC), UC(0x00BF), _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______,
@@ -94,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______, UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______,
_______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______, _______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
_______, _______, _______, UC(0x00F8), UC(0x00B6), _______, _______, _______, _______, UC(0x00F8), UC(0x00B6), _______,
_______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(INSF), _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(CSYM),
UC(0x00AB), UC(0x00BB), _______, _______, _______, UC(0x00AB), UC(0x00BB), _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
@@ -106,15 +124,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* which don't produce an "upper case" or "shifted" international symobol. * which don't produce an "upper case" or "shifted" international symobol.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ¨ | ¹ | | | £ | | | | | | | | — | ÷ | | * | | ¹ | | | £ | | | | | | | | — | ÷ | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | | * | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Á | § | Ð | | |------| |------| | | | Ø | ° | | * | ¨ | Á | § | Ð | | |------| |------| | | | Ø | ° | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | Æ | | ¢ | | | | | | Ñ | | Ç | | | | * | | Æ | | ¢ | ¦ | | | | | Ñ | | Ç | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | ¦ | | | | | | | | * | | | | | | | “ | ” | | | |
* `------------------------------------' `------------------------------------' * `------------------------------------' `------------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | | |
@@ -124,13 +142,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
*/ */
[INSF] = KEYMAP( [CSYM] = KEYMAP(
// left hand // left hand
UC(0x00A8), UC(0x00B9), _______, _______, UC(0x00A3), _______, _______, _______, UC(0x00B9), _______, _______, UC(0x00A3), _______, _______,
_______, UC(0x00C4), UC(0x00C5), UC(0x00C9), _______, UC(0x00DE), _______, _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), S(KC_R), UC(0x00DE), _______,
_______, UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G), UC(0x00A8), UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G),
_______, UC(0x00C6), S(KC_X), UC(0x00A2), S(KC_V), S(KC_B), _______, _______, UC(0x00C6), UC(0x00A6), UC(0x00A2), S(KC_V), S(KC_B), _______,
_______, _______, _______, UC(0x00A6), _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______, _______, _______, _______,
@@ -139,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______, _______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______, S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______,
_______, UC(0x00D1), _______, UC(0x00C7), S(KC_DOT), _______, _______, _______, UC(0x00D1), _______, UC(0x00C7), S(KC_DOT), _______, _______,
_______, _______, _______, _______, _______, UC(0x201C), UC(0x201D), _______, _______, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______ _______, _______, _______
@@ -156,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | 1 | 2 | 3 | = | | * | | | | | | | | | | | 1 | 2 | 3 | = | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | 0 | . | , | ENTER| | * | | | | | | |0/RALT|./RCTL| , | ENTER| |
* `------------------------------------' `------------------------------------' * `------------------------------------' `------------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | | | | | * | | | | | |
@@ -181,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
_______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______, _______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
_______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, _______, _______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, _______,
KC_KP_0, KC_KP_DOT, KC_PCMM, KC_PENT, _______, MT(MOD_RALT, KC_KP_0), MT(MOD_RCTL, KC_KP_DOT),KC_PCMM, KC_PENT, _______,
_______, _______, _______, _______,
_______, _______,
_______, _______, _______ _______, _______, _______
@@ -191,20 +209,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* This layer is at the top so that the functions still work no matter what layers are active. * This layer is at the top so that the functions still work no matter what layers are active.
* *
* ,--------------------------------------------------. ,--------------------------------------------------. * ,--------------------------------------------------. ,--------------------------------------------------.
* | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | SYSREQ | * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------| * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | UP | | | | | | | | | | | INSERT | * | | | | UP | | | | | | | | | | | INSERT |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* |CAPSLOCK| | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | | * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------| * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | | * | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------' * `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | HOME | PGDN | END | * | | | | | | | | | HOME | PGDN | END |
* `------------------------------------' `------------------------------------' * `------------------------------------' `------------------------------------'
* ,-------------. ,-------------. * ,-------------. ,-------------.
* | | PAUSE| | | | * | SYSRQ| PAUSE| | | |
* ,------|------|------| |------+------+------. * ,------|------|------| |------+------+------.
* | | | | |SCRLK | | | * | | | | | | | |
* | | |------| |------| | | * | | |------| |------| | |
* | | | | | | | | * | | | | | | | |
* `--------------------' `--------------------' * `--------------------' `--------------------'
@@ -213,20 +231,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand // left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
_______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______,
KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_PAUSE, KC_SYSREQ, KC_PAUSE,
_______, _______,
_______, _______, _______, _______, _______, _______,
// right hand // right hand
KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_SYSREQ, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, _______, _______, KC_INS,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END, _______, _______, KC_HOME, KC_PGDN, KC_END,
_______, _______, _______, _______,
KC_SLCK, _______,
_______, _______, _______ _______, _______, _______
), ),
}; };
@@ -249,8 +267,8 @@ void matrix_scan_user(void) {
ergodox_right_led_2_off(); ergodox_right_led_2_off();
ergodox_right_led_3_off(); ergodox_right_led_3_off();
switch (layer) { switch (layer) {
case INTL: case SYMB:
case INSF: case CSYM:
ergodox_right_led_1_on(); ergodox_right_led_1_on();
break; break;
case NUMP: case NUMP:
-3
View File
@@ -1,6 +1,3 @@
RGBLIGHT_ENABLE ?= yes
MIDI_ENABLE ?= yes
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
endif endif
Binary file not shown.
+247
View File
@@ -0,0 +1,247 @@
/* Copyright 2017 Andreas Lindhé
*
* 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 "ergodox.h"
#include "debug.h"
#include "action_layer.h"
#include "version.h"
#include "keymap_swedish.h"
#define BASE 0 // default layer
#define SYMB 1 // symbols
#define MDIA 2 // media keys
enum custom_keycodes {
PLACEHOLDER = SAFE_RANGE, // can always be here
EPRM,
VRSN,
RGB_SLD
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap 0: Basic layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ½ | ! | " | # | # | % | LEFT | | RIGHT| & | / | ( | ) | = | ? |
* | § | 1 | 2 @ | 3 £ | 4 $ | 5 | | | | 6 | 7 { | 8 [ | 9 ] | 0 } | + \ |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Delete | Q | W | E | R | T | L1 | | L1 | Y | U | I | O | P | Å |
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Caps | A | S | D | F | G |------| |------| H | J | K | L |Ö / L2|Ä / Cmd |
* | Lock | | | | | | Hyper| | Meh | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | Left |Z/Ctrl| X | C | V | B | | | | N | M | ; | : |_/Ctrl| RShift |
* | Shift | | | | | | | | | | | , | . |- | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | '/L1 | ` |AltShf| Left | Right| | Up | Down | ^ | * | ~L1 |
* | | ' | | | | | | | | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,---------------.
* | App | LGui | | AltGr|Ctrl/Esc|
* ,------|------|------| |------+--------+------.
* | | | Home | | PgUp | | |
* | Space|Back- |------| |------| Tab |Enter |
* | |space | End | | PgDn | | |
* `--------------------' `----------------------'
*/
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
[BASE] = KEYMAP( // layer 0 : default
// left hand
NO_HALF, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LEFT,
KC_DELT, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(SYMB),
KC_BSPC, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSFT, CTL_T(KC_Z), KC_X, KC_C, KC_V, KC_B, ALL_T(KC_NO),
LT(SYMB,NO_APOS), NO_ACUT, LALT(KC_LSFT), KC_LEFT, KC_RGHT,
ALT_T(KC_APP), KC_LGUI,
KC_HOME,
KC_SPC,KC_BSPC,KC_END,
// right hand
KC_RGHT, KC_6, KC_7, KC_8, KC_9, KC_0, NO_PLUS,
TG(SYMB), KC_Y, KC_U, KC_I, KC_O, KC_P, NO_AA,
KC_H, KC_J, KC_K, KC_L, LT(MDIA, NO_OSLH), GUI_T(NO_AE),
MEH_T(KC_NO), KC_N, KC_M, KC_COMM, KC_DOT, CTL_T(NO_MINS), KC_RSFT,
KC_UP, KC_DOWN, NO_CIRC, NO_ASTR, KC_FN1,
NO_ALGR, CTL_T(KC_ESC),
KC_PGUP,
KC_PGDN,KC_TAB, KC_ENT
),
/* Keymap 1: Symbol Layer
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* |Version | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ! | @ | { | } | | | | | | Up | 7 | 8 | 9 | * | F12 |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | # | $ | ( | ) | ` |------| |------| Down | 4 | 5 | 6 | + | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | % | ^ | [ | ] | ~ | | | | & | 1 | 2 | 3 | \ | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | . | 0 | = | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* |Animat| | |Toggle|Solid |
* ,------|------|------| |------+------+------.
* |Bright|Bright| | | |Hue- |Hue+ |
* |ness- |ness+ |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// SYMBOLS
[SYMB] = KEYMAP(
// left hand
VRSN, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_TRNS,
KC_TRNS,KC_EXLM,NO_AT, NO_LCBR,NO_RCBR,NO_PIPE,KC_TRNS,
KC_TRNS,KC_HASH,NO_DLR, NO_LPRN,NO_RPRN,NO_GRV,
KC_TRNS,KC_PERC,NO_CIRC,NO_LBRC,NO_RBRC,NO_TILD,KC_TRNS,
EPRM,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
RGB_MOD,KC_TRNS,
KC_TRNS,
RGB_VAD,RGB_VAI,KC_TRNS,
// right hand
KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
KC_TRNS, KC_UP, KC_7, KC_8, KC_9, NO_ASTR, KC_F12,
KC_DOWN, KC_4, KC_5, KC_6, NO_PLUS, KC_TRNS,
KC_TRNS, NO_AMPR, KC_1, KC_2, KC_3, NO_MINS, KC_TRNS,
KC_TRNS,KC_DOT, KC_0, NO_EQL, KC_TRNS,
RGB_TOG, RGB_SLD,
KC_TRNS,
KC_TRNS, RGB_HUD, RGB_HUI
),
/* Keymap 2: Media and mouse keys
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | | | | | | | | | | | | | | | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | MsUp | | | | | | | | | | | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | |MsLeft|MsDown|MsRght| |------| |------| | | | | | Play |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | | Prev | Next | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | Lclk | Rclk | |VolUp |VolDn | Mute | | |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | | |
* ,------|------|------| |------+------+------.
* | | | | | | |Brwser|
* | | |------| |------| |Back |
* | | | | | | | |
* `--------------------' `--------------------'
*/
// MEDIA AND MOUSE
[MDIA] = KEYMAP(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MS_U, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_BTN1, KC_BTN2,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
// right hand
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_MPLY,
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS,
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_WBAK
),
};
const uint16_t PROGMEM fn_actions[] = {
[1] = ACTION_LAYER_TAP_TOGGLE(SYMB) // FN1 - Momentary Layer 1 (Symbols)
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
// MACRODOWN only works in this function
switch(id) {
case 0:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
break;
case 1:
if (record->event.pressed) { // For resetting EEPROM
eeconfig_init();
}
break;
}
return MACRO_NONE;
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
// dynamically generate these.
case EPRM:
if (record->event.pressed) {
eeconfig_init();
}
return false;
break;
case VRSN:
if (record->event.pressed) {
SEND_STRING (QMK_KEYBOARD "/" QMK_KEYMAP " @ " QMK_VERSION);
}
return false;
break;
case RGB_SLD:
if (record->event.pressed) {
#ifdef RGBLIGHT_ENABLE
rgblight_mode(1);
#endif
}
return false;
break;
}
return true;
}
// Runs just one time when the keyboard initializes.
void matrix_init_user(void) {
};
// Runs constantly in the background, in a loop.
void matrix_scan_user(void) {
uint8_t layer = biton32(layer_state);
ergodox_board_led_off();
ergodox_right_led_1_off();
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
// TODO: Make this relevant to the ErgoDox EZ.
case 1:
ergodox_right_led_1_on();
break;
case 2:
ergodox_right_led_2_on();
break;
default:
// none
break;
}
};
@@ -0,0 +1,36 @@
# Swedish (sv_SE) Qwerty layout for ErgoDox EZ, based on the Default configuration
*NOTE:* it might still be desirable to set the software layout to sv_SE in your
OS.
Remind me and I'll provide a picture of the layout.
I have tried making this as close of a match I could between the [default
ErgoDox EZ configuration](https://ergodox-ez.com/pages/our-firmware) and a
standard Swedish Qwerty layout.
## Notable differences from default:
* There are three special character buttons (acute accent, circumflex/tilde and
apostrophe/asterisk) that don't have any buttons to map to naturally. I've put
these at other places:
* Acute accent (´) can be found in the lower left corner, conveniently
placed to reach for making an é.
* Apostrophe (') was put in the lower left corner, close to acute accent.
* Circumflex (^) and asterisk (*) was placed in the lower right corner.
* Tilde (~) and diaeresis (¨) I couldn't find a good place for, so I left
those out. I could only get the buttons to produce a single one of the
characters. How can I get it to work properly?
* The Alt button on right thumb was exchanged for AltGr (RAlt).
* I changed the backslash in the numpad (layer 1) for a minus. Thought it was
more sensible.
* I didn't find a good place for the "<>|" button, so that one was left out.
That is a problem that really needs to be resolved. Pipe can be found on layer
one, however.
+1 -1
View File
@@ -94,7 +94,7 @@ To flash with ´teensy-loader-cli´:
- Build the firmware with `make keymapname`, for example `make default` - Build the firmware with `make keymapname`, for example `make default`
- Run ´<path/to/>teensy_loader_cli --mcu=atmega32u4 -w ergodox_ez_<keymap>.hex´ - Run ´<path/to/>teensy_loader_cli -mmcu=atmega32u4 -w ergodox_ez_<keymap>.hex´
- Press the Reset button by inserting a paperclip gently into the reset hole - Press the Reset button by inserting a paperclip gently into the reset hole
in the top right corder. in the top right corder.
+10 -10
View File
@@ -16,13 +16,13 @@
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
CUSTOM_MATRIX ?= yes # Custom matrix file for the ErgoDox EZ CUSTOM_MATRIX = yes # Custom matrix file for the ErgoDox EZ
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
UNICODE_ENABLE ?= yes # Unicode UNICODE_ENABLE = yes # Unicode
ONEHAND_ENABLE ?= yes # Allow swapping hands of keyboard ONEHAND_ENABLE = yes # Allow swapping hands of keyboard
+13 -13
View File
@@ -51,21 +51,21 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE ?= no # Use buzzer to emulate clicky switches FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
CUSTOM_MATRIX = yes CUSTOM_MATRIX = yes
SRC += matrix.c SRC += matrix.c
+21 -7
View File
@@ -1,25 +1,39 @@
#include "gh60.h" #include "gh60.h"
extern inline void gh60_caps_led_on(void);
extern inline void gh60_poker_leds_on(void);
extern inline void gh60_fn_led_on(void);
extern inline void gh60_esc_led_on(void);
extern inline void gh60_wasd_leds_on(void);
extern inline void gh60_caps_led_off(void);
extern inline void gh60_poker_leds_off(void);
extern inline void gh60_fn_led_off(void);
extern inline void gh60_esc_led_off(void);
extern inline void gh60_wasd_leds_off(void);
void led_set_kb(uint8_t usb_led) { void led_set_kb(uint8_t usb_led) {
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
if (usb_led & (1<<USB_LED_CAPS_LOCK)) { if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
gh60_caps_led_on(); gh60_caps_led_on();
} else { } else {
gh60_caps_led_off(); gh60_caps_led_off();
} }
// if (usb_led & (1<<USB_LED_NUM_LOCK)) { // if (usb_led & (1<<USB_LED_NUM_LOCK)) {
// gh60_esc_led_on(); // gh60_esc_led_on();
// } else { // } else {
// gh60_esc_led_off(); // gh60_esc_led_off();
// } // }
// if (usb_led & (1<<USB_LED_SCROLL_LOCK)) { // if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
// gh60_fn_led_on(); // gh60_fn_led_on();
// } else { // } else {
// gh60_fn_led_off(); // gh60_fn_led_off();
// } // }
led_set_user(usb_led); led_set_user(usb_led);
} }
+13 -13
View File
@@ -91,20 +91,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow RGBLIGHT_ENABLE = yes # Enable RGB Underglow
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
+13 -13
View File
@@ -91,20 +91,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable RGB Underglow RGBLIGHT_ENABLE = no # Enable RGB Underglow
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
+13 -13
View File
@@ -91,20 +91,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow RGBLIGHT_ENABLE = yes # Enable RGB Underglow
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
+13 -13
View File
@@ -91,20 +91,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= yes # Enable RGB Underglow RGBLIGHT_ENABLE = yes # Enable RGB Underglow
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../../Makefile include ../../../../Makefile
+12 -12
View File
@@ -51,16 +51,16 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
# CONSOLE_ENABLE ?= yes # Console for debug(+400) # CONSOLE_ENABLE = yes # Console for debug(+400)
# COMMAND_ENABLE ?= yes # Commands for debug and configuration # COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
# SLEEP_LED_ENABLE ?= yes # Breathing sleep LED during USB suspend # SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 # BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
# MIDI_ENABLE ?= YES # MIDI controls # MIDI_ENABLE = YES # MIDI controls
# UNICODE_ENABLE ?= YES # Unicode # UNICODE_ENABLE = YES # Unicode
# BLUETOOTH_ENABLE ?= yes # Enable Bluetooth with the Adafruit EZ-Key HID # BLUETOOTH_ENABLE = yes # Enable Bluetooth with the Adafruit EZ-Key HID
+10 -10
View File
@@ -44,13 +44,13 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# comment out to disable the options. # comment out to disable the options.
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= no # Commands for debug and configuration COMMAND_ENABLE = no # Commands for debug and configuration
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
NKRO_ENABLE ?= yes # USB Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work NKRO_ENABLE = yes # USB 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 BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
AUDIO_ENABLE ?= no AUDIO_ENABLE = no
RGBLIGHT_ENABLE ?= no RGBLIGHT_ENABLE = no
+12 -12
View File
@@ -50,17 +50,17 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
+12 -12
View File
@@ -51,20 +51,20 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
ifndef QUANTUM_DIR ifndef QUANTUM_DIR
include ../../../Makefile include ../../../Makefile
+13 -13
View File
@@ -24,23 +24,23 @@ F_USB = $(F_CPU)
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= no # Mouse keys(+4700) MOUSEKEY_ENABLE = no # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= no # USB Nkey Rollover NKRO_ENABLE = no # USB Nkey Rollover
BACKLIGHT_ENABLE ?= no # Enable keyboard backlight functionality on B7 by default BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
USB ?= /dev/cu.usbmodem14141 USB = /dev/cu.usbmodem14141
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -53,18 +53,18 @@ OPT_DEFS += -DBOOTLOADER_SIZE=512
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
BOOTMAGIC_ENABLE ?= yes # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= yes # Console for debug(+400) CONSOLE_ENABLE = yes # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # Commands for debug and configuration
KEYBOARD_LOCK_ENABLE ?= yes # Allow locking of keyboard via magic key KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend 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 # if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
NKRO_ENABLE ?= yes # USB Nkey Rollover NKRO_ENABLE = yes # USB Nkey Rollover
BACKLIGHT_ENABLE ?= yes # Enable keyboard backlight functionality BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
+13 -13
View File
@@ -52,21 +52,21 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
# change to "no" to disable the options, or define them in the Makefile in # change to "no" to disable the options, or define them in the Makefile in
# the appropriate keymap folder that will get included automatically # the appropriate keymap folder that will get included automatically
# #
BOOTMAGIC_ENABLE ?= no # Virtual DIP switch configuration(+1000) BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
MOUSEKEY_ENABLE ?= yes # Mouse keys(+4700) MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
EXTRAKEY_ENABLE ?= yes # Audio control and System control(+450) EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
CONSOLE_ENABLE ?= no # Console for debug(+400) CONSOLE_ENABLE = no # Console for debug(+400)
COMMAND_ENABLE ?= yes # Commands for debug and configuration COMMAND_ENABLE = yes # 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 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 BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
MIDI_ENABLE ?= no # MIDI controls MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE ?= no # Audio output on port C6 AUDIO_ENABLE = no # Audio output on port C6
UNICODE_ENABLE ?= no # Unicode UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE ?= no # Enable Bluetooth with the Adafruit EZ-Key HID BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
RGBLIGHT_ENABLE ?= no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time. RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE # Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
SLEEP_LED_ENABLE ?= no # Breathing sleep LED during USB suspend SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
avrdude: build avrdude: build
ls /dev/tty* > /tmp/1; \ ls /dev/tty* > /tmp/1; \
Loaded 100 of 375 files, more files were not shown because too many files have changed in this diff. Show more