{"id":20047032,"url":"https://github.com/bartste/keyboard","last_synced_at":"2026-02-18T15:01:53.981Z","repository":{"id":113014428,"uuid":"567896414","full_name":"BartSte/keyboard","owner":"BartSte","description":"Keyboardio Atreus and Arduino ","archived":false,"fork":false,"pushed_at":"2024-12-27T11:36:16.000Z","size":44,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-09T09:11:25.770Z","etag":null,"topics":["arduino","atreus","colemak-dh","cpp","keyboardio","mechanical-keyboard"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BartSte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2022-11-18T21:02:53.000Z","updated_at":"2024-12-27T11:36:20.000Z","dependencies_parsed_at":"2023-06-05T14:00:31.961Z","dependency_job_id":"47eb289c-6c16-4a26-b63b-0a66e6e85724","html_url":"https://github.com/BartSte/keyboard","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartSte%2Fkeyboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartSte%2Fkeyboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartSte%2Fkeyboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BartSte%2Fkeyboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BartSte","download_url":"https://codeload.github.com/BartSte/keyboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233657506,"owners_count":18709633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","atreus","colemak-dh","cpp","keyboardio","mechanical-keyboard"],"created_at":"2024-11-13T11:33:06.974Z","updated_at":"2025-09-20T10:33:02.087Z","avatar_url":"https://github.com/BartSte.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# keyboard\n\n- [Keyboardio Atreus and Arduino CLI](https://shop.keyboard.io/products/keyboardio-atreus)\n\n## Setup arduino-cli\n\nFollow the instructions on the website of Arduino to setup `arduino-cli`:\n\n- \u003chttps://arduino.github.io/arduino-cli/0.28/getting-started/\u003e\n  On Arch, install `arduino-cli` by running:\n\n```bash\nsudo pacman -S arduino-cli\n```\n\nAfter this, you need to install your board. In my case, this is the Atreus of\nkeyboardio. To install the board, run:\n\n```bash\narduino-cli core install keyboardio:avr\n```\n\n## Configuration\n\nPlace the following config at `~/.arduino15/arduino-cli.yaml`:\n\n```yaml\nboard_manager:\n  additional_urls:\n    - https://raw.githubusercontent.com/keyboardio/arduino-kaleidoscope-master/main/package_kaleidoscope_master_index.json\ndaemon:\n  port: \"50051\"\ndirectories:\n  data: $HOME/.arduino15\n  downloads: $HOME/.arduino15/staging\n  user: $HOME/Arduino\nlibrary:\n  enable_unsafe_install: false\nlogging:\n  file:\n  format: text\n  level: debug\nmetrics:\n  addr: :9090\n  enabled: true\noutput:\n  no_color: false\nsketch:\n  always_export_binaries: true\nupdater:\n  enable_notification: true\n```\n\nChances are that you need to change some details in the config file.\n\n## Compiling\n\nFollow the instructions on the site of kaleidoscope to enable compiling and\nuploading \\*.ino sketches to the keyboard.\n\n- \u003chttps://kaleidoscope.readthedocs.io/en/latest/quick_start.html\u003e\n\nThe `compile` script will do the following:\n\n- Create a header file that may contain macros with personal info. This header\n  need to be completed by the user before compiling. After creation, compilation\n  is aborted.\n- If the `personal_macros.h` file exists, `arduino-cli` will be called to\n  compile the sketch.\n\n## Uploading\n\nSimilarly to the compile script, the `upload` script uploads the firmware to\nthe keyboard. Make sure you hold the left key on the bottom row during\nuploading (in case of the Atreus). This will put the keyboard in \"program\nmode\".\n\nIf you encounter a permission error for accessing the `/dev/ttyACM0` device,\nyou can solve this in two ways:\n\n1. Run the script as root:\n\n   ```bash\n    sudo ./upload --config-file $HOME/.arduino15/arduino-cli.yaml\n   ```\n\n2. Run the following command:\n\n   ```bash\n   sudo chmod a+rw /dev/ttyACM0\n   ```\n\n   Which will give all users read and write permissions to the device.\n\n## Version tags\n\n- Major increase means a breaking change.\n- Minor increase means a change in keymaps was done.\n- Patch increase means a code improvement\n\n## Keymap\n\n- Home row mods:\n  - `a`: `Win`\n  - `r`: `Alt`\n  - `s`: `Shift`\n  - `t`: `Ctrl`\n  - `n`: `Ctrl`\n  - `e`: `Alt`\n  - `i`: `Shift`\n  - `o`: `Win`\n\n- Move to layer on hold:\n  - `f`: `Numpad`\n  - `u`: `Symbols`\n  - `Tab`: `Navigation`\n  - `Enter`: `Navigation`\n  - `g`: `F-keys`\n\n\n```plaintext\n ### Default Layer: COLEMAK-DH Layout\n ┌─────┬─────┬─────┬─────┬─────┐             ┌─────┬─────┬─────┬─────┬─────┐\n │  Q  │  W  │  F  │  P  │  B  │             │  J  │  L  │  U  │  Y  │  ;  │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │  A  │  R  │  S  │  T  │  G  │             │  M  │  N  │  E  │  I  │  O  │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │  Z  │  X  │  C  │  D  │  V  │             │  K  │  H  │  ,  │  .  │  /  │\n ├─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┤\n │ Br+ │ Br- │ Esc │ Tab │ Sp  │ Cps │ │ Mnu │ BkS │ Ent │ Del │ Vl+ │ Vl- │\n └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘\n                   \n ### Symbols Layer\n ┌─────┬─────┬─────┬─────┬─────┐             ┌─────┬─────┬─────┬─────┬─────┐\n │  !  │  @  │  #  │  $  │  %  │             │     │     │     │     │     │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │  {  │  [  │  (  │  '  │  `  │             │     │     │     │     │     │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │  }  │  ]  │  )  │  \"  │  ~  │             │     │     │     │     │     │\n ├─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┤\n │     │     │     │  ^  │  _  │     │ │     │     │     │     │     │     │\n └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘\n \n ### Numpad Layer\n ┌─────┬─────┬─────┬─────┬─────┐             ┌─────┬─────┬─────┬─────┬─────┐\n │     │     │     │     │     │             │  *  │  7  │  8  │  9  │  +  │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │  \\  │  4  │  5  │  6  │  -  │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │  |  │  1  │  2  │  3  │  =  │\n ├─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │     │ │     │  =  │  0  │     │     │     │\n └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘\n \n ### Navigation Layer\n ┌─────┬─────┬─────┬─────┬─────┐             ┌─────┬─────┬─────┬─────┬─────┐\n │     │     │     │     │     │             │ Home│PgDwn│PgUp │ End │Play │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │Left │Down │ Up  │Right│     │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │     │     │     │Prev │Next │\n ├─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │     │ │     │     │     │     │     │     │\n └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘\n \n ### Function Keys Layer\n ┌─────┬─────┬─────┬─────┬─────┐             ┌─────┬─────┬─────┬─────┬─────┐\n │     │     │     │     │     │             │  F7 │  F8 │  F9 │ F10 │     │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │  F4 │  F5 │  F6 │ F11 │     │\n ├─────┼─────┼─────┼─────┼─────┤             ├─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │             │  F1 │  F2 │  F3 │ F12 │     │\n ├─────┼─────┼─────┼─────┼─────┼─────┐ ┌─────┼─────┼─────┼─────┼─────┼─────┤\n │     │     │     │     │     │     │ │     │     │     │     │     │     │\n └─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┴─────┴─────┴─────┘\n```\n\n### Tips\n\n- Factory reset the Atreus using Chrysalis before uploading sketches for the\n  first time.\n- In neovim add the arduino-language-server using lsp-config.\n- Save a backup of your latest layout using Chrysalis.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartste%2Fkeyboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartste%2Fkeyboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartste%2Fkeyboard/lists"}