Live

Livestream

: Oct 2 - Emacs Chat 31: Pedro A. Aranda Gutierrez

https://sachachua.com/blog/2026/10/oct-2-emacs-chat-31-pedro-a-aranda-gutierrez/

On Oct 2, we'll chat with Pedro about Org Mode, LaTeX exports and font management including alternatives and things you can and can't do depending on your choices. He'll share some tips on fallbacks and emojis, which can help a lot with presentations and documentation. We might also discuss recent patches and realistic objectives.

2026-10-02 Fri 06:00-07:00 America/Toronto = Fri Oct 2 0600H EDT / 0500H CDT / 0400H MDT / 0300H PDT / 1000H UTC / 1200H CEST / 1300H EEST / 1530H IST / 1800H +08 / 1900H JST

Watch livestream playlist

See other scheduled livestreams or add the iCalendar feed to see upcoming events in your calendar (Shortcut: Google Calendar) You can also subscribe to the RSS feed.

STARTED Current / notes for next time   stream emacs

Yay Emacs 53: Drafting my responses for the community panel

We have a recording session for https://emacsconf.org/2026/talks/community/ tomorrow, so I need to get my thoughts together. Also, if there's time, I want to to document and demonstrate my video workflow so that I can do it again next year, and maybe look into organizing my windows and workspaces in preparation for trying to manage everything everywhere all at once. Aaah! Totally not panicking.

Yay Emacs 52: Drafting my responses for the community panel

We have a recording session for https://emacsconf.org/2026/talks/community/ tomorrow, so I need to get my thoughts together. Also, if there's time, I want to to document and demonstrate my video workflow so that I can do it again next year, and maybe look into organizing my windows and workspaces in preparation for trying to manage everything everywhere all at once. Aaah! Totally not panicking.

Yay Emacs 51: Dusting off my EmacsConf code

EmacsConf has two days of two tracks, and my brain is not very good at paying attention to things that have to be done at a certain time. So I use cron to schedule the playback of talks at the scheduled times during the conference, including:

  • announcing the talk on IRC
  • playing the recorded intro, if it exists
  • playing the video file or joining the talk's BigBlueButton room
  • going to the Q&A session, which could be in BigBlueButton, Etherpad, or IRC
  • publishing the talk video files on the wiki and on media.emacsconf.org

This came in really handy last year because I had to manage EmacsConf by myself for part of the conference. This year, I think I might need to do the same.

One of the challenges of automating something that I do only once a year is that I tend to forget about things, especially if I quickly put together the automation in a rush because I was trying to get things done. If I didn't take the time to document them while it was still fresh in my brain (because I needed to move on to doing something else), now I need to dust off the code, figure out how it works, and fill in those missing notes.

Today I want to get that automatic schedule working again. If I have time, maybe I will record the introductions.

orga - user that the /usr/local/bin/handle-session script connects to

Yay Emacs 50: Trimming audio from my French tonguetwister practice

I can demonstrate my workflow for extracting the clips from my recording of a pronunciation practice session with my teacher.

workflows#extract-my-french-pronunciation-lessons-tongue-twisters-virelangues

Yay Emacs 49: Back to editing the VTT for my conversation with Linkarzu

I'm about halfway through editing the transcript. I would like to get it nicely edited so that it'll be easy to pull out snippets of it as text.

Draft: https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/

Yay Emacs 47: Editing the VTT for my chat with Linkarzu

I finally get to work on this, at least until the kiddo wakes up! I want to turn this into the usual nicely searchable transcript. Draft: https://sachachua.com/blog/2026/11/my-chat-with-linkarzu/

Yay Emacs 46: Tinkering with my speech+typing workflows

Possible things to show

