diff options
Diffstat (limited to '2024/talks/casual.md')
-rw-r--r-- | 2024/talks/casual.md | 156 |
1 files changed, 118 insertions, 38 deletions
diff --git a/2024/talks/casual.md b/2024/talks/casual.md index 60cd63ac..068d38e2 100644 --- a/2024/talks/casual.md +++ b/2024/talks/casual.md @@ -28,44 +28,124 @@ Charles Choi has been an Emacs user since 1989 but did not get around to learnin ## Questions and answers -- Q: I wonder whether casual can only be used with the packages you - mentioned or whether it can be used with whatever package you like? - e.g., can I use causal with AUCTeX? - - A: More the latter; can the questioner clarify the question? - - People are free to fork and iterate over casual - - transient.el already has mechanism for modifying an existing - transient to redefine the bindings over the definition -- Q: \[related to the previous\] Are there any patterns emerging, such - that it would seem possible to 1) systematize 2) automate(?) the - mapping of mode commands to keyboard-driven menus? Possibly even - have an auto casual wrapper for an uncovered mode? - - A: -- Q: Does Casual have a log where you can see what commands were - invoked? This is always available via M-x view-lossage or via - command-log-mode, but I\'m wondering if it can do for Emacs commands - what Magit\'s process buffer (\$) does for learning Git commands. - (Leo just spoke about this.) - - A: That just works. (But try keycast-log-mode instead of - view-lossage.) -- Q: Is there a setting to close menu after executing command? - - A: -- Q: What modes are you working on at the moment for casual / are excited to explore? - - A: -- Q: Why not improve which-key (which seems to be included in Emacs 30 - by default) to accommodate for your very slight differences instead - of reinventing the same thing from scratch in an incompatible way? -- \@majorgnu on YouTube: This is great! Emacs\'s plethora of powerful - functionality really needs a better way to surface itself to users - and this is a great step in that dirrection. I do have a few - thoughts, though: - - Is there a convenient way for a user in a transient to get more - information about a menu entries? Specifically: the normal - keybindings (if available) and command documentation. - - It could be useful to gather and display statistics about menu - usage. Imagine being able to generate a personalized keybinding - cheat sheet with the menu items you use the most! - - +- Q: I wonder whether casual can only be used with the packages you + mentioned or whether it can be used with whatever package you like? + e.g., can I use causal with AUCTeX? + - A: More the latter; can the questioner clarify the question? + - People are free to fork and iterate over casual + - transient.el already has mechanism for modifying an existing + transient to redefine the bindings over the definition +- Q: \[related to the previous\] Are there any patterns emerging, such + that it would seem possible to 1) systematize 2) automate(?) the + mapping of mode commands to keyboard-driven menus? Possibly even + have an auto casual wrapper for an uncovered mode? + - A: +- Q: Does Casual have a log where you can see what commands were + invoked? This is always available via M-x view-lossage or via + command-log-mode, but I\'m wondering if it can do for Emacs commands + what Magit\'s process buffer (\$) does for learning Git commands. + (Leo just spoke about this.) + - A: That just works. (But try keycast-log-mode instead of + view-lossage.) +- Q: Is there a setting to close menu after executing command? + - A: +- Q: What modes are you working on at the moment for casual / are excited to explore? + - A: +- Q: Why not improve which-key (which seems to be included in Emacs 30 + by default) to accommodate for your very slight differences instead + of reinventing the same thing from scratch in an incompatible way? +- \@majorgnu on YouTube: This is great! Emacs\'s plethora of powerful + functionality really needs a better way to surface itself to users + and this is a great step in that dirrection. I do have a few + thoughts, though: + - Is there a convenient way for a user in a transient to get more + information about a menu entries? Specifically: the normal + keybindings (if available) and command documentation. + - It could be useful to gather and display statistics about menu + usage. Imagine being able to generate a personalized keybinding + cheat sheet with the menu items you use the most! +- Q: Is there a way to update a part of a transient menu? + - A: menus can be refreshed + - But that refreshes the whole menu + - Okay, I thought so. I've been calling (transient-setup) in transient infixes where required, but occasionally it's slow. And in every case it throws away the values of all the other infixes that have been set +## Notes and feedback + +- You can also use the menu from the keyboard with F10 and arrow keys. I turn the menu off, but I sometimes use it anyway with F10. +- is that fvwm? +- I disagree that searching for stuff in menus is easier than remembering commands. It's probably easier to learn, but not easier to use once you know them. + - worst of all: searching in a hierarchical effing hamburger + - Hamburger menus make sense on extremely small screens, not on other screens. + - yeah, I don't think updates are that granular +- 2 hour Calc talk when? +- I'm really wowed by your talk +- this was such a great talk +- I want casual support for more modes :) guess I need to do that, then +- The enthusiasm around casual always surprises me, because all the stuff is documented and easy to find if you read the manual and use the help system :( + - and can remember it all! with casual, you don't *need* to + - (and in time, use will nail it into an aging memory) + - I don't use casual, but the obvious problem with the manual/help system is that you still have to memorize it all + - Even if it just means memorizing that it exists in the first place + - yeah. I use org like a savage because I only need it a few times a month and I can only remember about 5% of its capabilities... + - and I bet most people are like that for most modes they only use occasionally. + - You can look a lot of commands up using apropos, you don't need to memorise everything? + - But I also set transient-show-popup to nil + - apropos is so *clumsy* compared to transient though + - there's a nice benefit to having it there and callable by one more keystroke + - but then I grew up with WordStar and have long missed its menu/keybinding stuff + - Consider less commonly used commands like transpose-region or repunctuate-sentences. How would the user think to even look for commands that do these things? If they do remember, then they have to look up the keybindings every time they use them until it becomes muscle memory. For rarely used commands like these it might never become muscle memory. +- But a question of mine is do you use and make use of transient-default-level? +- There's a repunctuate-sentences?! + - Case in point. if repunctuate-sentences was in the casual editkit menu on text operations there would be no discovery or memorization issue. + - Yes, it is very useful when arguing for double-spacing. + - oooh, useful! I'm a newbie though, only been using emacs since 1992 so of course I hadn't discovered that yet :) + - in my case, overriding my single-space muscle memory when contributing to double-space-end GNU projects :) +- that's a little like why I want some kind of embark/cmap thing too, so I can have friendly menus that are scoped to the type of thing at point +- to the extent post-its still serve a function for much simpler things for most people, contextual surfacing of what's possible serves (and not the firehose, the select few) makes similar sense to me. +- I want to push back on the point that Transient gives you discoverability for free. Perhaps I am too much of a zoomer, but a big menu with a lot of options is just too much information at once for me. The irony is that I often cannot use isearch/occur to search the text buffer as one would expect from Emacs to. + - Similarly, I do find that with my embark menus, I occasionally use C-h to then search for a command with completion + - I'm with you on the disadvantages of transient -- it breaks the unspoken Emacs contract of treating every buffer the same. But that's unrelated to the fact that it helps many people with the discoverability and memorization issues. + - I think the poweruser vs casual user optimization was answered in the naming choice by Charles :) + - doesn't vertico also break this unspoken contract, karthik? + - For me that speaks to a deeper contradiction in Emacs.. + - yes :( I much prefer vertico's predecessor for that reason, but it's dead :( + - to a much lesser extent. The minibuffer prompt itself works like a regular buffer +- if casual is not dedicated to powerusers, it's unfortunate that it does not help its users to become powerusers by disagreeing with some key bindings, i.e. it has different bindings from default emacs + - that argument wouldn't go far with the Doom/Spacemacs people though, with their "non-default" default bindings and such +- I played around with an experiment to write a small alternative to Casual that would re-use my quick-help "framework" to extract recommended bindings from the current keymap. +- NullNix: i mean, for vertico, this is just the default. you can easily tell vertico to use a buffer instead. +- You can isearch inside the minibuffer prompt when using Vertico for instance + - can you?! new feature in the last year, perhaps? will look again + - not the first time my ignorance has torpedoed me + - ok i agree with your latest point but still minibuffer is different than other normal buffers imho :) + - Why is it different? The minibuffer is just a buffer, no reason it should break the Emacs contract. + - Vertico does not take over the "event loop" like transient does -- not sure how to describe this correctly. So most Emacs commands will work from inside Vertico, especially once you enable recursive-minibuffers + - I meant you can run regular emacs commands on the prompt "line" in the minibuffer when using Vertico +- mct looks interesting... +- karthik: M-x C-s does not behave like i-search in a normal buffer for me, using vertico +- +1 for edebug, that would be great +- wonders about gud and gdb interfaces -- would definitely benefit +- (poke has already gained a transient menu system :) ) +- Doesn't Ediff present a help buffer at the bottom? +- yes, but it's so small it's easily overlooked on modern big screens +- yes, ironically ediff has an anemic one already, and I don't see people criticizing it + - Heh, modern screens means big, right? On the other hand, on non-modern screens (small) transient buffers take over too much of the screen :) + - honestly I wonder if I should rejig ediff to use transient :) + - I can recommend (setopt ediff-window-setup-function 'ediff-setup-windows-plain)! +- yeah, did that a loong time ago, but most people haven't... +- The memory and cognitively impaired if merely due to aging thank you Charles, that's not just you +- hear hear +- there are also menus :) +- If you use Avy, try using an Avy command when running find-file using Vertico. You'll see Avy jump candidates in the current text of the minibuffer prompt, and you can jump there. +- Indeed, but Charles addressed this in clarification of where Casual stands in the design space (vs menus, M-x, etc), namely context-specific keyboard-driven interactive use where some toggling of args can stick while you build a command (i.e. Transient) + - menus are also context-specific actually + - that said, I agree that transient is an alternative interface with various advantages + - it is just not the only way to learn Emacs commands + - And menus are also keyboard driven, as M-x tmm-menubar shows + - Indeed, I just wanted to point out that if ever Transient fills an interesting/useful point in design space, so those its generalized application to other modes (vs Magit) +- that said, I agree that transient is an alternative interface with various advantages +- it is just not the only way to learn Emacs commands +- And menus are also keyboard driven, as M-x tmm-menubar shows +- time for a keyboard upgrade, i can't be bothered to type C-c c or M-x anymore either [[!inline pages="internal(2024/info/casual-after)" raw="yes"]] [[!inline pages="internal(2024/info/casual-nav)" raw="yes"]] |