2 Commits

Author SHA1 Message Date
Kyle Brown
d7e43f7d0d Continue split refactor 2022-10-09 13:17:05 -07:00
xs5871
ec6bb9564b draft concept for ble-split to transport refactor 2022-10-09 10:46:06 -07:00
141 changed files with 1182 additions and 2165 deletions

View File

@@ -68,7 +68,7 @@ fix-formatting: devdeps
@$(PIPENV) run black .
fix-isort: devdeps
@find boards/ kmk/ tests/ user_keymaps/ -name "*.py" | xargs $(PIPENV) run isort
@find kmk/ user_keymaps/ boards/ -name "*.py" | xargs $(PIPENV) run isort
clean: clean-dist
@echo "===> Cleaning build artifacts"

439
Pipfile.lock generated
View File

@@ -47,11 +47,11 @@
},
"click": {
"hashes": [
"sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
"sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
"sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
"sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
],
"markers": "python_version >= '3.7'",
"version": "==8.1.3"
"markers": "python_version >= '3.6'",
"version": "==8.0.3"
},
"decorator": {
"hashes": [
@@ -110,69 +110,64 @@
},
"greenlet": {
"hashes": [
"sha256:0109af1138afbfb8ae647e31a2b1ab030f58b21dd8528c27beaeb0093b7938a9",
"sha256:0459d94f73265744fee4c2d5ec44c6f34aa8a31017e6e9de770f7bcf29710be9",
"sha256:04957dc96669be041e0c260964cfef4c77287f07c40452e61abe19d647505581",
"sha256:0722c9be0797f544a3ed212569ca3fe3d9d1a1b13942d10dd6f0e8601e484d26",
"sha256:097e3dae69321e9100202fc62977f687454cd0ea147d0fd5a766e57450c569fd",
"sha256:0b493db84d124805865adc587532ebad30efa68f79ad68f11b336e0a51ec86c2",
"sha256:13ba6e8e326e2116c954074c994da14954982ba2795aebb881c07ac5d093a58a",
"sha256:13ebf93c343dd8bd010cd98e617cb4c1c1f352a0cf2524c82d3814154116aa82",
"sha256:1407fe45246632d0ffb7a3f4a520ba4e6051fc2cbd61ba1f806900c27f47706a",
"sha256:1bf633a50cc93ed17e494015897361010fc08700d92676c87931d3ea464123ce",
"sha256:2d0bac0385d2b43a7bd1d651621a4e0f1380abc63d6fb1012213a401cbd5bf8f",
"sha256:3001d00eba6bbf084ae60ec7f4bb8ed375748f53aeaefaf2a37d9f0370558524",
"sha256:356e4519d4dfa766d50ecc498544b44c0249b6de66426041d7f8b751de4d6b48",
"sha256:38255a3f1e8942573b067510f9611fc9e38196077b0c8eb7a8c795e105f9ce77",
"sha256:3d75b8d013086b08e801fbbb896f7d5c9e6ccd44f13a9241d2bf7c0df9eda928",
"sha256:41b825d65f31e394b523c84db84f9383a2f7eefc13d987f308f4663794d2687e",
"sha256:42e602564460da0e8ee67cb6d7236363ee5e131aa15943b6670e44e5c2ed0f67",
"sha256:4aeaebcd91d9fee9aa768c1b39cb12214b30bf36d2b7370505a9f2165fedd8d9",
"sha256:4c8b1c43e75c42a6cafcc71defa9e01ead39ae80bd733a2608b297412beede68",
"sha256:4d37990425b4687ade27810e3b1a1c37825d242ebc275066cfee8cb6b8829ccd",
"sha256:4f09b0010e55bec3239278f642a8a506b91034f03a4fb28289a7d448a67f1515",
"sha256:505138d4fa69462447a562a7c2ef723c6025ba12ac04478bc1ce2fcc279a2db5",
"sha256:5067920de254f1a2dee8d3d9d7e4e03718e8fd2d2d9db962c8c9fa781ae82a39",
"sha256:56961cfca7da2fdd178f95ca407fa330c64f33289e1804b592a77d5593d9bd94",
"sha256:5a8e05057fab2a365c81abc696cb753da7549d20266e8511eb6c9d9f72fe3e92",
"sha256:659f167f419a4609bc0516fb18ea69ed39dbb25594934bd2dd4d0401660e8a1e",
"sha256:662e8f7cad915ba75d8017b3e601afc01ef20deeeabf281bd00369de196d7726",
"sha256:6f61d71bbc9b4a3de768371b210d906726535d6ca43506737682caa754b956cd",
"sha256:72b00a8e7c25dcea5946692a2485b1a0c0661ed93ecfedfa9b6687bd89a24ef5",
"sha256:811e1d37d60b47cb8126e0a929b58c046251f28117cb16fcd371eed61f66b764",
"sha256:81b0ea3715bf6a848d6f7149d25bf018fd24554a4be01fcbbe3fdc78e890b955",
"sha256:88c8d517e78acdf7df8a2134a3c4b964415b575d2840a2746ddb1cc6175f8608",
"sha256:8dca09dedf1bd8684767bc736cc20c97c29bc0c04c413e3276e0962cd7aeb148",
"sha256:974a39bdb8c90a85982cdb78a103a32e0b1be986d411303064b28a80611f6e51",
"sha256:9e112e03d37987d7b90c1e98ba5e1b59e1645226d78d73282f45b326f7bddcb9",
"sha256:9e9744c657d896c7b580455e739899e492a4a452e2dd4d2b3e459f6b244a638d",
"sha256:9ed358312e63bf683b9ef22c8e442ef6c5c02973f0c2a939ec1d7b50c974015c",
"sha256:9f2c221eecb7ead00b8e3ddb913c67f75cba078fd1d326053225a3f59d850d72",
"sha256:a20d33124935d27b80e6fdacbd34205732660e0a1d35d8b10b3328179a2b51a1",
"sha256:a4c0757db9bd08470ff8277791795e70d0bf035a011a528ee9a5ce9454b6cba2",
"sha256:afe07421c969e259e9403c3bb658968702bc3b78ec0b6fde3ae1e73440529c23",
"sha256:b1992ba9d4780d9af9726bbcef6a1db12d9ab1ccc35e5773685a24b7fb2758eb",
"sha256:b23d2a46d53210b498e5b701a1913697671988f4bf8e10f935433f6e7c332fb6",
"sha256:b5e83e4de81dcc9425598d9469a624826a0b1211380ac444c7c791d4a2137c19",
"sha256:be35822f35f99dcc48152c9839d0171a06186f2d71ef76dc57fa556cc9bf6b45",
"sha256:be9e0fb2ada7e5124f5282d6381903183ecc73ea019568d6d63d33f25b2a9000",
"sha256:c140e7eb5ce47249668056edf3b7e9900c6a2e22fb0eaf0513f18a1b2c14e1da",
"sha256:c6a08799e9e88052221adca55741bf106ec7ea0710bca635c208b751f0d5b617",
"sha256:cb242fc2cda5a307a7698c93173d3627a2a90d00507bccf5bc228851e8304963",
"sha256:cce1e90dd302f45716a7715517c6aa0468af0bf38e814ad4eab58e88fc09f7f7",
"sha256:cd4ccc364cf75d1422e66e247e52a93da6a9b73cefa8cad696f3cbbb75af179d",
"sha256:d21681f09e297a5adaa73060737e3aa1279a13ecdcfcc6ef66c292cb25125b2d",
"sha256:d38ffd0e81ba8ef347d2be0772e899c289b59ff150ebbbbe05dc61b1246eb4e0",
"sha256:d566b82e92ff2e09dd6342df7e0eb4ff6275a3f08db284888dcd98134dbd4243",
"sha256:d5b0ff9878333823226d270417f24f4d06f235cb3e54d1103b71ea537a6a86ce",
"sha256:d6ee1aa7ab36475035eb48c01efae87d37936a8173fc4d7b10bb02c2d75dd8f6",
"sha256:db38f80540083ea33bdab614a9d28bcec4b54daa5aff1668d7827a9fc769ae0a",
"sha256:ea688d11707d30e212e0110a1aac7f7f3f542a259235d396f88be68b649e47d1",
"sha256:f6327b6907b4cb72f650a5b7b1be23a2aab395017aa6f1adb13069d66360eb3f",
"sha256:fb412b7db83fe56847df9c47b6fe3f13911b06339c2aa02dcc09dce8bbf582cd"
"sha256:0051c6f1f27cb756ffc0ffbac7d2cd48cb0362ac1736871399a739b2885134d3",
"sha256:00e44c8afdbe5467e4f7b5851be223be68adb4272f44696ee71fe46b7036a711",
"sha256:013d61294b6cd8fe3242932c1c5e36e5d1db2c8afb58606c5a67efce62c1f5fd",
"sha256:049fe7579230e44daef03a259faa24511d10ebfa44f69411d99e6a184fe68073",
"sha256:14d4f3cd4e8b524ae9b8aa567858beed70c392fdec26dbdb0a8a418392e71708",
"sha256:166eac03e48784a6a6e0e5f041cfebb1ab400b394db188c48b3a84737f505b67",
"sha256:17ff94e7a83aa8671a25bf5b59326ec26da379ace2ebc4411d690d80a7fbcf23",
"sha256:1e12bdc622676ce47ae9abbf455c189e442afdde8818d9da983085df6312e7a1",
"sha256:21915eb821a6b3d9d8eefdaf57d6c345b970ad722f856cd71739493ce003ad08",
"sha256:288c6a76705dc54fba69fbcb59904ae4ad768b4c768839b8ca5fdadec6dd8cfd",
"sha256:2bde6792f313f4e918caabc46532aa64aa27a0db05d75b20edfc5c6f46479de2",
"sha256:32ca72bbc673adbcfecb935bb3fb1b74e663d10a4b241aaa2f5a75fe1d1f90aa",
"sha256:356b3576ad078c89a6107caa9c50cc14e98e3a6c4874a37c3e0273e4baf33de8",
"sha256:40b951f601af999a8bf2ce8c71e8aaa4e8c6f78ff8afae7b808aae2dc50d4c40",
"sha256:572e1787d1460da79590bf44304abbc0a2da944ea64ec549188fa84d89bba7ab",
"sha256:58df5c2a0e293bf665a51f8a100d3e9956febfbf1d9aaf8c0677cf70218910c6",
"sha256:64e6175c2e53195278d7388c454e0b30997573f3f4bd63697f88d855f7a6a1fc",
"sha256:7227b47e73dedaa513cdebb98469705ef0d66eb5a1250144468e9c3097d6b59b",
"sha256:7418b6bfc7fe3331541b84bb2141c9baf1ec7132a7ecd9f375912eca810e714e",
"sha256:7cbd7574ce8e138bda9df4efc6bf2ab8572c9aff640d8ecfece1b006b68da963",
"sha256:7ff61ff178250f9bb3cd89752df0f1dd0e27316a8bd1465351652b1b4a4cdfd3",
"sha256:833e1551925ed51e6b44c800e71e77dacd7e49181fdc9ac9a0bf3714d515785d",
"sha256:8639cadfda96737427330a094476d4c7a56ac03de7265622fcf4cfe57c8ae18d",
"sha256:8c5d5b35f789a030ebb95bff352f1d27a93d81069f2adb3182d99882e095cefe",
"sha256:8c790abda465726cfb8bb08bd4ca9a5d0a7bd77c7ac1ca1b839ad823b948ea28",
"sha256:8d2f1fb53a421b410751887eb4ff21386d119ef9cde3797bf5e7ed49fb51a3b3",
"sha256:903bbd302a2378f984aef528f76d4c9b1748f318fe1294961c072bdc7f2ffa3e",
"sha256:93f81b134a165cc17123626ab8da2e30c0455441d4ab5576eed73a64c025b25c",
"sha256:95e69877983ea39b7303570fa6760f81a3eec23d0e3ab2021b7144b94d06202d",
"sha256:9633b3034d3d901f0a46b7939f8c4d64427dfba6bbc5a36b1a67364cf148a1b0",
"sha256:97e5306482182170ade15c4b0d8386ded995a07d7cc2ca8f27958d34d6736497",
"sha256:9f3cba480d3deb69f6ee2c1825060177a22c7826431458c697df88e6aeb3caee",
"sha256:aa5b467f15e78b82257319aebc78dd2915e4c1436c3c0d1ad6f53e47ba6e2713",
"sha256:abb7a75ed8b968f3061327c433a0fbd17b729947b400747c334a9c29a9af6c58",
"sha256:aec52725173bd3a7b56fe91bc56eccb26fbdff1386ef123abb63c84c5b43b63a",
"sha256:b11548073a2213d950c3f671aa88e6f83cda6e2fb97a8b6317b1b5b33d850e06",
"sha256:b1692f7d6bc45e3200844be0dba153612103db241691088626a33ff1f24a0d88",
"sha256:b336501a05e13b616ef81ce329c0e09ac5ed8c732d9ba7e3e983fcc1a9e86965",
"sha256:b8c008de9d0daba7b6666aa5bbfdc23dcd78cafc33997c9b7741ff6353bafb7f",
"sha256:b92e29e58bef6d9cfd340c72b04d74c4b4e9f70c9fa7c78b674d1fec18896dc4",
"sha256:be5f425ff1f5f4b3c1e33ad64ab994eed12fc284a6ea71c5243fd564502ecbe5",
"sha256:dd0b1e9e891f69e7675ba5c92e28b90eaa045f6ab134ffe70b52e948aa175b3c",
"sha256:e30f5ea4ae2346e62cedde8794a56858a67b878dd79f7df76a0767e356b1744a",
"sha256:e6a36bb9474218c7a5b27ae476035497a6990e21d04c279884eb10d9b290f1b1",
"sha256:e859fcb4cbe93504ea18008d1df98dee4f7766db66c435e4882ab35cf70cac43",
"sha256:eb6ea6da4c787111adf40f697b4e58732ee0942b5d3bd8f435277643329ba627",
"sha256:ec8c433b3ab0419100bd45b47c9c8551248a5aee30ca5e9d399a0b57ac04651b",
"sha256:eff9d20417ff9dcb0d25e2defc2574d10b491bf2e693b4e491914738b7908168",
"sha256:f0214eb2a23b85528310dad848ad2ac58e735612929c8072f6093f3585fd342d",
"sha256:f276df9830dba7a333544bd41070e8175762a7ac20350786b322b714b0e654f5",
"sha256:f3acda1924472472ddd60c29e5b9db0cec629fbe3c5c5accb74d6d6d14773478",
"sha256:f70a9e237bb792c7cc7e44c531fd48f5897961701cdaa06cf22fc14965c496cf",
"sha256:f9d29ca8a77117315101425ec7ec2a47a22ccf59f5593378fc4077ac5b754fce",
"sha256:fa877ca7f6b48054f847b61d6fa7bed5cebb663ebc55e018fda12db09dcc664c",
"sha256:fdcec0b8399108577ec290f55551d926d9a1fa6cad45882093a7a07ac5ec147b"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==2.0.1"
"version": "==1.1.2"
},
"ipdb": {
"hashes": [
@@ -199,19 +194,19 @@
},
"jedi": {
"hashes": [
"sha256:203c1fd9d969ab8f2119ec0a3342e0b49910045abe6af0a3ae83a5764d54639e",
"sha256:bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"
"sha256:637c9635fcf47945ceb91cd7f320234a7be540ded6f3e99a50cb6febdfd1ba8d",
"sha256:74137626a64a99c8eb6ae5832d99b3bdd7d29a3850fe2aa80a4126b2a7d949ab"
],
"markers": "python_version >= '3.6'",
"version": "==0.18.2"
"version": "==0.18.1"
},
"matplotlib-inline": {
"hashes": [
"sha256:f1f41aab5328aa5aaea9b16d083b128102f8712542f819fe7e6a420ff581b311",
"sha256:f887e5f10ba98e8d2b150ddcf4702c1e5f8b3a20005eb0f74bfdbd360ee6f304"
"sha256:a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee",
"sha256:aed605ba3b72462d64d475a21a9296f400a19c4f74a31b59103d2a99ffd5aa5c"
],
"markers": "python_version >= '3.5'",
"version": "==0.1.6"
"version": "==0.1.3"
},
"mccabe": {
"hashes": [
@@ -222,60 +217,42 @@
},
"msgpack": {
"hashes": [
"sha256:002b5c72b6cd9b4bafd790f364b8480e859b4712e91f43014fe01e4f957b8467",
"sha256:0a68d3ac0104e2d3510de90a1091720157c319ceeb90d74f7b5295a6bee51bae",
"sha256:0df96d6eaf45ceca04b3f3b4b111b86b33785683d682c655063ef8057d61fd92",
"sha256:0dfe3947db5fb9ce52aaea6ca28112a170db9eae75adf9339a1aec434dc954ef",
"sha256:0e3590f9fb9f7fbc36df366267870e77269c03172d086fa76bb4eba8b2b46624",
"sha256:11184bc7e56fd74c00ead4f9cc9a3091d62ecb96e97653add7a879a14b003227",
"sha256:112b0f93202d7c0fef0b7810d465fde23c746a2d482e1e2de2aafd2ce1492c88",
"sha256:1276e8f34e139aeff1c77a3cefb295598b504ac5314d32c8c3d54d24fadb94c9",
"sha256:1576bd97527a93c44fa856770197dec00d223b0b9f36ef03f65bac60197cedf8",
"sha256:1e91d641d2bfe91ba4c52039adc5bccf27c335356055825c7f88742c8bb900dd",
"sha256:26b8feaca40a90cbe031b03d82b2898bf560027160d3eae1423f4a67654ec5d6",
"sha256:2999623886c5c02deefe156e8f869c3b0aaeba14bfc50aa2486a0415178fce55",
"sha256:2a2df1b55a78eb5f5b7d2a4bb221cd8363913830145fad05374a80bf0877cb1e",
"sha256:2bb8cdf50dd623392fa75525cce44a65a12a00c98e1e37bf0fb08ddce2ff60d2",
"sha256:2cc5ca2712ac0003bcb625c96368fd08a0f86bbc1a5578802512d87bc592fe44",
"sha256:35bc0faa494b0f1d851fd29129b2575b2e26d41d177caacd4206d81502d4c6a6",
"sha256:3c11a48cf5e59026ad7cb0dc29e29a01b5a66a3e333dc11c04f7e991fc5510a9",
"sha256:449e57cc1ff18d3b444eb554e44613cffcccb32805d16726a5494038c3b93dab",
"sha256:462497af5fd4e0edbb1559c352ad84f6c577ffbbb708566a0abaaa84acd9f3ae",
"sha256:4733359808c56d5d7756628736061c432ded018e7a1dff2d35a02439043321aa",
"sha256:48f5d88c99f64c456413d74a975bd605a9b0526293218a3b77220a2c15458ba9",
"sha256:49565b0e3d7896d9ea71d9095df15b7f75a035c49be733051c34762ca95bbf7e",
"sha256:4ab251d229d10498e9a2f3b1e68ef64cb393394ec477e3370c457f9430ce9250",
"sha256:4d5834a2a48965a349da1c5a79760d94a1a0172fbb5ab6b5b33cbf8447e109ce",
"sha256:4dea20515f660aa6b7e964433b1808d098dcfcabbebeaaad240d11f909298075",
"sha256:545e3cf0cf74f3e48b470f68ed19551ae6f9722814ea969305794645da091236",
"sha256:63e29d6e8c9ca22b21846234913c3466b7e4ee6e422f205a2988083de3b08cae",
"sha256:6916c78f33602ecf0509cc40379271ba0f9ab572b066bd4bdafd7434dee4bc6e",
"sha256:6a4192b1ab40f8dca3f2877b70e63799d95c62c068c84dc028b40a6cb03ccd0f",
"sha256:6c9566f2c39ccced0a38d37c26cc3570983b97833c365a6044edef3574a00c08",
"sha256:76ee788122de3a68a02ed6f3a16bbcd97bc7c2e39bd4d94be2f1821e7c4a64e6",
"sha256:7760f85956c415578c17edb39eed99f9181a48375b0d4a94076d84148cf67b2d",
"sha256:77ccd2af37f3db0ea59fb280fa2165bf1b096510ba9fe0cc2bf8fa92a22fdb43",
"sha256:81fc7ba725464651190b196f3cd848e8553d4d510114a954681fd0b9c479d7e1",
"sha256:85f279d88d8e833ec015650fd15ae5eddce0791e1e8a59165318f371158efec6",
"sha256:9667bdfdf523c40d2511f0e98a6c9d3603be6b371ae9a238b7ef2dc4e7a427b0",
"sha256:a75dfb03f8b06f4ab093dafe3ddcc2d633259e6c3f74bb1b01996f5d8aa5868c",
"sha256:ac5bd7901487c4a1dd51a8c58f2632b15d838d07ceedaa5e4c080f7190925bff",
"sha256:aca0f1644d6b5a73eb3e74d4d64d5d8c6c3d577e753a04c9e9c87d07692c58db",
"sha256:b17be2478b622939e39b816e0aa8242611cc8d3583d1cd8ec31b249f04623243",
"sha256:c1683841cd4fa45ac427c18854c3ec3cd9b681694caf5bff04edb9387602d661",
"sha256:c23080fdeec4716aede32b4e0ef7e213c7b1093eede9ee010949f2a418ced6ba",
"sha256:d5b5b962221fa2c5d3a7f8133f9abffc114fe218eb4365e40f17732ade576c8e",
"sha256:d603de2b8d2ea3f3bcb2efe286849aa7a81531abc52d8454da12f46235092bcb",
"sha256:e83f80a7fec1a62cf4e6c9a660e39c7f878f603737a0cdac8c13131d11d97f52",
"sha256:eb514ad14edf07a1dbe63761fd30f89ae79b42625731e1ccf5e1f1092950eaa6",
"sha256:eba96145051ccec0ec86611fe9cf693ce55f2a3ce89c06ed307de0e085730ec1",
"sha256:ed6f7b854a823ea44cf94919ba3f727e230da29feb4a99711433f25800cf747f",
"sha256:f0029245c51fd9473dc1aede1160b0a29f4a912e6b1dd353fa6d317085b219da",
"sha256:f5d869c18f030202eb412f08b28d2afeea553d6613aee89e200d7aca7ef01f5f",
"sha256:fb62ea4b62bfcb0b380d5680f9a4b3f9a2d166d9394e9bbd9666c0ee09a3645c",
"sha256:fcb8a47f43acc113e24e910399376f7277cf8508b27e5b88499f053de6b115a8"
"sha256:0d8c332f53ffff01953ad25131272506500b14750c1d0ce8614b17d098252fbc",
"sha256:1c58cdec1cb5fcea8c2f1771d7b5fec79307d056874f746690bd2bdd609ab147",
"sha256:2c3ca57c96c8e69c1a0d2926a6acf2d9a522b41dc4253a8945c4c6cd4981a4e3",
"sha256:2f30dd0dc4dfe6231ad253b6f9f7128ac3202ae49edd3f10d311adc358772dba",
"sha256:2f97c0f35b3b096a330bb4a1a9247d0bd7e1f3a2eba7ab69795501504b1c2c39",
"sha256:36a64a10b16c2ab31dcd5f32d9787ed41fe68ab23dd66957ca2826c7f10d0b85",
"sha256:3d875631ecab42f65f9dce6f55ce6d736696ced240f2634633188de2f5f21af9",
"sha256:40fb89b4625d12d6027a19f4df18a4de5c64f6f3314325049f219683e07e678a",
"sha256:47d733a15ade190540c703de209ffbc42a3367600421b62ac0c09fde594da6ec",
"sha256:494471d65b25a8751d19c83f1a482fd411d7ca7a3b9e17d25980a74075ba0e88",
"sha256:51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e",
"sha256:6eef0cf8db3857b2b556213d97dd82de76e28a6524853a9beb3264983391dc1a",
"sha256:6f4c22717c74d44bcd7af353024ce71c6b55346dad5e2cc1ddc17ce8c4507c6b",
"sha256:73a80bd6eb6bcb338c1ec0da273f87420829c266379c8c82fa14c23fb586cfa1",
"sha256:89908aea5f46ee1474cc37fbc146677f8529ac99201bc2faf4ef8edc023c2bf3",
"sha256:8a3a5c4b16e9d0edb823fe54b59b5660cc8d4782d7bf2c214cb4b91a1940a8ef",
"sha256:96acc674bb9c9be63fa8b6dabc3248fdc575c4adc005c440ad02f87ca7edd079",
"sha256:973ad69fd7e31159eae8f580f3f707b718b61141838321c6fa4d891c4a2cca52",
"sha256:9b6f2d714c506e79cbead331de9aae6837c8dd36190d02da74cb409b36162e8a",
"sha256:9c0903bd93cbd34653dd63bbfcb99d7539c372795201f39d16fdfde4418de43a",
"sha256:9fce00156e79af37bb6db4e7587b30d11e7ac6a02cb5bac387f023808cd7d7f4",
"sha256:a598d0685e4ae07a0672b59792d2cc767d09d7a7f39fd9bd37ff84e060b1a996",
"sha256:b0a792c091bac433dfe0a70ac17fc2087d4595ab835b47b89defc8bbabcf5c73",
"sha256:bb87f23ae7d14b7b3c21009c4b1705ec107cb21ee71975992f6aca571fb4a42a",
"sha256:bf1e6bfed4860d72106f4e0a1ab519546982b45689937b40257cfd820650b920",
"sha256:c1ba333b4024c17c7591f0f372e2daa3c31db495a9b2af3cf664aef3c14354f7",
"sha256:c2140cf7a3ec475ef0938edb6eb363fa704159e0bf71dde15d953bacc1cf9d7d",
"sha256:c7e03b06f2982aa98d4ddd082a210c3db200471da523f9ac197f2828e80e7770",
"sha256:d02cea2252abc3756b2ac31f781f7a98e89ff9759b2e7450a1c7a0d13302ff50",
"sha256:da24375ab4c50e5b7486c115a3198d207954fe10aaa5708f7b65105df09109b2",
"sha256:e4c309a68cb5d6bbd0c50d5c71a25ae81f268c2dc675c6f4ea8ab2feec2ac4e2",
"sha256:f01b26c2290cbd74316990ba84a14ac3d599af9cebefc543d241a66e785cf17d",
"sha256:f201d34dc89342fabb2a10ed7c9a9aaaed9b7af0f16a5923f1ae562b31258dea",
"sha256:f74da1e5fcf20ade12c6bf1baa17a2dc3604958922de8dc83cbe3eff22e8b611"
],
"version": "==1.0.4"
"version": "==1.0.3"
},
"mypy-extensions": {
"hashes": [
@@ -301,11 +278,10 @@
},
"pathspec": {
"hashes": [
"sha256:3c95343af8b756205e2aba76e843ba9520a24dd84f68c22b9f93251507509dd6",
"sha256:56200de4077d9d0791465aa9095a01d421861e405b5096955051deefd697d6f6"
"sha256:7d15c4ddb0b5c802d161efc417ec1a2558ea2653c2e8ad9c19098201dc1c993a",
"sha256:e564499435a2673d586f6b2130bb5b95f04a3ba06f81b8f895b651a3c76aabb1"
],
"markers": "python_version >= '3.7'",
"version": "==0.10.3"
"version": "==0.9.0"
},
"pexpect": {
"hashes": [
@@ -324,11 +300,11 @@
},
"prompt-toolkit": {
"hashes": [
"sha256:3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63",
"sha256:aa64ad242a462c5ff0363a7b9cfe696c20d55d9fc60c11fd8e632d064804d305"
"sha256:1bb05628c7d87b645974a1bad3f17612be0c29fa39af9f7688030163f680bad6",
"sha256:e56f2ff799bacecd3e88165b1e2f5ebf9bcd59e80e06d395fa0cc4b8bd7bb506"
],
"markers": "python_full_version >= '3.6.2'",
"version": "==3.0.36"
"version": "==3.0.24"
},
"ptyprocess": {
"hashes": [
@@ -355,11 +331,11 @@
},
"pygments": {
"hashes": [
"sha256:56a8508ae95f98e2b9bdf93a6be5ae3f7d8af858b43e02c5a2ff083726be40c1",
"sha256:f643f331ab57ba3c9d89212ee4a2dabc6e94f117cf4eefde99a0574720d14c42"
"sha256:44238f1b60a76d78fc8ca0528ee429702aae011c265fe6a8dd8b63049ae41c65",
"sha256:4e426f72023d88d03b2fa258de560726ce890ff3b630f88c21cbb8b2503b8c6a"
],
"markers": "python_version >= '3.6'",
"version": "==2.13.0"
"markers": "python_version >= '3.5'",
"version": "==2.11.2"
},
"pynvim": {
"hashes": [
@@ -384,11 +360,11 @@
},
"python-dotenv": {
"hashes": [
"sha256:1684eb44636dd462b66c3ee016599815514527ad99965de77f43e0944634a7e5",
"sha256:b77d08274639e3d34145dfa6c7008e66df0f04b7be7a75fd0d5292c191d79045"
"sha256:32b2bdc1873fd3a3c346da1c6db83d0053c3c62f28f1f38516070c4c8971b1d3",
"sha256:a5de49a31e953b45ff2d2fd434bbc2670e8db5273606c1e737cc6b93eff3655f"
],
"markers": "python_version >= '3.7'",
"version": "==0.21.0"
"markers": "python_version >= '3.5'",
"version": "==0.19.2"
},
"python-magic": {
"hashes": [
@@ -400,97 +376,82 @@
},
"regex": {
"hashes": [
"sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad",
"sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4",
"sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd",
"sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc",
"sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d",
"sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066",
"sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec",
"sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9",
"sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e",
"sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8",
"sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e",
"sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783",
"sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6",
"sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1",
"sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c",
"sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4",
"sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1",
"sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1",
"sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7",
"sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8",
"sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe",
"sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d",
"sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b",
"sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8",
"sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c",
"sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af",
"sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49",
"sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714",
"sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542",
"sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318",
"sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e",
"sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5",
"sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc",
"sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144",
"sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453",
"sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5",
"sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61",
"sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11",
"sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a",
"sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54",
"sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73",
"sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc",
"sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347",
"sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c",
"sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66",
"sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c",
"sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93",
"sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443",
"sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc",
"sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1",
"sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892",
"sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8",
"sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001",
"sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa",
"sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90",
"sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c",
"sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0",
"sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692",
"sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4",
"sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5",
"sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690",
"sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83",
"sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66",
"sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f",
"sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f",
"sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4",
"sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee",
"sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81",
"sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95",
"sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9",
"sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff",
"sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e",
"sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5",
"sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6",
"sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7",
"sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1",
"sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394",
"sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6",
"sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742",
"sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57",
"sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b",
"sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7",
"sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b",
"sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244",
"sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af",
"sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185",
"sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8",
"sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5"
"sha256:04611cc0f627fc4a50bc4a9a2e6178a974c6a6a4aa9c1cca921635d2c47b9c87",
"sha256:0b5d6f9aed3153487252d00a18e53f19b7f52a1651bc1d0c4b5844bc286dfa52",
"sha256:0d2f5c3f7057530afd7b739ed42eb04f1011203bc5e4663e1e1d01bb50f813e3",
"sha256:11772be1eb1748e0e197a40ffb82fb8fd0d6914cd147d841d9703e2bef24d288",
"sha256:1333b3ce73269f986b1fa4d5d395643810074dc2de5b9d262eb258daf37dc98f",
"sha256:16f81025bb3556eccb0681d7946e2b35ff254f9f888cff7d2120e8826330315c",
"sha256:1a171eaac36a08964d023eeff740b18a415f79aeb212169080c170ec42dd5184",
"sha256:1d6301f5288e9bdca65fab3de6b7de17362c5016d6bf8ee4ba4cbe833b2eda0f",
"sha256:1e031899cb2bc92c0cf4d45389eff5b078d1936860a1be3aa8c94fa25fb46ed8",
"sha256:1f8c0ae0a0de4e19fddaaff036f508db175f6f03db318c80bbc239a1def62d02",
"sha256:2245441445099411b528379dee83e56eadf449db924648e5feb9b747473f42e3",
"sha256:22709d701e7037e64dae2a04855021b62efd64a66c3ceed99dfd684bfef09e38",
"sha256:24c89346734a4e4d60ecf9b27cac4c1fee3431a413f7aa00be7c4d7bbacc2c4d",
"sha256:25716aa70a0d153cd844fe861d4f3315a6ccafce22b39d8aadbf7fcadff2b633",
"sha256:2dacb3dae6b8cc579637a7b72f008bff50a94cde5e36e432352f4ca57b9e54c4",
"sha256:34316bf693b1d2d29c087ee7e4bb10cdfa39da5f9c50fa15b07489b4ab93a1b5",
"sha256:36b2d700a27e168fa96272b42d28c7ac3ff72030c67b32f37c05616ebd22a202",
"sha256:37978254d9d00cda01acc1997513f786b6b971e57b778fbe7c20e30ae81a97f3",
"sha256:38289f1690a7e27aacd049e420769b996826f3728756859420eeee21cc857118",
"sha256:385ccf6d011b97768a640e9d4de25412204fbe8d6b9ae39ff115d4ff03f6fe5d",
"sha256:3c7ea86b9ca83e30fa4d4cd0eaf01db3ebcc7b2726a25990966627e39577d729",
"sha256:49810f907dfe6de8da5da7d2b238d343e6add62f01a15d03e2195afc180059ed",
"sha256:519c0b3a6fbb68afaa0febf0d28f6c4b0a1074aefc484802ecb9709faf181607",
"sha256:51f02ca184518702975b56affde6c573ebad4e411599005ce4468b1014b4786c",
"sha256:552a39987ac6655dad4bf6f17dd2b55c7b0c6e949d933b8846d2e312ee80005a",
"sha256:596f5ae2eeddb79b595583c2e0285312b2783b0ec759930c272dbf02f851ff75",
"sha256:6014038f52b4b2ac1fa41a58d439a8a00f015b5c0735a0cd4b09afe344c94899",
"sha256:61ebbcd208d78658b09e19c78920f1ad38936a0aa0f9c459c46c197d11c580a0",
"sha256:6213713ac743b190ecbf3f316d6e41d099e774812d470422b3a0f137ea635832",
"sha256:637e27ea1ebe4a561db75a880ac659ff439dec7f55588212e71700bb1ddd5af9",
"sha256:6aa427c55a0abec450bca10b64446331b5ca8f79b648531138f357569705bc4a",
"sha256:6ca45359d7a21644793de0e29de497ef7f1ae7268e346c4faf87b421fea364e6",
"sha256:6db1b52c6f2c04fafc8da17ea506608e6be7086715dab498570c3e55e4f8fbd1",
"sha256:752e7ddfb743344d447367baa85bccd3629c2c3940f70506eb5f01abce98ee68",
"sha256:760c54ad1b8a9b81951030a7e8e7c3ec0964c1cb9fee585a03ff53d9e531bb8e",
"sha256:768632fd8172ae03852e3245f11c8a425d95f65ff444ce46b3e673ae5b057b74",
"sha256:7a0b9f6a1a15d494b35f25ed07abda03209fa76c33564c09c9e81d34f4b919d7",
"sha256:7e070d3aef50ac3856f2ef5ec7214798453da878bb5e5a16c16a61edf1817cc3",
"sha256:7e12949e5071c20ec49ef00c75121ed2b076972132fc1913ddf5f76cae8d10b4",
"sha256:7e26eac9e52e8ce86f915fd33380f1b6896a2b51994e40bb094841e5003429b4",
"sha256:85ffd6b1cb0dfb037ede50ff3bef80d9bf7fa60515d192403af6745524524f3b",
"sha256:8618d9213a863c468a865e9d2ec50221015f7abf52221bc927152ef26c484b4c",
"sha256:8acef4d8a4353f6678fd1035422a937c2170de58a2b29f7da045d5249e934101",
"sha256:8d2f355a951f60f0843f2368b39970e4667517e54e86b1508e76f92b44811a8a",
"sha256:90b6840b6448203228a9d8464a7a0d99aa8fa9f027ef95fe230579abaf8a6ee1",
"sha256:9187500d83fd0cef4669385cbb0961e227a41c0c9bc39219044e35810793edf7",
"sha256:93c20777a72cae8620203ac11c4010365706062aa13aaedd1a21bb07adbb9d5d",
"sha256:93cce7d422a0093cfb3606beae38a8e47a25232eea0f292c878af580a9dc7605",
"sha256:94c623c331a48a5ccc7d25271399aff29729fa202c737ae3b4b28b89d2b0976d",
"sha256:97f32dc03a8054a4c4a5ab5d761ed4861e828b2c200febd4e46857069a483916",
"sha256:9a2bf98ac92f58777c0fafc772bf0493e67fcf677302e0c0a630ee517a43b949",
"sha256:a602bdc8607c99eb5b391592d58c92618dcd1537fdd87df1813f03fed49957a6",
"sha256:a9d24b03daf7415f78abc2d25a208f234e2c585e5e6f92f0204d2ab7b9ab48e3",
"sha256:abfcb0ef78df0ee9df4ea81f03beea41849340ce33a4c4bd4dbb99e23ec781b6",
"sha256:b013f759cd69cb0a62de954d6d2096d648bc210034b79b1881406b07ed0a83f9",
"sha256:b02e3e72665cd02afafb933453b0c9f6c59ff6e3708bd28d0d8580450e7e88af",
"sha256:b52cc45e71657bc4743a5606d9023459de929b2a198d545868e11898ba1c3f59",
"sha256:ba37f11e1d020969e8a779c06b4af866ffb6b854d7229db63c5fdddfceaa917f",
"sha256:bb804c7d0bfbd7e3f33924ff49757de9106c44e27979e2492819c16972ec0da2",
"sha256:bf594cc7cc9d528338d66674c10a5b25e3cde7dd75c3e96784df8f371d77a298",
"sha256:c38baee6bdb7fe1b110b6b3aaa555e6e872d322206b7245aa39572d3fc991ee4",
"sha256:c73d2166e4b210b73d1429c4f1ca97cea9cc090e5302df2a7a0a96ce55373f1c",
"sha256:c9099bf89078675c372339011ccfc9ec310310bf6c292b413c013eb90ffdcafc",
"sha256:cf0db26a1f76aa6b3aa314a74b8facd586b7a5457d05b64f8082a62c9c49582a",
"sha256:d19a34f8a3429bd536996ad53597b805c10352a8561d8382e05830df389d2b43",
"sha256:da80047524eac2acf7c04c18ac7a7da05a9136241f642dd2ed94269ef0d0a45a",
"sha256:de2923886b5d3214be951bc2ce3f6b8ac0d6dfd4a0d0e2a4d2e5523d8046fdfb",
"sha256:defa0652696ff0ba48c8aff5a1fac1eef1ca6ac9c660b047fc8e7623c4eb5093",
"sha256:e54a1eb9fd38f2779e973d2f8958fd575b532fe26013405d1afb9ee2374e7ab8",
"sha256:e5c31d70a478b0ca22a9d2d76d520ae996214019d39ed7dd93af872c7f301e52",
"sha256:ebaeb93f90c0903233b11ce913a7cb8f6ee069158406e056f884854c737d2442",
"sha256:ecfe51abf7f045e0b9cdde71ca9e153d11238679ef7b5da6c82093874adf3338",
"sha256:f99112aed4fb7cee00c7f77e8b964a9b10f69488cdff626ffd797d02e2e4484f",
"sha256:fd914db437ec25bfa410f8aa0aa2f3ba87cdfc04d9919d608d02330947afaeab"
],
"markers": "python_version >= '3.6'",
"version": "==2022.10.31"
"version": "==2022.1.18"
},
"s3cmd": {
"hashes": [
@@ -502,11 +463,11 @@
},
"setuptools": {
"hashes": [
"sha256:d0b9a8433464d5800cbe05094acf5c6d52a91bfac9b52bcfc4d41382be5d5d31",
"sha256:e197a19aa8ec9722928f2206f8de752def0e4c9fc6953527360d1c36d94ddb2f"
"sha256:2404879cda71495fc4d5cbc445ed52fdaddf352b36e40be8dcc63147cb4edabe",
"sha256:68eb94073fc486091447fcb0501efd6560a0e5a1839ba249e5ff3c4c93f05f90"
],
"index": "pypi",
"version": "==65.5.1"
"markers": "python_version >= '3.7'",
"version": "==60.5.0"
},
"six": {
"hashes": [
@@ -518,10 +479,10 @@
},
"testfixtures": {
"hashes": [
"sha256:02dae883f567f5b70fd3ad3c9eefb95912e78ac90be6c7444b5e2f46bf572c84",
"sha256:7de200e24f50a4a5d6da7019fb1197aaf5abd475efb2ec2422fdcf2f2eb98c1d"
"sha256:2600100ae96ffd082334b378e355550fef8b4a529a6fa4c34f47130905c7426d",
"sha256:6ddb7f56a123e1a9339f130a200359092bd0a6455e31838d6c477e8729bb7763"
],
"version": "==6.18.5"
"version": "==6.18.3"
},
"toml": {
"hashes": [
@@ -533,11 +494,11 @@
},
"traitlets": {
"hashes": [
"sha256:6cc57d6dc28c85d5365961726ffd19b538739347749e13ebe34e03323a0e8f84",
"sha256:c864831efa0ba6576d09b44884b34e41defc18c0d7e720b4a2d6698c842cab3e"
"sha256:059f456c5a7c1c82b98c2e8c799f39c9b8128f6d0d46941ee118daace9eb70c7",
"sha256:2d313cc50a42cd6c277e7d7dc8d4d7fedd06a2c215f78766ae7b1a66277e0033"
],
"markers": "python_version >= '3.7'",
"version": "==5.8.0"
"version": "==5.1.1"
},
"wcwidth": {
"hashes": [

View File

@@ -1,21 +1,28 @@
# KMK: Clackety Keyboards Powered by Python
![GitHub](https://img.shields.io/github/license/KMKfw/kmk_firmware)
![GitHub contributors](https://img.shields.io/github/contributors/KMKfw/kmk_firmware)
[![Discord](https://img.shields.io/discord/493256121075761173?logo=Discord)](https://discord.gg/QBHUUpeGUd)
![Lines of code](https://img.shields.io/tokei/lines/github/KMKfw/kmk_firmware)
![GitHub issues](https://img.shields.io/github/issues-raw/KMKfw/kmk_firmware)
![GitHub closed issues](https://img.shields.io/github/issues-closed/KMKfw/kmk_firmware)
Documentation available at [📖 kmkfw.io](http://kmkfw.io/).
KMK is a feature-rich and beginner-friendly firmware for computer keyboards
written and configured in
[CircuitPython](https://github.com/adafruit/circuitpython).
For asynchronous support and chatter about KMK, [join our Zulip
community](https://kmkfw.zulipchat.com)! In particular, swing by the Zulip chat
*before* opening a GitHub Issue about configuration, documentation, etc.
concerns.
**KMK is currently looking for maintainers.** If you like keyboards and/or
Python, and ideally have contributed to KMK in the past, and are interested in
(co-)maintaining KMK, comment on [the relevant GitHub
issue](https://github.com/KMKfw/kmk_firmware/issues/196) or drop by the Matrix
channel below.
> The former Matrix and Discord rooms once linked to in this README are no
> longer officially supported, please do not use them!
> If you need support with KMK or just want to say hi, find us in
> [#kmkfw:klar.sh on Matrix](https://matrix.to/#/#kmkfw:klar.sh). This channel
> is bridged to Discord
> [here](https://discord.gg/QBHUUpeGUd) for
> convenience.
## Features
@@ -23,24 +30,38 @@ concerns.
on a "flash-drive"-esque space on your microcontroller - edit on the go
without DFU or other devtooling available!
- Single-piece or [two-piece split
keyboards](/docs/en/split_keyboards.md)
keyboards](https://github.com/KMKfw/kmk_firmware/blob/master/docs/split_keyboards.md)
are supported
- [Chainable
keys](/docs/en/keys.md) such as
keys](https://github.com/KMKfw/kmk_firmware/blob/master/docs/keys.md) such as
`KC.LWIN(KC.L)` to lock the screen on a Windows PC
- [Built-in Unicode macros, including
emojis](/docs/en/sequences.md)
- [RGB underglow](/docs/en/rgb.md)
emojis](https://github.com/KMKfw/kmk_firmware/blob/master/docs/sequences.md)
- [RGB underglow](https://github.com/KMKfw/kmk_firmware/blob/master/docs/rgb.md)
and [LED
backlights](/docs/en/led.md)
backlights](https://github.com/KMKfw/kmk_firmware/blob/master/docs/led.md)
- One key can turn into many more based on [how many times you tap
it](/docs/en/tapdance.md)
it](https://github.com/KMKfw/kmk_firmware/blob/master/docs/tapdance.md)
- Bluetooth HID and split keyboards. No more wires.
## Getting Started
KMK requires [CircuitPython](https://circuitpython.org/) version 7.0 or higher.
Our getting started guide can be found
[here](/docs/en/Getting_Started.md).
[here](https://github.com/KMKfw/kmk_firmware/blob/master/docs/Getting_Started.md).
## The KMK Team
KMK was originally authored by @klardotsh and @kdb424 over the winter of
2018-19, and has been contributed to by numerous others since. Contributions
are welcome from all, whether it's in the form of code, documentation, hardware
designs, feature ideas, or anything else that comes to mind. A list of KMK's
contributors can be found [on
GitHub](https://github.com/KMKfw/kmk_firmware/graphs/contributors).
> While Adafruit employees and affiliates are occasionally found in the commit
> log and their help has been crucial to KMK's success, KMK is not an official
> Adafruit project, and the Core team is not compensated by Adafruit for its
> development.
## Code Style

View File

@@ -1,10 +0,0 @@
# Pico 14 Numerical Keypad
![Pico14](https://www.boltind.com/wp-content/uploads/2022/01/PXL_20220119_171113903-scaled.jpg)
Pico 14 Numerical Keypad / Macro Pad PCBs and Hardware Kit.
`kb.py` is designed to work with the Pi Pico.
Retailers:
[Bolt Industries](https://www.boltind.com/product/pico-14-numerical-keypad-macro-pad-pcbs-and-hardware-kit/)

View File

@@ -1,23 +0,0 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.GP0,
board.GP1,
board.GP2,
)
row_pins = (
board.GP18,
board.GP19,
board.GP20,
board.GP21,
board.GP22,
)
diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.GP27

View File

@@ -1,56 +0,0 @@
from kb import KMKKeyboard
from kmk.extensions.LED import LED
from kmk.extensions.lock_status import LockStatus
from kmk.keys import KC
from kmk.modules.layers import Layers
Pico14 = KMKKeyboard()
class LEDLockStatus(LockStatus):
def __init__(self, leds):
super().__init__()
self._leds = leds
def set_lock_leds(self):
if self.get_num_lock():
self._leds.set_brightness(100, leds=[0])
else:
self._leds.set_brightness(0, leds=[0])
def after_hid_send(self, sandbox):
super().after_hid_send(sandbox) # Critically important. Removing this will break lock status.
if self.report_updated:
self.set_lock_leds()
Pico14.modules.append(Layers())
leds = LED(led_pin=[Pico14.led_pin], val=0)
Pico14.extensions.append(leds)
Pico14.extensions.append(LEDLockStatus(leds))
# Make this for better looking formatting...
______ = KC.TRNS
XXXXXX = KC.NO
Pico14.keymap = [[
# Layer 0 QWERTY
KC.NUMLOCK, KC.NUMPAD_SLASH, KC.NUMPAD_ASTERISK,
KC.NUMPAD_7, KC.NUMPAD_8, KC.NUMPAD_9,
KC.NUMPAD_4, KC.NUMPAD_5, KC.NUMPAD_6,
KC.NUMPAD_1, KC.NUMPAD_2, KC.NUMPAD_1,
KC.NUMPAD_0, XXXXXX, KC.NUMPAD_DOT
], [
# Layer 1
______, ______, ______,
KC.HOME, KC.UP, KC.PGUP,
KC.LEFT, ______, KC.RIGHT,
KC.END, KC.DOWN, KC.PGDN,
KC.INS, XXXXXX, KC.DEL
]
]
if __name__ == '__main__':
Pico14.go()

View File

@@ -1,12 +0,0 @@
# ANAVI Arrows
ANAVI Arrows is an open source, programmable mechanical keyboard with 4 hot-swappable mechanical switches, RGB WS2812B underlighting and yellow backlit a rotary encoder, [Seeed XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html) and a mini OLED I2C yellow-blue display.
ANAVI Arrows has been designed with the cross platform and open source electronics design automation suite KiCad. All KiCad [files and schematics are available at GitHub](https://github.com/anavitechnology/anavi-arrows) under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/).
Extensions enabled by default:
- [Encoder](/docs/en/encoder.md) Twist control for all the things
- [LED](/docs/en/led.md) Light your keys up (for backlit)
- [RGB](/docs/en/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [PEG_OLED](/docs/peg_oled_display.md) Show information on the mini OLED display

View File

@@ -1,20 +0,0 @@
'''
KMK keyboard for ANAVI Arrows
This is a macro pad with 4 mechanical switches based on the RP2040. Each key is
attached to a single GPIO, so the KMK matrix scanner needs to be overridden.
'''
import board
from kmk.kmk_keyboard import KMKKeyboard
from kmk.scanners.keypad import KeysScanner
class AnaviArrows(KMKKeyboard):
'''
Default keyboard config for ANAVI Arrows.
'''
def __init__(self):
self.matrix = KeysScanner([board.D1, board.D2, board.D3, board.D6])

View File

@@ -1,90 +0,0 @@
import board
from arrows import AnaviArrows
from kmk.extensions.LED import LED
from kmk.extensions.media_keys import MediaKeys
from kmk.extensions.peg_oled_Display import (
Oled,
OledData,
OledDisplayMode,
OledReactionType,
)
from kmk.extensions.RGB import RGB, AnimationModes
from kmk.keys import KC
from kmk.modules.encoder import EncoderHandler
keyboard = AnaviArrows()
# I2C pins for the mini OLED display
keyboard.SCL = board.D5
keyboard.SDA = board.D4
# fmt: off
keyboard.keymap = [
[
KC.RIGHT, KC.DOWN, KC.LEFT, KC.UP,
]
]
# fmt: on
oled_ext = Oled(
OledData(
corner_one={0: OledReactionType.STATIC, 1: ['ANAVI Arrows']},
corner_two={0: OledReactionType.STATIC, 1: [' ']},
corner_three={0: OledReactionType.STATIC, 1: ['Open Source']},
corner_four={0: OledReactionType.STATIC, 1: [' ']},
),
oWidth=128,
oHeight=64,
toDisplay=OledDisplayMode.TXT,
flip=False,
)
keyboard.extensions.append(oled_ext)
led_ext = LED(
led_pin=[
board.D0,
],
brightness=100,
brightness_step=5,
brightness_limit=100,
breathe_center=1.5,
animation_mode=AnimationModes.STATIC,
animation_speed=1,
user_animation=None,
val=100,
)
keyboard.extensions.append(led_ext)
# WS2812B LED strips on the back
underglow = RGB(
pixel_pin=board.D10,
num_pixels=4,
val_limit=100,
val_default=25,
animation_mode=AnimationModes.RAINBOW,
)
keyboard.extensions.append(underglow)
# Neopixel on XIAO RP2040
frontglow = RGB(
pixel_pin=board.NEOPIXEL,
num_pixels=1,
val_limit=100,
val_default=25,
animation_mode=AnimationModes.RAINBOW,
)
keyboard.extensions.append(frontglow)
media_keys = MediaKeys()
keyboard.extensions.append(media_keys)
# Rotary encoder that also acts as a key
encoder_handler = EncoderHandler()
encoder_handler.pins = ((board.D8, board.D7, board.D9),)
encoder_handler.map = (((KC.VOLD, KC.VOLU, KC.MUTE),),)
keyboard.modules.append(encoder_handler)
if __name__ == '__main__':
keyboard.go()

View File

@@ -5,6 +5,6 @@ ANAVI Knob 1 is an open source, programmable mechanical keyboard with a single r
ANAVI Knob 1 is open source hardware designed with KiCad. All KiCad [files and schematics are available at GitHub](https://github.com/AnaviTechnology/anavi-knob-1) under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/).
Extensions enabled by default:
- [Encoder](/docs/en/encoder.md) Twist control for all the things
- [RGB](/docs/en/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Encoder](/docs/encoder.md) Twist control for all the things
- [RGB](/docs/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -5,6 +5,6 @@ ANAVI Knobs 3 is an open source, programmable mechanical keyboard with 3 rotary
ANAVI Knobs 3 is open source hardware designed with KiCad. All KiCad [files and schematics are available at GitHub](https://github.com/AnaviTechnology/anavi-knobs-3) under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/).
Extensions enabled by default:
- [Encoder](/docs/en/encoder.md) Twist control for all the things
- [RGB](/docs/en/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Encoder](/docs/encoder.md) Twist control for all the things
- [RGB](/docs/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -5,7 +5,7 @@ ANAVI Macro Pad 10 is an open source, programmable mechanical keyboard with 9 ho
ANAVI Macro Pad 10 has been designed with the cross platform and open source electronics design automation suite KiCad. All KiCad [files and schematics are available at GitHub](https://github.com/anavitechnology/anavi-macro-pad-10) under [Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)](https://creativecommons.org/licenses/by-sa/4.0/).
Extensions enabled by default:
- [Encoder](/docs/en/encoder.md) Twist control for all the things
- [LED](/docs/en/led.md) Light your keys up (for backlit)
- [RGB](/docs/en/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Encoder](/docs/encoder.md) Twist control for all the things
- [LED](/docs/led.md) Light your keys up (for backlit)
- [RGB](/docs/rgb.md) Light it up (for underlighting)
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -10,7 +10,7 @@ Retailers (USA)
[Atreus62](https://shop.profetkeyboards.com/product/atreus62-keyboard)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [Encoder](/docs/en/encoder.md) Twist control for all the things
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [Encoder](/docs/encoder.md) Twist control for all the things

View File

@@ -10,12 +10,4 @@ Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ecc2008eee64242946c98c1)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.

View File

@@ -3,9 +3,9 @@
![Boardsource4x12](https://boardsource.imgix.net/164c3388-5057-46c8-8fcd-82c58c7870ce.jpg?raw=true)
![Boardsource4x12LP](https://boardsource.imgix.net/c2108ea4-7d70-4327-b4b4-88c8191b1369.jpg?raw=true)
The 4x12 ortholinear keyboard is an extremely common and beloved layout within
the keyboard community. Made popular by Jack's Planck from OLKB, the 4x12
ortholinear layout is possibly the most popular non-staggered layout available.
The 4x12 ortholinear keyboard is an extremely common and beloved layout within the keyboard community. Made popular by Jack's Planck from OLKB, the 4x12 ortholinear layout is possibly the most popular non-stagger layout available.
kb.py is designed to work with the nice!nano
Retailers (USA)
4x12
@@ -14,15 +14,8 @@ Low profile 4x12
[Boardsource](https://boardsource.xyz/store/5ecb7dad86879c9a0c22db32)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,25 +1,25 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (board.pins[1], pins[0], board.pins[4], board.pins[5])
row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20)
col_pins = (
board.pins[19],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
board.pins[11],
board.pins[10],
board.pins[9],
board.pins[8],
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
board.P1_06,
board.P1_04,
board.P0_11,
board.P1_00,
)
diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -3,12 +3,9 @@
![Boardsource5x12](https://boardsource.imgix.net/74abb511-792e-42d9-9f6e-8100c521b2e0.jpg?raw=true)
![Boardsource5x12LP](https://boardsource.imgix.net/57ad3f69-3c88-4ae8-9592-6e4d2f45a58e.jpg?raw=true)
5x12 ortholinear -- for when just really don't want to give up your number row.
The 5x12 ortholinear keyboard is a common ortholinear layout that many people
prefer because it includes a number row. Made popular by Jack's Preonic from
OLKB, the 5x12 ortholinear layout is a great option for those who want to try
ortholinear but feel they aren't ready to make the jump to a 40%. The 5x12 Ortho
is an approachable keyboard with hotswap compatibility.
5x12 ortholinear -- for when just really don't want to give up your number row. The 5x12 ortholinear keyboard is a common ortholinear layout that many people prefer because it includes a number row. Made popular by Jack's Preonic from OLKB, the 5x12 ortholinear layout is a great option for those who want to try ortholinear but feel they aren't ready to make the jump to a 40%. The 5x12 Ortho is an approachable keyboard with hotswap compatibility.
kb.py is designed to work with the nice!nano
Retailers (USA)
5x12
@@ -17,15 +14,8 @@ Low Profile 5x12
[Boardsource](https://boardsource.xyz/store/5ecb822386879c9a0c22db84)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,25 +1,25 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (board.pins[1], pins[0], board.pins[4], board.pins[5], board.pins[6])
row_pins = (board.P0_08, board.P0_06, board.P0_17, board.P0_20, board.P0_22)
col_pins = (
board.pins[19],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
board.pins[11],
board.pins[10],
board.pins[9],
board.pins[8],
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
board.P1_06,
board.P1_04,
board.P0_11,
board.P1_00,
)
diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -11,11 +11,11 @@ Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ec9df84c6b834480de6c3d0)
Extensions enabled by default
- [Split](/docs/en/split.md) Connects halves using a wire.
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [PEG_RGB](/docs/en/peg_rgb_matrix.md) Light it up!
- [PEG_OLED](/docs/en/peg_oled_display.md) Screens to see things on of course.
- [Split](/docs/split.md) Connects halves using a wire.
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [PEG_RGB](/docs/peg_rgb_matrix.md) Light it up!
- [PEG_OLED](/docs/peg_oled_display.md) Screens to see things on of course.
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life.
- [BLE_Split](/docs/en/split.md) Connects halves without wires (For the DIY version)
- [Power](/docs/power.md) Powersaving features for battery life.
- [BLE_Split](/docs/split.md) Connects halves without wires (For the DIY version)

View File

@@ -2,26 +2,18 @@
![microdox](https://boardsource.imgix.net/337ae65a-d061-46a4-b119-9916b043c58f.jpg?raw=true)
The Microdox is is a feature-packed 30% split columnar staggered keyboard. Even
though the Microdox is an extremely small keyboard it offers tons of features
from larger boards while maintaining a tiny footprint.
The Microdox is is a feature-packed 30% split columnar staggered keyboard. Even though the Microdox is an extremely small keyboard it offers tons of features from larger boards while maintaining a tiny footprint.
kb.py is designed to work with the nice!nano
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5f2e7e4a2902de7151494f92)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [ModTap](/docs/en/modtap.md) Allows mod keys to act as different keys when tapped.
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
- [ModTap](/docs/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/enpower.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,28 +1,21 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.pins[19],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
)
row_pins = (board.pins[13], board.pins[12], board.pins[10], board.pins[11])
col_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15, board.P1_13)
row_pins = (board.P0_10, board.P0_09, board.P1_04, board.P1_06)
diode_orientation = DiodeOrientation.COLUMNS
data_pin = board.pins[1]
rgb_pixel_pin = pins[0]
data_pin = board.P0_08
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 12
i2c = board.I2C
powersave_pin = board.P0_13
# NOQA
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 20, 21, 22, 23, 24,
5, 6, 7, 8, 9, 25, 26, 27, 28, 29,

View File

@@ -6,6 +6,8 @@
A split keyboard with a 3x6 columnar stagger and 3 thumb keys.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Source](https://github.com/foostan/crkbd)
Retailers (USA)
@@ -16,18 +18,10 @@ Corne LP
[Boardsource](https://boardsource.xyz/store/5f2efc462902de7151495057)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -2,15 +2,9 @@
![ergo_travel](https://boardsource.imgix.net/fa53de62-fd37-4c75-8c5b-b4bec37927c1.jpg?raw=true)
As the name implies, the Ergo Travel was originally designed as a travel
keyboard, but it works just as well on your desk as a main daily use keyboard.
The Ergo Travel is a popular choice by many because it offers a few more keys
than other keyboards in similar sizes, and that is why we chose to stock it.
Additionally, the Ergo Travel has nice customization options in the thumb
cluster because you can configure the main thumb key to use a single larger 2u
key, or two smaller 1u keys depending on your preference. The clean and simple
aesthetic of the Ergo Travel and the few extra keys make it an awesome option
for people wanting a 40%-ish split keyboard.
As the name implies, the Ergo Travel was originally designed as a travel keyboard, but it works just as well on your desk as a main daily use keyboard. The Ergo Travel is a popular choice by many because it offers a few more keys than other keyboards in similar sizes, and that is why we chose to stock it. Additionally, the Ergo Travel has nice customization options in the thumb cluster because you can configure the main thumb key to use a single larger 2u key, or two smaller 1u keys depending on your preference. The clean and simple aesthetic of the Ergo Travel and the few extra keys make it an awesome option for people wanting a 40%-ish split keyboard.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Source](https://github.com/jpconstantineau/ErgoTravel/blob/master/OrderingInstructions.md)
@@ -21,19 +15,10 @@ Retailers (Canada)
[BlueMicro Store (ErgoTravel's creator)](https://store.jpconstantineau.com/#/group/split_boards)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,31 +1,30 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (pins[7], pins[8], pins[9], pins[10])
row_pins = (board.P0_24, board.P1_00, board.P0_11, board.P1_04)
col_pins = (
pins[17],
pins[16],
pins[15],
pins[14],
pins[13],
pins[12],
pins[10],
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
)
diode_orientation = DiodeOrientation.COLUMNS
led_pin = pins[9]
rgb_pixel_pin = pins[0]
led_pin = board.P1_06
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 12
data_pin = pins[1]
data_pin = board.P0_08
i2c = board.I2C
powersave_pin = board.P0_13
# NOQA
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 34, 33, 32, 31, 30, 29, 28,
7, 8, 9, 10, 11, 12, 13, 41, 40, 39, 38, 37, 36, 35,

View File

@@ -1,6 +0,0 @@
# Ferris Sweep
The [Ferris Sweep](https://github.com/davidphilipbarr/Sweep) is a split, 34 key keyboard designed by David Philip Barr. It uses a Pro-Micro footprint.
It's based in turn on the Ferris by Philip Chevalier.
The default keymap is based on the [original Ferris default keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default).

View File

@@ -1,37 +0,0 @@
# Ferris Sweep pinout translated from QMK repo
# CreditT: 2018-2020 ENDO Katsuhiro, David Philip Barr, Pierre Chevalier
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.kb2040 import pinout as pins
from kmk.scanners.keypad import KeysScanner
from storage import getmount
# GPIO to key mapping - each line is a new row.
# fmt: off
_KEY_CFG_LEFT = [
pins[9], pins[16], pins[17], pins[18], pins[19],
pins[15], pins[14], pins[13], pins[12], pins[0],
pins[4], pins[5], pins[6], pins[7], pins[8],
pins[10], pins[11],
]
# fmt: on
class KMKKeyboard(_KMKKeyboard):
def __init__(self):
# create and register the scanner
self.matrix = KeysScanner(_KEY_CFG_LEFT)
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 21, 20, 19, 18, 17,
5, 6, 7, 8, 9, 26, 25, 24, 23, 22,
10, 11, 12, 13, 14, 31, 30, 29, 28, 27,
15, 16, 33, 32
]

View File

@@ -1,114 +0,0 @@
# Replicates default Ferris keymap from QMK
# Credit: Pierre Chevalier, 2020
# https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/default
import board
from kb import KMKKeyboard
from kmk.keys import KC
from kmk.modules.layers import Layers
from kmk.modules.modtap import ModTap
from kmk.modules.mouse_keys import MouseKeys
from kmk.modules.split import Split, SplitSide
keyboard = KMKKeyboard()
# TODO Comment one of these on each side
# split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(
# split_flip=True,
data_pin=board.D1,
split_side=split_side,
split_target_left=False,
# Using the default wasn't working, try pio
use_pio=True,
uart_flip=True,
)
layers_ext = Layers()
mod_tap = ModTap()
mouse_key = MouseKeys()
keyboard.modules = [layers_ext, split, mod_tap, mouse_key]
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
# Mod-taps
A_SFT = KC.MT(KC.A, KC.LSFT)
SCLN_SFT = KC.MT(KC.SCLN, KC.LSFT)
X_CTL = KC.MT(KC.X, KC.LCTRL)
C_ALT = KC.MT(KC.C, KC.LALT)
COM_ALT = KC.MT(KC.COMM, KC.LALT)
DOT_CTL = KC.MT(KC.DOT, KC.LCTRL)
CTL_ALT = KC.LCTRL(KC.LALT)
# Layer tap for other home row keys
S_L5 = KC.LT(5, KC.S)
D_L1 = KC.LT(1, KC.D)
F_L3 = KC.LT(3, KC.F)
J_L4 = KC.LT(4, KC.J)
K_L2 = KC.LT(2, KC.K)
L_L6 = KC.LT(6, KC.L)
SPC_L7 = KC.LT(7, KC.SPC)
# fmt: off
# flake8: noqa
keyboard.keymap = [
[ # QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,
A_SFT, S_L5, D_L1, F_L3, KC.G, KC.H, J_L4, K_L2, L_L6, SCLN_SFT,
KC.Z, X_CTL, C_ALT, KC.V, KC.B, KC.N, KC.M, COM_ALT, DOT_CTL, KC.SLSH,
KC.LGUI, KC.BSPC, SPC_L7, KC.ENT,
],
[ # MOUSE
_______, _______, _______, _______, _______, _______, KC.MB_LMB, KC.MW_UP, KC.MB_LMB, _______,
_______, KC.MB_RMB, _______, KC.MB_LMB, _______, _______, KC.MS_LT, KC.MS_DN, KC.MS_UP, KC.MS_RT,
_______, _______, _______, _______, _______, _______, _______, KC.MW_DN, _______, _______,
_______, _______, _______, _______,
],
[ # NAVIGATION
_______, _______, KC.PGUP, _______, _______, _______, _______, _______, _______, _______,
KC.LEFT, KC.UP, KC.DOWN, KC.RGHT, _______, _______, KC.LGUI, CTL_ALT, KC.MEH, KC.HYPR,
_______, KC.HOME, KC.PGDN, KC.END, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
],
[ # RIGHT SYMBOLS
_______, _______, _______, _______, _______, _______, KC.UNDS, KC.PIPE, KC.QUOT, _______,
KC.CIRC, KC.ASTR, KC.AMPR, _______, _______, KC.HASH, KC.TILD, KC.SLSH, KC.DQUO, KC.DLR,
_______, _______, _______, _______, _______, _______, KC.MINS, KC.BSLS, KC.GRV, _______,
_______, _______, _______, _______,
],
[ # LEFT SYMBOLS
_______, KC.COLN, KC.LABK, KC.RABK, KC.SCLN, _______, _______, _______, _______, _______,
KC.LCBR, KC.RCBR, KC.LPRN, KC.RPRN, KC.AT, _______, _______, KC.EQL, KC.PLUS, KC.PERC,
_______, KC.EXLM, KC.LBRC, KC.RBRC, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
],
[ # 5 FUNCTION
_______, _______, _______, _______, _______, _______, KC.F7, KC.F8, KC.F9, KC.F10,
_______, _______, _______, _______, _______, _______, KC.F4, KC.F5, KC.F6, KC.F11,
_______, _______, _______, _______, _______, _______, KC.F1, KC.F2, KC.F3, KC.F12,
_______, _______, _______, _______,
],
[ # 6 NUMBERS
KC.SLSH, KC.N7, KC.N8, KC.N9, KC.PLUS, _______, _______, _______, _______, _______,
KC.N0, KC.N1, KC.N2, KC.N3, KC.MINS, _______, _______, _______, _______, _______,
KC.ASTR, KC.N4, KC.N5, KC.N6, KC.EQL, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
],
[ # 7 ALWAYS AVAILABLE
_______, _______, KC.COLN, KC.ESC, _______, _______, _______, _______, _______, KC.DEL,
_______, KC.PERC, KC.SLSH, KC.ENT, _______, KC.DF(1), KC.LGUI, _______, _______, _______,
_______, _______, _______, KC.PERC, _______, KC.DF(0), KC.RALT, KC.RCTL, _______, KC.RESET,
_______, KC.TAB, _______, _______,
],
]
if __name__ == "__main__":
keyboard.go()

View File

@@ -2,24 +2,12 @@
![ffkb](https://fingerpunch.xyz/product/faux-fox-keyboard)
A 36 or 42 key keyboard with support for per key LEDs, 2 rotary encoders (EC11
or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni
trackball). KMK support is available for the BYO MCU option only.
A 36 or 42 key keyboard with support for per key LEDs, 2 rotary encoders (EC11 or evqwgd001), and a feature in the center (EC11, OLED (128x64), or pimoroni trackball). KMK support is available for the BYO MCU option only.
Use `kb2040/kb.py` when using a KB2040 MCU.
Use `nice_nano/kb.py` when using a Nice!Nano v2 MCU.
> Note: The Nice!Nano doesn't have a lot of ROM, so there are a couple of extra
> steps. See guidance [over
> here](../../docs/en/Officially_Supported_Microcontrollers.md#nicenano).
Use `kb2040/kb.py` when using any other pro micro footprint MCU.
> Note: The Nice!Nano doesn't have a lot of ROM, so there are a couple of extra steps. See guidance [over here](../../docs/Officially_Supported_Microcontrollers.md#nicenano).
An example `main.py` file is included for each MCU.
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```

View File

@@ -1,37 +1,35 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
col_pins = (
pins[11],
pins[10],
pins[9],
pins[8],
pins[7],
pins[6],
pins[10],
pins[12],
board.D9,
board.D8,
board.D7,
board.D6,
board.D5,
board.D4,
board.MOSI,
board.MISO,
)
row_pins = (
pins[1],
pins[19],
pins[18],
pins[17],
pins[16],
pins[15],
board.D1,
board.A3,
board.A2,
board.A1,
board.A0,
board.SCK,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_pixel_pin = board.D0
rgb_num_pixels = 42
i2c = board.I2C
# flake8: noqa
# fmt: off
coord_mapping = [
ic(0, 0), ic(0, 1), ic(0, 2), ic(0, 3), ic(0, 4), ic(0, 5), ic(0, 6), ic(0, 7), ic(4, 3), ic(3, 4), ic(4, 5), ic(3, 7),
ic(1, 0), ic(1, 1), ic(1, 2), ic(1, 3), ic(1, 4), ic(1, 5), ic(4, 1), ic(1, 6), ic(1, 7), ic(3, 2), ic(4, 4), ic(3, 5), ic(4, 7),

View File

@@ -4,20 +4,14 @@
A keyboard with only 30 keys.
kb.py is designed to work with the nice!nano
Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [ModTap](/docs/en/modtap.md) Allows mod keys to act as different keys when tapped.
- [LED](/docs/en/led.md) Light your keys up
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [ModTap](/docs/modtap.md) Allows mod keys to act as different keys when tapped.
- [LED](/docs/led.md) Light your keys up
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,21 +1,21 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (pins[16], pins[15], pins[14], pins[13], pins[12])
row_pins = (board.P1_15, board.P1_13, board.P1_11, board.P0_10, board.P0_09)
col_pins = (
board.pins[10],
board.pins[9],
board.pins[8],
board.pins[7],
board.pins[6],
board.pins[5],
board.P1_04,
board.P0_11,
board.P1_00,
board.P0_24,
board.P0_22,
board.P0_20,
)
diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.pins[11]
led_pin = board.P1_06
rgb_num_pixels = 0
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -4,20 +4,15 @@
Luddite 60% keyboard with backlight and RGB underglow.
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Hardware Availability: [Luddite project on 40% Keyboards](http://www.40percent.club/search/label/luddite)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) RGB underglow
- [LED](/docs/en/led.md) Light your keys up
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) RGB underglow
- [LED](/docs/led.md) Light your keys up
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -0,0 +1,30 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.A0,
board.A1,
board.A2,
board.A3,
board.A4,
board.A5,
board.SCK,
board.MOSI,
)
row_pins = (
board.TX,
board.RX,
board.SDA,
board.SCL,
board.D13,
board.D12,
board.D11,
board.D10,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.D9
rgb_num_pixels = 12

View File

@@ -1,33 +1,33 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[0],
board.pins[1],
board.pins[4],
board.pins[5],
board.pins[6],
board.pins[7],
board.pins[8],
board.pins[9],
board.P0_06,
board.P0_08,
board.P0_17,
board.P0_20,
board.P0_22,
board.P0_24,
board.P1_00,
board.P0_11,
)
col_pins = (
board.pins[19],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
)
diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.pins[11]
rgb_pixel_pin = board.pins[10]
led_pin = board.P1_06
rgb_pixel_pin = board.P1_04
rgb_num_pixels = 8
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -1,28 +0,0 @@
# Reviung34
The Reviung34 is a 34 key keyboard designed by gtips, it is a slightly smaller
version of the popular Reviung 39. These "split non-split" keyboards offer a lot
of features split keyboards have in terms of comfort and ergonomics but do so in
a single-piece package. Many people consider keyboards in this style easier to
travel with since you don't have to manage two halves and there is of course no
need for a TRRS cable. This board sits somewhere between and Atreus and Corne,
and it is extremely comfortable to use.
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB matrix](/docs/en/peg_rgb_matrix.md) Light it up
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins

View File

@@ -1,37 +0,0 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[19],
pins[18],
pins[17],
pins[16]
)
col_pins = (
pins[6],
pins[7],
pins[8],
pins[9],
pins[10],
pins[15],
pins[14],
pins[13],
pins[12],
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_num_pixels = 9
led_key_pos = [0,1,2,3,8,4,5,6,7]
brightness_limit = 1.0
num_pixels = 9
coord_mapping = [
0, 1, 2, 3, 4, 5, 6, 7, 8, 32
,9, 10, 11, 12, 13, 14, 15, 16, 17, 33
,18,19, 20, 21, 22, 23, 24, 25, 26, 34
,29,30,31,35]

View File

@@ -1,49 +0,0 @@
from kb import KMKKeyboard
from kmk.extensions.peg_rgb_matrix import Rgb_matrix
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.layers import Layers
keyboard = KMKKeyboard()
# Adding extensions
# ledmap
rgb_ext = Rgb_matrix(ledDisplay=[[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55],[55,55,55]],split=False,rightSide=False,disable_auto_write=True)
# ledmap
layers_ext = Layers()
keyboard.modules.append(layers_ext)
keyboard.extensions.append(rgb_ext)
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
LOWER = KC.MO(2)
RAISE = KC.MO(1)
keyboard.keymap = [
[ #QWERTY
KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P,\
KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN,\
KC.Z, KC.X, KC.C, KC.V, KC.B, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH,\
LOWER, KC.SPC, KC.BSPC, RAISE
],
[ #RAISE
KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0,\
KC.TAB, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT, XXXXXXX, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC,\
KC.LCTL, KC.GRV, KC.LGUI, KC.LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.BSLS, KC.QUOT,\
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
],
[ #LOWER
KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN,\
KC.ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR,\
KC.CAPS, KC.TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC.PIPE, KC.DQT,\
XXXXXXX, XXXXXXX, KC.ENT, KC.DEL
]
]
if __name__ == '__main__':
keyboard.go()

View File

@@ -1,31 +0,0 @@
# Reviung39
![Reviung39](https://boardsource.imgix.net/d6215164-6100-4b72-b355-1a67b7704463.jpg?raw=true)
Reviung39 is a 39 key keyboard designed by gtips. The Reviung39 sits somewhere
between an Atreus and a Corne, you get some nice ergonomic benefits based on its
quasi-split design and since a true split keyboard isn't for everyone, this is
an awesome middle ground. I find this keyboard extremely comfortable to use.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ecb734486879c9a0c22dab3)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [ModTap](/docs/en/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```

View File

@@ -1,27 +0,0 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
pins[19],
pins[18],
pins[17],
pins[16],
pins[15],
pins[14],
pins[13],
)
col_pins = (
pins[6],
pins[7],
pins[8],
pins[9],
pins[10],
pins[11],
)
diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C

View File

@@ -1,31 +0,0 @@
# Reviung41
![Reviung41](https://boardsource.imgix.net/ea77f3f8-6cc4-4cb4-a801-cf58b5af8fcc.jpg?raw=true)
The Reviung41 is a 41 key keyboard designed by gtips, it is a slightly larger
version of the popular Reviung 39. These "split non-split" keyboards offer a lot
of features split keyboards have in terms of comfort and ergonomics but do so in
a single-piece package. Many people consider keyboards in this style easier to
travel with since you don't have to manage two halves and there is of course no
need for a TRRS cable. This board sits somewhere between and Atreus and Corne,
and it is extremely comfortable to use.
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung41)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5f2ef1b52bf5e8714a60f613)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [ModTap](/docs/en/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins

View File

@@ -1,111 +0,0 @@
# Helix
![Helix](https://camo.githubusercontent.com/15552bce07c6ad8e2a9c25054bada9f6a12239d009771b372d2c2ea7a91ed8b2/68747470733a2f2f692e696d6775722e636f6d2f5842416d796e4e2e6a7067)
A compact split ortholinear keyboard.
* Keyboard Maintainer: [yushakobo](https://github.com/yushakobo)
* Hardware Supported: Helix PCBs (probably rev2 only), Pro Micro RP2040 boards
Copy the `kb.py` and `main.py` files from your preferred keymap folder into your root directory of your keyboard as detailed in the [KMK instructions](http://kmkfw.io/docs/Getting_Started/).
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
## Layout
### Qwerty
```
,-----------------------------------------. ,-----------------------------------------.
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | Q | W | E | R | T | | Y | U | I | O | P | Bksp |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Ctrl | A | S | D | F | G | | H | J | K | L | ; | ' |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Shift| Z | X | C | V | B | [ | ] | N | M | , | . | / |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|Adjust| Esc | Alt | GUI | |Lower |Space |Space |Raise | | Left | Down | Up |Right |
`-------------------------------------------------------------------------------------------------'
```
### Colemak
```
,-----------------------------------------. ,-----------------------------------------.
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | Q | W | F | P | G | | J | L | U | Y | ; | Bksp |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Ctrl | A | R | S | T | D | | H | N | E | I | O | ' |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Shift| Z | X | C | V | B | [ | ] | K | M | , | . | / |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|Adjust| Esc | Alt | GUI | |Lower |Space |Space |Raise | | Left | Down | Up |Right |
`-------------------------------------------------------------------------------------------------'
```
### Dvorak
```
,-----------------------------------------. ,-----------------------------------------.
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Tab | ' | , | . | P | Y | | F | G | C | R | L | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| Ctrl | A | O | E | U | I | | D | H | T | N | S | / |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| Shift| ; | Q | J | K | X | [ | ] | B | M | W | V | Z |Enter |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
|Adjust| Esc | Alt | GUI | |Lower |Space |Space |Raise | | Left | Down | Up |Right |
`-------------------------------------------------------------------------------------------------'
```
### Lower
```
,-----------------------------------------. ,-----------------------------------------.
| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | F1 | F2 | F3 | F4 | F5 | | F6 | _ | + | { | } | | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | F7 | F8 | F9 | F10 | F11 | ( | ) | F12 | | | Home | End | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | Next | Vol- | Vol+ | Play |
`-------------------------------------------------------------------------------------------------'
```
### Raise
```
,-----------------------------------------. ,-----------------------------------------.
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Bksp |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | F1 | F2 | F3 | F4 | F5 | | F6 | - | = | [ | ] | \ |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | F7 | F8 | F9 | F10 | F11 | | | F12 | | |PageDn|PageUp| |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | Next | Vol- | Vol+ | Play |
`-------------------------------------------------------------------------------------------------'
```
### Adjust (Lower + Raise)
```
,-----------------------------------------. ,-----------------------------------------.
| F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | Reset| Debug| | | | | | | | | | Del |
|------+------+------+------+------+------| |------+------+------+------+------+------|
| | | | | | Mac | | Win |Qwerty|Colemk|Dvorak| | |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | |RGB ON| HUE+ | SAT+ | VAL+ |
|------+------+------+------+------+------+------+------+------+------+------+------+------+------|
| | | | | | | | | | | MODE | HUE- | SAT- | VAL- |
`-------------------------------------------------------------------------------------------------'
```

View File

@@ -1,36 +0,0 @@
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.sparkfun_promicro_rp2040 import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
pins[19],
pins[18],
pins[17],
pins[16],
pins[15],
pins[14],
pins[13],
)
row_pins = (
pins[6],
pins[7],
pins[8],
pins[9],
pins[10],
)
diode_orientation = DiodeOrientation.COL2ROW
data_pin = pins[1]
rgb_pixel_pin = pins[0]
SDA = pins[4]
SCL = pins[5]
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 40, 39, 38, 37, 36, 35,
7, 8, 9, 10, 11, 12, 47, 46, 45, 44, 43, 42,
14, 15, 16, 17, 18, 19, 54, 53, 52, 51, 50, 49,
21, 22, 23, 24, 25, 26, 27, 62, 61, 60, 59, 58, 57, 56,
28, 29, 30, 31, 32, 33, 34, 69, 68, 67, 66, 65, 64, 63
]

View File

@@ -1,102 +0,0 @@
from kb import KMKKeyboard
from kmk.extensions.media_keys import MediaKeys
from kmk.extensions.rgb import RGB
from kmk.keys import KC
from kmk.modules.cg_swap import CgSwap
from kmk.modules.layers import Layers
from kmk.modules.split import Split, SplitSide
keyboard = KMKKeyboard()
# RGB backlight support
rgb = RGB(pixel_pin=keyboard.rgb_pixel_pin, num_pixels=32, hue_default=80, sat_default=255, val_default=80)
keyboard.extensions.append(rgb)
# Split keyboard support
split_side = SplitSide.LEFT
split_side = SplitSide.RIGHT
split = Split(
use_pio=True,
uart_flip=True,
data_pin=keyboard.data_pin
)
keyboard.modules.append(split)
# Media key support
keyboard.extensions.append(MediaKeys())
# CG Swap Module
cg_swap = CgSwap()
keyboard.modules.append(cg_swap)
# Layer support
layers_ext = Layers()
keyboard.modules.append(layers_ext)
# Cleaner key names
_______ = KC.TRNS
XXXXXXX = KC.NO
QWERTY = KC.DF(0)
COLEMAK = KC.DF(1)
DVORAK = KC.DF(2)
LOWER = KC.MO(3)
RAISE = KC.MO(4)
ADJUST = KC.MO(5)
RGB_TOG = KC.RGB_TOG
RGB_HUI = KC.RGB_HUI
RGB_HUD = KC.RGB_HUI
RGB_SAI = KC.RGB_SAI
RGB_SAD = KC.RGB_SAD
RGB_VAI = KC.RGB_VAI
RGB_VAD = KC.RGB_VAD
keyboard.keymap = [
[ # QWERTY
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL,
KC.TAB, KC.Q, KC.W, KC.E, KC.R, KC.T, KC.Y, KC.U, KC.I, KC.O, KC.P, KC.BSPC,
KC.LCTL, KC.A, KC.S, KC.D, KC.F, KC.G, KC.H, KC.J, KC.K, KC.L, KC.SCLN, KC.QUOT,
KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.LBRC, KC.RBRC, KC.N, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT ,
ADJUST, KC.ESC, KC.LALT, KC.LGUI, XXXXXXX, LOWER, KC.SPC, KC.SPC, RAISE, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT
],
[ # COLEMAK
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL,
KC.TAB, KC.Q, KC.W, KC.F, KC.P, KC.G, KC.J, KC.L, KC.U, KC.Y, KC.SCLN, KC.BSPC,
KC.LCTL, KC.A, KC.R, KC.S, KC.T, KC.D, KC.H, KC.N, KC.E, KC.I, KC.O, KC.QUOT,
KC.LSFT, KC.Z, KC.X, KC.C, KC.V, KC.B, KC.LBRC, KC.RBRC, KC.K, KC.M, KC.COMM, KC.DOT, KC.SLSH, KC.ENT ,
ADJUST, KC.ESC, KC.LALT, KC.LGUI, XXXXXXX, LOWER, KC.SPC, KC.SPC, RAISE, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT
],
[ # DVORAK
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL,
KC.TAB, KC.QUOT, KC.COMM, KC.DOT, KC.P, KC.Y, KC.F, KC.G, KC.C, KC.R, KC.L, KC.DEL,
KC.LCTL, KC.A, KC.O, KC.E, KC.U, KC.I, KC.D, KC.H, KC.T, KC.N, KC.S, KC.SLSH,
KC.LSFT, KC.SCLN, KC.Q, KC.J, KC.K, KC.X, KC.LBRC, KC.RBRC, KC.B, KC.M, KC.W, KC.V, KC.Z, KC.ENT ,
ADJUST, KC.ESC, KC.LALT, KC.LGUI, XXXXXXX, LOWER, KC.SPC, KC.SPC, RAISE, XXXXXXX, KC.LEFT, KC.DOWN, KC.UP, KC.RGHT
],
[ # LOWER
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, _______,
KC.TILD, KC.EXLM, KC.AT, KC.HASH, KC.DLR, KC.PERC, KC.CIRC, KC.AMPR, KC.ASTR, KC.LPRN, KC.RPRN, _______,
_______, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.UNDS, KC.PLUS, KC.LCBR, KC.RCBR, KC.PIPE,
KC.CAPS, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.LPRN, KC.RPRN, KC.F12, _______, _______, KC.HOME, KC.END, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY
],
[ # RAISE
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.BSPC,
KC.GRV, KC.N1, KC.N2, KC.N3, KC.N4, KC.N5, KC.N6, KC.N7, KC.N8, KC.N9, KC.N0, KC.DEL,
_______, KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.MINS, KC.EQL, KC.LBRC, KC.RBRC, KC.BSLS,
KC.CAPS, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, _______, _______, KC.F12, _______, _______, KC.PGDN, KC.PGUP, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC.MNXT, KC.VOLD, KC.VOLU, KC.MPLY
],
[ # ADJUSTs
KC.F1, KC.F2, KC.F3, KC.F4, KC.F5, KC.F6, KC.F7, KC.F8, KC.F9, KC.F10, KC.F11, KC.F12,
_______, KC.RESET, KC.DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, KC.DEL,
_______, _______, _______, _______, _______, KC.CG_NORM, KC.CG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD
]
]
if __name__ == '__main__':
keyboard.go()

View File

@@ -9,5 +9,5 @@ kb_BlueMicro840.py is designed to work with the BlueMicro840
Retailers (USA)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -10,6 +10,6 @@ Retailers (USA)
[BlueMicro Store on Tindie](https://www.tindie.com/products/jpconstantineau/pykey60-rgb-keyboard-pcb-with-a-rp2040/)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -10,6 +10,6 @@ Retailers (USA)
[BlueMicro Store on Tindie](https://www.tindie.com/products/jpconstantineau/47-keys-rgb-keyboard-using-raspberry-pi-pico/)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -10,6 +10,6 @@ Retailers (USA)
[BlueMicro Store on Tindie](https://www.tindie.com/products/jpconstantineau/43-keys-rgb-keyboard-using-raspberry-pi-pico/)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -10,6 +10,6 @@ Retailers (USA)
[BlueMicro Store on Tindie](https://www.tindie.com/products/jpconstantineau/low-profile-44-keys-rgb-keyboard-pcb-with-a-rp2040/)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -11,6 +11,6 @@ Retailers (USA)
[BlueMicro Store on Tindie](https://www.tindie.com/products/jpconstantineau/44-keys-rgb-keyboard-using-raspberry-pi-pico/)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -2,20 +2,14 @@
A split keyboard with a 4x6 layout with additional 4 thumb buttons
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,35 +1,28 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[1],
board.pins[6],
)
row_pins = (board.P1_00, board.P0_11, board.P1_04, board.P0_08, board.P0_22)
col_pins = (
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
)
diode_orientation = DiodeOrientation.COLUMNS
led_pin = board.pins[11]
rgb_pixel_pin = pins[0]
led_pin = board.P1_06
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 12
i2c = board.I2C
data_pin = board.pins[5]
data_pin = board.P0_20
powersave_pin = board.P0_13
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 35, 34, 33, 32, 31, 30,
6, 7, 8, 9, 10, 11, 41, 40, 39, 38, 37, 36,

View File

@@ -2,21 +2,14 @@
A split keyboard with a 4x6 layout
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,24 +1,23 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (board.pins[6], board.pins[8], board.pins[9], board.pins[10])
row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04)
col_pins = (
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 12
led_pin = board.pins[11]
data_pin = board.pins[1]
led_pin = board.P1_06
data_pin = board.P0_08
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -2,21 +2,15 @@
A split keyboard with a 5x6 layout
kb.py is designed to work with the nice!nano
kb_converter.py is designed to work with an itsybitsy with converter board found [here](/hardware)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,29 +1,23 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
board.pins[6],
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[11],
)
row_pins = (board.P0_22, board.P1_00, board.P0_11, board.P1_04, board.P1_06)
col_pins = (
board.pins[1],
board.pins[18],
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.P0_08,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 12
data_pin = board.pins[1]
led_pin = board.pins[12]
data_pin = board.P0_08
led_pin = board.P0_09
i2c = board.I2C
powersave_pin = board.P0_13

46
boards/klarank.py Normal file
View File

@@ -0,0 +1,46 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.modules.layers import Layers
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
# Implements what used to be handled by KMKKeyboard.swap_indicies for this
# board, by flipping various row3 (bottom physical row) keys so their
# coord_mapping matches what the user pressed (even if the wiring
# underneath is sending different coordinates)
_r3_swap_conversions = {3: 9, 4: 10, 5: 11, 9: 3, 10: 4, 11: 5}
def r3_swap(col):
try:
return _r3_swap_conversions[col]
except KeyError:
return col
class KMKKeyboard(_KMKKeyboard):
# physical, visible cols (SCK, MO, MI, RX, TX, D4)
# physical, visible rows (10, 11, 12, 13) (9, 6, 5, SCL)
col_pins = (board.SCK, board.MOSI, board.MISO, board.RX, board.TX, board.D4)
row_pins = (
board.D10,
board.D11,
board.D12,
board.D13,
board.D9,
board.D6,
board.D5,
board.SCL,
)
rollover_cols_every_rows = 4
diode_orientation = DiodeOrientation.COLUMNS
coord_mapping = []
coord_mapping.extend(ic(0, x, 12) for x in range(12))
coord_mapping.extend(ic(1, x, 12) for x in range(12))
coord_mapping.extend(ic(2, x, 12) for x in range(12))
coord_mapping.extend(ic(3, r3_swap(x), 12) for x in range(12))
layers_ext = Layers()
modules = [layers_ext]

View File

@@ -9,9 +9,11 @@ was designed with QMK in mind and KMK implementation is not officially supported
Keyboard works with controllers having Pro Micro layout. Existing configurations:
| PCB version | Board | Config file |
|:-----------:|-------------------------------------|---------------------------|
| 1.* | Any quickpin pro micro based board. | kb_v1_ |
| 2.* | Any quickpin pro micro based board. | _waiting for pinout docs_ |
|:-----------:|----------------------------------------------------------------------|---------------------------|
| 1.* | [SparkFun Pro Micro RP2040](https://www.sparkfun.com/products/18288) | kyria_v1_rp2040 |
| 1.* | [Adafruit KB2040](https://www.adafruit.com/product/5302) | kyria_v1_kb2040 |
| 2.* | [SparkFun Pro Micro RP2040](https://www.sparkfun.com/products/18288) | _waiting for pinout docs_ |
| 2.* | [Adafruit KB2040](https://www.adafruit.com/product/5302) | _waiting for pinout docs_ |
## Compatibility issues
@@ -28,15 +30,15 @@ Current layout is based on default [QMK Kyria layout](https://config.qmk.fm/#/sp
It has the following modules/extensions enabled:
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Layers](/docs/en/layers.md) Do you need more keys than switches? Use
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Layers](/docs/layers.md) Do you need more keys than switches? Use
layers.
- [ModTap](/docs/en/modtap.md) Enable press/hold double binding of keys
- [MediaKeys](/docs/en/media_keys.md) Common media controls
- [ModTap](/docs/modtap.md) Enable press/hold double binding of keys
- [MediaKeys](/docs/media_keys.md) Common media controls
Also uncomment right section to enable samples of following:
- [RGB](/docs/en/rgb.md) Turn on the backlight (**requires neopixel.py
- [RGB](/docs/rgb.md) Turn on the backlight (**requires neopixel.py
library to work**)
- [Encoder](docs/encoder.md) Make the knobs do something
@@ -49,11 +51,3 @@ Because of the above, besides of normal installation steps, you have to also:
- install Circuit Python in 7.2+ version
- add `adafruit_pioasm.mpy` library to lib or root folder of a board
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```

View File

@@ -1,26 +1,27 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
col_pins = (
pins[19],
pins[18],
pins[17],
pins[16],
pins[15],
pins[14],
pins[13],
pins[12],
board.A3,
board.A2,
board.A1,
board.A0,
board.SCK,
board.MISO,
board.MOSI,
board.D10,
)
row_pins = (pins[10], pins[9], pins[8], pins[6])
row_pins = (board.D8, board.D7, board.D6, board.D4)
diode_orientation = DiodeOrientation.COL2ROW
data_pin = pins[1]
rgb_pixel_pin = pins[0]
encoder_pin_0 = pins[11]
encoder_pin_1 = pins[7]
data_pin = board.D1
rgb_pixel_pin = board.D0
encoder_pin_0 = board.D9
encoder_pin_1 = board.D5
coord_mapping = []
coord_mapping.extend(ic(0, x, 8) for x in range(6))

View File

@@ -0,0 +1,34 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.D29,
board.D28,
board.D27,
board.D26,
board.D22,
board.D20,
board.D23,
board.D21,
)
row_pins = (board.D8, board.D7, board.D6, board.D4)
diode_orientation = DiodeOrientation.COL2ROW
data_pin = board.RX
rgb_pixel_pin = board.D0
encoder_pin_0 = board.D9
encoder_pin_1 = board.D5
coord_mapping = []
coord_mapping.extend(ic(0, x, 8) for x in range(6))
coord_mapping.extend(ic(4, x, 8) for x in range(5, -1, -1))
coord_mapping.extend(ic(1, x, 8) for x in range(6))
coord_mapping.extend(ic(5, x, 8) for x in range(5, -1, -1))
coord_mapping.extend(ic(2, x, 8) for x in range(8))
coord_mapping.extend(ic(6, x, 8) for x in range(7, -1, -1))
coord_mapping.extend(ic(3, x, 8) for x in range(3, 8))
coord_mapping.extend(ic(7, x, 8) for x in range(7, 2, -1))

View File

@@ -2,29 +2,19 @@
![Lily58](https://boardsource.imgix.net/af3d8d6d-5fbe-4578-a2ba-d09d7686fb29.jpg?raw=true)
The Lily58 is a 58 key split keyboard design by kata0510, featuring a 6x4
columnar stagger and 4 thumb cluster keys on each hand. The Lily58 is a perfect
choice for people who want to be on a split keyboard but still want to have a
fairly standard amount of keys.
The Lily58 is a 58 key split keyboard design by kata0510, featuring a 6x4 columnar stagger and 4 thumb cluster keys on each hand. The Lily58 is a perfect choice for people who want to be on a split keyboard but still want to have a fairly standard amount of keys.
Hardware Availability: [PCB & Case Source](https://github.com/kata0510/Lily58)
kb.py is designed to work with the nice!nano
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ec9df84c6b834480de6c3d0)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [BLE_Split](/docs/en/split.md) Connects halves without wires
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [BLE_Split](/docs/split.md) Connects halves without wires
Common Extensions
- [Split](/docs/en/split.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,34 +1,27 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
col_pins = (
board.pins[17],
board.pins[16],
board.pins[15],
board.pins[14],
board.pins[13],
board.pins[12],
)
row_pins = (
board.pins[7],
board.pins[8],
board.pins[9],
board.pins[10],
board.pins[11],
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
board.P0_09,
)
row_pins = (board.P0_24, board.P1_00, board.P0_11, board.P1_04, board.P1_06)
diode_orientation = DiodeOrientation.COLUMNS
uart_pin = board.pins[1]
rgb_pixel_pin = pins[0]
data_pin = board.pins[1]
uart_pin = board.P0_08
rgb_pixel_pin = board.P0_06
data_pin = board.P0_08
i2c = board.I2C
powersave_pin = board.P0_13
# flake8: noqa
# fmt: off
coord_mapping = [
0, 1, 2, 3, 4, 5, 36, 35, 34, 33, 32, 31,
6, 7, 8, 9, 10, 11, 42, 41, 40, 39, 38, 37,

View File

@@ -10,8 +10,8 @@ Retailers (USA)
[KeyHive](https://keyhive.xyz/shop/may-pad)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -10,8 +10,8 @@ Retailers (USA)
[KeyHive](https://keyhive.xyz/shop/navi10)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -23,6 +23,6 @@ use CircuitPython's `keypad.Keys` module instead of the regular KMK matrix scann
- [Keybow 2040](https://core-electronics.com.au/pimoroni-keybow-2040-tactile-keys.html)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up (Keybow only so far)
- [MediaKeys](/docs/en/media_keys.md) Control volume and other media functions
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up (Keybow only so far)
- [MediaKeys](/docs/media_keys.md) Control volume and other media functions

View File

@@ -0,0 +1,20 @@
# Reviung39
![Reviung39](https://boardsource.imgix.net/d6215164-6100-4b72-b355-1a67b7704463.jpg?raw=true)
Reviung39 is a 39 key keyboard designed by gtips. The Reviung39 sits somewhere between an Atreus and a Corne, you get some nice ergonomic benefits based on its quasi-split design and since a true split keyboard isn't for everyone, this is an awesome middle ground. I find this keyboard extremely comfortable to use.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ecb734486879c9a0c22dab3)
Extensions enabled by default
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [ModTap](/docs/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life

27
boards/reviung39/kb.py Normal file
View File

@@ -0,0 +1,27 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
)
col_pins = (
board.P0_22,
board.P0_24,
board.P1_00,
board.P0_11,
board.P1_04,
board.P1_06,
)
diode_orientation = DiodeOrientation.COLUMNS
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -0,0 +1,20 @@
# Reviung41
![Reviung41](https://boardsource.imgix.net/ea77f3f8-6cc4-4cb4-a801-cf58b5af8fcc.jpg?raw=true)
The Reviung41 is a 41 key keyboard designed by gtips, it is a slightly larger version of the popular Reviung 39. These "split non-split" keyboards offer a lot of features split keyboards have in terms of comfort and ergonomics but do so in a single-piece package. Many people consider keyboards in this style easier to travel with since you don't have to manage two halves and there is of course no need for a TRRS cable. This board sits somewhere between and Atreus and Corne, and it is extremely comfortable to use.
kb.py is designed to work with the nice!nano
Hardware Availability: [PCB & Case Data](https://github.com/gtips/reviung/tree/master/reviung41)
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5f2ef1b52bf5e8714a60f613)
Extensions enabled by default
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
- [ModTap](/docs/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,33 +1,33 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners import intify_coordinate as ic
class KMKKeyboard(_KMKKeyboard):
col_pins = (
pins[6],
pins[7],
pins[8],
pins[9],
pins[10],
pins[11],
board.P0_22,
board.P0_24,
board.P1_00,
board.P0_11,
board.P1_04,
board.P1_06,
)
row_pins = (
pins[19],
pins[18],
pins[17],
pins[16],
pins[15],
pins[14],
pins[13],
board.P0_31,
board.P0_29,
board.P0_02,
board.P1_15,
board.P1_13,
board.P1_11,
board.P0_10,
)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 11
i2c = board.I2C
powersave_pin = board.P0_13
coord_mapping = []
coord_mapping.extend(ic(0, x, 12) for x in range(12))

View File

@@ -2,28 +2,18 @@
![rhymestone](https://boardsource.imgix.net/0968c21e-ed0c-47ec-ae5e-511ec6eb3bd2.jpg?raw=true)
The Rhymestone is 40-key ortholinear split keyboard. Originally the Rhymestone
was created to be sold alongside the Treadstone and used as either a Macro pad
or a 10-key numpad, hence the similar naming conventions. However; the
Rhymestone is also often used as a standalone split keyboard by people who
prefer a 5 column ortholinear layout.
The Rhymestone is 40-key ortholinear split keyboard. Originally the Rhymestone was created to be sold alongside the Treadstone and used as either a Macro pad or a 10-key numpad, hence the similar naming conventions. However; the Rhymestone is also often used as a standalone split keyboard by people who prefer a 5 column ortholinear layout.
kb.py is designed to work with the nice!nano
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5ecb6aee86879c9a0c22da89)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/en/split_keyboards.md) Connects halves without wires
- [ModTap](/docs/en/modtap.md) Allows mod keys to act as different keys when tapped.
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [BLE_Split](/docs/split_keyboards.md) Connects halves without wires
- [ModTap](/docs/modtap.md) Allows mod keys to act as different keys when tapped.
Common Extensions
- [Split](/docs/en/split_keyboards.md) Connects halves using a wire
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Split](/docs/split_keyboards.md) Connects halves using a wire
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,21 +1,15 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (board.pins[19], board.pins[18], board.pins[17], board.pins[16])
col_pins = (
board.pins[6],
board.pins[7],
board.pins[8],
board.pins[9],
board.pins[10],
)
row_pins = (board.P0_31, board.P0_29, board.P0_02, board.P1_15)
col_pins = (board.P0_22, board.P0_24, board.P1_00, board.P0_11, board.P1_04)
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = pins[0]
rgb_pixel_pin = board.P0_06
rgb_num_pixels = 40
data_pin = board.pins[1]
data_pin = board.P0_08
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -13,10 +13,10 @@ Retailers
[Ergomech Store (Vietnam)](https://ergomech.store/shop/product/sofle-v2-2#attr=5,23)
Extentions enabled by default
- [Layers](/docs/en/layers.md) "Layers module adds keys for accessing other layers."
- [Split](/docs/en/split_keyboards.md) Connects halves with or without wires (currently uses wires)
- You must add the `adafruit_pioasm.mpy` to the `lib` folder on the RP2040 for this code to work. More about this is described [here](/docs/en/split_keyboards.md#rp2040-pio-implementation).
- [Encoder](/docs/en/encoder.md) "Add twist control to your keyboard!"
- [Layers](/docs/layers.md) "Layers module adds keys for accessing other layers."
- [Split](/docs/split_keyboards.md) Connects halves with or without wires (currently uses wires)
- You must add the `adafruit_pioasm.mpy` to the `lib` folder on the RP2040 for this code to work. More about this is described [here](/docs/split_keyboards.md#rp2040-pio-implementation).
- [Encoder](/docs/encoder.md) "Add twist control to your keyboard!"
## Notes

View File

@@ -2,24 +2,16 @@
![TG4X](https://boardsource.imgix.net/d50e1163-06dd-4c18-826e-caacd0a4a33d.jpg?raw=true)
TG4X is a 45% staggered keyboard, compared to a standard 40% stagger it has one
additional column which makes it an approachable and highly use-able 40%-ish
stagger.
TG4X is a 45% staggered keyboard, compared to a standard 40% stagger it has one additional column which makes it an approachable and highly use-able 40%-ish stagger.
kb.py is designed to work with the nice!nano
Retailers (USA)
[Boardsource](https://boardsource.xyz/store/5eff7ead037395179221b90c)
Extensions enabled by default
- [Layers](/docs/en/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/en/rgb.md) Light it up
- [Layers](/docs/layers.md) Need more keys than switches? Use layers.
- [RGB](/docs/rgb.md) Light it up
Common Extensions
- [Power](/docs/en/power.md) Powersaving features for battery life
## Microcontroller support
Update this line in `kb.py` to any supported microcontroller in `kmk/quickpin/pro_micro`:
```python
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
```
- [Power](/docs/power.md) Powersaving features for battery life

View File

@@ -1,31 +1,31 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
class KMKKeyboard(_KMKKeyboard):
row_pins = (
board.pins[11],
board.pins[10],
board.pins[9],
board.pins[8],
board.pins[7],
board.pins[6],
board.pins[5],
board.pins[4],
board.P1_06,
board.P1_04,
board.P0_11,
board.P1_00,
board.P0_24,
board.P0_22,
board.P0_20,
board.P0_17,
)
col_pins = [
pins[0],
board.pins[14],
board.pins[15],
board.pins[16],
board.pins[17],
board.pins[18],
board.pins[19],
board.P0_06,
board.P1_11,
board.P1_13,
board.P1_15,
board.P0_02,
board.P0_29,
board.P0_31,
]
diode_orientation = DiodeOrientation.COLUMNS
rgb_pixel_pin = board.pins[1]
rgb_pixel_pin = board.P0_08
rgb_num_pixels = 6
i2c = board.I2C
powersave_pin = board.P0_13

View File

@@ -1,10 +1,10 @@
import board
from kmk.kmk_keyboard import KMKKeyboard as _KMKKeyboard
from kmk.quickpin.pro_micro.avr_promicro import translate as avr
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.scanners import DiodeOrientation
from kmk.scanners.keypad import MatrixScanner
from kmk.quickpin.pro_micro.boardsource_blok import pinout as pins
from kmk.quickpin.pro_Micro.avr_promicro import avr
class KMKKeyboard(_KMKKeyboard):

View File

@@ -1,6 +1,6 @@
# Documentation index
> Before you look further, you probably want to start with our [getting started guide](/docs/en/Getting_Started.md)
> Before you look further, you probably want to start with our [getting started guide](https://github.com/KMKfw/kmk_firmware/blob/master/docs/Getting_Started.md)
## Basics
@@ -50,5 +50,5 @@
## Language versions
- [Japanese getting started](https://github.com/KMKfw/kmk_firmware/tree/master/docs/ja/Getting_Started.md)
- [Japanese getting started](ja/Getting_Started.md)
- [Brazilian Portuguese](https://github.com/KMKfw/kmk_firmware/tree/master/docs/ptBR)

View File

@@ -12,7 +12,7 @@ Let's dive in!
free to submit a pull request with your layout definitions!) and copy it over
(either manually or, if you're adept with developer tooling and/or a command
line, [our
Makefile](/docs/en/flashing.md)).
Makefile](https://github.com/KMKfw/kmk_firmware/blob/master/docs/flashing.md)).
It's definitely recommended to keep a backup of your configuration somewhere
that isn't the microcontroller itself - MCUs die, CircuitPython may run into
corruption bugs, or you might just have bad luck and delete the wrong file
@@ -59,7 +59,7 @@ print(dir(board))
- Import the global list of key definitions with `from kmk.keys import KC`. You
can either print this out in the REPL as we did with `board` above, or simply
look at [our Key
documentation](/docs/en/keycodes.md).
documentation](https://github.com/KMKfw/kmk_firmware/blob/master/docs/keycodes.md).
We've tried to keep that listing reasonably up to date, but if it feels like
something is missing, you may need to read through `kmk/keys.py` (and then
open a ticket to tell us our docs are out of date, or open a PR and fix the

View File

@@ -65,7 +65,7 @@ if __name__ == '__main__':
### フルサポートされているキーボードを持っている場合
あなたのキーボードとマイコンが正式にサポートされている場合、[こちらのページ](https://github.com/KMKfw/boards)から`kb.py``main.py`を"flash drive"のルートに落とす必要があります。より高度な手順は[こちら](config_and_keymap.md)から確認できます。
Circuitpython を使用する場合、 [boot.py](/boot.py)も必要になります。
Circuitpython を使用する場合、 [boot.py](https://github.com/KMKfw/kmk_firmware/blob/master/boot.py)も必要になります。
### ほかに自作ボードなどを持っていて、カスタマイズされた KMK を導入したい場合

View File

@@ -151,8 +151,8 @@
|`KC.PIPE` | |<code>&#124;</code>|
|`KC.COLON` |`KC.COLN` |`:` |
|`KC.DOUBLE_QUOTE` |`KC.DQUO`, `KC.DQT`|`"` |
|`KC.LEFT_ANGLE_BRACKET` |`KC.LABK` |`<` |
|`KC.RIGHT_ANGLE_BRACKET`|`KC.RABK` |`>` |
|`KC.LEFT_ANGLE_BRACKET` |`KC.LABK`, `KC.LT` |`<` |
|`KC.RIGHT_ANGLE_BRACKET`|`KC.RABK`, `KC.GT` |`>` |
|`KC.QUESTION` |`KC.QUES` |`?` |
## [International Keys]
@@ -184,7 +184,7 @@
## [Internal Keys]
|Key |Description |
|-------------------------|---------------------------------------------------------------------------------|
|-----------------------|---------------------------------------------------------------------|
|`KC.RESET` |Restarts the keyboard |
|`KC.RELOAD`, `KC.RLD` |Reloads the keyboard software, preserving any serial connections |
|`KC.DEBUG` |Toggle `debug_enabled`, which enables log spew to serial console |
@@ -194,7 +194,7 @@
|`KC.UC_MODE_LINUX` |Sets UnicodeMode to Linux |
|`KC.UC_MODE_MACOS` |Sets UnicodeMode to macOS |
|`KC.UC_MODE_WINC` |Sets UnicodeMode to WinCompose |
| `KC.MACRO_SLEEP_MS(ms)` | Sleeps in a macro. See [SEQUENCES](/docs/en/sequences.md) for more information. |
|`KC.MACRO_SLEEP_MS(ms)`|Sleeps in a macro. See [SEQUENCES](/docs/sequences.md) for more information. |
## [Modifiers]

Some files were not shown because too many files have changed in this diff Show More