process of drafting a blog post

  • Why:
    • I like writing blog posts because it's a lot easier for people to skim than a twenty-minute video.
    • People can copy code from it, I can search it, um, I can update it as I learn more or as I fiddle with the code.
    • Text is so much easier to work with.
  • Challenges:
    • Some people think very logically.
      • They can start with a top-down outline and then systematically fill it in.
    • Some people work bottom up.
      • They collect a lot of notes which they organize them into larger and larger chunks, and they they make something useful that way.
    • My mind tends to wander all over the place.
      • Sometimes I work from the top down.
      • Sometimes I want to jump to a different part of my outline to fill something in.
      • Sometimes I just have some sentences and then I need to figure out how to get from one place to another.
  • How
    • I wrote about my writing workflow in 2025 (Finding the shape of my thoughts).
    • My workflow has changed a little bit since then.
      • I spend much less time waiting around during playdates these days; it's getting colder because the kiddo now mostly prefers to spend time with me or playing Minecraft. Instead of using my phone for outlines, snippets, placeholders, Uh, she's, you know, maybe she and her friends are growing a little bit apart. Middle school is hard, etc., etcetera.
      • Um
      • So most of my writing now is done on my laptop and the audio br brain dump then doesn't come as a monolithic audio file or this big wall of text that I then have to edit and sort through.
      • It by using this.
      • This workflow.
      • I can.
      • Um, use the outline as a visual anchor for my thoughts while using dictation to quickly jot things down.
      • And all of that is very useful and I should have remembered to
    • Publishing.
    • Next steps.
    • If I'm untangling my thoughts about a complex topic, sometimes I start with a sketch to figure out what I want to say and the order in which I want to say them.
    • Normally, when I'm writing, I do like to play around with sometimes putting one sentence per line.
      • This allows me to move the sentences around very quickly using Org shortcuts, and it also helps me see the variety in the lengths of sentences.
      • I do tend to have very long sentences.
      • It reminds me to break them up into shorter ones.
    • getting the captions for the current recording

Since I can use Emacs and a bit of Python to visualize the gaps and the conversation balance in real-ish time, and I can use speech recognition to see if I've said any of my target words or phrases, why not use that speech recognition result to make a proper VTT of the current recording on the fly so that I can jump to things or extract stuff?

I generated a modified asr.py that gives me Unix timestamp * 1000 + milliseconds. I can check the timestamps against the timestamp in the filename of the latest recording, which OBS is still adding to. This lets me approximately synchronize things so that I can jump to parts of the current recording while I'm recording it, and I can adjust the timestamps further by referring to the waveforms.

spaceballs-how-soon.gif
Figure 1: When will there be now? Soon!

search - How can I find a message by Message-ID in Gmail? - Web Applications Stack Exchange   website

rfc822msgid:20050329231145.62086.mail@mail.emailprovider.com

Yay Emacs 45: Working on Emacs News

Time to work on Emacs News!

Draft with the raw links: 2026-10-26 Emacs news

DONE fix my indentation. I wonder if it's Org indent getting in the way ▶️ screenshot

(defun sacha-org-babel-fix-src-block-indent ()
  (interactive)
  (org-babel-map-src-blocks (buffer-file-name)
    (when (string-match "\\`  " full-block)
      (save-restriction
        (narrow-to-region beg-block end-block)
        (indent-rigidly-left (point-min) (point-max))
        (indent-rigidly-left (point-min) (point-max))))))

Yay Emacs 44: More conversational voice interfaces

Yesterday, I added voice in and voice out to M-x doctor. I think I've figured out how to get gptel to do the same so that I can practice talking in French with Emacs. There are a number of mobile applications that offer similar kinds of AI voice conversations for a subscription, but I'd prefer to do things in Emacs, of course, so that I can use the data and tweak things more. I'll demonstrate what I've got working so far and then tinker with it to see what else I can come up with.

Outline:

  • M-x doctor and sacha-whisper-conversation-mode
  • sacha-gptel-practice-french
  • https://github.com/jwiegley/pending would be nice
    • speech recognition
    • gptel chat

      (use-package pending
        :vc (:url "https://github.com/jwiegley/pending"))
      
      (defvar sacha-whisper-pending-overlay nil "Overlay that will have the pending indicator.")
      (defvar sacha-gptel-pending-overlay nil "Overlay that will have the pending indicator.")
      
      ;;;###autoload
      (defun sacha-whisper-run-with-pending-indicator ()
        "Display a pending indicator while waiting."
        (interactive)
        (if (process-live-p whisper--recording-process)
            (pending-update sacha-whisper-pending-overlay
                            :label "💭")
          (setq sacha-whisper-pending-overlay
                (pending-insert (point) "👂")))
        (whisper-run))
      
      (defun sacha-whisper-pending-remove-overlay (text)
        "Add to `whisper-insert-text-at-point'."
        (when (overlayp (pending-ov sacha-whisper-pending-overlay))
          (delete-overlay (pending-ov sacha-whisper-pending-overlay)))
        text)
      
      (defun sacha-gptel-pending-remove-overlay (&rest _)
        "Add to `gptel-pre-response-hook'."
        (when (overlayp (pending-ov sacha-whisper-pending-overlay))
          (delete-overlay (pending-ov sacha-whisper-pending-overlay))))
      
      (defun sacha-gptel-pending-show-indicator (fn &rest args)
        "Show the indicator in the buffer while waiting."
        (apply fn args)
        (pending-insert (point) "💭"))
      
      ;; (with-eval-after-load 'gptel
      ;;  (advice-add 'gptel-send :around 'sacha-gptel-pending-show-indicator)
      ;;  (add-hook 'gptel-pre-response-hook #'sacha-gptel-pending-remove-overlay)
      ;;  )
      ;; This is a test.
      
      
      
      

      sacha-gptel-pending-show-indicator

