Skip to content

Compile Kando from Source

banner

If you want to test the latest development version of Kando, or want to contribute code, you will have to compile Kando from source.

Intalling Dependencies

You will need Git, NodeJS, CMake, and a C++ toolchain. There are several ways to install these on Windows. Here is a common way to get them:

  1. Install Git. They have an easy-to-use installer.

  2. Install nvm-windows. They have an easy-to-use installer. This will install the latest version of NodeJS alongside npm, the package manager for NodeJS.

  3. Install CMake. They have an installer for Windows as well.

  4. To get the Microsoft MSVC toolchain, you can install either Visual Studio or run this:

    Terminal window
    npm install -g windows-build-tools

Cloning the Repository

First, you will need to clone the Kando repository. Open a terminal and navigate to a directory where you want the sources of Kando and clone the repository:

Terminal window
cd "path/to/your/directory"
git clone https://github.com/kando-menu/kando.git

Downloading Required Node Modules

Navigate into the cloned kando directory and run the following command. This only needs to be done once, or when the dependencies change. It will download all required dependencies into the node_modules directory.

Terminal window
cd kando
npm install

Running Kando

Finally, you can start the application:

Terminal window
npm start

Once this is running, you can press Ctrl+Space to open the example menu.

If started this way, Kando will run in development mode. This means that any changes to the source code (at least to the renderer process) will be applied immediately. So you usually don’t have to restart the application after changing the code.

Creating a Release Executable

To create an executable compiled in release mode, run the following command. This will create a directory in the out/ directory containing the kando executable.

Terminal window
npm run package

Creating a Distributable Package

To create a distributable archive, just run this:

Terminal window
npm run make

This will create several packages in the out/ directory.

  • On Windows, it will create a Squirrel installer and a portable zip archive.
  • On Linux, it will create Debian, an RPM and a portable zip archive.
  • On macOS, it will create a DMG file and a portable zip archive. If the environment variables KANDO_OSX_SIGN and KANDO_OSX_NOTARIZE are set to true, the build process will try to sign and notarize the application.

Known Issues

On some Linux distributions, you may encounter the error The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. This is related to this issue and can be fixed by running these commands:

Terminal window
sudo chmod 4755 node_modules/electron/dist/chrome-sandbox
sudo chown root node_modules/electron/dist/chrome-sandbox