Skip to content

Commit 0ca1162

Browse files
author
zdup
committed
refactor(README): update the howto with explanation about how to use the new script
1 parent fde2d59 commit 0ca1162

File tree

1 file changed

+84
-47
lines changed

1 file changed

+84
-47
lines changed

qmk/readme.md

Lines changed: 84 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
11
# Arsenik QMK
22

3-
This is a generic implementation of the Arsenik layout for QMK keyboards.
3+
This repository provides:
44

5-
**Disclaimer** : This is still relatively new. There might be bugs and your
6-
keyboard might not be compatible *yet*.
5+
- `/qmk/keymap`: Generic Arsenik layout files for QMK keyboards
6+
- `/qmk/generator.sh`: Script to generate and install an Arsenik keymap for your keyboard
77

8-
## How it works
8+
## Overview
99

10-
Arsenik-QMK will define a full qmk keymap in a dummy `ARSENIK_LAYOUT` layout
11-
definition. At compile time, this dummy gets is replaced by the layout
12-
definition your keyboard actually uses. This means that the keymap will
13-
naturally remove unused keys (like the number row on a keyboard with 3 rows)
14-
or add no-op to the keys unused by Arsenik on bigger keyboards.
10+
Arsenik-QMK generates a complete QMK keymap using a dummy `ARSENIK_LAYOUT` definition. At compile time, this is replaced with your keyboard's actual layout, automatically adapting to different keyboard sizes and shapes. If your keyboard is not yet supported, you can add its layout to `arsenik.h` or open an issue/PR for help.
1511

16-
Ideally, you install it and it just works, but not every keyboards are
17-
currently supported. If the `ARSENIK_LAYOUT` isn’t defined for your keyboard,
18-
it needs to be added at the end of the `arsenik.h` file. PRs are welcome, but
19-
we will gladly help you if you open an issue ^^
20-
21-
Here is a list of all currently supported QMK layouts :
12+
**Supported layouts:**
2213

2314
- `LAYOUT_split_3x5_2`
2415
- `LAYOUT_split_3x5_3`
@@ -30,49 +21,95 @@ Here is a list of all currently supported QMK layouts :
3021
- `LAYOUT_planck_grid`
3122
- `LAYOUT_keebio_iris_default`
3223

33-
## Install
24+
## Quick Start
25+
26+
> **Note:** Beginners should follow this guide and use the default Arsenik configuration. Advanced users can customize their setup using Arsenik's features—see step 8 for details.
27+
28+
### 1. Install & Set Up QMK
29+
30+
Follow the [QMK Getting Started Guide](https://docs.qmk.fm/newbs_getting_started) to:
31+
32+
- Install the `qmk` CLI
33+
- Run `qmk setup` (clones the QMK repo)
34+
- Verify you can compile a default firmware
35+
36+
### 2. Identify Your Keyboard and Keymap
37+
38+
Find your keyboard's QMK name (usually `brand/model/revision`).
39+
40+
```sh
41+
qmk list-keyboards # List all supported keyboards
42+
qmk list-keyboards | grep corne # Filter for your model
43+
qmk info -kb <keyboard_model> # Show keyboard info
44+
qmk list-keymaps -kb <keyboard_model> # List available keymaps
45+
```
46+
47+
### 3. Configure QMK User Defaults
48+
49+
Set your QMK home, keyboard, and keymap:
50+
51+
```sh
52+
qmk config user.qmk_home=<path/to/qmk_firmware>
53+
qmk config user.keyboard=<keyboard_model>
54+
qmk config user.keymap=<keymap>
55+
qmk config # Check your config
56+
```
57+
58+
### 4. Clone the Arsenik Repository
3459

35-
You’ll need to setup your QMK environment beforhand, QMK’s cli tool does the
36-
job well. You’ll need to know how is your keyboard is called inside of QMK’s
37-
code, usually they are named `brand/model/revision` though that may vary from a
38-
keyboard to another. You can always run `qmk list-keyboard | grep <your
39-
keyboard>` to quickly find it, is case you don’t know.
60+
```sh
61+
git clone https://github.com/OneDeadKey/arsenik.git
62+
cd arsenik/qmk
63+
```
4064

41-
Once you know how your keyboard is named, installing Arsenik-QMK is as easy as
42-
cloning this repo locally and running the `./arsenik-qmk.sh <your keyboard>`.
43-
The script expects to find the QMK repo at `~/qmk_firmware`, so if you already
44-
have QMK setup somewhere else, you can set the `QMK_PATH` environment variable
45-
before running the script.
65+
Or download: https://github.com/OneDeadKey/arsenik/archive/refs/heads/main.zip
4666

47-
The script will duplicate the default config for your keyboard, replace the
48-
keymap by Arsenik’s keymap and install As-QMK’s library and default config.
49-
Once this is done, the script will open the newly created `config.h` file with
50-
your `$EDITOR` to let you emmidiatly toggle the different config options you
51-
can choose from (see "Configuration" section).
67+
### 5. Generate and Install the Arsenik Keymap
5268

53-
Optionnal flags can be passed to `arsenik-qmk.sh` to enable or disable certain
54-
features:
69+
```sh
70+
./generator.sh --generate --copy
71+
```
5572

56-
- `-n`: “no editor” (doesn’t open the `config.h` file)
57-
- `-b`: “build” (immidiatlly build the keymap after installing it)
58-
- `-f`: “flash” (immidiatlly build the keymap and flash your keyboard with it
59-
after installing it)
73+
- `--generate`: Creates the Arsenik keymap in `output/<keyboard_model>/keymaps/arsenik`
74+
- `--copy`: Installs it to your QMK home directory
6075

61-
### example:
76+
You can run these steps separately. The script will prompt before overwriting existing files.
6277

63-
Let’s say I have a Keebio Iris Rev2, and I want to install Arsenik-QMK for it
64-
(with my QMK folder located in `~/Code/qmk`) then flash the keymap. First, I
65-
find my real keyboard name:
78+
### 6. Build the Firmware
6679

6780
```sh
68-
qmk list-keyboards | grep 'iris'
69-
# >> ...
70-
# >> keebio/iris/rev2
71-
# >> ...
81+
qmk list-keymaps -kb <keyboard_model> # Confirm 'arsenik' keymap is present
82+
qmk compile -kb <keyboard_model> -km arsenik
7283
```
7384

74-
Then I run the script
85+
### 7. Flash Your Keyboard
86+
87+
Connect your keyboard in bootloader/recovery mode:
7588

7689
```sh
77-
QMK_PATH="$HOME/Code/qmk" ./arsenik-qmk.sh keebio/iris/rev2 -f
90+
qmk flash -kb <keyboard_model> -km arsenik
7891
```
92+
93+
### 8. Advanced Configuration (Optional)
94+
95+
Want to go further? You can fully customize your Arsenik keymap and layout:
96+
97+
- Explore QMK firmware options and documentation for advanced features.
98+
- Review the Arsenik philosophy and available configuration options in the `/qmk/keymap` files and the Arsenik documentation.
99+
- Edit `config.h` or other keymap files in `/qmk/keymap` to adjust layers, key assignments, or Arsenik-specific settings.
100+
- After making changes, re-run:
101+
102+
```sh
103+
./generator.sh --generate --copy
104+
```
105+
106+
and re-flash your keyboard as in steps 6 and 7.
107+
108+
This workflow allows you to iterate on your layout and configuration as much as you like.
109+
110+
---
111+
112+
**Need help or want to contribute?**
113+
114+
- Open an issue or PR if your layout is missing or you encounter problems.
115+
- See the Arsenik documentation for advanced configuration.

0 commit comments

Comments
 (0)