kickingvegas / casual-calc

Casual Calc - An opinionated Transient user interface for Emacs Calc.
GNU General Public License v3.0
136 stars 6 forks source link

Have calc key bindings learn mode #88

Closed theldoria closed 5 months ago

theldoria commented 5 months ago

Using the transient to use calc is nice, using it to learn calc keybindings would be even nicer.

This, of course, would require to follow the default calc keybindings as much has possible, even with transients being named as calc would.

One example: you define D in the main transient, which is calc-percent-change normally accessed as b %, on the other hand, D would be calc-redo. So if I now learn the casual way of doing it, I would not be able to use calc natively.

I see the use of new nice shortcuts, but really, is C-o D so much better than b % if I learned that? This might be an issue for the main entry transient, so an alternative casual-learn-main-menu with really only calc default keys would be all I want.

Of course, transient Binary would have to be binary/business...

kickingvegas commented 5 months ago

Thanks for your input! As I’ve declared about Casual, it is opinionated about user experience and as such is unconcerned with strict conformance to the default keybindings of Calc. I came to this thinking particularly because at the start, I tried to map those default keybindings. In doing so, I found myself quickly in situations where the desired Transient menu workflow was impossible to be consistent with the default Calc keybindings. So I made the call: I would rather design a UX that made sense for a Transient menu workflow. Note how Casual does not surface inverse and hyperbolic, which I consider to be vestigial artifacts from HP calculators to support physical key reuse. Made sense with real hardware, but in the context of software (in this case Emacs), I think otherwise.

For users who really want to learn the default Calc keybindings, there are packages like which-key that will surface choices given a keybinding sequence.

With due respect, I’m closing this ticket as a won’t-fix and hope you understand my reasons for doing so.