Comments (4)
If this gets implemented, it will be more complicated than I thought. Basically, altered stuff will have to be written to the EEPROM, which is only 1024 bytes - which is only large enough to hold about 2 full keymaps (with functions).
A couple options would be:
- Only write the keycode matrix to the EEPROM, and keep all of it there. This would require a default set of function matrices that would work with any possible remap.
- Only write changed codes to the EEPROM. This would require some sort of EEPROM lookup for every keypress/release, to see if an altered value was in there. I don't think it'd be too slow to do this, but testing would be good.
Of course, if the keymap we want to be programmable like this is only 1 (or maybe 2) layers, it doesn't matter, it should be fairly trivial to store the whole thing in the EEPROM and write some update functions. The logic of how the keypresses would activate the remap layer and how the remap layer would behave would be the hardest part.
Anyway, this is still a fairly low priority. I was just thinking about it today as I was moving the matrices from RAM to program space.
from ergodox-firmware.
I think we should update this ticket with the fact a UI will handle much of the remapping work. We can directly flash the teensy using the compiled .hex (at least in theory), and IMO that will give us the ability to have many layouts stored directly onto the controller without needing to have "on the fly" remapping. Whilst this feature might be nice for quick changes, I don't know how feasible it is to do in phase 1 before people get something in hand, and we can then measure up the amount of demand for it,
Cheers,
from ergodox-firmware.
updated
from ergodox-firmware.
this may be reopened sometime in the future, but for now the issue is being closed as "won't implement". it would take a bit of ingenuity to get it to work, and i don't see a huge interest in it given the existence of the UIs, which allow for pretty quick remapping.
the ability to save and execute macros on-keyboard would be nice, and i can see that being really useful. but i'll reconsider that and open another issue if it seems to reasonable sometime later.
from ergodox-firmware.
Related Issues (20)
- Will a non-soldered teensy be recognized as a keyboard? HOT 2
- Any way to give Ergodox the full control over layout? HOT 8
- PROBLEMS FOR UK KEYBOARD USERS HOT 1
- Is 80 key version of ergodox supported in your code ? HOT 9
- Compose key not registered HOT 1
- Latch Keys Not Working HOT 3
- changing key from `1` to `_grave` causes unexpected behavior
- "Simple macros" don't work on Mac OS Sierra HOT 4
- How to release the 'RightAlt' upon leaving a layer. HOT 4
- Updating the USB stack HOT 1
- How to use layers? HOT 1
- Readme still links to the defunct .org site in the title HOT 1
- Set what is sent on shift HOT 1
- Random sticky/unresponsive HOT 11
- Always switched to layer 2 on the first system startup HOT 3
- Hold letter key for another key entirely HOT 1
- About the drop page cannot download .HEX files HOT 1
- Keyboard doesnt boots after tried to flashing with another firmware HOT 4
- Using ancient frozen customized fork of your firmware (didn't set it up, kinda inherited it, don't really understand it). If I get a new ergodox, could I just flash my current firmware on to it? (Paranoid the old microcontroller in my current one *might* be starting to fail...) HOT 11
- default Make target (dist) fails running gen-ui-info.py with KeyError: '_kb_layout' HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ergodox-firmware.