{"id":19491218,"url":"https://github.com/urob/zmk-auto-layer","last_synced_at":"2025-08-21T15:07:42.528Z","repository":{"id":251143470,"uuid":"836525756","full_name":"urob/zmk-auto-layer","owner":"urob","description":"A ZMK module for auto-layer behavior","archived":false,"fork":false,"pushed_at":"2025-08-01T23:51:15.000Z","size":18,"stargazers_count":51,"open_issues_count":4,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-02T01:23:25.029Z","etag":null,"topics":["zmk","zmk-module"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/urob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-01T03:21:47.000Z","updated_at":"2025-08-01T23:51:10.000Z","dependencies_parsed_at":"2024-11-30T15:22:29.936Z","dependency_job_id":"9e18246d-5e96-4a73-8381-ac490b6909cc","html_url":"https://github.com/urob/zmk-auto-layer","commit_stats":null,"previous_names":["urob/zmk-auto-layer"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/urob/zmk-auto-layer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fzmk-auto-layer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fzmk-auto-layer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fzmk-auto-layer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fzmk-auto-layer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urob","download_url":"https://codeload.github.com/urob/zmk-auto-layer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urob%2Fzmk-auto-layer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271499789,"owners_count":24770366,"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","status":"online","status_checked_at":"2025-08-21T02:00:08.990Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["zmk","zmk-module"],"created_at":"2024-11-10T21:16:10.145Z","updated_at":"2025-08-21T15:07:42.466Z","avatar_url":"https://github.com/urob.png","language":"C","funding_links":[],"categories":["Behaviors","Community firmware Modules and Behaviors"],"sub_categories":["Custom Behaviors"],"readme":"# ZMK-AUTO-LAYER\n\nThis module adds an `auto-layer` behavior to ZMK. A layer activated by the behavior continues to be\nactive for as long as keys in a configurable `continue-list` are pressed, and deactivates\nautomatically on any other key press.\n\nThis is a re-implementation of [PR #1451](https://github.com/zmkfirmware/zmk/pull/1451), separating\nthe `auto-layer` behavior from `caps-word` and making the layer index a parameter.\n\n## Usage\n\nTo load the module, add the following entries to `remotes` and `projects` in `config/west.yml`.\n\n```yaml\nmanifest:\n  remotes:\n    - name: zmkfirmware\n      url-base: https://github.com/zmkfirmware\n    - name: urob\n      url-base: https://github.com/urob\n  projects:\n    - name: zmk\n      remote: zmkfirmware\n      revision: v0.2 # set to desired version \n      import: app/west.yml\n    - name: zmk-auto-layer\n      remote: urob\n      revision: v0.2 # set to same version as zmk above\n  self:\n    path: config\n```\n\n## Configuration\n\nThere are four configuration properties for the behavior:\n\n- **`continue-list`** (required): An array of keycodes that will keep the layer active.\n- **`ignore-alphas`** (optional): If set, the layer will not be deactivated by any alphabetic key.\n- **`ignore-numbers`** (optional): If set, the layer will not be deactivated by any numeric key.\n- **`ignore-modifiers`** (optional): If set, the layer will not be deactivated by any modifier key.\n\nBehavior instances take one mandatory argument that specifies the index of the layer to be\nactivated.\n\n## Example: Num-word\n\nThe module pre-configures a `num-word` behavior instance that activates a layer for as long as only\nnumbers and a few other keys are pressed. To use it, source the definition at the top your keymap:\n\n```c\n#include \u003cbehaviors/num_word.dtsi\u003e\n```\n\nThen, add `\u0026num_word NUM` anywhere to your keymap where `NUM` is the index of your numbers layer.\n\n**Customization**: By default, `num_word` continues on number keys as well as on `BSPC`, `DEL`,\n`DOT`, `COMMA`, `PLUS`, `MINUS`, `STAR`, `FSLH`, and `EQUAL`. To customize the `continue-list`,\noverwrite it in the keymap. For instance:\n\n```c\n\u0026num_word {\n  continue-list = \u003cBSPC DEL DOT COMMA\u003e;\n};\n```\n\n## Example: General case\n\nCustom behavior instances can be defined using the general `auto-layer` behavior. The following\nillustrates how to define a `nav-word` behavior that continues on arrow keys, `PG_UP`, `PG_DOWN`,\nand all modifiers.\n\n```c\n/ {\n  behaviors {\n    nav_word: nav_word {\n      compatible = \"zmk,behavior-auto-layer\";\n      #binding-cells = \u003c1\u003e;\n      continue-list = \u003cLEFT DOWN UP RIGHT PG_DN PG_UP\u003e;\n      ignore-modifiers;\n    };\n  };\n};\n```\n\n## References\n\n- The behavior is inspired by Jonas Hietala's\n  [Numword](https://www.jonashietala.se/blog/2021/06/03/the-t-34-keyboard-layout/#where-are-the-digits)\n  for QMK\n- A zero-parameter version where layers are part of the behavior definition\n  is available [here](https://github.com/urob/zmk-auto-layer/tree/zero-param)\n- My personal [zmk-config](https://github.com/urob/zmk-config) contains a more advanced example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furob%2Fzmk-auto-layer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Furob%2Fzmk-auto-layer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Furob%2Fzmk-auto-layer/lists"}