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 <eduardoochs@gmail.com> wrote:
On Tue, 17 Dec 2024 at 02:03, Psionic K <psionik@positron.solutions> 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