summaryrefslogtreecommitdiff
path: root/README.md
blob: eb4f2b726f9ad619e5dc389b99f8360545aad688 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# Wally

Flash your [ZSA Keyboard](https://ergodox-ez.com) the EZ way.

ℹ️ Windows users: [There's a new version of Wally](https://github.com/zsa/wally-win/) rewritten from the ground up using native technologies.

ErgoDox EZ users: [Teensy Loader](https://www.pjrc.com/teensy/loader.html) will still work for flashing your ErgoDox EZ (as will Wally — you've got options!).

## Getting started

⚠️ Warning starting from firmware v19, Wally needs to be updated to v2.1.0 in order to detect your keyboard. Linux users should update their udev rules using the latest version from [the wiki](https://github.com/zsa/wally/wiki/Live-training-on-Linux).

Wally comes in two flavors, a GUI and a CLI app.
Download the application for your favorite platform from the relevant release page: [GUI](https://github.com/zsa/wally/releases) / [CLI](https://github.com/zsa/wally-cli/releases).

Note for Linux users, follow the instructions from our [wiki page](https://github.com/zsa/wally/wiki/Linux-install) before running the application.

Note for Mac OS users, the CLI requires libusb to be installed: `brew install libusb`

## Contributing

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.

Wally is built using [Wails](https://wails.app/) at its core and [Preact](https://preactjs.com/) for the UI. This guide assumes you have a sane [Wails environment](https://wails.app/gettingstarted/) setup.

### Installing dev dependencies

Wally is compatible with Windows, Linux, and macOS. Developing using each platform requires some extra setup:

#### Windows

1. Install [Wails](https://wails.app/gettingstarted/windows/)
2. Setup pkg-config - see [http://www.mingw.org/wiki/FAQ](http://www.mingw.org/wiki/FAQ) "How do I get pkg-config installed?"
3. Grab and install the latest version of libusb [from here](http://sourceforge.net/projects/libusb/files/libusb-1.0/)
4. At the root of the project run `wails build`, the resulting binary will be available in the `build` folder.

#### Linux

The easiest way to compile locally is to use Docker:

Run `./build.linux.sh`, the resulting binary will be available in the `dist/linux64` directory.

An alternative method:

1. Follow the instructions from our [wiki page](https://github.com/zsa/wally/wiki/Linux-install).
2. Install [Wails](https://wails.app/gettingstarted/linux/)
3. At the root of the project run `wails build`, the resulting binary will be available in the `build` folder.

#### macOS

1. Install libusb using `brew`:

```
brew install libusb
```
2. Install [Wails](https://wails.app/gettingstarted/mac/)
3. At the root of the project run `wails build`, the resulting binary will be available in the `build` folder.

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](https://github.com/auriamg/macdylibbundler/) and run:

`dylibbundler -of -b -x ./dist/osx/Wally.app/Contents/MacOS/Wally -d ./dist/osx/Wally.app/Contents/libs/`