Hi Eduard, You can preview the keyboard macro playback on the unstable branch. There is a simple example at the very end of the demo.org in the /test directory. `dslide-deck-start' and it will show you the rest of the way. You can also start at point right on that example or skip to it with the contents view. I also used `unread-key-events', just with a Laplace distribution based jittery timer for relatively human-appearing key entry speed. It's for "live" tech demos. You may file an issue for instant playback. In my rush to do human speed I forgot some people will just want a normal keyboard macro. Do play around with `dslide-kmacro-transcribe-set-mark'. Every macro you record will encode a step. It's extremely satisfying. https://github.com/positron-solutions/dslide/commit/c2ea982a809c1114b63638ac4c47e1292e11189e I just fixed some bugs and overhauled the start functions. I'm reluctant to push master even if I fix the tiny outstanding bug I found. I need to revert a small change somewhere that caused a regression in reverse image reveal when entering the slide in reverse. On Tue, Dec 17, 2024 at 9:00 PM Eduardo Ochs wrote: > On Tue, 17 Dec 2024 at 02:03, Psionic K > wrote: > > > > > Can you please explain what Delide does? > > > > Present anything Emacs can do with programmable, extensible, > configurable slides & presentation steps made from org mode headings > > > > Longer introductions are available in the documentation: > > > https://raw.githubusercontent.com/positron-solutions/dslide/refs/heads/unstable/doc/README.org > > > https://raw.githubusercontent.com/positron-solutions/dslide/refs/heads/unstable/doc/manual.org > > > > The latest (upcoming) changes are available via the news file: > > > https://raw.githubusercontent.com/positron-solutions/dslide/refs/heads/unstable/NEWS.org > > > > You can install it from Non-GNU ELPA. The package symbol is dslide. > > > Hi Psionic, > > I was trying to find your code for playing back macros with pauses > between certain keys and I found this, > > https://github.com/positron-solutions/dslide/issues/18 > > that gave me the impression that this is a planned feature, not > implemented yet... > > I am trying to do something similar, but I am looking for a minimal > solution that fits in a few lines of code. What I currently have is > this: > > http://anggtwu.net/eev-current/eev-blinks.el.html#eek2 > > Here is its code: > > (defun eek2 (str &optional norecord) > "Execute STR as a keyboard macro. See `edmacro-mode' for the exact > format.\n > This is a variant of `eek' that pushes events into > `unread-command-events'. > An example: (eek2 \"C-x 4 C-h\")" > (interactive "sKeys: ") > (setq unread-command-events > (nconc unread-command-events (ee-eek2 str)))) > > (defun ee-eek2 (str &optional norecord) > "An internal function used by `eek2'." > (cl-loop for ev in (listify-key-sequence (read-kbd-macro str)) > collect (cons (or norecord t) ev))) > > If we run > > (eek2 "RET Hello") > > it plays back RET, `H', `e', `l', `l', `o', and if we run this > > (ee-eek2 "RET Hello") > > is shows the events that eek2 would push into `unread-command-events', > that are: > > '((t . 13) (t . ?H) (t . ?e) (t . ?l) (t . ?l) (t . ?o)) > > How would you implement pauses? Any pointers would help me very much! > Thanks in advance, > > Eduardo Ochs > http://anggtwu.net/emacsconf2024.html > -- Only the Future is Certain