Neo2 sa su#1
Open
xstable wants to merge 285 commits into
Open
Conversation
- did not move any of the layer-stack code into code for a 'flex-array' type, or something similar. i'm thinking that most of the things the layer-stack does aren't sufficiently generalizable. for instance, one of the biggest general functions in the layer-stack implementation is `_shift_elements()`; but shifing elements is only something you want to do when you're messing with elements not on the the top of the stack (which breaks the definition of a general stack). so i think i'll leave things as they are for now. the functionality can always be split out later if it turns out to be needed elsewhere.
one bug left to fix before it's actually doing what it's supposed to scanning at about 140Hz :D , and only slightly bigger than the old firmware (though, with many fewer layers compiled in...) (also, the winavr makefile gets the hex to be smaller somehow; i should probably look into that)
lol - i'd forgotten to do this before
where it should have been (and i thought it was) before ... oops :)
Also, I just tested the scan rate without debounce (lol, should have thought of that before) and it's about 471Hz. This is much faster than the 200Hz (every 5ms) that we need to limit ourselves to due to the switches needing a 5ms debounce time. It should be trivial to tune the scan rate to closer to 200Hz once I get lib/timer implemented.
untested, but it should work. i'll test before pushing to github, and update if i messed anything up
in the while loop in main() that busywaits until we can scan again, the compiler was optimizing out the function call, it seems like, when i wrote `(uint8_t)timer__get_milliseconds()`; if i cast the whole expression (not just the function) to `(volatile uint8_t)`, or if i just didn't cast anything at all, it worked. not sure why the compiler would optimize the function call out like that though, even if it was cast... this happened when i put it in a for loop too. i need to research it just a little more, and write a warning about it in the timer documentation.
especially relating to the unexpected behavior i was getting last night
I needed to introduce these, because I had a problem with typing "<>". On my PC configured to use German keyboard layout following happened: The key ">" was not processed by the OS when "<" was typed just before. The reason I think is, that normally on a German keyboard "<" and ">" are on the same key (the key right of the left "shift"). For "<" you press that key. For ">" you have to first release the key press and hold "shift", and press the key again. This was not possible with the KEYS__DEFAULT and KEYS__SHIFTED macros. Therefore I introduced the TYPE__ macros. They do all the work, i.e. send a press followed by a release to the OS. With these macros it is not possible any more to use repeating of keys at the OS level, but for me this is no problem, because I don't use this for normal keys. Maybe this is a problem with shortcut combinations, where multiple keys need to be pressed simultaniously. Since the ALT_GR macros where also doing all the work on key press, I renamed them to TYPE__, to reflect this.
Conflicts: makefile readme.md src/keyboard/ergodox/controller/mcp23018.md src/lib-other/pjrc/usb_keyboard/usb_keyboard.c src/lib-other/pjrc/usb_keyboard/usb_keyboard.h src/lib/key-functions/private.c src/lib/key-functions/private.h src/lib/key-functions/public.h src/lib/key-functions/public/basic.c src/lib/key-functions/public/special.c src/lib/usb/usage-page/keyboard.h src/main.c src/main.h src/makefile
Conflicts: firmware/keyboard/ergodox/options.mk readme.md
ESC liegt: 4. Reihe, 1. Taste INS liegt: 4. Reihe, 3. Taste
Strg (CTRL)-Taste auf diese Taste gesetzt, damit man bei umschaltung auf mod4 mit dem kleinen Finger die STRG-Taste leichter erreicht, um z.B. Wortweise mit dem Cursor vor oder zurück springen zu können.
Owner
|
@xstable I think you wanted to merge into my neo2 branch. About the num-keys from the tenblock: I don't remember exactly why I chose the tenkey instead of the normal keys, but I think it was because at work I use Winsplit Revolution to move windows between my monitors or to maximize windows or split them. And the default is use Ctrl+Alt+tenkey5 to maximize a window. But that should be configurable (and I am trying to use Linux at work as well). I have had issues with numlock not being enabled by default myself. But for this I have the guest-keyboard still attached. |
Rechte Hand, 3.Reihe, 1.Taste "sz" (breite Taste)
oberhalb von src liegen muss
Hinweis wie die vorkompilierte Firmware zu installieren ist.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some changes of neo2-Layout:
Have changed mod4 Numpad to normal digits, so you don't have to toggle numlock always if you first use it after boot.
I've also add some operations like ,+*/: to this mod4 which are arround the tenblock.
I've also changed the F1-F12 Layer to have all the F-Keys on left-side (better if you use the mouse), and add ALT + CTRL to this Layer.