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 ensureto grab all the go dependencies. - Install go-bindata by running the command
go get -u github.com/jteeuwen/go-bindata/.... - Install
cross-envandwebpackby running the commandyarn global add cross-env webpackornpm i -g cross-env webpack.
Run build.win.bat
Run build.linux.sh
- Install libusb using
brew:brew install libusb. - Install
upxusingbrew: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/