[HN Gopher] Show HN: Kando - A cross-platform pie menu for your ...
       ___________________________________________________________________
        
       Show HN: Kando - A cross-platform pie menu for your desktop
        
       Kando is a cross-platform open source pie menu which I am currently
       developing! 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. Let me know what you think about it!
        
       Author : schneegans
       Score  : 73 points
       Date   : 2024-12-27 19:32 UTC (2 days ago)
        
 (HTM) web link (kando.menu)
 (TXT) w3m dump (kando.menu)
        
       | emacsen wrote:
       | I remember in the late 90s when there were so many alternative
       | interfaces for PCs. It was a great time for exploration on what
       | could be done.
       | 
       | Kando is very pretty, and it can be fun to use an interface like
       | this, but in terms of practicality, text inputs are better.
       | 
       | For example, on my desktop, there's an icon on my taskbar for
       | Firefox, but most of the time, I get my screen to the search bar
       | and type "F" and my system knows I probably want Firefox. Done.
       | 
       | There's a game I play, Astroneer, and it uses a pie interface. I
       | often wish I could just type in what I want. It'd be faster.
       | 
       | I want to love this, but I can type on a keyboard so much faster,
       | and use up so much less cognitive energy doing so than switching
       | my hand to the mouse, pulling up a menu, reading the symbols
       | (even if I have their location memorized) and pulling my
       | wrist/arm in the right direction.
        
         | dingnuts wrote:
         | ideally you have a button on your mouse to summon this, and use
         | it when you are already using your mouse, and summon a
         | different interface for typing from your keyboard, when your
         | hands are there
        
         | hju22_-3 wrote:
         | I agree, but I also really like the pie menus. Personally, I'd
         | like the ability to simply write to match, but otherwise
         | working as demonstrated. E.g. like the Windows search works
         | when you've hidden the search bar. I'd prefer both, in other
         | words.
        
           | snapplebobapple wrote:
           | Rofi has that search to match but iant a pie menu
        
         | schneegans wrote:
         | 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.
        
           | dr_kiszonka wrote:
           | Kando looks incredible - congrats! And I can see how it works
           | well for the use cases you described. Maybe it would be
           | possible to add keyboard support? One could use left and
           | right arrow keys to highlight an item and the up arrow key to
           | select it.
        
           | layer8 wrote:
           | Radial menus never worked for me with a mouse pointer, even
           | though I like(d) the idea in theory. It's somehow easier to
           | reliably hit traditional rectangular menu items arranged
           | linearly, then some wedge in an angle.
        
       | TripleChecker wrote:
       | Looks cool! I was surprised to see it using Electron. Does it use
       | the Canvas API or HTML/DOM for the UI elements?
       | 
       | There were also a few typos on the homepage and other pages that
       | you might want to review:
       | https://triplechecker.com/s/166843/kando.menu
        
         | schneegans wrote:
         | 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
        
           | retrochameleon wrote:
           | Thank you for addressing the Electron discussion thoroughly
           | on Github. I am always very disappointed to see an
           | application I am interested in using Electron. It is often
           | enough of an issue for me to immediately write it off as
           | something I will never use. I hope to see more Tauri instead,
           | but you also addressed some minor issues about that option.
           | 
           | I'll have to play around with this application.
        
             | schneegans wrote:
             | 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
        
       | oulipo wrote:
       | Really cool!
       | 
       | On osX BetterTouchTool can also do radial menus!
       | 
       | Would there be a way to import/export a menu configuration from
       | your tool as a .json?
        
         | schneegans wrote:
         | 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...
        
           | oulipo wrote:
           | yes, I was thinking more of having a kind of "dotfile"
           | approach to all my configs for automation on macOs, as there
           | are so many different overlapping apps like BTT,
           | KeyboardMaestro, skhd, Kando, Alfred, etc
           | 
           | I'd love to have a `.automation` folder in my home where I
           | can add descriptions of all my menus, keyboard shortcuts,
           | scripts, Shortcut App scripts, BTT config, etc, and each time
           | I modify them it updates in the app
           | 
           | It would be nice to have a kind of overview of all my
           | automations
           | 
           | Also I'd like it that each file is some kind of "executable
           | markdown" container which can contain textual description,
           | images, etc, and the scripts/configs themselves, and the
           | bindings
           | 
           | Something like this                   --         name: emoji-
           | picker         author: xxx         description: Various
           | emoji-related bindings         version: 1.0         url: xxx
           | license: ...         --                  ```@deps         ts:
           | mdex>=1.0,<2.0         ```                  ```@deps test
           | // deps only for testing, etc         ```
           | ```@include         // can seamlessly include other .mdex,
           | libs, code, repos, etc         ```                  # Open
           | emoji picker                  The Raycast emoji finder is
           | clean and easy to use, so I'll use it instead of the system
           | picker                  ```@code ts openPicker         const
           | openPicker = async (prompt: string = "") => {
           | api.url.open(`raycast://extensions/emoji?prompt={prompt}`);
           | }         ```                  ```@test         // define
           | some code to run tests and ensure everything works
           | ```                  ## Trigger on `fn` key
           | ```@binding key         trigger: @on(platform == "darwin")
           | key=[fn]         action: code openPicker @(openPicker();)
           | # equivalently, action: api open("raycast://...")         ```
           | ## When called as a CLI, allow to pass an optional prompt to
           | the emoji picker         This installs an `emoji` cli, which
           | parses with an optional prompt         ```@binding cli
           | name: emoji         args: [prompt=""]         action: code
           | openPicker @(openPicker(prompt);)         ```
           | ## Add custom bindings through extensions         ```@binding
           | ext:alfred         keyword: emoji [query=""]         action:
           | code openPicker @(openPicker(query);)         ```
           | ## Every hour, refresh the emojis         ```@binding cron
           | every: 1h         action: code openPicker
           | @(refreshEmojiData();)         ```                  ## Create
           | an UI         ```@binding ui         name: emoji-ui
           | layout: ...         html: ...         css: ...         ```
           | ## Usage:                  ```sh         mdex list emoji
           | mdex info emoji-picker         mdex install @user/emoji-
           | picker         mdex install emoji-picker.mdex # install or
           | refresh script, install deps, setup key-bindings         mdex
           | test emoji-picker.mdex         emoji "clown" # cli
           | mdex uninstall emoji-picker         # or trigger the `fn`
           | shortcut         mdex logs emoji-picker         ```
        
       | astrosloth wrote:
       | I am running RPi OS with GNOME 43.9 and was wondering if you have
       | a release build for Arm (Pi 5)?
        
       | woolion wrote:
       | It looks a bit like the Krita right-click palette menu, which is
       | made with a similar idea that you want to be fast while only
       | access to a tablet stylus. I've seen that it has controller
       | support, which is great; it's a cheap 'shortcut enabling' device
       | that is readily available to most people.
       | 
       | It would be a bit easier to have a video on the homepage that is
       | a whirlwind tour of the program rather than the latest changelog.
       | Although I have a motivation to find it useful (using a stylus
       | restricts keyboard use), I've already set up a Tartarus with
       | Input remapper to act as custom shortcuts etc, and it seems
       | complicated to find how it would simplify or improve my existing
       | setup.
        
       | klibertp wrote:
       | The first thing I'd do would be to try to theme it with textures
       | from Planescape: Torment...
       | 
       | Joking aside, I've been hearing that radial menus are bad UX for
       | decades, but I never understood why. For me, it was always much
       | easier to build muscle memory with menus like that vs.
       | traditional ones.
        
       | philjackson wrote:
       | Great docs and website!
        
       | that_guy_iain wrote:
       | My feedback is "Be precise" tagline seems wrong. It makes me
       | think I need to aim at small dots instead of just going in a
       | direction.
        
       | Beijinger wrote:
       | "Kando is a cross-platform open source"
       | 
       | This normally means it is slow.
       | 
       | What does it do? It replaces my window manager? Or is an
       | addition? I use the Moksha Desktop.
        
       | DonHopkins wrote:
       | Simon, not only do you totally get the inherent advantages and
       | joys of pie menus, and have the skills and persistence to
       | implement them well and iterate on the design by continuously
       | using and refining them over many years (at least a dozen years
       | since you made trace and coral menus, right?), but you also have
       | an impeccable sense of design and creativity, and they look
       | really great!
       | 
       | And the best part is that you've implemented an easy-to-use
       | elegant wyziwyg drag-and-drop editor so anybody can edit and
       | design their own pie menus, without writing json, xml, or code.
       | Which is extremely important because everyone has their own
       | personal use cases and important commands they need to select
       | quickly.
       | 
       | Thanks for all your work, and for making it open source, and
       | going the extra mile to make it cross platform (which is
       | extremely difficult)!
       | 
       | I've written about how much I like your previous work before:
       | 
       | https://news.ycombinator.com/item?id=17106453
       | 
       | DonHopkins on May 19, 2018 | parent | context | favorite | on:
       | Pie Menus: A 30-Year Retrospective: Take a Look an...
       | 
       | I'm very impressed by Simon Schneegans' work on Gnome-Pie:
       | http://simmesimme.github.io/gnome-pie.html
       | 
       | And especially his delightful thesis work:
       | 
       | Trace-Menu:
       | 
       | https://vimeo.com/51073078
       | 
       | I really love how the little nubs preview the structure of the
       | sub-menus, and how you can roll back to the parent menu because
       | it reserves a slice in the sub-menu to go back, so you don't need
       | to use another mouse button or shift key to browse the menus.
       | 
       | Coral-Menu:
       | 
       | https://vimeo.com/51072812
       | 
       | That looks like a nice visual representation with a way to easily
       | browse all around the tree, into and out of the submenus without
       | clicking! I can't tell from the video if it's based on a click or
       | a timeout. But it looks like it supports browsing and reselection
       | and correcting errors pretty well! (That would be something
       | interesting to measure!)
       | 
       | There's another useful law related to Fitts's law that applies to
       | situations like this, called Steering Law:
       | 
       | https://en.wikipedia.org/wiki/Steering_law
       | 
       | The steering law in human-computer interaction and ergonomics is
       | a predictive model of human movement that describes the time
       | required to navigate, or steer, through a 2-dimensional tunnel.
       | The tunnel can be thought of as a path or trajectory on a plane
       | that has an associated thickness or width, where the width can
       | vary along the tunnel. The goal of a steering task is to navigate
       | from one end of the tunnel to the other as quickly as possible,
       | without touching the boundaries of the tunnel. A real-world
       | example that approximates this task is driving a car down a road
       | that may have twists and turns, where the car must navigate the
       | road as quickly as possible without touching the sides of the
       | road. The steering law predicts both the instantaneous speed at
       | which we may navigate the tunnel, and the total time required to
       | navigate the entire tunnel.
       | 
       | The steering law has been independently discovered and studied
       | three times (Rashevsky, 1959; Drury, 1971; Accot and Zhai, 1997).
       | Its most recent discovery has been within the human-computer
       | interaction community, which has resulted in the most general
       | mathematical formulation of the law.
       | 
       | Also here's some interesting stuff about incompatibility with
       | Wayland, and rewriting Gnome-Pie as an extension to the Gnome
       | shell:
       | 
       | http://simmesimme.github.io/news/2017/07/09/gnome-pie-071
        
         | schneegans wrote:
         | 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.
        
       | viraptor wrote:
       | As much as I like the concept and it's a nice execution... It's
       | an electron app. It's a 100+MB package that displays one widget.
       | It runs a browser engine to displays icons on your screen. This
       | is madness.
        
         | schneegans wrote:
         | 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...
        
           | viraptor wrote:
           | I wrote my own version of system-wide pie menu in swiftui in
           | around 2 days (with no previous experience of swift), so I
           | can say the tech/effort is not a limitation.
           | 
           | On the other hand, the performance/resources can't be really
           | analysed in isolation. There's too many apps that say
           | "everyone can afford 100MB app and 250MB of ram, right?"...
           | then that menu app and that tiny updater and that printer
           | helper and slack and dicord and VPN app add up and we're at
           | 3GB of ram usage already. (Yes yes, some of it can be
           | reclaimed temporarily and then swapped back from files... but
           | we shouldn't need to in the first place)
        
           | exe34 wrote:
           | I have so many things open for several months at a time, I
           | really don't want anything that doesn't optimise for
           | usefulness per MB of ram.
        
         | anon115 wrote:
         | u ever tried to build an app on tauri bro?
        
       | rickdg wrote:
       | Tauri rewrite when
        
         | schneegans wrote:
         | 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.
        
       | danr4 wrote:
       | If you have a mac use charmstone.app I cannot go back to life
       | without it.
        
         | spondyl wrote:
         | Another macOS native pie menu is https://www.pie-menu.com
        
       ___________________________________________________________________
       (page generated 2024-12-29 23:01 UTC)