summaryrefslogtreecommitdiffstats
path: root/quantum
AgeCommit message (Collapse)AuthorFilesLines
2016-08-18Add a register/unregister_code16 pair of functionsGergely Nagy3-4/+44
These functions register not only the 8bit keycode, but the modifiers too. It doesn't handle the full range of the upper 8bits, just the mods, but that's a good start. Changed the tap-dance pair functions to use these, so one can do: `ACTION_TAP_DANCE_DOUBLE (KC_COLN, KC_SCLN)` ...and that will do the right thing. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-18Merge pull request #648 from Vifon/dynamic_macrosJack Humbert1-0/+226
Implement the dynamic macros that are recorded in runtime
2016-08-18Merge pull request #647 from Vifon/process_record_nocache-fixJack Humbert1-10/+12
Fix the process_record_nocache function
2016-08-18Implement the dynamic macros that are recorded in runtimeWojciech Siewierski1-0/+226
2016-08-18Fix the process_record_nocache functionWojciech Siewierski1-10/+12
This function relies on checking the disable_action_cache static variable before accessing the layer cache.
2016-08-17tap-dance: Major rework, to make it more reliableGergely Nagy2-64/+66
This reworks how the tap-dance feature works: instead of one global state, we have a state for each tap-dance key, so we can cancel them when another tap-dance key is in flight. This fixes #527. Since we have a state for each key, we can avoid situation where a keyup would mess with our global state. This fixes #563. And while here, we also make sure to fire events only once, and this fixes #574. There is one breaking change, though: tap-dance debugging support was removed, because dumping the whole state would increase the firmware size too much. Any keymap that made use of this, will have to be updated (but there's no such keymap in the repo). Also, there's a nice trick used in this rework: we need to iterate through tap_dance_actions in a few places, to check for timeouts, and so on. For this, we'd need to know the size of the array. We can't discover that at compile-time, because tap-dance gets compiled separately. We'd like to avoid having to terminate the list with a sentinel value, because that would require updates to all keymaps that use the feature. So, we keep track of the highest tap-dance code seen so far, and iterate until that index. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-17tap-dance: Include action_tapping.h for TAPPING_TERMGergely Nagy1-0/+1
Include `action_tapping.h`, so the keymap does not have to define a `TAPPING_TERM` for us, and we can use the default. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Introduce a slight delayGergely Nagy2-0/+8
When entering unicode codes, use some delay, so the OS has time to process the information. This is not needed on all systems, but some seem to require it. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Replace register_hex32Gergely Nagy2-13/+32
It turns out that register_hex32 did not work reliably, and some systems only allow 7 chars after the unicode magic sequence, while others allow 8. To remedy the situation, store the codes as strings, and type those in instead of doing bit shifting magic. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Use uint32_t for UCIS purposesGergely Nagy2-6/+13
Use a single uint32_t to store the unicode of a symbol, instead of an array of uint16_ts. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Make the startup overridableGergely Nagy2-0/+6
Extract out the part of `qk_ucis_start` that inputs the placeholder symbol, and make it weak, so it can be overridden. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Call process_ucis() automaticallyGergely Nagy3-2/+5
If UCIS is enabled, call process_ucis() automatically from process_record_quantum(). Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Handle too long UCIS symbol namesGergely Nagy1-1/+9
If the symbol name being entered is longer than the max, stop recording it, and stop processing keycodes apart from the ones that can delete, finish or cancel the sequence. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Add a way to enter unicode symbols by nameGergely Nagy2-2/+120
The purpose of this change is to allow keymaps to specify a dictionary of unicode symbol name to code mappings, and let the person at the keyboard enter unicode symbols by name. This is done by having a way to trigger unicode symbol input mode, when all keys are cached until Esc, Enter or Space are pressed. Once that happens, we try to look up the symbol from our lookup table. If found, we erase back, and type the unicode magic in to get that symbol. If not found, we still erase back, start unicode input mode, and replay what the user typed in. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15process_unicode: Small refactor & linux fixGergely Nagy2-31/+48
This moves the unicode input start / end sequences into their own functions, so keymaps and other functionality can build on it too. At the same time, it changes how the Linux variant works, to match reality: CTRL+SHIFT must be unregistered too, and we close the thing with a Space instead. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-13process_unicode: Fix set_unicode_input_mode()Gergely Nagy1-1/+1
In the header, this was defined as `set_unicode_input_mode`, but the implementation had `set_unicode_mode` for a name. Changed the implementation to match the header. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-12fix typoshela1-11/+11
2016-08-07Removed unnecessary commentkuel1-2/+0
2016-08-07Add keymap_russian.h, a software implementation of Russiankuel2-2/+83
rename keymap_cyrillic.h to keymap_unicode_cyrillic.h changed CY_RUBLE and CY_NUMERO to CY_RUBL and CY_NMRO in keymap_unicode_cyrillic.h
2016-08-03Merge pull request #605 from kuel/masterJack Humbert1-0/+161
Add keymap_cyrillic.h, lots of cyrillic characters
2016-08-03Merge pull request #561 from 0xdec/patch-1Jack Humbert1-357/+378
Clean up formatting & tiny refactor in rgblight.c
2016-08-02Add keymap_cyrillic.h, lots of cyrillic characterskuel1-0/+161
2016-07-30Add IN_LIKE_FLINT songJeeBak Kim1-0/+8
2016-07-29Most ergodox keymaps compiles on InfinityFred Sundvik1-0/+1
There are linker errors due to missing led funcitonality though
2016-07-27tap-dance: Add some debugging supportGergely Nagy2-0/+16
Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-26Simplify HSV->RGB calculationJordi Orlando1-14/+12
De-dupe repeated code
2016-07-26Increament -> incrementJordi Orlando1-9/+9
2016-07-26Clean up rgblight.cJordi Orlando1-354/+377
Fix formatting issues, clarify comments
2016-07-25Merge pull request #558 from lindhe/masterJack Humbert2-2/+2
Fix misspelled command in Norwegian helper
2016-07-25Change Nordic ampersand code to match the EnglishAndreas Lindhé1-1/+1
Changed from "NO_AMP" to "NO_AMPR" since the KC one is "KC_AMPR"
2016-07-25Fix misspelled command in Norwegian helperAndreas Lindhé1-1/+1
2016-07-25Fixes midi functionalityJack Humbert2-13/+13
2016-07-25Merge pull request #552 from robertdale/music-play-fixJack Humbert1-1/+6
Fixes issue #551 - ensure there's a recording to play before playing
2016-07-25Merge pull request #550 from Darthabel/fix_bepoJack Humbert1-2/+2
Fix some errors in bepo mapping
2016-07-24ensure there's a recording to play before playing; also enables the LGUI ↵Robert Dale1-1/+6
button to play a tone
2016-07-24Fix some errors in bepo mappingVivien Alger1-2/+2
2016-07-22tap-dance: Code cleanupGergely Nagy1-21/+24
Removes a number of duplicated code, by passing actions around instead of keycodes, so the various dance action functions do not have to look up the action, but the caller does that for them. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22tap-dance: Support user_data for the callbacksGergely Nagy2-64/+38
Refactored the code a little, so all callbacks now receive a `user_data` pointer, which can be anything. As an example, the key pairs from `ACTION_TAP_DANCE_DOUBLE` now use this, and custom, built-in functions. This makes it easier to extend the tap dance functionality, and also simplifies the code a little. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22tap-dance: Support for holding keysGergely Nagy2-1/+12
With this change, tap dance will now store the pressed state of the tap-dance key, and allow one to make an action sooner, while the key is still held, and only unregister when the key is released. The registration must happen in the `on_dance_finished` callback, while unregistering goes to `on_reset`. The surrounding code makes sure not to call either multiple times. Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-07-22Merge pull request #518 from jakllsch/upstreamJack Humbert8-13/+20
keymap_extras changes
2016-07-19add a couple of commentsPavlos Vinieratos1-0/+2
2016-07-19on_each_tap_fn is called on tap down and tap upPavlos Vinieratos1-1/+1
2016-07-18in the default case, it should be called if there is actually a tapPavlos Vinieratos1-2/+2
dance happening, and in the normal case, it should be called when the tap down is happening.
2016-07-17change naming, and remove extraneous definitionPavlos Vinieratos2-36/+23
2016-07-16add an `anyway` and a `reset` callbackPavlos Vinieratos2-5/+59
when using tap dance, we have the `regular` callback that is called on the last tap. this commit adds an `anyway` callback that is called on every tap, and a `reset` callback that is called on reset of the tap dance taps.
2016-07-16in case its NULLPavlos Vinieratos1-1/+3
2016-07-14keymap_dvorak.h: add missing shifted keys, fix whitespaceJonathan A. Kollasch1-4/+11
2016-07-14extra_keymaps: use RALT() instead of 0x1400 for AltGrJonathan A. Kollasch7-7/+7
2016-07-14keymap_extras: add newline at end of filesJonathan A. Kollasch2-2/+2
2016-07-13extract reset keyboard into a functionPavlos Vinieratos2-10/+16
that makes it easy to call reset_keyboard() from a function in a keymap