August 13th, 2024

Emacs: Contextual Interfaces in Casual Calc

Casual Calc version 1.11.0 enhances user experience with contextual interfaces, allowing menus to stay open, perform operations during menu use, and providing tailored commands for specific tasks.

Read original articleLink Icon
Emacs: Contextual Interfaces in Casual Calc

The latest update to Casual Calc, version 1.11.0, introduces significant enhancements to its user interface by implementing contextual interfaces. This allows users to discover and utilize commands specific to their current context more efficiently. Key changes include menus that remain open until dismissed and the ability to perform basic calculator operations while a menu is active. The update supports algebraic entry and integrates arithmetic operators directly into the menus. Each functional area, such as trigonometry and logarithms, now behaves like a "mini-app," providing tailored commands for specific tasks. This design aims to replicate the user experience of traditional calculators, particularly the HP-28S, which featured soft-key buttons that adapted based on the mode. The update is available for existing users, while new users can install it from MELPA. Feedback on the changes is encouraged.

- Casual Calc v1.11.0 introduces contextual interfaces for improved user experience.

- Menus now stay open until dismissed, allowing for easier command access.

- Basic calculator operations can be performed while menus are active.

- Each functional area offers its own contextual behavior, resembling mini-apps.

- The update aims to enhance usability by mimicking traditional calculator interfaces.

Link Icon 3 comments
By @pkkm - 5 months
Thanks for working on these "casual" Emacs packages. I've long thought it is lamentable that we mostly have two kinds of UIs:

* Those designed for power user speed, with seemingly little regard to novice-friendliness (e.g. bash, tar, find, Emacs calc, Vim).

* Those designed for novice-friendliness and aesthetics, with seemingly little regard to power user speed (many GUI programs, almost all websites, almost all phone apps).

It feels like we're very far from the Pareto frontier, and I wish more people thought explicitly in terms of getting closer to that frontier - that is, "how can we maximize novice-friendliness under the constraint of not lowering the speed ceiling even a bit". I think this could be done through some combination of autocompletion, cheatsheets that pop up automatically, and consistency between programs.

Magit-like UIs are a happy exception to the rule. Their speed ceiling is very high because they're completely keyboard-driven and have no animations, but their discoverability is good because they constantly pop up little cheatsheets of what keys you can press to trigger actions. I was able to start using Magit almost immediately after installing it, and learn it gradually without looking at external resources. Now I fly through the common operations on muscle memory, and it feels like it took no effort to get there. I hope that more programs copy this UI paradigm.

By @phforms - 5 months
Whenever I find myself learning about something where I know that I will not use it frequently enough to actually remember its keystrokes/commands/etc. I create a new “personal documentation” for it as an .org file (I have a central folder and a git repo for all of them). Here I’ll write all the information (like keybindings, details of commands, common procedures, concepts, etc.) down that is specific to my own use-cases and organize it in a way that makes sense to me.

It takes some time and effort and may seem redundant when there is good documentation out there already (as with most of Emacs). But still I find myself wasting a lot of time looking for that one piece of information in the docs where I forgot how to even search for it. Maybe it works so well for me because I kind-of enjoy the process of writing it (which many people might not). But I feel much less frustrated afterwards when I come back to some tool or language after years of not using it and find it really easy to remember what was important to me at the time and how to do X.

Tools like Casual Calc are great because they reduce the need to do that manual work of going through the docs and writing down what one want to remember in a (for them) more clear/concise/practical way. However, the way they select and organize knowledge/commands only reflect the common use cases, so there may still be a need to write stuff down.

As a more general helper, I really like to use Emacs Calc with `which-key`, which provides a similar interface to see what keybindings are available under a specific prefix-key. What also helps is if you press `h` and then search for a specific function (`h f`), key (`h k`), etc. or just type `x` to enter a function name directly (or by keyword using text-completion).

By @port19 - 5 months
I feel like the existance of "casual" is a symptom of transient being way too hard to understand