YE20: Emacs Carnival: Newbies/starter kits

| yay-emacs, emacs, community

This was a rough braindump on what I might want to write or do for the Emacs Carnival theme this month.

View Org source for this post

May 7: Emacs Chat with Shae Erisson

| emacs, emacs-chat-podcast, emacs-chat

On May 7, I'll chat with Shae Erisson about Emacs and life.

(America/Toronto UTC-4) = Thu May 7 1030H EDT / 0930H CDT / 0830H MDT / 0730H PDT / 1430H UTC / 1630H CEST / 1730H EEST / 2000H IST / 2230H +08 / 2330H JST

This session will be recorded, and I'll update this blog post with notes. https://sachachua.com/blog/2026/05/may-7-emacs-chat-with-shae-erisson/

Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat

View Org source for this post

May 21: Emacs Chat with Raymond Zeitler

| emacs, emacs-chat-podcast, emacs-chat

On May 21, I'll chat with Raymond Zeitler about Emacs and life.

America/Toronto = Thu May 21 1030H EDT / 0930H CDT / 0830H MDT / 0730H PDT / 1430H UTC / 1630H CEST / 1730H EEST / 2000H IST / 2230H +08 / 2330H JST

This session will be recorded, and I'll update this blog post with notes. https://sachachua.com/blog/2026/05/emacs-chat-with-raymond-zeitler/

Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat

View Org source for this post

June 18: Emacs Chat with Ross A. Baker

| emacs, emacs-chat-podcast, emacs-chat

America/Toronto = Thu Jun 18 1030H EDT / 0930H CDT / 0830H MDT / 0730H PDT / 1430H UTC / 1630H CEST / 1730H EEST / 2000H IST / 2230H +08 / 2330H JST

On June 18, I'll chat with Ross Baker about Emacs and life.

This session will be recorded, and I'll update this blog post with notes. https://sachachua.com/blog/2026/04/june-18-emacs-chat-with-ross-a-baker/

Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat

View Org source for this post

May 4: Emacs Chat with Amin Bandali

| emacs, emacs-chat-podcast, emacs-chat

(America/Toronto UTC-4) = Mon May 4 1400H EDT / 1300H CDT / 1200H MDT / 1100H PDT / 1800H UTC / 2000H CEST / 2100H EEST / 2330H IST / Tue May 5 0200H +08 / 0300H JST

On May 4, I'll chat with Amin Bandali about Emacs and life.

This session will be recorded, and I'll update this blog post with notes. https://sachachua.com/blog/2026/05/emacs-chat-with-amin-bandali/

Find more Emacs Chats or join the fun: https://sachachua.com/emacs-chat

View Org source for this post

OBS: A dump button for dropping the last ~10 seconds before it hits the stream

| emacs, video

I want to make it easier to livestream without worrying about leaking private information. Tradeoff: slower conversations with the chat, but more peace of mind.

I think I've sorted out a setup involving two instances of OBS, with the source instance sending the stream with a delay to the restreaming instance that will then send it on to YouTube. This allows me to cut the feed from the source instance to the restreaming instance in case something happens.

The first OBS is the one that has my screen capture, webcam, audio, etc. Here's what I needed to do to change it.

  1. Create a new profile or rename the profile to "Source".
  2. Name the collection of streams "Source" as well.
  3. In Settings - Hotkeys, define a keyboard shortcut for Stop streaming (discard delay). I use Super + F12.
  4. In Settings - Stream:
    1. Service: Custom
    2. Destination - Server: srt://127.0.0.1:9000?mode=caller
  5. In Settings - Advanced:
    1. Check Stream Delay - Enable.
    2. Set the duration. Let's try 10 seconds.
    3. Uncheck Preserve cutoff point (increase delay) when reconnecting.

Then I can launch that one with:

obs --profile "Source" --collection "Source" --launch-filter --multi

The second OBS will restream the output of the first OBS to YouTube.

obs --profile "Restream" --collection "Restream" --launch-filter --multi

I used the Profile menu to create a new profile called "Restream" and the Scene Collection menu to create a new collection called "Restream." I set up the scene as follows:

  1. Create a text source with the backup message.
  2. Create a media source.
    1. Uncheck Local File.
    2. Uncheck Restart playback when source becomes active.
    3. Input: srt://127.0.0.1:9000?mode=listener

In the first OBS (the source), click on Start streaming. After some delay, the stream will appear, and I can move or resize it.

I was a little thrown off by the fact that my audio bars didn't initially show up in the mixer in the restreamer, but both recording and streaming seem to include the audio.

To stop the stream, I can switch to OBS, click on Stop streaming, and (important!) choose Stop streaming (discard delay). The OBS window might be buried under other things on my second screen, though, and that's too many clicks and mouse movements. The keyboard shortcut Super + F12 we just set up should be handy, but I might not remember that, so let's add some scripts. The OBS websocket protocol doesn't support discarding the delay buffer yet, but I'm on Linux and X11, so I can use xdotool to simulate a keypress. Here I select the window matching the profile name I set up previously.

WID=$(xdotool search --name "OBS .* - Profile: Source")
xdotool key --window $WID super+F12

I can org-capture the timestamp of the panic so that I can doublecheck the recording.

;;;###autoload
(defun sacha-obs-panic ()
  "Stop streaming and discard the delay buffer.
This uses a hotkey I defined in OBS."
  (interactive)
  (shell-command "~/bin/panic")
  (org-capture-string "Panicked" "l")
  (org-capture-finalize))

I always have Emacs around, and if it's not my main app, I have an autokey shortcut that maps super + 1 to focus on Emacs. Then I can M-x panic and Emacs completion will take care of finding the right function.

Let's add a menu item for even more panic assistance:

(easy-menu-define sacha-stream-menu global-map
  "Menu for streaming-related commands."
  '("Stream"
    ["🛑 PANIC" sacha-obs-panic]
    ["Start streaming" obs-websocket-start-streaming]
    ["Start recording" obs-websocket-start-recording]
    ["Stop streaming" obs-websocket-stop-streaming]
    ["Stop recording" obs-websocket-stop-recording]))

Let's see if I remember to use it!

This is part of my Emacs configuration.
View Org source for this post

2026-04-20 Emacs news

| emacs, emacs-news

I enjoyed reading Hot-wiring the Lisp machine (an adventure into modifying Org publishing). I'm also looking forward to debugging my Emacs Lisp better with timestamped debug messages and ert-play-keys. I hope you also find lots of things you like in the links below!

Links from reddit.com/r/emacs, r/orgmode, r/spacemacs, Mastodon #emacs, Bluesky #emacs, Hacker News, lobste.rs, programming.dev, lemmy.world, lemmy.ml, planet.emacslife.com, YouTube, the Emacs NEWS file, Emacs Calendar, and emacs-devel. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at sacha@sachachua.com. Thank you!

View Org source for this post