{"id":15901195,"url":"https://github.com/duckyb/eternal-keypad","last_synced_at":"2026-02-14T15:35:21.780Z","repository":{"id":37562014,"uuid":"416913373","full_name":"duckyb/eternal-keypad","owner":"duckyb","description":"A 36 key gaming keypad, for both right and left handed mouse users.","archived":false,"fork":false,"pushed_at":"2025-07-10T09:34:39.000Z","size":9887,"stargazers_count":169,"open_issues_count":1,"forks_count":13,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-09-13T11:46:26.775Z","etag":null,"topics":["diy","ergonomic-keyboard","gaming","hardware","keyboard","keypad","kicad","left-handed","pcb","qmk"],"latest_commit_sha":null,"homepage":"","language":null,"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/duckyb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"duckyb"}},"created_at":"2021-10-13T22:16:54.000Z","updated_at":"2025-07-10T09:34:44.000Z","dependencies_parsed_at":"2023-10-15T10:40:10.670Z","dependency_job_id":null,"html_url":"https://github.com/duckyb/eternal-keypad","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/duckyb/eternal-keypad","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duckyb%2Feternal-keypad","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duckyb%2Feternal-keypad/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duckyb%2Feternal-keypad/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duckyb%2Feternal-keypad/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duckyb","download_url":"https://codeload.github.com/duckyb/eternal-keypad/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duckyb%2Feternal-keypad/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29448042,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T14:10:32.461Z","status":"ssl_error","status_checked_at":"2026-02-14T14:09:49.945Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["diy","ergonomic-keyboard","gaming","hardware","keyboard","keypad","kicad","left-handed","pcb","qmk"],"created_at":"2024-10-06T11:01:55.852Z","updated_at":"2026-02-14T15:35:21.765Z","avatar_url":"https://github.com/duckyb.png","language":null,"funding_links":["https://github.com/sponsors/duckyb"],"categories":["Others"],"sub_categories":[],"readme":"# \u003cimg src=\"https://gist.githubusercontent.com/duckyb/282c2221d859f8134c1b1f0cf4622656/raw/97affc98d0d71566fa6ccb604eef31af2c36752a/eternal-keypad-logo.svg\" height=\"50\" alt=\"eternal_keypad_logo\"/\u003e ETERNAL Keypad\n![ek-preview-rounded](https://user-images.githubusercontent.com/27895007/167808526-7cf01c83-1738-40c4-bed5-d04d67a561a3.png)\n\n\u003cdiv class=\"shields\"\u003e\n  \u003ca href=\"https://github.com/duckyb/eternal-keypad/releases\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/downloads/duckyb/eternal-keypad/total?color=success\u0026style=flat-square\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/duckyb/eternal-keypad?include_prereleases\u0026color=success\u0026style=flat-square\"\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/duckyb/eternal-keypad?style=flat-square\u0026color=success\"\u003e\n  \u003ca href =\"https://discord.gg/3erEKm3uht\"\u003e\n    \u003cimg src=\"https://discordapp.com/api/guilds/914228133786439740/widget.png?style=shield\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n### Sponsors\n\n\n\u003cspan class=\"sponsors\"\u003e\n  \u003ca href=\"https://shop.beekeeb.com/product/eternal-keypad-kit/\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/27895007/192096782-2ca086d8-54a3-42fd-a67b-0f1e25f1ffbc.png\" height=\"50\"/\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.pcbway.com/project/shareproject/ETERNAL_Keypad_5c58c0de.html\"\u003e\n    \u003cimg src=\"https://user-images.githubusercontent.com/27895007/201170595-901a4723-b910-418c-b273-a5c9987ad1c8.png\" height=\"50\"/\u003e\n  \u003c/a\u003e\n\u003c/span\u003e\n\u003cdiv\u003e\u003csub\u003eBy purchasing from PCBWay I receive a percentage of the transaction\u003c/sub\u003e\u003c/div\u003e\n\n## Scope of the project\n\nEternal Keypad is an **open-source input device for gaming** that can be assembled for **both right and left hand mouse users**.\n\nHistorically there has been a scarcity of input devices for people that use their keyboard with their right hand and the mouse with the left, forcing some people to place their right hand in uncomfortable positions and/or requiring heavy remapping of in-game controls.\nThis device aims to fill this gap in the market that companies don't care about because the target is too small to turn a profit.\n\nThe device is Pro-micro compatible, so it's easier to build and source components.\n\n## Features\n\n⭕ Standard layout in a half-size form factor (all your keys are still there!)  \n⭕ Ortholinear/grid layout for additional comfort  \n⭕ Bluetooth support (nice!nano, battery, ZMK, power switch)  \n⭕ Hotswap with Kailh Sockets  \n⭕ RGB Underglow  \n⭕ 3 macro buttons  \n⭕ Easy to build  \n⭕ Files for FR4 or laser cut plate case included  \n\n## How can I make this?\n\n\u003ca href=\"https://youtu.be/vkTpa7AnWUo\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://gist.githubusercontent.com/duckyb/337340baa1f0c8bcc06fef7b3b57242b/raw/97e6e0748dd1b8a3fb54fac0a88e84e6b6e0e10a/build-guide-button.svg\" height=\"44\"\u003e\n\u003c/a\u003e\n\n### Components list (latest PCB version)\n\n#### For the Keyboard (required)\n\n- 1× [ETERNAL Keypad PCB](https://github.com/duckyb/eternal-keypad/releases/latest)\n- 36× through-hole or surface-mount diodes. (I use \"1N4148 CDIL\" from tme.eu)\n- 36× MX style switches\n- 36× Kailh Hotswap Sockets\n- 1× Stabilizer (2u)\n- 36× Keycaps (The set pictured above is \"Honey \u0026 Milk XDA\")\n- 1× Microcontroller (Pro-micro or equivalent)\n\nOptionals:\n- 8× WS2812B RGB LEDs\n- 1× Slider switch (for wireless)\n- 1× LiPo battery (type: 301230, for wireless)\n\n#### For the case (recommended)\n\n- 1× [ETERNAL Keypad switch plate \u0026 bottom plate](https://github.com/duckyb/eternal-keypad/releases/latest)\n  - If you want to have underglow RGB you should order a laser-cut bottom plate from acrylic, using the included `.dxf` file. If you don't care about underglow you can get an FR4 bottom plate PCB using the gerber file.\n- 8× M2 Screws (I use \"1154095 BOSSARD\" from tme.eu)\n- 4× M2 standoffs (diameter: 3mm, length: 8mm)\n- 4× Rubber bump-on feet\n\n### Buy as a DIY Kit\n\nIt might be more convenient to purchase this project as a kit, check out the [vendors page](./vendors.md).\n\n## FAQ\n\nCheck the [dedicated page](./FAQ.md)\n\n## Firmware\n\n\u003ca href=\"https://github.com/qmk/qmk_firmware/tree/master/keyboards/eternal_keypad\" target=\"_blank\"\u003e\n  \u003cimg src=\"https://qmk.fm/assets/images/badge-small-light.svg\" height=\"44\"/\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.caniusevia.com/\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/27895007/167814873-be7de892-754b-4b6b-976c-8983c1baf8e2.svg\" height=\"44\"/\u003e\n\u003c/a\u003e\n\u003ca href=\"https://zmk.dev/\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/27895007/188517482-3f93cafe-685a-4de9-9aee-ba4bfa29cb89.svg\" height=\"44\"/\u003e\n\u003c/a\u003e\n\nYou can find firmwares in the [release section](https://github.com/duckyb/eternal-keypad/releases/latest), ready to download and flash.\nIf you want to customize them, you can do so using QMK, ZMK or VIA.\n\n![eternal_keypad](https://user-images.githubusercontent.com/27895007/144766801-a8390a4f-9810-4c56-9442-b2406a4ed4ce.png)\n\nNote:\n- The \"A\" and \"D\" keys are not mirrored to avoid inverting movement controls with default key-bindings.\n- The \"FN\" key is used to access the missing half of the keyboard\n- Holding the 0 key turns WASD into arrow keys\n\n## Additional Resources\n\n- 3D Printed case by chewiedies → [v4](https://www.thingiverse.com/thing:5329104), [v5, and v6](https://www.printables.com/model/290027-eternal-keypad-v12-gasket-mount-case-w-optional-te)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduckyb%2Feternal-keypad","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduckyb%2Feternal-keypad","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduckyb%2Feternal-keypad/lists"}