You have two options to install Kando. You can either download a pre-built package from the releases page or compile Kando yourself.
This is the easiest way to get Kando. Just head over to the releases page and download the latest version for your platform. You can either download a portable zip archive or an installer.
If you choose the portable version, you can just extract the archive and run the kando
executable.
If you choose the installer, you will find Kando in your start menu after the installation.
Tip
After downloading, make sure to read the platform-spedific notes below!
If you installed Kando with an installer, you can just run it from the start menu.
However, sometimes it is useful to run Kando from the command line in order to see the output of the application.
Depending on your platform, the kando
executable will be located in different directories:
- Windows:
%localappdata%\Kando\app-<version number>\Kando.exe
- macOS:
/Applications/Kando.app/Contents/MacOS/Kando
- Linux:
/usr/bin/kando
If you want to test the latest development version of the prototype, you will have to install node
and npm
.
You will also need cmake
for building the native backends.
Additionally, you will need a C++ toolchain.
Windows Dependencies
On Windows, you can install either Visual Studio or run this to get the build tools:
npm install -g windows-build-tools
To get node
and npm
, you can follow the official instructions.
macOS Dependencies
On macOS, you will need the Xcode Commandline Tools and CMake. The latter can easily be installed with Homebrew:
brew install cmake
To get node
and npm
, you can use nvm.
Linux Dependencies
On Linux, gcc
should already be installed.
However, some additional packages may be required for the native backend modules.
On Debian-based distributions you can install them with:
sudo apt install nodejs cmake libx11-dev libxtst-dev libwayland-dev libxkbcommon-dev
On Arch-based distributions you can install them with:
sudo pacman -S nodejs npm cmake libx11 libxtst wayland libxkbcommon
On RPM-based distributions you can install them with:
sudo dnf install nodejs cmake libX11-devel libXtst-devel wayland-devel libxkbcommon-devel
Tip
Make sure to also read the platform-spedific notes below!
Once these dependencies are installed, navigate into the Kando directory, then only these two commands are required:
npm install
npm start
Once this is running, you can press Ctrl+Space to open the test window.
To create an executable compiled in release mode, run this:
npm install
npm run package
This will create a directory in the out/
directory containing the kando
executable.
To create a distributable archive, just run this:
npm install
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
andKANDO_OSX_NOTARIZE
are set totrue
, the build process will try to sign and notarize the application.
- On macOS, you will have to grant Kando Accessibility and Screen Recording permissions in the system settings. Accessibility permissions are required to simulate key presses and move the mouse cursor. Screen Recording permissions are required to get the name of the currently focused window.
- On GNOME / Wayland you will also need to install the adapter extension.
- On KDE / Wayland and Hyprland you cannot directly bind global shortcuts. Instead, you specify a shortcut ID in the editor and bind a key combination in the desktop environment settings. On KDE you find your given shortcut ID under the KWin section in the global shortcuts settings. On Hyprland you can bind the shortcut using
bind = CTRL, Space, global, kando:<trigger-id>
for instance. - Per default, Kando runs under XWayland on Wayland compositors. If you want to run it natively, you can set the environment variable
ELECTRON_OZONE_PLATFORM_HINT=wayland
before starting Kando. This is not yet fully tested but should work on most distributions. - On Hyprland, you will need some window rules for Kando:
windowrule = noblur, kando windowrule = size 100% 100%, kando windowrule = noborder, kando windowrule = noanim, kando windowrule = float, kando windowrule = pin, kando
- During compilation, a pre-install script hook is used to remove the
productName
from thepackage.json
file. This is the only reliable way I have found to make Electron use a lower-case config directory on Linux (~/.config/kando
) and an upper-case application name ("Kando") on Windows and macOS. As a consequence, thepackage.json
file will always contain changes after the build process. This is not a problem, but it may be confusing. - On some 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
during build, you can fix it by running these commands:sudo chmod 4755 node_modules/electron/dist/chrome-sandbox sudo chown root node_modules/electron/dist/chrome-sandbox