* Add moc to Non-GNU ELPA @ 2024-12-16 16:52 Psionic K 2024-12-17 4:40 ` Richard Stallman 0 siblings, 1 reply; 8+ messages in thread From: Psionic K @ 2024-12-16 16:52 UTC (permalink / raw) To: Emacs developers Hi, hadn't heard anything back, so starting over. git@github.com:positron-solutions/moc.git https://github.com/positron-solutions/moc This package is an important companion to Dslide. Its replay functionality combined with Dslide's step scripting can be very powerful for presenting about code and programming. Its workflows for producing sequences of highlighted code excerpts are efficient. Along with the upcoming release of Dslide, which has keyboard macro transcription and playback, it will ensure total dominance of Emacs over deranged social media landscapes such as TikTok and YouTube, where fake information is pervasive but Emacs is true. I've made extensive use of :info and :description slots in the transient interfaces for `moc-focus' and `moc-dispatch'. I will be using the package to discuss this UI design point. NEWS.org exists. moc.texi is generated from manual.org. moc.el is the package. ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-16 16:52 Add moc to Non-GNU ELPA Psionic K @ 2024-12-17 4:40 ` Richard Stallman 2024-12-17 5:02 ` Psionic K 0 siblings, 1 reply; 8+ messages in thread From: Richard Stallman @ 2024-12-17 4:40 UTC (permalink / raw) To: Psionic K; +Cc: emacs-devel [[[ To any NSA and FBI agents reading my email: please consider ]]] [[[ whether defending the US Constitution against all enemies, ]]] [[[ foreign or domestic, requires you to follow Snowden's example. ]]] Can you please explain what Delide does? I think some of us have never heard of it. Also, what added functionality does positron-solutions implement? -- Dr Richard Stallman (https://stallman.org) Chief GNUisance of the GNU Project (https://gnu.org) Founder, Free Software Foundation (https://fsf.org) Internet Hall-of-Famer (https://internethalloffame.org) ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-17 4:40 ` Richard Stallman @ 2024-12-17 5:02 ` Psionic K 2024-12-17 12:00 ` Eduardo Ochs 0 siblings, 1 reply; 8+ messages in thread From: Psionic K @ 2024-12-17 5:02 UTC (permalink / raw) To: rms; +Cc: Psionic K, emacs-devel [-- Attachment #1: Type: text/plain, Size: 645 bytes --] > 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. [-- Attachment #2: Type: text/html, Size: 1089 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-17 5:02 ` Psionic K @ 2024-12-17 12:00 ` Eduardo Ochs 2024-12-17 14:09 ` Psionic K 0 siblings, 1 reply; 8+ messages in thread From: Eduardo Ochs @ 2024-12-17 12:00 UTC (permalink / raw) To: Psionic K; +Cc: rms, emacs-devel 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 ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-17 12:00 ` Eduardo Ochs @ 2024-12-17 14:09 ` Psionic K 2024-12-17 15:28 ` Dslide kmacro transcription & playback [was:Add moc to Non-GNU ELPA] Psionic K 2024-12-17 17:47 ` Add moc to Non-GNU ELPA Eduardo Ochs 0 siblings, 2 replies; 8+ messages in thread From: Psionic K @ 2024-12-17 14:09 UTC (permalink / raw) To: Eduardo Ochs; +Cc: Psionic K, emacs-devel [-- Attachment #1: Type: text/plain, Size: 3635 bytes --] 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 [-- Attachment #2: Type: text/html, Size: 5450 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Dslide kmacro transcription & playback [was:Add moc to Non-GNU ELPA] 2024-12-17 14:09 ` Psionic K @ 2024-12-17 15:28 ` Psionic K 2024-12-17 17:47 ` Add moc to Non-GNU ELPA Eduardo Ochs 1 sibling, 0 replies; 8+ messages in thread From: Psionic K @ 2024-12-17 15:28 UTC (permalink / raw) To: Psionic K; +Cc: Eduardo Ochs, Emacs developers [-- Attachment #1: Type: text/plain, Size: 1134 bytes --] Hello Eduard, I force pushed some fixes onto the unstable branch. The kmacro transcription is pleasantly working and an action duplication bug was identified and fixed. I am nearly comfortable pushing to master and tagging 0.6.0. Here's the kmacro action commit https://github.com/positron-solutions/dslide/commit/1123a4ecbe93d75816faa3ba9539d6aef4ed7ca3 For anyone interested, I've been keeping the `dslide-action' class stable to keep custom actions stable. However, I need a capability to choose the next action correctly or to allow them to peek ahead and tell me which one should be next. Peeking may add complexity to actions but tracking their progress for them adds rigidity. If I decide to change actions, I'll make sure they are absurdly simple to write after the changes. I can always leave an optional method to support more complex ordering. Progress tracking and reading options off of elements is the bulk of all action creation, so doing it for them will make them brain dead simple. I think that's what we want. The feature roadmap for 1.0 is here: https://github.com/positron-solutions/dslide/issues/20 [-- Attachment #2: Type: text/html, Size: 1435 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-17 14:09 ` Psionic K 2024-12-17 15:28 ` Dslide kmacro transcription & playback [was:Add moc to Non-GNU ELPA] Psionic K @ 2024-12-17 17:47 ` Eduardo Ochs 2024-12-18 1:01 ` Psionic K 1 sibling, 1 reply; 8+ messages in thread From: Eduardo Ochs @ 2024-12-17 17:47 UTC (permalink / raw) To: Psionic K; +Cc: emacs-devel On Tue, 17 Dec 2024 at 11:09, Psionic K <psionik@positron.solutions> wrote: > > 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. Hi Psionic, I git-cloned the unstable branch of dslide with these commands, rm -Rfv /tmp/dslide/ cd /tmp/ git clone https://github.com/positron-solutions/dslide cd /tmp/dslide/ git branch remotes/origin/unstable and grepped for `unread'... your code only mentions `unread-command-events' in one place - here: https://github.com/positron-solutions/dslide/blob/b8e1399cc531c5d991e7f36fc48e420bc7e2621a/dslide.el#L2052 and if I understood correctly you don't encode delays as events - you use a timer to push events with some delays between them... and your demo is here, https://github.com/positron-solutions/dslide/blob/b8e1399cc531c5d991e7f36fc48e420bc7e2621a/test/demo.org?plain=1#L448 in a line that looks like this, modulo line breaks: #+dslide_kmacro: :frequency 0.09 :jitter 0.4 :keys [134217848 97 110 105 109 97 116 101 45 98 105 114 116 104 100 97 121 45 112 114 101 115 101 110 116 return 100 115 108 105 100 101 return] I was thinking of doing something completely different. If a person runs my defuns for `eek2' and `ee-eek2' from my other e-mail, https://lists.gnu.org/archive/html/emacs-devel/2024-12/msg00689.html then the second sexp below (eek2 "<down>") (ee-eek2 "<down>") returns `((t . down))' - so the symbol `down' is the "name" of an event (<- I haven't checked the correct terminology). It should be possible to define a handful of events with "names" like `delay-1', `delay-2', etc, and that run delays with different durations - and then both sexps below will go down and insert a "Hello", but the second one will have delays at two places... (eek2 "RET Hello") (eek2 "RET <delay-2> Hell <delay-1> o") I have very little practice with Org and I'll be very busy in the next two days, but after that I will have time to run your examples. Cheers! =) Eduardo Ochs http://anggtwu.net/emacsconf2024.html ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Add moc to Non-GNU ELPA 2024-12-17 17:47 ` Add moc to Non-GNU ELPA Eduardo Ochs @ 2024-12-18 1:01 ` Psionic K 0 siblings, 0 replies; 8+ messages in thread From: Psionic K @ 2024-12-18 1:01 UTC (permalink / raw) To: Eduardo Ochs; +Cc: Psionic K, emacs-devel > you don't encode delays as events I will be thrilled to learn if there's another way to put these into the event loop at human speed to replay tech demos without typing. By not blocking the user, I have to detect fat-fingers and abort. I'm glad it works, but I'm not satisfied with it. I see the 'norecord. Looks useful. Thanks. I went ahead and released 0.6.0. The master branch and archives are caught up again. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-12-18 1:01 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-16 16:52 Add moc to Non-GNU ELPA Psionic K 2024-12-17 4:40 ` Richard Stallman 2024-12-17 5:02 ` Psionic K 2024-12-17 12:00 ` Eduardo Ochs 2024-12-17 14:09 ` Psionic K 2024-12-17 15:28 ` Dslide kmacro transcription & playback [was:Add moc to Non-GNU ELPA] Psionic K 2024-12-17 17:47 ` Add moc to Non-GNU ELPA Eduardo Ochs 2024-12-18 1:01 ` Psionic K
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).