Skip to content

Instantly share code, notes, and snippets.

@ehellman
Last active March 23, 2022 17:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ehellman/f99d8ba80d70fdf2ce7fa353e1776b7e to your computer and use it in GitHub Desktop.
Save ehellman/f99d8ba80d70fdf2ce7fa353e1776b7e to your computer and use it in GitHub Desktop.
cyber60 docs

Cyber60 Guide

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.

Prerequisites

It is recommended to have at least basic knowledge of how git and/or GitHub works. You also need to have a GitHub account.

Getting started

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.

Fork the configuration repository

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)

image

Clone the repository and change keymap

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>;
		};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment