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
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
-
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
-
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
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
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
If you are using Plasma on Wayland, Kando cannot directly bind global shortcuts. Instead, you specify a shortcut ID for each menu in Kandoβs menu editor and bind a key combination for this shortcut ID in your system settings. You can bind a shortcut to the shortcut ID under the KWin section in the global shortcuts settings.
Hyprland
You will need some window rules for Kando. Else, the menu will not float above other windows.
windowrule = noblur, kandowindowrule = opaque, kandowindowrule = size 100% 100%, kandowindowrule = noborder, kandowindowrule = noanim, kandowindowrule = float, kandowindowrule = pin, 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
.
Replace example-menu
with the ID of your menu.
bind = CTRL, Space, global, kando:example-menu
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/812
Both of above can be solved by using the following config
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
Dusk
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
On some minimal desktop environments, you will have to install and use a compositor like picom
or compton
to make the transparency work.