Warning
This project is currently in a very early stage of development. Especially, Kando does not have a fully functional menu editor yet. If you want to use Kando already today, you will have to edit your menus in JSON files. You can read regular updates on the project on my Ko-fi page.
Kando will be a pie menu for the desktop. It will be highly customizable and will allow you to create your own menus and actions. For instance, you can use it to control your music player, to open your favorite websites or to simulate shortcuts. It will be available for Windows, Linux and macOS.
I am the developer of Fly-Pie, which is a similar project but limited to the GNOME desktop. I have been working on Fly-Pie for more than 3 years now and I am very happy with the result. However, I have always wanted to create a similar application for the desktop in general. This is why I started this project.
Kando is very similar to Fly-Pie in terms of interaction and appearance. At the same time, there will be some major differences. You can read more in this blog post!
The prototype already features the same interaction methods as Fly-Pie (point-and-click, marking mode, and turbo mode).
Implementing a menu like Kando in a cross-platform manner 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 has to be implemented differently on each platform.
For now, I have tested Kando on the following platforms:
Tested Environment | Status | Notes |
---|---|---|
Windows | ✔️ | Tested on Windows 11. |
macOS | ✔️ | Tested on macOS 11. |
GNOME / X11 | ✔️ | |
GNOME / Wayland | ✔️ | Requires adapter GNOME Shell extension which provides a DBus interface for Kando to communicate with. |
KDE / X11 | ✔️ | |
KDE / Wayland | ✔️ | Uses the KWin Scripting API and the Remote-Desktop Portal to implement the required functionality. It works both on Plasma 5 and Plasma 6. |
Hyprland | ✔️ | Uses some wlroots Wayland protocols, the hyprctl command line tool and the Hyprland Global Shortcuts protocol to implement the required functionality. |
XFCE | ✔️ | |
MATE | ✔️ | |
Budgie | ✔️ | |
Cinnamon | ✔️ | |
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. |
You can either ⬇️ download a pre-built package from the releases page or 🚀 compile Kando yourself. With a pre-built package, you can just run the executable; no installation is required.
Important
If you are using GNOME under Wayland, you will also need to install the 🐚 adapter extension!
Manual compilation is only required if you want to test the latest development version of the prototype or if you want to contribute to the project.
For now, the prototype only comes with an example menu which does not do anything useful. However, if you want to get your hands dirty, you can already create custom menus and actions by editing the config files! This way, the prototype can do something useful already. You can read more about this in the 📝 documentation.
That's great! If you like the idea of Kando, you can help in many ways:
- Discuss the idea! Tell me what you think about Kando and what features you would like to see. You can do this by opening a discussion.
- Spread the word! Tell your friends about Kando and share the project on social media.
- Contribute code! If you are a developer, you can help me with the implementation. I have never worked with Electron before, so I'm sure there is a lot of room for improvement. Please read the contributing guidelines for more information!
While direct contributions are the most awesome way to support the development, donations will encourage me to invest my spare time for developing free and open-source software.
These awesome people have already donated to the development of my open-source projects:
This README uses icons from Simple Icons.