Yay Emacs 43: Defining voice commands with phony.el

I used to define voice commands with regular expressions, but I think I've mostly figured out how to use phony.el to define commands using grammar so that I can reuse different components. Let me go play around with this some more.

  • on my computer
  • on my phone with termux?

TODO Try out the STT model that yantar92 uses

OpenVINO/whisper-large-v3-turbo-int4-ov

SOMEDAY set up a stopwatch and a timer that I can trigger by voice

https://fosstodon.org/@eludom/117422669292878212

https://codeberg.org/eludom/home.public.elisp-public/src/branch/master/elisp-public/timer-in-modeline.org

(defvar my-talk-start-time nil
  "When non-nil, the time the talk started (via `current-time').")
(defvar my-talk-timer nil
  "Timer object for updating the mode line.")

(defun my-talk-elapsed ()
  "Return elapsed time string, or nil if no talk is active."
  (when my-talk-start-time
    (let* ((elapsed (float-time (time-subtract (current-time)
                                               my-talk-start-time)))
           (minutes (floor elapsed 60))
           (seconds (floor (- elapsed (* minutes 60)))))
      (format " [talk: %d:%02d]" minutes seconds))))

(defun my-talk-start ()
  "Start the talk timer and enable mode-line display."
  (interactive)
  (setq my-talk-start-time (current-time))
  (unless my-talk-timer
    (setq my-talk-timer
          (run-with-timer 0 1 #'force-mode-line-update)))
  (message "Talk timer started."))

(defun my-talk-stop ()
  "Stop the talk timer and remove the mode-line display."
  (interactive)
  (setq my-talk-start-time nil)
  (when my-talk-timer
    (cancel-timer my-talk-timer)
    (setq my-talk-timer nil))
  (force-mode-line-update)
  (message "Talk timer stopped."))

Yay Emacs 42: Working on Emacs News, happy Canadian Thanksgiving!

Probably just a quick session working on Emacs News today.

Yay Emacs 41: Working on Emacs News, tinkering with more speech commands

I'll work on Emacs News. If there's time, I can show some of the other speech commands I've been playing around with.

  • "remind me to…" now saves a screenshot
  • "open …" works elsewhere
  • "comment …" works in code and subtitle files

TODO IRC for chat - thanks Guest24

##yayemacs on libera.

Yay Emacs 31 livestream: Working on Emacs News

Just hanging out and working on Emacs News

SOMEDAY https://recurse.social/@shapr/116534824687970707

shapr@recurse.social - @sacha Is your org flow written up somewhere?

Like, how you organize your files and how information gets in and out?

and, since I felt a bit cringe about using C-s, how do you find information in your org files?

TODO Ask at the next Org Meetup

  • Is there a way to make headings (ex: Org Babel result block, custom link output)? I'd love it if the headings could get picked up by TOC. Org Babel block reevaluation ends up with duplicates if the result has headings.

Upcoming episodes

Timestamps

  • Sacha and Prot Talk Emacs: May I recommend… sach.ac/yay-emacs
  • Sacha and Prot Talk Emacs: May I recommend… YayEmacs.com
  • Sacha and Prot Talk Emacs YayEmacs.com
  • Sacha and Prot Talk Emacs YayEmacs.com
  • Sacha and Prot Talk Emacs YayEmacs.com
  • Sacha and Prot Talk Emacs: YayEmacs.com
  • Sacha and Prot Talk Emacs: Under-appreciated Built-ins YayEmacs.com
  • Emacs Chat en français
  • Emacs Chat en français
  • Panicked
  • Panicked
  • Panicked
  • Panicked
  • Panicked
  • Panicked
  • Panicked

Ideas

Future: Org Mode LaTeX export - Tinkering with my PDF export

After reading tecosaur's emacs config PDF (source), I have a case of literate config envy. I want to tweak my custom link types so that they export something sensible to LaTeX.

Update How to Learn Emacs

https://sachachua.com/blog/2013/05/how-to-learn-emacs-a-hand-drawn-one-pager-for-beginners/

  • Minor updates:
    • change planet.emacsen.org to planet.emacslife.com
    • change irc.freenode.net to libera.chat, include link to EmacsChannel
  • Include link to EmacsNewbie and the visual guide
  • Include Emacs News for staying connected
  • Learn how to learn
    • Built-in tutorial
    • Start small
    • Part-time is okay
    • Sticky notes
    • How to use a starter kit
  • Getting help
  • Other resources
  • Explore

It might be interesting to have some kind of a skill tracker or progression tree type of quick reference also… =)

Some things we can talk about if people are curious

TODO Improve my audio setup

  • Boom?
    • Tonor T20 CAD 39.99
    • InnoGear 2026 Low Profile Arm
  • Shock mount?
    • Auphonix Shock Mount For Blue Yeti Microphone?

STARTED Modify my sacha-mastodon-save-toot-for-emacs-news

so that it lets me select the link and prompt for the summary right away

Move the functionality of emacs-news-summarize-mastodon-items into it

Inbox

STARTED figure out any other automations that I can do for BigBlueButton.

I can't rely on recording true in the getMeetings. I might need to actually talk to the browser through an extension.

(use-package browser-gt :config (browser-gt-start))
(plist-get (browser-gt-request "EVAL_IN_ACTIVE_TAB" '(:code "document.title + '|' + document.querySelector('div[data-test=recordingIndicator] > div[aria-label]')?.getAttribute('aria-label')")) :result)
(plist-get (browser-gt-request "EVAL_IN_ACTIVE_TAB" '(:code "document.title")) :result)

I might not be able to use browser GT to connect to multiple instances.

okay, tentative plan is I'm just going to have to remember to start the recording each time. Which is okay because I need to rearrange the windows anyway. Although the rearranging of the windows happens on the stream. Can I get the stream user to start the recording?

If I use the the mod code on the stream user to start the recording, then the mod code will display on the screen briefly, which is not what I want.

I don't think the server reliably stays logged in. I can't distinguish it based on the window title alone.

I would like to be able to automate things like the recording of the session without leaking the mod code. The server can connect without using the mod code. The streaming will use a regular user. I wonder if I can use Firefox to directly connect to it. Alternatively, I could just have a reminder walk me through the steps. So the key things that need to happen is I need to move the the layout anyway every time I start streaming, and I need to start the recording.

The layout needs to happen in the VNC session. The recording needs to happen in my own session, which I'll have anyway.

okay, I can get the number of participants for the meeting. I need local shell script also to open the BVB room.

Hey, what if I use Firefox to open it? Then can I use spookfox to eval the recording status and possibly flip it? No, it's not activated. Can I use xdotool to find the window?

(shell-command "wmctrl -x -a bbb-listen")

moz-extension://a66f3807-6a57-495e-b4df-c9743e46095e/_generated_background_page.html

file:///home/sacha/bin/bbb creates a window with a specified class

okay, I don't know if I can get the actual recording status unless I use webhooks, which I don't think I can do at this moment, but I will just have to do the recording manually. I have a way now to create a Firefox window with the right class for and position them so that I can have BBB and the etherpad already set up on the workspace and I have a way to jump to the workspace from my overview. I also have the number of participants so I can get a sense of the the activity there. And the next steps would would be to set up the audio devices so that I always have my microphone going in. And the output going to a separate audio device that, that can go out to my headphones with some audio shaping or audio location.

Scheduled livestreams

Times are in America/Toronto. If you have Javascript enabled, click on a time to translate it.

  • Oct 2 - Emacs Chat 31: Pedro A. Aranda Gutierrez

    https://sachachua.com/blog/2026/10/oct-2-emacs-chat-31-pedro-a-aranda-gutierrez/

    On Oct 2, we'll chat with Pedro about Org Mode, LaTeX exports and font management including alternatives and things you can and can't do depending on your choices. He'll share some tips on fallbacks and emojis, which can help a lot with presentations and documentation. We might also discuss recent patches and realistic objectives.

    2026-10-02 Fri 06:00-07:00 America/Toronto = Fri Oct 2 0600H EDT / 0500H CDT / 0400H MDT / 0300H PDT / 1000H UTC / 1200H CEST / 1300H EEST / 1530H IST / 1800H +08 / 1900H JST

Previous episodes

Meta

I want to get better at livestreaming while I tinker with Emacs because:

  • Getting into the habit of talking out loud while I code might help me retrace my steps or my logic, like Bookclub tapas.
    • I want to turn those demonstrations or discussions into blog posts with screenshots or video clips. If I note down rough timestamps or capture screenshots, I can use those for chapters, and then I can review the transcript once it's available.
  • Other people might notice something that I take for granted and then I can help them learn more about it. I can share more of my implicit knowledge.
  • Other people might even help me get unstuck or let me know about things I haven't gotten the hang of yet.
  • There might eventually be a time when it will be difficult for me to get outside, so it might be helpful to have more ways to enjoy social interaction and mental stimulation.

A few other Emacs streamers:

sources: Reddit

View Org source for this post
You can e-mail me at sacha@sachachua.com.