Commit Graph

2882 Commits

Author SHA1 Message Date
Gergely Nagy
0d28787c5c Add a register/unregister_code16 pair of functions
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-18 11:29:53 +02:00
Jack Humbert
8144ce8852 Merge pull request #648 from Vifon/dynamic_macros
Implement the dynamic macros that are recorded in runtime
2016-08-17 21:17:30 -04:00
Jack Humbert
39a95897bc Merge pull request #647 from Vifon/process_record_nocache-fix
Fix the process_record_nocache function
2016-08-17 21:16:49 -04:00
Jack Humbert
f4f80a0e3a Merge pull request #645 from algernon/f/tap-dance/buffering
tap-dance rework
2016-08-17 21:15:29 -04:00
Jack Humbert
1442a882d4 Merge pull request #640 from toneman77/iso_satan
heavily modified spacefn layout for iso boards using the satan PCB
2016-08-17 21:11:59 -04:00
Jack Humbert
f59b61332f Merge pull request #638 from premek/master
Split layout for planck
2016-08-17 21:11:02 -04:00
Jack Humbert
034bf67f2a Merge pull request #637 from mld2443/master
Circuit keymap for Planck keyboard
2016-08-17 21:10:33 -04:00
Wojciech Siewierski
950755edaf Add the dynamic macros documentation to the readme 2016-08-18 01:40:54 +02:00
Wojciech Siewierski
39e8e61258 Implement the dynamic macros that are recorded in runtime 2016-08-18 01:37:13 +02:00
Wojciech Siewierski
644c8c7927 Fix the process_record_nocache function
This function relies on checking the disable_action_cache static
variable before accessing the layer cache.
2016-08-18 01:34:05 +02:00
Toni
c024de4a87 wring keypress for german iso fixed. prettified 2016-08-17 15:33:14 +02:00
Gergely Nagy
29f64d7a93 tap-dance: Major rework, to make it more reliable
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-17 15:05:58 +02:00
Gergely Nagy
d78058cc75 tap-dance: Include action_tapping.h for TAPPING_TERM
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-17 10:28:08 +02:00
Toni
8e142d8cbe no more warning thanks to iFreilicht's tip with undef 2016-08-16 17:35:03 +02:00
Toni
deedd2f408 in accordance to keymap_makefile_example.mk 2016-08-16 16:44:12 +02:00
Toni
03a24eb86a minor grammer fixes 2016-08-16 16:35:57 +02:00
Toni
b1ac91a040 big cleanup and minor refactoring. thanks iFreilicht. 2016-08-16 16:32:42 +02:00
Přemek Vyhnal
2ebfdcac40 Update readme.md 2016-08-16 01:07:34 +02:00
premek
a75d4bd593 premek split layout 2016-08-16 00:50:35 +02:00
premek
5abb05ca40 premek split layout 2016-08-16 00:44:58 +02:00
Matt
f5ed3e5155 Added my custom Planck layout called Circuit.
* Layout has image and readme, as well as documentation in the code.
2016-08-15 17:26:01 -05:00
Toni
68005ce602 grammar 2016-08-15 21:47:07 +02:00
Toni
7e1be3ae7c reference to reddit post and Terry Mathews 2016-08-15 21:44:20 +02:00
Toni
b8cbf7c9c0 script now waits for the user to press the button 2016-08-15 21:18:25 +02:00
Toni
396b59f256 readme now with picture 2016-08-15 21:12:49 +02:00
Toni
94ff9c9fa5 more prettyness 2016-08-15 21:04:11 +02:00
Toni
14de76ea80 Update readme.md
typo
2016-08-15 21:02:40 +02:00
Toni
5cf5e27dcd Update readme.md
attempt to prettify the table
2016-08-15 21:02:07 +02:00
Toni
77f3efbef6 more information. first steps in markdown 2016-08-15 20:59:50 +02:00
Toni
ca4968bc44 readme.md added 2016-08-15 20:46:38 +02:00
Toni
f89aec98ae removed my personal stuff 2016-08-15 20:32:45 +02:00
Toni
5ecebc3a66 Merge remote-tracking branch 'origin/master' into iso_split_rshift
no idea what is merged
2016-08-15 19:48:53 +02:00
Jack Humbert
cc7acfb416 Merge pull request #635 from algernon/f/ucis
Symbolic Unicode Input System
2016-08-15 12:19:01 -04:00
Gergely Nagy
e8845f0daf process_unicode: Introduce a slight delay
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-15 10:08:53 +02:00
Gergely Nagy
43d08629cf process_unicode: Replace register_hex32
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-15 10:08:53 +02:00
Gergely Nagy
a312cbf712 process_unicode: Use uint32_t for UCIS purposes
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-15 10:08:53 +02:00
Gergely Nagy
234dd276cf process_unicode: Make the startup overridable
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-15 10:08:53 +02:00
Gergely Nagy
857aa5bef6 process_unicode: Call process_ucis() automatically
If UCIS is enabled, call process_ucis() automatically from
process_record_quantum().

Signed-off-by: Gergely Nagy <algernon@madhouse-project.org>
2016-08-15 10:08:53 +02:00
Gergely Nagy
0b6861827f process_unicode: Handle too long UCIS symbol names
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-15 10:08:53 +02:00
Gergely Nagy
fa06a16360 process_unicode: Add a way to enter unicode symbols by name
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-15 10:08:53 +02:00
Gergely Nagy
63e5782d2c process_unicode: Small refactor & linux fix
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-15 10:08:53 +02:00
Jack Humbert
bc8976d277 Merge pull request #634 from di0ib/master
minorca handwired
2016-08-14 21:03:15 -04:00
di0ib
959c48e146 moved to handwired folder 2016-08-14 14:13:58 -10:00
di0ib
288bf4faa3 Merge branch 'master' of https://github.com/di0ib/qmk_firmware 2016-08-14 13:20:00 -10:00
di0ib
df56d742b1 Merge remote-tracking branch 'refs/remotes/jackhumbert/master' 2016-08-14 13:19:20 -10:00
Jack Humbert
4865e6f81f Merge pull request #631 from jacwib/master
Jacwib's keymap
2016-08-14 18:50:22 -04:00
Jack Humbert
cdd7301b8b Merge pull request #627 from algernon/h/set-unicode-input-mode
process_unicode: Fix set_unicode_input_mode()
2016-08-14 18:50:03 -04:00
Jack Humbert
8bb299255b Merge pull request #624 from Xyverz/master
Added Ergodox Layout with persistent layers, Atreus corrections
2016-08-14 18:49:28 -04:00
di0ib
503ec7f9f6 Updated readme
Added link to Minorca/Sebright blog.
2016-08-14 11:15:46 -10:00
di0ib
f58a67c991 cleanup readme 2016-08-14 11:10:12 -10:00