On Linux, you can either install Kando from your package manager, or via any of the pre-packaged binaries from GitHub releases.
Installing Kando on Linux
Supported Desktop Environments
Section titled “ Supported Desktop Environments”Implementing a menu like Kando for various desktop environments is not exactly easy. Things like getting the mouse position before opening a window, simulating key presses, or getting the name of the currently focused application window may have to be implemented differently.
Environment | Status | Notes |
---|---|---|
GNOME / X11 | ✅ | |
GNOME / Wayland | ✅ | Requires adapter GNOME Shell extension which provides a DBus interface for Kando to communicate with. |
KDE / X11 | ✅ | |
KDE / Wayland | ✅ | Works both on Plasma 5 and Plasma 6. See below for how to bind global shortcuts. |
Cosmic | ❌ | Contributions are welcome! Read the corresponding feature request. |
Hyprland | ✅ | See below for the required configs. |
Cinnamon | ✅ | |
XFCE | ✅ | |
MATE | ✅ | |
Budgie | ✅ | |
LXQt | ✅ | |
LXDE | ✅ | Requires a compositor for the transparency to work. |
Openbox | ✅ | Requires a compositor for the transparency to work. |
i3 | ✅ | Requires a compositor for the transparency to work. |
dusk | ✅ | Requires a compositor for the transparency to work. See below for the required config. |
Qtile | ➖ | It works with some flaws. Contributions are welcome! Read the corresponding bug report. |
Niri | ❌ | Contributions are welcome! Read the corresponding feature request. |
Installation via a Package Manager
Section titled “ Installation via a Package Manager”-
Kando is already available in several package managers.
Kando is available on Flathub.
Terminal window flatpak install flathub menu.kando.KandoYou can install
kando-bin
from the AUR.Terminal window yay -S kando-binA
kando
package is available in Nixpkgs.Terminal window nix-shell -p kandoYou can install Kando from the AppMan package manager.
Terminal window am -i kando -
After the installation, you can start Kando from your application launcher! Not much will happen, as Kando is a tray application and will run in the background.
-
On most X11 based distributions, you can now press Ctrl + Space to open the example menu!
Installation via a Pre-Packaged Binary
Section titled “ Installation via a Pre-Packaged Binary”-
Just head over to the releases page and download a package that fits your distribution.
On Ubuntu and other Debian-based distributions, you can download the
Kando_*_amd64.deb
package.On Fedora and other RPM-based distributions, you can download the
Kando-*.x86_64.rpm
package.The
Kando-*-x86_64.AppImage
package is a universal package that should work on most distributions.The
Kando-linux-x64-*.zip
package is a generic package that should work on most distributions. -
Install the package. The AppImage and Zip Archive packages are standalone and can be run directly. The other packages need to be installed.
Terminal window sudo dpkg -i Kando_*_amd64.debAfter the installation, you can start Kando from your application launcher! Not much will happen, as Kando is a tray application and will run in the background.
Terminal window sudo rpm -i Kando-*.x86_64.rpmAfter the installation, you can start Kando from your application launcher! Not much will happen, as Kando is a tray application and will run in the background.
Terminal window chmod +x Kando-*-x86_64.AppImage./Kando-*-x86_64.AppImageTerminal window unzip Kando-linux-x64-*.zip./Kando-linux-x64/kando -
On most X11 based distributions, you can now press Ctrl + Space to open the example menu!
Desktop Specifics
Section titled “Desktop Specifics”Implementing a menu like Kando on Wayland is not exactly easy. Things like getting the mouse position before opening a window, simulating key presses, or getting the name of the currently focused application window does not work out of the box. Therefore, Kando needs some additional setup on Wayland based desktop environments. There are also some X11 based desktop environments that need some additional setup.
GNOME on Wayland
Section titled “ GNOME on Wayland”You will also need to install the 🐚 Kando Integration Extension. Via a D-Bus interface, it provides the name of the currently focused window, and the current mouse pointer position. Furthermore, it allows registering and simulating keyboard shortcuts.
KDE Plasma on Wayland
Section titled “ KDE Plasma on Wayland”If you are using Plasma on Wayland, Kando cannot directly bind global shortcuts. Instead, it uses the Global-Shortcuts Desktop Portal. This means, you specify a shortcut ID for each menu in Kando’s menu editor. Once you inserted an ID, the KDE’s system settings will pop up automatically and you can assign a shortcut to the ID.
It is perfectly fine to use the same shortcut ID for multiple menus. Use this in combination with the app-dependent menu feature to open different menus depending on the currently focused application!
Hyprland
Section titled “ Hyprland”You will need some window rules for Kando. Else, the menu will not float above other windows.
windowrule = noblur, class:kandowindowrule = opaque, class:kandowindowrule = size 100% 100%, class:kandowindowrule = noborder, class:kandowindowrule = noanim, class:kandowindowrule = float, class:kandowindowrule = pin, class:kando
Also, Kando cannot directly bind global shortcuts on Hyprland.
Instead, you specify a shortcut ID for each menu in Kando’s menu editor and bind a key combination in hyprland.conf
.
To get the exact shortcut ID, you can use hyperctl globalshortcuts
to list all currently registered global shortcuts.
If you run the flatpak version of Kando and chose example-menu
as the shortcut ID, you can would bind it like this:
bind = CTRL, Space, global, menu.kando.Kando:example-menu
Furthermore
Section titled “Furthermore”-
Toggling Special-Workspace through kando-menu will be glitchy (i.e in some cases special-workspace will reopen instead of closing). See https://github.com/kando-menu/kando/issues/784
-
After triggering kando-menu-item of type
Run command
whose target isactivewindow
will not work correctly as by default Hyprland restores focus_on_close to next candidate window. See https://github.com/kando-menu/kando/issues/812Both of above can be solved by using the following config
~/.config/hypr/hyprland.conf input {special_fallthrough = true # having only floating windows in the special workspace will not block focusing windows in the regular workspace.focus_on_close = 1 # focus will shift to the window under the cursor.} -
Using the solution for 2nd step might not work in situations where the target window is small as you will travel out of target area while activating items from sub-menu. For that you can use
hyprctl dispatcher focusurgentorlast
orhyprctl dispatcher focuscurrentorlast
instead. See https://wiki.hyprland.org/Configuring/Dispatchers/#list-of-dispatchers
On Dusk, you will have to install and use a compositor like picom
or compton
to make the transparency work.
Also, you will need some window rules for Kando:
static const Rule clientrules[] = { { .class = "kando", .flags = FullScreen }, //kando should be on top of DOCK clientrule { .wintype = WTYPE "DESKTOP", .flags = Unmanaged|Lower }, { .wintype = WTYPE "DOCK", .flags = Unmanaged|Raise },};
LXDE, i3, Openbox, and others
Section titled “LXDE, i3, Openbox, and others”On some minimal desktop environments, you will have to install and use a compositor like picom
or compton
to make the transparency work.