This board uses ZMK firmware, it can be a great idea to look through the ZMK firmware documentation if you are having problems or if you are just curious how things work.
It is recommended to have at least basic knowledge of how git and/or GitHub works. You also need to have a GitHub account.
While you can download the source yourself and flash the board, they do come preflashed so if you just want to get up and running you can follow these steps.
There is a premade configuration repository that can be found here that you can fork to get up and running. (In the top right corner of the page you can find a "fork" button)
You can do this with the GitHub editor as well, but normally with git repositories you would clone them to your local machine, make changes and commit from there.
$ git clone https://github.com/YOUR_GITHUB_USERNAME/zmk-config-4pplet/
$ cd zmk-config-4pplet
If you inspect the file at zmk-config-4pplet/config/boards/arm/cyber60/cyber60.keymap
you will see that this contains the key mapping. You can change this to something that suits you, but there are a few things you have to know.
In the same folder, there are some .overlay
files for each revision on the board, these contain a matrix transform which most users that just want to create a keymap don't have to think about.
Instead, the relevant information regarding this matrix is that you can not just put your keymap in unless you have the same number of keys that the matrix has. This might sound confusing at first, but let me give an example.
The default keymap example contains a "split backspace" layout, meaning that the backspace key is split into 2 different keys. So if you want to go with a standard ANSI layout with a regular size backspace key you have to take into account that the space in the config meant for the key that you are not going to use still has to be filled in with something. If you don't want it bound to anything you can set it to &none
like this:
// before
keymap {
. . . &kp BSLH &kp GRAV
};
// after
keymap {
. . . &none &kp BKSP
};
If you don't do this you will notice that there are some keys that will output the value of the key to the right of itself. This suggests that something is missing in your keymap.
A default ANSI layout could look something like this:
base_layer {
bindings = <
&kp GRAVE &kp NUM_1 &kp NUM_2 &kp NUM_3 &kp NUM_4 &kp NUM_5 &kp NUM_6 &kp NUM_7 &kp NUM_8 &kp NUM_9 &kp NUM_0 &kp MINUS &kp EQL &none &kp BKSP
&kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH
&kp CAPS &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &none &kp ENTER
&kp LSHIFT &none &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp CMMA &kp DOT &kp FSLH &kp RSHIFT &mo FN1
&kp LCTL &kp LALT &kp LMETA &none &kp SPACE &none &none &kp RALT &kp RMETA &mo FN1
&kp C_PP
>;
sensor-bindings = <&inc_dec_kp C_VOL_DN C_VOL_UP>;
};