8000 GitHub - kando-menu/kando at v0.2.0
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kando-menu/kando

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Warning

This project is currently in a very early stage of development. Kando is not yet a functional menu but rather a prototype which demonstrates the feasibility of the concept. You can read regular updates on the project on my Ko-fi page.

checks reuse sponsors license

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 maybe macOS.

The Vision

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

The prototype already features the same interaction methods as Fly-Pie (point-and-click, marking mode, and turbo mode).

Implementing a menu like Kando is pretty hard on Wayland. Things like getting the mouse position before opening a window, simulating key presses, or getting the name of the currently focused application window is not easily possible.

Nevertheless, I have managed to implement the prototype for several Wayland-based desktop environments. I have tested it on the following platforms:

TestedΒ Environment Status Notes
Β Windows 10 βœ”οΈ
Β Windows 11 βœ”οΈ
 MacOS ❌ Not yet supported, but I plan to add support for it in the future.
Β 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.
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 ❌ Could actually work, but I haven't managed to properly get the transparency to work even with a compositor.

⬇️ Installation

You can either download a pre-built package from the releases page or build the prototype 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

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

On Windows, you can install either Visual Studio or run this:

npm install -g windows-build-tools

Linux

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 cmake libx11-dev libxtst-dev libwayland-dev libxkbcommon-dev

On Arch-based distributions you can install them with:

sudo pacman -S cmake libx11 libxtst wayland libxkbcommon

On RPM-based distributions you can install them with:

sudo dnf install cmake libX11-devel libXtst-devel wayland-devel libxkbcommon-devel

On GNOME under Wayland you will also need to install the adapter extension.

πŸš€ Running the Prototype

Once these dependencies are installed, only these two commands are required:

npm install
npm start

Once this is running, you can press Ctrl+Space to open the test window.

πŸ“¦ Creating a Release Executable

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.

🚒 Creating a Distributable Package

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.

πŸ’ž I want to contribute!

kofi github paypal crypto

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 this post 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:

Sponsors

Credits

This README uses icons from Simple Icons.

0