Commit graph

251 commits

Author SHA1 Message Date
Stefan Dorn 3dda86dd7e remove useless headers 2016-06-11 20:13:46 +01:00
Stefan Dorn c8fd4b83e1 make f key available 2016-05-31 17:14:53 +01:00
Stefan Dorn ea97f185de trust layers_top so we don't disable a layer that was already off 2016-02-13 22:08:05 +00:00
Stefan Dorn b5f88d06f4 fix latch bug 2016-02-06 14:31:54 +00:00
Stefan Dorn 9da1313e70 cleanup 2016-02-06 14:31:45 +00:00
Stefan Dorn cc8400f8c9 better layer functions that stack properly-ish 2016-02-04 16:38:33 +00:00
Stefan Dorn 8b78e8b3a4 simplify layer functions by using the keycode again 2016-02-04 15:28:11 +00:00
Stefan Dorn c88a558e8c more safety 2016-02-04 14:58:58 +00:00
Stefan Dorn 5419ab9d7a yes i can loops why 2016-02-04 14:19:14 +00:00
Stefan Dorn 37faadc8aa initialize layers to be safe 2016-02-04 14:19:06 +00:00
Stefan Dorn c08df8dc25 layers are a bit easier now 2016-02-04 14:18:46 +00:00
Stefan Dorn 43228a265a oops 2016-02-04 12:28:07 +00:00
Stefan Dorn d0f71834aa some cleanup 2016-02-04 11:24:51 +00:00
Stefan Dorn fc3259de73 minor refactor 2016-02-04 11:18:09 +00:00
Stefan Dorn fef0497fcf begin layer stacking refactor 2016-02-04 10:19:42 +00:00
Stefan Dorn ac64381896 better names 2016-02-04 10:09:07 +00:00
Stefan Dorn f9f5e4b5aa replace the stack with a flat array 2016-02-04 10:00:05 +00:00
Stefan Dorn c695c37c40 more refactor 2016-02-04 09:38:07 +00:00
Stefan Dorn e19ca08263 remove led code 2016-02-04 09:26:58 +00:00
Stefan Dorn d1c105848b remove old layouts 2016-02-04 09:26:41 +00:00
Stefan Dorn f0da34b909 more refactor 2016-02-04 09:22:40 +00:00
Stefan Dorn 01c9587d31 simplify layers 2016-02-04 08:42:22 +00:00
Stefan Dorn f3654c9fe0 more refactor 2016-02-04 07:47:22 +00:00
Stefan Dorn 447f1fb2cb begin major refactor to replace the layer stack 2016-02-04 06:43:33 +00:00
Stefan Dorn ccd324d972 cleanup 2016-02-04 06:34:57 +00:00
Stefan Dorn 5b65f3eb7c test keys for layout stacking debugs 2016-02-04 04:38:29 +00:00
Stefan Dorn 2159af0050 minor cleanup 2016-02-04 04:38:18 +00:00
Stefan Dorn e71b8fbeb0 simplify names 2016-02-04 04:27:48 +00:00
Stefan Dorn ec5eadf8a5 oops, forgot to commit last time 2016-01-26 15:34:20 +00:00
Stefan Dorn 068da79193 *all* media keys 2016-01-26 15:33:59 +00:00
Stefan Dorn fecaf571c8 Revert "fix sticky keys"
This reverts commit ba20aaebfd.
2016-01-21 14:26:08 +00:00
Stefan Dorn ba20aaebfd fix sticky keys 2016-01-09 23:54:58 +00:00
Stefan Dorn f7781d869c map f13-f24 for testing 2016-01-04 15:55:10 +00:00
Stefan Dorn 133f6823cf fix f14 and up 2016-01-04 15:55:00 +00:00
Stefan Dorn 2d1023cf42 alternative tab for bg2 2015-12-25 01:04:29 +00:00
Stefan Dorn 4764b3d363 fix broken latch 2015-12-17 21:17:09 +00:00
Stefan Dorn fa72af8504 use generated layout 2015-12-14 01:23:58 +00:00
Stefan Dorn 3121420267 basic layout generator 2015-12-14 00:28:13 +00:00
Stefan Dorn 8b392e14fb control-del key 2015-12-09 10:20:56 +00:00
Stefan Dorn 3325dea1cf alternative alt position 2015-12-08 07:55:00 +00:00
Stefan Dorn cf1b23b36d fix empty key 2015-12-08 07:54:51 +00:00
Stefan Dorn 2091d368c8 reverse right side 2015-11-02 15:46:53 +00:00
Stefan Dorn 58ae2cd244 cuter name 2015-11-02 15:25:02 +00:00
Stefan Dorn 431f620d5b work identically on 80-key version 2015-11-02 15:24:46 +00:00
Stefan Dorn d9d7f242b2 try menu key 2015-08-29 09:53:29 +01:00
Stefan Dorn 565ea0a478 cleanup 2015-08-29 09:53:26 +01:00
Stefan Dorn b2c04fbbed space on mod3 2015-08-01 06:56:11 +01:00
Stefan Dorn c5b328ea67 put enter on keys 2015-07-30 09:06:22 +01:00
Stefan Dorn 312b996d1b a bit more natural arrow keys on the right 2015-07-25 22:42:11 +01:00
Stefan Dorn 3aee762143 duplicate arrow keys on the right 2015-07-23 20:24:52 +01:00
Stefan Dorn 1983339d01 fix altR 2015-07-22 22:06:34 +01:00
Stefan Dorn 5e62e82595 alternatives to the worst pinky keys 2015-07-22 22:04:15 +01:00
Stefan Dorn 884b5ab884 mod3 is ready 2015-07-22 22:01:29 +01:00
Stefan Dorn b4bb0ff792 move everything into hardware 2015-07-22 21:27:58 +01:00
Stefan Dorn fee69ebeaf fill in some unnecessary gaps 2015-07-22 19:37:11 +01:00
Stefan Dorn 9ce238017c setup mod3 on FN1 2015-07-22 18:51:53 +01:00
Stefan Dorn c0fabeae17 move mod4 into hardware 2015-07-21 08:58:59 +01:00
Stefan Dorn fac5d540d2 basic saneo layout 2015-07-20 19:43:50 +01:00
Jacob McIntosh 9fffce4cb8 Forgot to remove this. 2014-03-28 01:02:10 -05:00
Jacob McIntosh 03e1485587 Fixed comment. 2014-03-28 00:40:55 -05:00
Jacob McIntosh 535a67de5d Added comment mentioning only known bug. Minor. 2014-03-28 00:25:06 -05:00
Jacob McIntosh 3455d4a1d4 Removing +x from source files. 2014-03-27 12:12:31 -05:00
Jacob McIntosh 1fe98c0a74 Comment fixes. 2014-03-27 11:59:03 -05:00
Jacob McIntosh 6998047e2a Fixed repeating-mediakey bug, attempt fixing workman-P
Inverted shift code now moved to the layout.
2014-03-27 11:38:42 -05:00
Jacob McIntosh b1c85b73fe Added volume media keys, fixed workman-p layout, added two todo's 2014-03-27 07:15:02 -05:00
Jacob McIntosh 84a6d90a7b Comment tweaks. 2014-03-26 15:01:41 -05:00
Jacob McIntosh 3c1c86f3ae Adding workman-p-kinesis-mod layout. 2014-03-14 15:48:59 -05:00
Jacob McIntosh 7fe2b46280 Added -f to clean command, so it actually cleans. 2014-03-14 15:48:34 -05:00
Jacob McIntosh 971eb539aa Added missing MEDIAKEY_STOP entry (TRANSPORT_STOP was already present). 2014-03-14 15:43:17 -05:00
Ben Blazak 1a38c77ee8 fixed small typo (thanks Rema!) 2013-10-21 10:24:12 -07:00
Ryan Prince 513b82d585 adding media keys
taken from Hasu codebase (https://github.com/tmk/tmk_keyboard) usb.c/.h
and usb_extra.c/.h, though these files only have the PJRC
copyright/license in the header
2013-04-14 00:29:47 -07:00
Ryan Prince 45c901c308 usb_extra.c now compiles 2013-04-13 16:33:30 -07:00
Ryan Prince ed37259e69 adding usb_extra.c/.h from Hasu's tmk code. Won't compile as is. 2013-04-13 09:52:49 -07:00
Ryan Prince 16992c2ea2 small layout change to move backspace, remove delete, and add tab on layer1 2013-04-13 09:45:43 -07:00
Ryan Prince 3008a6d759 removed TODO comment and readded deleted whitespace as per code review comments 2013-04-10 13:23:26 -07:00
Ryan Prince 22e1965902 added a created by line per code review comments and moved the configurator link to come after the description 2013-04-10 13:22:50 -07:00
Ryan Prince 2c39db717a adding layout description and updated layout. removing unused layers 2013-04-10 13:15:32 -07:00
Ryan Prince 26b46ac7d3 Swapping layer 2 sticky and layer 2 toggle keys. Now that sticky works
as desired, it is possible to hold the sticky key down for short number
runs and it is now a more frequently used key that toggle. Also added
notes about mac keycodes that I found in search of play/next/prev
buttons. I suspect that codes need to be inserted into the USB data
stream to indicate that a media key is being pressed.
2013-04-09 11:56:25 -07:00
Ryan Prince 2cd405ad08 checking in my layout file as an example of sticky key usage 2013-04-08 11:55:38 -07:00
Ryan Prince ce4495372c caching the transparent key pressed result to fix sticky key bug
the behavior for transparent keys not affecting sticky key state was
broken because kbfun_transparent() was only getting called for key
press and not for key release because the layer for the key was cached
on keypress. By caching the transparent key press result on key press
we can ensure that the main_arg_trans_key_pressed is set correctly for
any key function called on key release
2013-04-08 11:51:01 -07:00
Ryan Prince 4e56966795 fixing bug/adding function for sticky key behavior - kbfun_press_release_preserve_sticky()
kbfun_press_release_preserve_sticky() is meant to replace
kbfun_press_release as the function used for standard modifiers (shift,
control, alt, and gui) so that the sticky state is preserved and it is
possible to key in chorded commands using a key on another layer
pressing the keys in the chord one key at a time simultaneously without
breaking the sticky state. (e.g. ctrl+F2 as lsticky2, ctrl, x [where x
is defined as F2 on layer 2]

TODO: Noticed a bug where the transparent behavior does not work as
expected for modifiers. lsticky2, ctrl, x does not produce ctrl+F2 when
ctrl is defined as transparent on layer 2 and keycode=ctrl,
press=kprrel, release=kprrel on layer 0.
2013-04-08 10:54:49 -07:00
Ryan Prince eb24aef2d5 cleaning up local changes to prep the sticky keys change for a pull request 2013-04-08 08:49:58 -07:00
Ryan Prince 208aad93d3 Revert "adding local makefile changes"
This reverts commit d88b55a6d9.
2013-04-08 08:48:46 -07:00
Ryan Prince 15a91f7b05 fixing a bug in sticky key one time state behavior, cleaning up a comment, and making braces style consistent with the rest of the code.
sticky layers in the one time state were being popped anytime
kbfun_press_release() was called, which should only happen if the key
was defined for the sticky layer, i.e. kbfun_transparent() was not the
first function mapped to that key in the topmost layer.
2013-04-08 08:46:25 -07:00
Ryan Prince 2d5c6084c0 removing sticky off state, it is never used because off means the layer was popped 2013-04-08 00:56:06 -07:00
Ryan Prince d88b55a6d9 adding local makefile changes 2013-04-08 00:49:59 -07:00
Ryan Prince f2d650b996 adding sticky key functionality
This function gives similar behavior to sticky keys for modifiers
available on most operating systems. It is considered an accessibility
feature because it alleviates the user from having to hold down
modifiers while pressing a key to produce the modified key function. It
is useful for fast touch typing because you can avoid chording motions
which both strain your hands and take your hands out of home-row
position while pressing normal alpha keys.

This function emulates the 3-state behavior which is default on OS X
and optional in Windows where the modifier cycles between
Off->Once->Locked states. This is particularly handy for symbol layers
where you typically only type one symbol before you want to return to
unmodified typing (layer 0), e.g. 'if (condition) { a = "b" + "c"; }'.
If you assign a symbol layer to a thumb key as a layer sticky cycle,
you can type the entire line of code without taking your hands out of
home row position and you do not need to toggle off the layer after
each symbol is pressed, only immediately before keying the symbol.

The exact behavior of the layer sticky cycle function is defined as
follows for each state:
1) One time down (set on key press) - The layer was not active and the
key has been pressed but not yet released. The layer is pushed in the
one time down state.
2) One time up (set on key release) - The layer was active when the
layer sticky key was released. If a key on this layer (not set to
transparent) was pressed before the key was released, the layer will be
popped. If a non-transparent key was not pressed, the layer is popped
and pushed again in the one time up state.
3) Locked (set on key press) - The layer was active and in the one time
up state when the layer sticky key was pressed again. The layer will be
popped if the function is invoked on a subsequent keypress.
2013-04-08 00:49:35 -07:00
Ben Blazak 8ea3ea5230 fixed layout bug ('period' on numpad layer)
'_dec_kp' (the keydoce for keypad decimal) doesn't appear to work...
2012-12-20 00:22:06 -08:00
Ben Blazak 0f474132f5 fixed layer bug 2012-12-11 17:20:42 -08:00
Ben Blazak b102e2bd4f updated toplevel build script :)
- also fixed a small error in the colmak layout, which was there because
  it had been in the qwerty and dvorak layouts until *very* recently.
