5 ms·
Textual Adds a Command Palette
- isoprophlex 3y agoThis will come off as angry old-man-yells-at-UI but man do I dislike the concept of a command palette. It just feels so lazy. Stuff everything wherever you want and the command palette will sort it out. I'm happy to change my mind, maybe there's good use cases for it/people that really like the concept... but every time I have to use one, it feels suboptimal. As if there was a logical menu structure & keymap on the roadmap, but the software needed shipping, so now everything is everywhere and the user will just have to search for it. Edit: thank you everyone for the thoughtful replies. I will try to love these things in the coming weeks.
- milkshakes 3y agohave you ever used spotlight? 1password? sublime? vscode? there are definitely use cases where a command palette is a vast improvement over navigating through multiple folders/menus, and it keeps your hands from leaving the keyboard
- willm 3y agoI use the command palette in VSCode frequently. Almost everything is available as a keybinding, or with a few clicks in nested menus, but I've only committed a subset to memory. The command palette means I only need remember the name of something to quickly find it again. The Textual CP can also provide dynamic commands. Like opening a file. If I wanted to open "foo.py" I could hit "ofp" to match the "open foo.py" command (or any other matching fuzzy search). That's likely to be faster than a file open dialog.
- davepdotorg 3y agoI've been using a "command palette" in the same app since the mid 90s, on lots of different operating systems, and I've never really found that it's a lazy way to make commands available. Mostly what I want to use is available from a menu, and/or available from keyboard bindings, but if I wish I can also pull up the command palette and run the command directly -- sometimes that's handy if I personally know what the command is called but I can't remember which menu it might be in, or what the key binding is. Of course, it's not called a "command palette"; normally Emacs calls it `execute-extended-command`, and more commonly people will refer to it as the minibuffer. But that's just me doing the angry-old-man-yells-about-ancient-useful-UI thing. ;-)
- hprotagonist 3y agoand then embark, the right-click of emacs!
- chimichurri 3y agoNotion too. Slash commands (command pallete) provide a quick and easy way to execute actions without navigating through menus. I would argue that slash commands are much more discoverable than keyboard or graphical menus since they present of the option for documentation snippets.
- SnowflakeOnIce 3y agoThis is not quite a command palette, but in macOS apps, you can press command-shift-/ to search the names of menu commands. I use that frequently in apps that I don't use regularly (and hence don't remember where all the menu items are). Very helpful for discoverability.
- bloopernova 3y agoThat's great! and of course Microsoft Teams (preview) breaks it.
- agumonkey 3y agoMenus have limits, and fuzzy search is most often the right fit there.
- frou_dh 3y agoSublime Text where the current style of Command Palette was created/popularised does have hierarchical menus, context menus, and keybindings with the commands. The Palette is an alternative interface for accessing the same stuff.
- BiteCode_dev 3y agoAnd they world agree since we never adopted search engine and stayed on web portails with index of sites.
- wakahiu 3y agoThis is very cool and I can see how it'd be helpful for users. How did you arrive at this feature? Slash command's discoverability is key. The commands serve as documentation and hints. Additionally, love the fact that users can create customized commands as shortcuts for frequent workflows or other logic. Reduces repetitive clicking/navigating. As the builder of LeapTable (https://github.com/peterwnjenga/leaptable https://github.com/peterwnjenga/leaptable), an open-source low-code database powered by AI agents, one of the first pieces of feedback I received from early users was the desire for slash commands similar to Notion. After evaluating different options, I settled on incorporating PlateJS (https://platejs.org/docs/mention https://platejs.org/docs/mention) to enable @mention-style slash commands in LeapTable's React-based interface. PlateJS proved to be a great fit for easily bringing robust slash command capabilities into our webapp. The @mention commands allow for convenient execution of actions, integration with external services, and automation workflows. For any other React developers looking to incorporate flexible, Notion-style slash commands into their webapps, I highly recommend checking out PlateJS. It provided the perfect building block for enabling rich slash command interactions in LeapTable.
- agumonkey 3y agoI wonder how it would look if they had some kind of fuzzy command bar where you could evaluate code.
- eichin 3y agoLove it, but ctl-\ in particular ("send sigquit", ie. core-dump the app) will make me twitch every time :-)