2019-04-08 19:16:55 +02:00
|
|
|
# Native Node Modules
|
|
|
|
|
2019-04-09 18:57:16 +02:00
|
|
|
Since v???, the electron version of Riot can make use of native node modules.
|
|
|
|
These allow Riot to integrate with the desktop in ways that a browser cannot.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
2019-04-09 18:57:16 +02:00
|
|
|
While handy, these modules must be compiled and are thus downloaded
|
|
|
|
pre-compiled during build so that a single OS can compile Riot for all
|
|
|
|
platforms. If you would like to compile the native node modules from source,
|
|
|
|
as is done for Riot releases, instead of trusting binaries hosted on npm,
|
|
|
|
then please read on.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
2019-04-09 18:57:16 +02:00
|
|
|
Do note that compiling a module for a particular operating system
|
|
|
|
(Linux/Mac/Windows) and will need to be done on that operating system.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
|
|
|
## Compiling iohook
|
|
|
|
|
2019-04-09 18:57:16 +02:00
|
|
|
[iohook](https://github.com/matrix-org/iohook/) is a native node module
|
|
|
|
written in C/C++ that allows for cross-platform capturing of keystrokes. This
|
|
|
|
is used for providing Push-to-Talk functionality (pressing a key to toggle
|
|
|
|
the microphone in a call) and is ONLY enabled during a call and while setting
|
|
|
|
the keybinding in settings.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
2019-04-09 18:57:16 +02:00
|
|
|
If you would like to rebuild the module yourself and replace the downloaded
|
2019-07-15 16:44:00 +02:00
|
|
|
binaries, then first make sure you have the following dependencies. Then
|
|
|
|
simply execute `build-native-modules.sh` with the following flags:
|
2019-04-08 19:16:55 +02:00
|
|
|
|
|
|
|
```bash
|
2019-07-15 16:44:00 +02:00
|
|
|
./scripts/build-native-modules.sh -e 4.2.6 -a 69 -i
|
2019-04-08 19:16:55 +02:00
|
|
|
```
|
|
|
|
|
2019-07-15 16:44:00 +02:00
|
|
|
`-e` specifies the electron version, `-a` specifies the electron ABI version,
|
|
|
|
and `-i` tells the script to build iohook and then install it.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
2019-07-15 16:44:00 +02:00
|
|
|
If you'd just like to build the module without installing it, use `-I` instead.
|
2019-04-08 19:16:55 +02:00
|
|
|
|
2019-07-15 16:44:00 +02:00
|
|
|
```bash
|
|
|
|
./scripts/build-native-modules.sh -e 4.2.6 -a 69 -I
|
2019-04-08 19:41:08 +02:00
|
|
|
```
|
|
|
|
|
2019-07-15 16:44:00 +02:00
|
|
|
To then start Electron, use `npx electron .`. To package, use `build -wml -ia32 --x64`.
|