2012-12-11 16:39:27 -08:00
Ben Blazak a6846f7e68 Merge branch 'master' of git://github.com/jjt/ergodox-firmware into dev
------- jjt -------
I increased the spacing of the layout sections and made all layers follow the
spacing for consistency.

I also made changes to the positions of the layer keys, added a number symbol
row on layer 1 (I found it easier to reach) and made a QWERTY layer, mostly for
gaming. And I switched the primary thumb buttons, also for gaming.
-------------------
2012-12-11 15:32:16 -08:00
Ben Blazak 63f1ee22df improved the svg/html layout description generator output 2012-12-11 15:10:45 -08:00
Jason Trill ba158565dc Converted tabs to spaces 2012-12-11 13:51:16 -08:00
Jason Trill c122a67db9 Added Colemak layout 2012-12-11 13:30:06 -08:00
Ben Blazak 8d3d17bb20 rotated the layout and matrix thumb groups 90 deg.
- per a suggestion from Jason Trill (jjt on github); after looking at it
  a while, i think it is a bit more natural.. :)
2012-12-11 11:01:18 -08:00
Ben Blazak 371ffad691 rotated the layout and matrix thumb groups 90 deg.
- per a suggestion from Jason Trill (jjt on github); after looking at it
  a while, i think it is a bit more natural.. :)
2012-12-11 10:50:47 -08:00
Ben Blazak 4c2cc8e5e9 updating documentation :)
(and a few minor changes)
2012-12-10 18:30:39 -08:00
Ben Blazak 27569dbb74 added dvorak layout (modified from the QWERTY one) 2012-12-06 12:24:41 -08:00
Ben Blazak 51e81d0b1c layout modifications
- and added a 'shift+press|release' kbfun
2012-12-04 16:11:01 -08:00
Ben Blazak 1b41491115 fixed layer and numpad bugs - appears to work!
- rewrote the layer functions in main() (easiest way to get the to
  work.. :) )
- fixed the keymap (i had the numpad keys pushing layer 2 instead of
  layer 3)
- changed the numlock keycode.. i was using the wrong one, lol
- and some minor aesthetic changes
2012-12-03 16:19:12 -08:00