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

Installing Dependencies
Section titled “ Installing 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:
-
Install Git. They have an easy-to-use installer.
-
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. -
Install CMake. They have an installer for Windows as well.
-
To get the Microsoft MSVC toolchain, you can install either Visual Studio or run this:
Terminal window npm install -g windows-build-tools
On macOS, you will need Git, the Xcode Commandline Tools, and CMake.
To get node and npm, you can use nvm.
CMake and Git can easily be installed with Homebrew:
brew install cmake gitIf you have Homebrew installed, you will also have the Xcode Commandline Tools installed.
On Linux, gcc and git are usually already installed.
However, some additional packages may be required for the native backend modules.
You can install them with:
sudo apt install nodejs cmake libx11-dev libxtst-dev libwayland-dev libxkbcommon-devOn Linux, gcc and git are usually already installed.
However, some additional packages may be required for the native backend modules.
You can install them with:
sudo pacman -S nodejs npm cmake libx11 libxtst wayland libxkbcommonOn Linux, gcc and git are usually already installed.
However, some additional packages may be required for the native backend modules.
You can install them with:
sudo dnf install nodejs cmake libX11-devel libXtst-devel wayland-devel libxkbcommon-develCloning the Repository
Section titled “ 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 using the commands below.
cd "path/to/your/directory"git clone https://github.com/kando-menu/kando.gitDownloading Required Node Modules
Section titled “ 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.
cd kandonpm installRunning Kando
Section titled “ Running Kando”Finally, you can start the application:
npm startOnce 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
Section titled “ 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.
npm run packageCreating a Distributable Package
Section titled “ Creating a Distributable Package”To create a distributable archive, just run this:
npm run makeThis 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_SIGNandKANDO_OSX_NOTARIZEare set totrue, the build process will try to sign and notarize the application.
Common Issues
Section titled “ Common 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:
sudo chmod 4755 node_modules/electron/dist/chrome-sandboxsudo chown root node_modules/electron/dist/chrome-sandbox