HackerTrans
TopNewTrendsCommentsPastAskShowJobs

schneegans

no profile record

Submissions

Show HN: Kando – A cross-platform pie menu for your desktop

kando.menu
102 points·by schneegans·2 anni fa·53 comments

[untitled]

1 points·by schneegans·2 anni fa·0 comments

Kando 1.0.0 trailer (first cross-platform pie menu) [video]

youtube.com
4 points·by schneegans·2 anni fa·1 comments

comments

schneegans
·2 anni fa·discuss
He replied already above :)
schneegans
·2 anni fa·discuss
90% of Kando is not the menu itself, but the very complex WYSIWYG menu editor. For this you definitely need a framework.

But also the menu itself... I guess I could draw it using OpenGL. Proper antialiasing and font rendering will be tough, but not impossible.

Then I want transitions and animations. Have you implemented something like this before, where a user can quickly switch between various states, animations need to be aborted, restarted right in the middle and so on? It's awfully complex.

Then I want this to be themeable. Users should be able to completely define the look and feel of the menu. Themes in Kando can drastically change the way the menu looks and behaves animations wise. Why should I spend weeks or months implementing something like this from scratch even if it will never be as good as CSS?

And I haven't written about international font rendering, emojis, touch, stylus, or controller input so far. Plus you get extremely powerful debugging and performance analysis tools as part of the framework...

It all boils down to the question: Do I really want to spent months or maybe years reimplementing stuff which is already there just to save 100MB?
schneegans
·2 anni fa·discuss
Well, the WYSIWYG menu editor of Kando is one if the most complex nonstandard UI elements I have written so far. That's an aweful lot more than a few buttons.

Also, there is usually no ready-made pie menu widget in native frameworks. So you will have to draw the menu yourself with low-level shapes like boxes, circles, and text. If you want these to be themeable, if you want to have a powerful animation engine, and if you want that your scene is efficiently drawn even at high resolution with several hundreds of said shapes moving around your screen, things get quickly much more complex than you may think...

And soon you will realize that CSS and modern browser engines are exactly optimized for this.
schneegans
·2 anni fa·discuss
If I got it correctly, they would only do this on Linux to face the performance issues of the native webview. Also, there are ideas of a shared installation: https://github.com/chromiumembedded/cef/issues/3836
schneegans
·2 anni fa·discuss
Hey Don, thanks for the kind words! And yes, with the latest updates we (and I can say "we" since various discord users collaborated on this) focused a lot on refining the "brand" of Kando. With the new website and the new logo, things are taking shape really nicely!

I've written something about the new logo and icon here: https://ko-fi.com/post/A-New-Icon-for-Kando-X8X317HVLF

I am really proud if it because it fits so nicely.

The big next step will be to significantly improve the usability of the settings window. While the WYSIWYG editor is nice, it also has some issues which need to be fixed. It's always a full screen window (which is annoying) and it does not scale well to smaller screens.
schneegans
·2 anni fa·discuss
You think so? I experimented with several toolkits. Some of my thoughts I wrote down here: https://github.com/orgs/kando-menu/discussions/58

I think there's a lot of unjustified prejudice against using web technology for desktop applications...
schneegans
·2 anni fa·discuss
I tried using Tauri (would be very cool), but sadly they have severe performance issues on Linux which make an app like Kando impossible at the moment.
schneegans
·2 anni fa·discuss
Yeah, Tauri would be great. But I think it will take quite some time until the fundamental rendering performance issues [1] under Linux can be fixed. There seem to be rough plans to bundle CEF on Linux [2], but AFAICS this seems to be only a discussion at this point.

[1] https://github.com/tauri-apps/tauri/issues/3988 [2] https://github.com/tauri-apps/wry/issues/1064
schneegans
·2 anni fa·discuss
If you have both hands at your keyboard, that's 100% true. However, it really works well with workflows which rely on mouse, stylus, touch, or controller input.

Especially when used for "creative" or "artistic" tasks (e.g. painting, video editing, 3D modelling, etc.) pie menus can really have a benefit because you have your hand at the stylus or at the mouse most of the time anyways.
schneegans
·2 anni fa·discuss
Thanks! All menus are actually stored in a JSON file. The format is documented here: https://kando.menu/config-files/

So maybe it could be converted to different formats...
schneegans
·2 anni fa·discuss
Thanks for the typo pointers! It uses DOM elements. This makes it really easy to develop themes with CSS. I also did some experiments with alternatives to Electron, but found that the advantages of Electron clearly outweigh the disadvantages in this case. Here is some background information: https://github.com/orgs/kando-menu/discussions/58
schneegans
·2 anni fa·discuss
Over the past year, I have been developing Kando. It offers an unconventional, fast, highly efficient, and fun way of interacting with your computer!

You can use it to launch applications, simulate keyboard shortcuts, open files, and much more. It now runs on Windows, macOS and most Linux desktop environments.

I hope you enjoy Kando as much as I enjoyed developing it!
schneegans
·2 anni fa·discuss
I thought a lot about this. The reasons for choosing Electron are outlined here: https://github.com/orgs/kando-menu/discussions/58
schneegans
·2 anni fa·discuss
I am more thinking about tablets and convertibles. But even on a phone a similar concept could work: You summon the menu with some kind of gesture (for instance dragging over a screen edge). The menu pops up in the center of the screen and you can select an item with just a single directional swipe. If the selected item is a submenu and contains some child items, it will slide to the center of the screen and you can do another swipe to select one of the children.

So you could select an item extremely quickly with just two swipes. And there are already quite a few items at level two! If your top-level menu has eight submenu items and each submenu again contains seven items (+one to go back to the root) you have already 56 possible items in this menu. And you could select one of them in well beyond a second, even without looking at the screen!
schneegans
·2 anni fa·discuss
Exactly this. And in addition, I think there's lots of potential for touch screen users. As soon as you do not have easy access to a physical keyboard, pie menus can provide a great alternative to keyboard shortcuts.
schneegans
·2 anni fa·discuss
Hey, I am the developer of Kando. Currently, it is primarily designed for touch and mouse input. Adding gamepad support in the future would be pretty cool though! I have seen people using Kando on the Steam Deck, so this is definitely an interesting direction.