Comments (1)
Separating the symbols from the numbers is somewhat of a trick... The spec defines keycodes (not symbols) - "shift" is a keycode (well.. two keycodes, one for left, one for right) and all the number/symbol combination keys are represented by a keycode as well (just one per key, not one for each symbol). When you press "shift"+[some other key], it's the OS that decides what character to generate, not the firmware.
That said, "shifted keys" - i.e. keys that press "shift" then press another key - are already available. Note that "shifted keys" are really just a special case of macro keys.
I think the cleanest way to do it would be:
- define all the number row keys as shifted keys in layer 0
- define all the number row keys as non-shifted keypad number keys in layer 1 (or wherever), with all other keys on that layer transparent
- make "shift" into a macro key that presses "shift" + ~L1 (note that "~L1" would translate into a '1' in the keycode matrix, an 'lpush1' in the press matrix, and an 'lpop1' in the release matrix -- these actions will need to be combined with the actions that press then release "shift" when you write the macro-key functions)
Macro keys (beside the simple shifted keys already available) are a little bit difficult at the moment - you have to write them yourself in C. I plan to write up examples in the next rev of the firmware, but for now, take a look at the @BISL part of this post on geekhack for a general idea of how they'd look. You can find examples of key-functions here. Layouts are in this directory. If you downloaded the source from the Massdrop configurator, the layout file you'll want to worry about will be called default--layout.c
.
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.