readme.md (4100B)
1 # Halcyon Lily58's Default Keymap 2 _This keymap is a copy of the [Lily58 default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/lily58/keymaps/default), with slight modifications._ 3 4 A simple default keymap for the Halcyon Lily58 5 ============================================= 6 7 Keymaps in general are quite personal, so it is difficult to come up with a default that will suit every user. We hope this keymap serves as a good starting point for your own - although it should be fairly usable out-of-the-box. 8 9 What do all these layers do? 10 ---------------------------- 11 12 ### Layer 0: Base layer 13 14  15 16 This is where your basic letters live. 17 18 The homing thumb fingers are used to access the different layers. 19 20 * The homing left thumb finger gives access to the Symbols (or lower) layer 21 * The homing right thumb finger gives access to the Navigation (or raise) layer 22 * Pressing both homing thumb fingers gives access to the Adjust layer 23 24 ### Layer 1: Lower 25 26  27 28 The Lower layer gives access to the F keys on the second row, and shifted number keys on the home row. It also provides some shifted symbol keys. 29 30 ### Layer 2: Raise 31 32  33 34 The Raise layer gives access the arrow keys on the right hand, in addition to some unshifted symbols. The left hand provides an alternative set of F keys, while the second row provides an alternative set of number keys. 35 36 ### Layer 3: Adjust 37 38  39 40 The Adjust layer exposes RGB adjustment keys on the right hand. 41 42 Where is the keymap.c? 43 ---------------------- 44 45 The keymap.c file is not published to the repository. It is generated from `keymap.json` by the build system. 46 47 This avoids duplicating information and allow users to edit their keymap from the QMK Configurator web interface. 48 49 How do I edit and update the keymap? 50 ------------------------------------ 51 52 The `keymap.json` file is generated from the QMK Configurator interface and formatted for better readability in the context of the Ferris keyboard. 53 54 To edit it, you may: 55 * Edit it directly from a text editor. 56 * Edit it from the QMK Configurator. 57 58 If you decide to use the latter workflow, here are the steps to follow: 59 60 * From the [QMK Configurator](https://config.qmk.fm/#/splitkb/halcyon/lily58/rev2/LAYOUT), hit the "import QMK keymap json file" button (it has a drawing with an up arrow on it). 61 * Browse to the location of your keymap (for example, `<your qmk repo>/keyboards/splitkb/halcyon/lily58/keymaps/default/keymap.json`) 62 * Perform any modification to the keymap in the web UI 63 * Export the keymap to your downloads folder, by hitting the "Export QMK keymap json file" button (it has a drawing with a down arrow on it) 64 * Replace your original keymap with the one you just downloaded 65 66 _**Note:** At the time of writing (the 24th of October 2022), not every feature used in the default keymap is supported by the QMK Configurator. You cannot yet upload the default `keymap.json` due to a file format mismatch - use the "Load Default" button to load the default keymap instead. Additionally, custom configuration options are still being worked on: if your keymap depends on them, please compile your firmware offline for now._ 67 68 I want to do more than the JSON format supports! 69 ------------------------------------------------- 70 71 While the `json` format is easy to use, it does lack certain functionality - most notably custom OLED or encoder behaviour. 72 73 To add this, you need to convert it to the `c` format. Do keep in mind that this is generally a one-way operation. 74 75 First, from the root of your qmk repo, move to your keymap folder 76 77 ```bash 78 cd ./keyboards/splitkb/halcyon/lily58/keymaps/my_personal_keymap 79 ``` 80 81 Next, convert your `keymap.json` to a `keymap.c` 82 83 ```bash 84 qmk json2c -o keymap.c keymap.json 85 ``` 86 87 You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! 88 **If a JSON file is present, the C file is ignored.**