ARTSEY Relies on experimental QMK combo features that are available in the linked repo below.
https://beta.docs.qmk.fm/tutorial/newbs_getting_started
https://github.com/sevanteri/qmk_firmware/tree/early_combo
If you are unfamiliar with git, a guide for this merge can be found at: https://precondition.github.io/home-row-mods#using-mod-taps-in-combos
Create or find your keyboard as usual for making a QMK keymap.
Add these lines to your rules.mk
COMBO_ENABLE = yes
MOUSEKEYS_ENABLE = yes
These files are found in either the /left_hand or /right_hand folder of this repo. Chose the files from the folder that correspond to whether you are using the left- or right-hand layout.
artsey.c
artsey.h
artsey_basic.def
combos.def
keymap_combo.h
macros.c
Include this somewhere near the top of your keymap:
#include "artsey.h"
#include "keymap_combo.h"
#include "artsey.c"
The 7 layers are _A_BASE
,_A_NUM
,_A_NAV
,_A_SYM
,_A_BRAC
,_A_MOU
,and _A_CUSTOM
. You will need to create these 7 new layers on your keyboard and map the 8 artsey keycodes on each layer. The keycodes are of the form:
A_LAYER_A
A_LAYER_R
A_LAYER_T
A_LAYER_S
A_LAYER_E
A_LAYER_Y
A_LAYER_I
A_LAYER_O
Examples keymaps are avilable in each folder. An example keymap for an 8-key right handed board might look like this:
//REPLACE THIS WITH YOUR KEYBOARD.h
#include "keyboard.h"
//MAKE SURE THESE ARE INCLUDED
#include "artsey.h"
#include "keymap_combo.h"
#include "artsey.c"
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_A_BASE] = LAYOUT(A_BASE_A,A_BASE_R,A_BASE_T,A_BASE_S,
A_BASE_E,A_BASE_Y,A_BASE_I,A_BASE_O),
[_A_NUM] = LAYOUT(A_NUM_A,A_NUM_R,A_NUM_T,A_NUM_S,
A_NUM_E,A_NUM_Y,A_NUM_I,A_NUM_O),
[_A_NAV] = LAYOUT(A_NAV_A,A_NAV_R,A_NAV_T,A_NAV_S,
A_NAV_E,A_NAV_Y,A_NAV_I,A_NAV_O),
[_A_SYM] = LAYOUT(A_SYM_A,A_SYM_R,A_SYM_T,A_SYM_S,
A_SYM_E,A_SYM_Y,A_SYM_I,A_SYM_O),
[_A_BRAC] = LAYOUT(A_BRAC_A,A_BRAC_R,A_BRAC_T,A_BRAC_S,
A_BRAC_E,A_BRAC_Y,A_BRAC_I,A_BRAC_O),
[_A_MOU] = LAYOUT(A_MOU_A,A_MOU_R,A_MOU_T,A_MOU_S,
A_MOU_E,A_MOU_Y,A_MOU_I,A_MOU_O),
[_A_CUSTOM] = LAYOUT(A_CUSTOM_A,A_CUSTOM_R,A_CUSTOM_T,A_CUSTOM_S,
A_CUSTOM_E,A_CUSTOM_Y,A_CUSTOM_I,A_CUSTOM_O),
};
For a left handed layout, simply mirror-image the keycodes. For instance, the base layer would look like (see the file in the /left_hand/keymaps/artsey_left/ folder for a full example:
[_A_BASE] = LAYOUT(A_BASE_S,A_BASE_T,A_BASE_R,A_BASE_A,
A_BASE_O,A_BASE_I,A_BASE_Y,A_BASE_E),
Add this to your config.h
:
#define COMBO_TERM 200
For new users, start with 200. Reduce this as you get faster.
Add this to your config.h
:
#define ONESHOT_TAP_TOGGLE 3
Add this to your config.h
:
#define ONESHOT_TIMEOUT 5000
Add this to your config.h
:
#define MOUSEKEY_INTERVAL 12
#define MOUSEKEY_MAX_SPEED 6
#define MOUSEKEY_TIME_TO_MAX 50
#define MOUSEKEY_DELAY 20
Add this to your config.h
#define TAPPING_TERM 200
#define PERMISSIVE_HOLD
#define IGNORE_MOD_TAP_INTERRUPT
All of the ARTSEY combo behavior is defined in macros.c
. The non-combo key behavior is defined in artsey.h
. These files are autogenerated by generator.R
using the comma-separated definition files in artsey_combos.csv
and artsey_keycodes.csv
. To chang ARTSEY, make modifications to these files, save them, and run generator.R
. To run this script, you will need R installed. You can download R here: https://www.r-project.org/. After you run the script, replace the old macros.c
and artsey.h
in you keyboard folder with the new one and rebuild you firmware.