Flash your ZSA Keyboard the EZ way.
ℹ️ Windows users: There's a new version of Wally rewritten from the ground up using native technologies
Wally comes in two flavors, a GUI and a CLI app. Download the application for your favorite platform from the relevant release page: GUI / CLI.
Note for Linux users, follow the instructions from our wiki page before running the application.
Note for Mac OS users, the CLI requires libusb to be installed: brew install libusb
The following instructions apply only to those who wish to actively develop Wally and contribute new features or bugfixes to this open-source project. If you simply want to flash your board with some fresh firmware, see above.
Found a bug? Open an issue here.
Wally is built using Go at its core and Preact for the UI. The binding between core and UI happens using a fork of the webview package. This guide assumes you have a proper Go and NodeJS development environment running.
Wally is compatible with Windows, Linux, and macOS. Developing using each platform requires some extra setup:
- Install TDM GCC
- Setup pkg-config - see http://www.mingw.org/wiki/FAQ "How do I get pkg-config installed?"
- Grab and install the latest version of libusb from here
Follow the instructions from our wiki page or run the install.linux.sh
.
install.linux.sh
should install all needed packages according to your x86 distribution.
If you try to get wally working on a RaspberryPi, which has an ARM architecture, the script will compile the wally-cli
for you and set it as alias in your bash.
Installing should be as easy as running ./install.linux.sh
Install libusb using brew
:
brew install libusb
From the ui
folder run npm run serve
or yarn dev
to run a webpack dev server locally on port 8080
.
Run the following:
go build -tags dev -o wally
This build will bind its UI with the local webpack server.
Run the following:
go build cli/main.go -o wally-cli
- Install dep and run the command
dep ensure
to grab all the go dependencies. - Install go-bindata by running the command
go get -u github.com/jteeuwen/go-bindata/...
. - Install
cross-env
andwebpack
by running the commandyarn global add cross-env webpack
ornpm i -g cross-env webpack
.
Run build.win.bat
Run build.linux.sh
- Install libusb using
brew
:brew install libusb
. - Install
upx
usingbrew
:brew install upx
. - Run
build.osx.sh
The wally gui and cli apps should be in ./dist/osx
.
Note: the GUI app won't include libusb so it needs to be installed on the computer running it. To embed libusb into the binary, install dylibbundler and run:
dylibbundler -of -b -x ./dist/osx/Wally.app/Contents/MacOS/Wally -d ./dist/osx/Wally.app/Contents/libs/