181ada66d3 | ||
---|---|---|
.vscode | ||
mock | ||
sdcard | ||
spec | ||
.busted | ||
.luacheckrc | ||
LICENSE | ||
README.md | ||
multibow.code-workspace | ||
multibow.jpg | ||
setup-tests.sh | ||
test.lua |
README.md
Multibow
GitHub: github.com/thediveo/multibow
Multibow turns a Pimoroni Keybow into a macro keyboard with multiple layouts, switchable at any time. (Keybow is a solderless DIY 4x3 mechanical USB keyboard, powered by a Raspberry Pi. And yes, these days even keyboards run Linux...)
Layouts
Debug Go in VisualStudio Code
Debug Go programs and packages in VisualStudio Code with its Go extension.
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 11 ┊ ┊ 8 ┊ ┊ 5 ┊ ┊ 2 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
╔════╗ ╔════╗ ┌╌╌╌╌┐ ╔════╗
║ 10 ║ ║ 7 ║ ┊ 4 ┊ ║ 1 ║
╚════╝ ╚════╝ └╌╌╌╌┘ ╚════╝
⏹STOP ↺RELOAD TSTPKG
╔════╗ ╔════╗ ╔════╗ ╔════╗
║ 9 ║ ║ 6 ║ ║ 3 ║ ║ 0 ║
╚════╝ ╚════╝ ╚════╝ ╚════╝
▮▶ ⭢STEP ⮧INTO ⮥OUT
- TSTPKG activates the command "go: test package".
Kdenlive Video Editor
coming soon...
SHIFT
A SHIFT key, with Keybow LED brightness and keyboard layout cycle control.
NOTE: press and hold SHIFT, then use →LAYOUT and 🔆BRIGHT. The SHIFT key is always active, regardless of keyboard layout. The other keys in this layout only become active while holding SHIFT.
╔════╗ ╔╌╌╌╌╗ ╔╌╌╌╌╗ ┌╌╌╌╌┐
║ 11 ║ ┊ 8 ┊ ┊ 5 ┊ ┊ 2 ┊
╚════╝ ╚╌╌╌╌╝ ╚╌╌╌╌╝ └╌╌╌╌┘
SHIFT →LAYOUT 🔆BRIGHT
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 10 ┊ ┊ 7 ┊ ┊ 4 ┊ ┊ 1 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 9 ┊ ┊ 6 ┊ ┊ 3 ┊ ┊ 0 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
Empty
Just as its name says: an empty keyboard layout -- useful if you want to have also "no" layout active when working with multiple keyboard layouts.
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 11 ┊ ┊ 8 ┊ ┊ 7 ┊ ┊ 6 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 10 ┊ ┊ 7 ┊ ┊ 4 ┊ ┊ 1 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐ ┌╌╌╌╌┐
┊ 9 ┊ ┊ 6 ┊ ┊ 3 ┊ ┊ 0 ┊
└╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘ └╌╌╌╌┘
Licenses
Multibow is (c) 2019 Harald Albrecht and is licensed under the MIT license, see the LICENSE file.
The file keybow.lua
included from
pimoroni/keybow-firmware for
testing purposes is licensed under the MIT license, as declared by Pimoroni's
keybow-firmware GitHub repository.
Installation
-
Download the Pibow firmware and copy all files inside its
sdcard/
subdirectory onto an empty, FAT32 formatted microSD card. Copy only the files insidesdcard/
, but do not place them into adirectory on your microSD card.sdcard
-
Download all files from the
sdcard/
subdirectory of this repository and then copy them onto the microSD card. This will overwrite but one filekey.lua
, all other files are new.
Multiple Keyboard Layouts
To enable one or more multibow keyboard layouts, edit sdcard/keys.lua
accordingly to require them. The default configuration is as follows:
require "layouts/shift" -- for cycling between layouts.
require "layouts/vsc-golang" -- debugging Go programs in VisualStudio Code.
require "layouts/empty" -- empty, do-nothing layout.
Developing
For some basic testing, run lua test.lua
from the base directory of this
repository. It pulls in keybow
, then mocks some functionality of it, and
finally starts sdcard/keys.lua
as usual.
This helps in detecting syntax and logic erros early, avoiding the rinse-and-repeat cycle with copying to microSD card, starting the Keybow hardware, and then wondering what went wrong, without any real clue.