<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/assets/atom.xsl" type="text/xsl"?><feed
	xmlns="http://www.w3.org/2005/Atom"
	xmlns:thr="http://purl.org/syndication/thread/1.0"
	xml:lang="en-US"
	><title>Sacha Chua - category - emacs</title>
	<subtitle>Emacs, sketches, and life</subtitle>
	<link rel="self" type="application/atom+xml" href="https://sachachua.com/blog/category/emacs/feed/atom/index.xml" />
  <link rel="alternate" type="text/html" href="https://sachachua.com/blog/category/emacs" />
  <id>https://sachachua.com/blog/category/emacs/feed/atom/index.xml</id>
  <generator uri="https://11ty.dev">11ty</generator>
	<updated>2026-04-22T19:06:56Z</updated>
<entry>
		<title type="html">YE20: Emacs Carnival: Newbies/starter kits</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-22T19:06:56Z</updated>
    <published>2026-04-22T19:06:56Z</published>
    <category term="yay-emacs" />
<category term="emacs" />
<category term="community" />
		<id>https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/</id>
		<content type="html"><![CDATA[<p>
This was a rough braindump on what I might want to write or do for the Emacs Carnival theme this month.
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Yht0N26EoF4?enablejsapi=1" frameborder="0" allowfullscreen="">nil</iframe><a href="https://youtube.com/live/Yht0N26EoF4">Watch on YouTube</a></div>
<p></p>

<p>
</p><div class="sketch-full"><a class="photoswipe" href="https://sketches.sachachua.com/filename/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" data-src="https://sketches.sachachua.com/static/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" data-title="2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg" data-w="2900" data-h="2050"><picture>
      <img src="https://sketches.sachachua.com/static/2026-04-22-01%20Thinking%20about%20Emacs%20Carnival%20April%202026%20-%20newbies%20and%20starter%20kits.jpeg" width="2900" height="2050" alt="2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg" loading="lazy" style="max-height: 90vw; height: auto; width: auto" decoding="async">
      <figcaption>2026-04-22-01 Thinking about Emacs Carnival April 2026 - newbies and starter kits.jpeg</figcaption>
    </picture></a></div>
<p></p>

<ul class="org-ul">
<li><a href="https://www.emacswiki.org/emacs/CarnivalApril2026">Emacs Carnival April 2026: newbies/starter kits</a></li>
<li>How I got into Emacs
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/2003/03/evolution-of-an-emacs-user-reflection-linux/">Evolution of an Emacs user — reflection, linux</a></li>
<li><a href="https://sachachua.com/blog/2008/01/how-i-got-hooked/">How I got hooked</a></li>
</ul></li>
<li>Start with why:
<ul class="org-ul">
<li><mark>TODO:</mark> possibly a post about where people come from and typical resources, next steps</li>
<li>Obstacles:
<ul class="org-ul">
<li>A. Isolation</li>
<li>B. Overwhelm
<ul class="org-ul">
<li>Breaking things down into manageable pieces</li>
</ul></li>
<li>C. Balance of time: tinkering with config vs doing actual stuff</li>
<li>D. Unknowns: different vocabulary, don't even know what's possible
<ul class="org-ul">
<li>What's close by?</li>
</ul></li>
</ul></li>
<li>Curious
<ul class="org-ul">
<li>Cool demo</li>
<li>Reputation</li>
<li>Someone else</li>
</ul></li>
<li>Leisure vs wanting to be productive ASAP</li>
<li>Journey:
<ul class="org-ul">
<li>Outsiders</li>
<li>Newbie</li>
<li>Basic working environment</li>
<li>Intermediate
<ul class="org-ul">
<li>Packages</li>
<li>Configuration</li>
</ul></li>
<li>Advanced
<ul class="org-ul">
<li>Writing custom code</li>
</ul></li>
</ul></li>
</ul></li>
<li>Stuff I work on / can tinker with
<ul class="org-ul">
<li>inspiration helps with isolation (A) and unknowns (D)
<ul class="org-ul">
<li><a href="https://sachachua.com/blog/category/emacs-news/">Emacs News</a>
<ul class="org-ul">
<li><mark>TODO:</mark> Add intro
<ul class="org-ul">
<li>how to use it</li>
<li>how to subscribe</li>
<li>resources for getting help, finding meetups, etc.</li>
</ul></li>
<li><mark>TODO:</mark> Add resources (esp. beginner resources) to map and <a href="https://emacswiki.org">EmacsWiki</a></li>
</ul></li>
<li><a href="https://emacsconf.org">EmacsConf</a></li>
</ul></li>
<li>Meetups, <a href="https://emacslife.com/calendar/">Emacs Calendar</a></li>
<li>Videos, livestreams
<ul class="org-ul">
<li>Reading people's configurations, demonstrating workflow, showing how to incorporate them</li>
</ul></li>
<li><a href="https://sachachua.com/blog/2013/05/how-to-learn-emacs-a-hand-drawn-one-pager-for-beginners/">How to Learn Emacs: A Hand-drawn One-pager for Beginners / A visual tutorial</a>
<ul class="org-ul">
<li><mark>TODO:</mark> Needs updates: URLs, etc.</li>
</ul></li>
</ul></li>
<li><a href="https://sachachua.com/web/beginner-map.html">‎Beginner map</a></li>
<li><a href="https://sachachua.com/dotemacs/index.html">My Emacs configuration</a></li>
<li>Starter kits</li>
<li><a href="https://emacs.tv">emacs.tv</a></li>
<li><a href="https://masteringemacs.org">Mastering Emacs</a></li>
<li><a href="https://protesilaos.com/emacs/emacs-lisp-elements">Emacs Lisp Elements | Protesilaos</a></li>
</ul>
<div><a href="https://sachachua.com/blog/2026/04/ye20-emacs-carnival-newbies-starter-kits/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F04%2Fye20-emacs-carnival-newbies-starter-kits%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">May 7: Emacs Chat with Shae Erisson</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/05/may-7-emacs-chat-with-shae-erisson/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-22T18:55:38Z</updated>
    <published>2026-04-22T18:55:38Z</published>
    <category term="emacs" />
<category term="emacs-chat-podcast" />
<category term="emacs-chat" />
		<id>https://sachachua.com/blog/2026/05/may-7-emacs-chat-with-shae-erisson/</id>
		<content type="html"><![CDATA[<p>
On May 7, I'll chat with Shae Erisson about Emacs and life.
</p>

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/Ovya0O2otbU?enablejsapi=1" frameborder="0" allowfullscreen="">nil</iframe><a href="https://youtube.com/live/Ovya0O2otbU">Watch on YouTube</a></div>
<p></p>

<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-05-07T10:30:00-0400">&lt;2026-05-07 Thu 10:30&gt;&ndash;&lt;2026-05-07 Thu 11:30&gt;</time></span> (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
</p>

<ul class="org-ul">
<li>Shae Erisson: Haskell, Python, Swedish, knitting, mountain unicycling, contact juggling</li>
<li><a href="http://www.scannedinavian.com">Shae Erisson's blog - 1. DO SOMETHING 2. BRAG ABOUT IT</a></li>
<li><a href="https://recurse.social/@shapr">Shae Erisson (@shapr@recurse.social) - recurse.social</a></li>
<li><a href="https://github.com/shapr/markovkeyboard">shapr/markovkeyboard: keyboard layout that changes by markov frequency · GitHub</a></li>
</ul>

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

<p>
Find more Emacs Chats or join the fun: <a href="https://sachachua.com/emacs-chat">https://sachachua.com/emacs-chat</a>
</p>
<div><a href="https://sachachua.com/blog/2026/05/may-7-emacs-chat-with-shae-erisson/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F05%2Fmay-7-emacs-chat-with-shae-erisson%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">May 21: Emacs Chat with Raymond Zeitler</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/05/emacs-chat-with-raymond-zeitler/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-22T18:32:32Z</updated>
    <published>2026-04-22T18:32:32Z</published>
    <category term="emacs" />
<category term="emacs-chat-podcast" />
<category term="emacs-chat" />
		<id>https://sachachua.com/blog/2026/05/emacs-chat-with-raymond-zeitler/</id>
		<content type="html"><![CDATA[<p>
On May 21, I'll chat with Raymond Zeitler about Emacs and life.
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/ro6BZI0Z64I?enablejsapi=1" frameborder="0" allowfullscreen="">nil</iframe><a href="https://youtube.com/live/ro6BZI0Z64I">Watch on YouTube</a></div>
<p></p>

<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-05-21T10:30:00-0400">&lt;2026-05-21 Thu 10:30&gt;&ndash;&lt;2026-05-21 Thu 11:30&gt;</time></span> 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
</p>

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

<p>
Find more Emacs Chats or join the fun: <a href="https://sachachua.com/emacs-chat">https://sachachua.com/emacs-chat</a>
</p>
<div><a href="https://sachachua.com/blog/2026/05/emacs-chat-with-raymond-zeitler/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F05%2Femacs-chat-with-raymond-zeitler%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">June 18: Emacs Chat with Ross A. Baker</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/04/june-18-emacs-chat-with-ross-a-baker/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-22T18:28:45Z</updated>
    <published>2026-04-22T18:28:45Z</published>
    <category term="emacs" />
<category term="emacs-chat-podcast" />
<category term="emacs-chat" />
		<id>https://sachachua.com/blog/2026/04/june-18-emacs-chat-with-ross-a-baker/</id>
		<content type="html"><![CDATA[<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/_tEcqbi_2o8?enablejsapi=1" frameborder="0" allowfullscreen="">nil</iframe><a href="https://youtube.com/live/_tEcqbi_2o8">Watch on YouTube</a></div>
<p></p>

<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-06-18T10:30:00-0400">&lt;2026-06-18 Thu 10:30&gt;&ndash;&lt;2026-06-18 Thu 11:30&gt;</time></span> 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
</p>

<p>
On June 18, I'll chat with <a href="https://rossabaker.com/">Ross Baker</a> about Emacs and life.
</p>

<ul class="org-ul">
<li><a href="https://rossabaker.com/blog/">Blog</a>
<ul class="org-ul">
<li><a href="https://rossabaker.com/tags/emacs/">Posts tagged #emacs</a></li>
</ul></li>
<li><a href="https://rossabaker.com/configs/emacs/">Emacs config</a>
<ul class="org-ul">
<li><a href="https://rossabaker.com/configs/emacs/early-init/">Emacs Early Init</a></li>
<li><a href="https://rossabaker.com/configs/emacs/khlav-kalash/">Khlav Kalash Emacs</a></li>
<li><a href="https://rossabaker.com/configs/emacs/crab-juice/">Crab Juice Emacs</a></li>
<li><a href="https://rossabaker.com/configs/emacs/rab-starter/">Starter Emacs configuration</a></li>
</ul></li>
</ul>

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

<p>
Find more Emacs Chats or join the fun: <a href="https://sachachua.com/emacs-chat">https://sachachua.com/emacs-chat</a>
</p>
<div><a href="https://sachachua.com/blog/2026/04/june-18-emacs-chat-with-ross-a-baker/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F04%2Fjune-18-emacs-chat-with-ross-a-baker%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">May 4: Emacs Chat with Amin Bandali</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/05/emacs-chat-with-amin-bandali/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-22T18:28:11Z</updated>
    <published>2026-04-22T18:28:11Z</published>
    <category term="emacs" />
<category term="emacs-chat-podcast" />
<category term="emacs-chat" />
		<id>https://sachachua.com/blog/2026/05/emacs-chat-with-amin-bandali/</id>
		<content type="html"><![CDATA[<p>
<span class="timestamp-wrapper"><time class="timestamp" datetime="2026-05-04T14:00:00-0400">&lt;2026-05-04 Mon 14:00&gt;&ndash;&lt;2026-05-04 Mon 15:00&gt;</time></span> (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
</p>

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

<p>
</p><div class="yt-video"><iframe width="456" height="315" title="YouTube video player" src="https://www.youtube-nocookie.com/embed/ZiTQt8q1Ybc?enablejsapi=1" frameborder="0" allowfullscreen="">nil</iframe><a href="https://youtube.com/live/ZiTQt8q1Ybc">Watch on YouTube</a></div>
<p></p>

<ul class="org-ul">
<li><a href="https://kelar.org/~bandali/">Amin Bandali</a></li>
<li><a href="https://kelar.org/~bandali/people-of-emacs.html">The People of Emacs - bandali</a></li>
<li><a href="https://git.gnu.ca/~bandali/configs/tree/.emacs.d?id=ffd0084f8612a11de7263b1dc627a3ed8f97d923">.emacs.d - configs</a></li>
</ul>

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

<p>
Find more Emacs Chats or join the fun: <a href="https://sachachua.com/emacs-chat">https://sachachua.com/emacs-chat</a>
</p>
<div><a href="https://sachachua.com/blog/2026/05/emacs-chat-with-amin-bandali/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F05%2Femacs-chat-with-amin-bandali%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">OBS: A dump button for dropping the last ~10 seconds before it hits the stream</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/04/obs-a-dump-button-for-dropping-the-last-10-seconds-before-it-hits-the-stream/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-21T14:27:01Z</updated>
    <published>2026-04-21T14:27:01Z</published>
    <category term="emacs" />
<category term="video" />
		<id>https://sachachua.com/blog/2026/04/obs-a-dump-button-for-dropping-the-last-10-seconds-before-it-hits-the-stream/</id>
		<content type="html"><![CDATA[<p>
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.
</p>

<p>
I think I've sorted out a setup involving two instances of <a href="https://obsproject.com/">OBS</a>, 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.
</p>

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

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

<p>
Then I can launch that one with:
</p>


<div class="org-src-container">
<pre class="src src-sh"><code>obs &#45;&#45;profile <span class="org-string">"Source"</span> &#45;&#45;collection <span class="org-string">"Source"</span> &#45;&#45;launch-filter &#45;&#45;multi
</code></pre>
</div>



<p>
The second OBS will restream the output of the first OBS to YouTube.
</p>


<div class="org-src-container">
<pre class="src src-sh"><code>obs &#45;&#45;profile <span class="org-string">"Restream"</span> &#45;&#45;collection <span class="org-string">"Restream"</span> &#45;&#45;launch-filter &#45;&#45;multi
</code></pre>
</div>


<p>
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:
</p>

<ol class="org-ol">
<li>Create a text source with the backup message.</li>
<li>Create a media source.
<ol class="org-ol">
<li>Uncheck <b>Local File</b>.</li>
<li>Uncheck <b>Restart playback when source becomes active</b>.</li>
<li><b>Input</b>: srt://127.0.0.1:9000?mode=listener</li>
</ol></li>
</ol>

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

<p>
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.
</p>

<p>
To stop the stream, I can switch to OBS, click on <b>Stop streaming</b>, and <b>(important!)</b> choose <b>Stop streaming (discard delay)</b>. 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 <code>Super + F12</code> we just set up should be handy, but I might not remember that, so let's add some scripts. <a href="https://github.com/obsproject/obs-websocket/issues/1309">The OBS websocket protocol doesn't support discarding the delay buffer</a> 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.
</p>


<div class="org-src-container">
<pre class="src src-sh"><code><span class="org-variable-name">WID</span>=$(xdotool search &#45;&#45;name <span class="org-string">"OBS .* - Profile: Source"</span>)
xdotool key &#45;&#45;window $<span class="org-variable-name">WID</span> super+F12
</code></pre>
</div>


<p>
I can <code>org-capture</code> the timestamp of the panic so that I can doublecheck the recording.
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code><span class="org-comment-delimiter">;;;</span><span class="org-comment">###</span><span class="org-comment"><span class="org-warning">autoload</span></span>
(<span class="org-keyword">defun</span> <span class="org-function-name">sacha-obs-panic</span> ()
  <span class="org-doc">"Stop streaming and discard the delay buffer.</span>
<span class="org-doc">This uses a hotkey I defined in OBS."</span>
  (<span class="org-keyword">interactive</span>)
  (shell-command <span class="org-string">"~/bin/panic"</span>)
  (org-capture-string <span class="org-string">"Panicked"</span> <span class="org-string">"l"</span>)
  (org-capture-finalize))
</code></pre>
</div>


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

<p>
Let's add a menu item for even more panic assistance:
</p>


<div class="org-src-container">
<pre class="src src-emacs-lisp"><code>(<span class="org-keyword">easy-menu-define</span> sacha-stream-menu global-map
  <span class="org-doc">"Menu for streaming-related commands."</span>
  <span class="org-highlight-quoted-quote">'</span>(<span class="org-string">"Stream"</span>
    [<span class="org-string">"&#128721; PANIC"</span> sacha-obs-panic]
    [<span class="org-string">"Start streaming"</span> obs-websocket-start-streaming]
    [<span class="org-string">"Start recording"</span> obs-websocket-start-recording]
    [<span class="org-string">"Stop streaming"</span> obs-websocket-stop-streaming]
    [<span class="org-string">"Stop recording"</span> obs-websocket-stop-recording]))
</code></pre>
</div>


<p>
Let's see if I remember to use it!
</p>

<div class="note">This is part of my <a href="https://sachachua.com/dotemacs#streaming">Emacs configuration.</a></div><div><a href="https://sachachua.com/blog/2026/04/obs-a-dump-button-for-dropping-the-last-10-seconds-before-it-hits-the-stream/index.org">View Org source for this post</a></div><p>You can <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F04%2Fobs-a-dump-button-for-dropping-the-last-10-seconds-before-it-hits-the-stream%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry><entry>
		<title type="html">2026-04-20 Emacs news</title>
		<link rel="alternate" type="text/html" href="https://sachachua.com/blog/2026/04/2026-04-20-emacs-news/"/>
		<author><name><![CDATA[Sacha Chua]]></name></author>
		<updated>2026-04-20T13:21:38Z</updated>
    <published>2026-04-20T13:21:38Z</published>
    <category term="emacs" />
<category term="emacs-news" />
		<id>https://sachachua.com/blog/2026/04/2026-04-20-emacs-news/</id>
		<content type="html"><![CDATA[<p>
I enjoyed reading <a href="https://scheatkode.com/blog/019d463d-38b3-7e63-80fd-6ed97bd8815e/hot-wiring-the-lisp-machine/">Hot-wiring the Lisp machine</a> (an adventure into modifying Org publishing). I'm also looking forward to debugging my Emacs Lisp better with <a href="https://github.com/haji-ali/dmsg.el">timestamped debug messages</a> and <a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=3d822669eee7f6e685368b8a298b6f0924f382da">ert-play-keys</a>. I hope you also find lots of things you like in the links below!
</p>

<ul class="org-ul">
<li>Upcoming events (<a href="https://emacslife.com/calendar/emacs-calendar.ics">iCal file</a>, <a href="https://emacslife.com/calendar/">Org</a>):
<ul class="org-ul">
<li>Emacs APAC: Emacs APAC meetup (virtual) <a href="https://emacs-apac.gitlab.io/announcements/">https://emacs-apac.gitlab.io/announcements/</a> Sat Apr 25 0130 America/Vancouver - 0330 America/Chicago - 0430 America/Toronto - 0830 Etc/GMT - 1030 Europe/Berlin - 1400 Asia/Kolkata - 1630 Asia/Singapore</li>
<li>Emacs Berlin: Emacs-Berlin Hybrid Meetup <a href="https://emacs-berlin.org/">https://emacs-berlin.org/</a> Wed Apr 29 1000 America/Vancouver - 1200 America/Chicago - 1300 America/Toronto - 1700 Etc/GMT - 1900 Europe/Berlin - 2230 Asia/Kolkata &ndash; Thu Apr 30 0100 Asia/Singapore</li>
<li>M-x Research: TBA <a href="https://m-x-research.github.io/">https://m-x-research.github.io/</a> Fri May 1 0800 America/Vancouver - 1000 America/Chicago - 1100 America/Toronto - 1500 Etc/GMT - 1700 Europe/Berlin - 2030 Asia/Kolkata - 2300 Asia/Singapore</li>
</ul></li>
<li>Beginner:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1sn91ey/how_do_you_keep_track_of_newuseful_keybindings/">How do you keep track of new/useful keybindings?</a></li>
</ul></li>
<li>Emacs configuration:d
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1skpzsz/what_modern_emacs_packages_am_i_missing/">What modern Emacs packages am I missing?</a></li>
<li><a href="https://www.youtube.com/watch?v=R72qdXTbVM0">Meow made me leave Evil Mode</a> (17:00)</li>
</ul></li>
<li>Emacs Lisp:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1sqk352/what_are_some_common_code_smells_that/">What are some common code smells that inexperienced Elispers make?</a></li>
<li><a href="https://github.com/kickingvegas/elisp-for-python#iteration">Updated kickingvegas/elisp-for-python - improved sections on map types and iteration</a> (<a href="https://sfba.social/@kickingvegas/116422248799408772">@kickingvegas@sfba.social</a>)</li>
<li><a href="https://portal.mozz.us/gemini//omg.pebcak.club/~cage/archive/organizzazione-configurazione-emacs.gmi">load settings from files sorted by number</a> (<a href="https://mastodon.bsd.cafe/@cage/116425157765058239">@cage@mastodon.bsd.cafe</a>)</li>
<li><a href="https://github.com/haji-ali/dmsg.el">dmsg.el: Timestamped debug messages with backtrace support</a> (<a href="https://www.reddit.com/r/emacs/comments/1so2ylc/dmsgel_timestamped_debug_messages_with_backtrace/">Reddit</a>)</li>
<li><a href="https://codeberg.org/mrb/emacs-config/commit/c52b4ee">Defining λ as a macro for lambda</a> (<a href="https://van-der-boom.nl/@marcel/statuses/01KPC4QGQVY475ZHQNH03W5RC2">@marcel@van-der-boom.nl</a>)</li>
<li><a href="https://flandrew.srht.site/listful/mars-rovers-iv-the-solutions-emacs-lisp.html">Listful Andrew: Mars Rovers IV: The Solutions — Emacs Lisp</a></li>
<li><a href="https://flandrew.srht.site/listful/mars-rovers-ix-the-grid-viz-solutions-emacs-lisp.html">Listful Andrew: Mars Rovers IX: The Grid Viz Solutions — Emacs Lisp</a></li>
</ul></li>
<li>Appearance:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1slkgi4/loading_the_theme_and_user_face_customizations_at/">Loading the theme and user face customizations at the right moment</a></li>
<li><a href="https://protesilaos.com/codelog/2026-04-13-emacs-live-develop-modus-themes-exporter-package/">Protesilaos Stavrou: Emacs: new modus-themes-exporter package</a> (<a href="https://www.youtube.com/watch?v=IVTqn9IgBN4">YouTube</a> 2:56:36)</li>
<li><a href="https://github.com/WJCFerguson/emacs-faff-theme">faff theme v4.0; now using modus-themes</a> (<a href="https://www.reddit.com/r/emacs/comments/1skdnsy/faff_theme_v40_now_using_modusthemes/">Reddit</a>)</li>
<li><a href="https://github.com/kn66/folio-theme.el">folio-theme: a warm paper-like light theme for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1spq66y/foliotheme_a_warm_paperlike_light_theme_for_emacs/">Reddit</a>)</li>
<li><a href="https://emacsredux.com/blog/2026/04/20/batppuccin-and-tokyo-night-themes-on-melpa/">Emacs Redux: Batppuccin and Tokyo Night Themes Land on MELPA</a></li>
</ul></li>
<li>Navigation:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=VxTu7a1q7Co">Emacs Query Replace Is A Bloody Good Way To Make Quick Changes 2026 04 15 02:51:42</a> (05:33)</li>
<li><a href="https://irreal.org/blog/?p=13752">Irreal: A Short Report On Help Focus</a></li>
<li><a href="https://mstdn.social/@paniash/116415994916152273">Tip about using consult-focus-lines</a></li>
</ul></li>
<li>Dired:
<ul class="org-ul">
<li><a href="https://mbork.pl/2026-04-13_Binding_TAB_in_Dired_to_something_useful">Marcin Borkowski: Binding TAB in Dired to something useful</a> (<a href="https://irreal.org/blog/?p=13745">Irreal</a>)</li>
<li><a href="https://www.emacs.dyerdwelling.family/emacs/20260409104443-emacs&#45;&#45;emacs-diyer-a-built-in-dired-collapse-replacement/">James Dyer: Emacs-DIYer: A Built-in dired-collapse Replacement</a></li>
<li><a href="https://github.com/kickingvegas/casual/discussions/452">casual 2.16.0: improvements to Dired for marked file operations and context-sensitive behavior</a> (<a href="https://sfba.social/@kickingvegas/116413255733206394">@kickingvegas@sfba.social</a>)</li>
</ul></li>
<li>Writing:
<ul class="org-ul">
<li><a href="https://blog.davep.org/2026/04/16/boxquote-el-v2-4.html">Dave Pearson: boxquote.el v2.4</a> - added a transient</li>
<li><a href="https://blog.davep.org/2026/04/17/blogmore-el-v4-1.html">Dave Pearson: blogmore.el v4.1</a> - change image extension to webp</li>
<li><a href="https://github.com/alberti42/emacs-ltex-plus">Launching a new grammar/spell checking tool for Org-mode, LaTeX, Markdown, Python, Clang, etc.</a> (<a href="https://www.reddit.com/r/emacs/comments/1sp1wly/launching_a_new_grammarspell_checking_tool_for/">Reddit</a>)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1sneddx/ekg_version_090_new_notes_ui_apple_notes_syncing/">ekg version 0.9.0: New notes UI, Apple Notes Syncing, agentic actions and org integration</a> (<a href="https://youtu.be/4hCW3Bd0xVA">YouTube</a> 21:36)</li>
</ul></li>
<li>Org Mode:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=_hq_2ikdaeg">Remember everything with Org Mode</a> (10:17)</li>
<li><a href="https://andysylvester.com/2026/04/16/organizing-my-retirement-with-org-mode/">Organizing my retirement with org-mode – Andy Sylvester's Web</a></li>
<li><a href="https://www.youtube.com/watch?v=ZodBNFUb8cE">Org-roam pour la prise de notes (avec Spacemacs)</a> (20:37)</li>
<li><a href="https://github.com/SSD2019/org-auto-scheduler">org-auto-scheduler</a> (<a href="https://www.reddit.com/r/orgmode/comments/1snaflg/orgautoscheduler/">r/emacs</a>, <a href="https://www.reddit.com/r/orgmode/comments/1snaflg/orgautoscheduler/">r/orgmode</a>)</li>
<li><a href="https://github.com/landerwells/folgezett.el">folgezett.el a package for Org-Roam users</a> (<a href="https://www.reddit.com/r/emacs/comments/1sllluk/folgezettel_a_package_for_orgroam_users/">Reddit</a>)</li>
<li><a href="https://orgmode.org/worg/org-performance.html">Avoiding mismatched Org versions by removing ELPA/MELPA packages and other Org performance tips</a> (<a href="https://graz.social/@publicvoit/116430325004979567">@publicvoit@graz.social</a>)</li>
<li><a href="https://www.reddit.com/gallery/1slq1lp">Emacs as a Math Notebook and Advanced Symbolic Solver!</a> (<a href="https://irreal.org/blog/?p=13747">Irreal</a>)</li>
<li><a href="https://list.orgmode.org/87y0ijp82r.fsf@localhost/T/#u">#28 bbb:OrgMeetup on Wed, March 11, 19:00 UTC+3 - meeting notes</a> (<a href="https://fosstodon.org/@yantar92/116430882675031137">@yantar92@fosstodon.org</a>)</li>
<li>Import, export, and integration:
<ul class="org-ul">
<li><a href="https://v.redd.it/3htvkq46ymvg1">Graphs in Org-Mode! Matplotlib Demo</a> (<a href="https://www.reddit.com/r/emacs/comments/1snjwq6/graphs_in_orgmode_matplotlib_demo/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=9ldWuYSXeQg">[EMACS LAB] #4: "literate" programming (org-babel)</a> (01:38:44)</li>
<li><a href="https://list.orgmode.org/877bq98dz6.fsf@christianmoe.com">Org Mode requests: [RFC] Drop GoogleCL from LoB + ideas for a replacement?</a></li>
<li><a href="https://jamesendreshowell.com/2026-04-15-embedding-a-mastodon-thread-as-comments-to-a-blog-post.html">James Endres Howell: Embedding a Mastodon thread as comments to a blog post</a> - org-static-blog-emfed</li>
<li><a href="https://sachachua.com/blog/2026/04/org-mode-js-for-translating-times-to-people-s-local-timezones/">Sacha Chua: Org Mode: JS for translating times to people's local timezones</a></li>
<li><a href="https://sachachua.com/blog/2026/04/create-a-google-calendar-event-from-an-org-mode-timestamp/">Sacha Chua: Create a Google Calendar event from an Org Mode timestamp</a></li>
<li><a href="https://karl-voit.at/2026/04/19/lazyblorg-recent-features">Recent Features Added to lazyblorg (Static Blog Generator)</a> (<a href="https://fediscience.org/@jameshowell/116434740846856996">@jameshowell@fediscience.org</a>)</li>
<li><a href="https://scheatkode.com/blog/019d463d-38b3-7e63-80fd-6ed97bd8815e/hot-wiring-the-lisp-machine/">Hot-wiring the lisp machine</a> (<a href="https://www.reddit.com/r/emacs/comments/1soycfk/hotwiring_the_lisp_machine/">Reddit</a>, <a href="https://lobste.rs/s/xitxrt/hot_wiring_lisp_machine">lobste.rs</a>) - modifying publishing</li>
</ul></li>
<li>Org development:
<ul class="org-ul">
<li><a href="https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/etc/ORG-NEWS?id=e6f19e233d6718af0f695a6debfb520fd6233ef2">New function org&ndash;forward-sentence-thing-at-point-provider</a></li>
</ul></li>
</ul></li>
<li>Completion:
<ul class="org-ul">
<li><a href="https://www.chiply.dev/post-icr-primer">Completion is a Substrate, not a UI</a> (<a href="https://www.reddit.com/r/emacs/comments/1sl7dbc/completion_is_a_substrate_not_a_ui/">Reddit</a>, <a href="https://lobste.rs/s/0fgmja/completion_is_substrate_not_ui">lobste.rs</a>)</li>
<li><a href="https://www.chiply.dev/post-vompeccc">VOMPECCC: A Modular Completion Framework for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1sn4d2d/vompeccc_a_modular_completion_framework_for_emacs/">Reddit</a>)</li>
</ul></li>
<li>Coding:
<ul class="org-ul">
<li><a href="https://mastodon.social/@PuercoPop/116403622387083909">Tip about using eglot-extend-to-xref</a></li>
<li><a href="https://github.com/jsilve24/eglot-rcpp">New Package: eglot-rcpp for simplifying Rcpp package development in emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1sp6if0/new_package_eglotrcpp_for_simplifying_rcpp/">Reddit</a>)</li>
<li><a href="https://www.youtube.com/watch?v=7-NPyRHSJyM">Scheme for Beginners 2: Guile and Emacs</a> (04:56)</li>
<li><a href="https://www.reddit.com/r/emacs/comments/1spozy5/shipit_update_atlassian_dashboard_for_jira/">Shipit update: Atlassian Dashboard for Jira, PR↔issue linking, and activity-level notification navigation</a></li>
<li><a href="https://github.com/jeremias-a-queiroz/k8s-to-puml">[Showcase] k8s-to-puml: Deterministic Kubernetes diagrams from your manifests using Tree-sitter and GOFAI rules</a> (<a href="https://www.reddit.com/r/emacs/comments/1soz3y4/showcase_k8stopuml_deterministic_kubernetes/">Reddit</a>)</li>
</ul></li>
<li>Shells:
<ul class="org-ul">
<li><a href="https://www.galbuki.ch/blog/clipboard-in-terminal-emacs-with-wezterm&#45;&#45;20260415.html">Gal Buki: Clipboard in terminal Emacs with WezTerm</a></li>
</ul></li>
<li>Web:
<ul class="org-ul">
<li><a href="https://github.com/chenyanming/paw_browser_extension">paw browser extension can now manage tabs and send tab info, copy links to Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1sojdvd/paw_browser_extension_can_now_manage_tabs_and/">Reddit</a>) Chrome/Firefox extension for sending page context via org-protocol</li>
</ul></li>
<li>Doom Emacs:
<ul class="org-ul">
<li><a href="https://www.reddit.com/r/emacs/comments/1sm9cg8/my_doom_emacs_config_for_software_development_150/">My Doom Emacs config for software development — 150 lines covering LSP, Magit, org-roam, and a custom dashboard</a></li>
</ul></li>
<li>Multimedia:
<ul class="org-ul">
<li><a href="https://dataswamp.org/~incal/el-gpu/">el-gpu</a> (<a href="https://dataswamp.org/~incal/el-gpu/el-gpu.mkv">Video</a> 1:46, 79M)</li>
<li><a href="https://www.youtube.com/watch?v=hG1t79fF95I">YE17: Livestream conveniences, editing yesterday's transcript</a> (50:50)</li>
<li><a href="https://sachachua.com/blog/2026/04/make-chapter-markers-and-video-time-hyperlinks-easier-to-note-while-i-livestream/">Sacha Chua: Make chapter markers and video time hyperlinks easier to note while I livestream</a></li>
</ul></li>
<li>Fun:
<ul class="org-ul">
<li><a href="https://blog.davep.org/2026/04/14/wordcloud-el-v1-4.html">Dave Pearson: wordcloud.el v1.4</a></li>
<li><a href="https://blog.davep.org/2026/04/15/slstats-el-v1-11.html">Dave Pearson: slstats.el v1.11</a> - Second Life grid</li>
</ul></li>
<li>AI:
<ul class="org-ul">
<li><a href="https://20y.hu/~slink/journal/agent-shell/index.html">Agentic development workflow in Emacs</a></li>
<li><a href="https://github.com/zawatton/anvil.el">anvil.el — Forge Emacs into Claude Code's weapon</a> (<a href="https://www.reddit.com/r/emacs/comments/1sl0nu5/anvilel_forge_emacs_into_claude_codes_weapon/">Reddit</a>)</li>
<li><a href="https://github.com/SemyonSinchenko/sem-assistant-el">Headless Emacs + Org + LLMs in Docker as a backend for personal automation</a> (<a href="https://www.reddit.com/r/emacs/comments/1smhda6/headless_emacs_org_llms_in_docker_as_a_backend/">Reddit</a>)</li>
<li><a href="https://github.com/ahyatt/llm-test">Announcing llm-test, a very high-level testing framework for Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1smeyln/announcing_llmtest_a_very_highlevel_testing/">Reddit</a>)</li>
</ul></li>
<li>Community:
<ul class="org-ul">
<li><a href="https://www.youtube.com/watch?v=jx72fqm9EWw">VSCode too SLOW | switch to Emacs and go to PLAID</a> (06:59)</li>
<li><a href="https://hispa-emacs.org/2026-04-15-Cocin%C3%A1ndose-la-renovaci%C3%B3n-de-la-Web.html">Cocinándose la renovación de la Web&hellip; | Hacia la Hispa-Emacs Conf. 2026 !</a> (<a href="https://fosstodon.org/@hispaemacs/116409225228044071">@hispaemacs@fosstodon.org</a>)</li>
<li><a href="https://sachachua.com/blog/2026/04/ye16-sacha-and-prot-talk-emacs/">Sacha Chua: YE16: Sacha and Prot talk Emacs</a></li>
<li><a href="https://macadie.info/2026/04/19/2026-04-austin-emacs-meetup/">Eric MacAdie: 2026-04 Austin Emacs Meetup</a></li>
<li><a href="https://www.buzzsprout.com/2469780/episodes/19034506">26: Why You'll Never Switch Editors (And What You're Missing)</a></li>
</ul></li>
<li>Other:
<ul class="org-ul">
<li><a href="https://mementomori.social/@tml/116416045226298692">Tip about setting w32-use-visible-system-caret to nil on Windows</a></li>
<li><a href="https://github.com/ovistoica/omarchy.el"># omarchy.el - Emacs integration for Omarchy</a> (<a href="https://www.reddit.com/r/omarchy/comments/1sq0p4e/omarchyel_emacs_integration_for_omarchy/">Reddit</a>)</li>
<li><a href="https://eshelyaron.com/posts/2026-04-15-towards-trust-in-emacs.html">trust-manager.el — Towards Trust in Emacs</a> (<a href="https://www.reddit.com/r/emacs/comments/1soro97/trustmanagerel_towards_trust_in_emacs/">Reddit</a>, <a href="https://news.ycombinator.com/item?id=47778938">HN</a>, <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-04/msg00252.html">long discussion on emacs-devel</a>)</li>
<li><a href="https://github.com/emskin/emskin">emskin: a nested Wayland compositor in Rust that embeds any app into Emacs windows</a> (<a href="https://www.reddit.com/r/emacs/comments/1sooz6l/emskin_a_nested_wayland_compositor_in_rust_that/">Reddit</a>)</li>
<li><a href="https://davemq.github.io/2026/04/14/posframe-everything.html">Dave's blog: Posframe for everything</a></li>
</ul></li>
<li>Emacs development:
<ul class="org-ul">
<li>emacs-devel:
<ul class="org-ul">
<li><a href="https://yhetil.org/emacs-devel/CAAs=0-1y8fUJEVbwpXsVYiPH-QGAs2XTYMVJPGOD04AFRehCAA@mail.gmail.com/">External loops and Emacs: state machines vs two C stacks - Vladimir Kazanov</a></li>
<li><a href="https://yhetil.org/emacs-devel/87ldej9zfk.fsf@posteo.net/">Re: Alternative Emacs logo - Philip Kaludercic</a> (<a href="https://yhetil.org/emacs-devel/87tt1jwsp9.fsf@posteo.org/2-gnu_emacs_logo.svg">SVG</a>)</li>
<li><a href="https://yhetil.org/emacs-devel/AMBP194MB2691031FB5AFFB0B1B50610A84232@AMBP194MB2691.EURP194.PROD.OUTLOOK.COM/">RE: Translation of manuals (was: SES manual French translation) - Vincent Belaïche</a> - texinfo bug for UTF-8</li>
</ul></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=abde2d1ed3bbd5cf89fede83664ec3424527819c">Restrict Dired handling of newlines in file names</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=1811ce52c29b6119d71942f4186c2330f60247a0">; * etc/NEWS: Presentational fixes and improvements.</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=3d822669eee7f6e685368b8a298b6f0924f382da">Announce ert-play-keys in etc/NEWS.</a></li>
<li><a href="https://git.savannah.gnu.org/cgit/emacs.git/commit/etc/NEWS?id=0384600a21fb363e623afa658d1e66a54f79d2fb">New faces 'tab-line-active' and 'tab-line-inactive' (bug#80742)</a></li>
</ul></li>
<li>New packages:
<ul class="org-ul">
<li><a target="_blank" href="https://melpa.org/#/agent-recall">agent-recall</a>: Search and browse agent-shell conversation transcripts (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/batppuccin">batppuccin</a>: Shared infrastructure for Batppuccin themes (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/citar-vulpea">citar-vulpea</a>: Minor mode integrating Citar and Vulpea (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/comet-trail">comet-trail</a>: Cursor comet trail effect (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/elixir-iex">elixir-iex</a>: IEx REPL via eat terminal emulator (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/go-prettify-mode">go-prettify-mode</a>: Hide `if err != nil' and prettify them (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/hidepass">hidepass</a>: Hide passwords at one or multiple lines (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/http-server">http-server</a>: Speaks HTTP for you (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/modus-ewal-theme">modus-ewal-theme</a>: Modus theme that uses pywal colors powered by ewal (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/python-unicode-escape">python-unicode-escape</a>: Completion for Python \N{NAME} escapes (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/rimel">rimel</a>: A lightweight Rime input method (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/rocq-timing">rocq-timing</a>: Display timing of rocq commands in buffer (MELPA)</li>
<li><a target="_blank" href="https://melpa.org/#/sidebuf">sidebuf</a>: Buffer list sidebar panel (MELPA)</li>
</ul></li>
</ul>


<p>
Links from <a href="https://www.reddit.com/r/emacs">reddit.com/r/emacs</a>, <a href="https://www.reddit.com/r/orgmode">r/orgmode</a>, <a href="https://www.reddit.com/r/spacemacs">r/spacemacs</a>, <a href="https://mastodon.social/tags/emacs">Mastodon #emacs</a>, <a href="https://bsky.app/hashtag/emacs">Bluesky #emacs</a>, <a href="https://hn.algolia.com/?query=emacs&amp;sort=byDate&amp;prefix&amp;page=0&amp;dateRange=all&amp;type=story">Hacker News</a>, <a href="https://lobste.rs/search?q=emacs&amp;what=stories&amp;order=newest">lobste.rs</a>, <a href="https://programming.dev/c/emacs?dataType=Post&amp;page=1&amp;sort=New">programming.dev</a>, <a href="https://lemmy.world/c/emacs">lemmy.world</a>, <a href="https://lemmy.ml/c/emacs?dataType=Post&amp;page=1&amp;sort=New">lemmy.ml</a>, <a href="https://planet.emacslife.com">planet.emacslife.com</a>, <a href="https://www.youtube.com/playlist?list=PL4th0AZixyREOtvxDpdxC9oMuX7Ar7Sdt">YouTube</a>, <a href="http://git.savannah.gnu.org/cgit/emacs.git/log/etc/NEWS">the Emacs NEWS file</a>, <a href="https://emacslife.com/calendar/">Emacs Calendar</a>, and <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-04">emacs-devel</a>. Thanks to Andrés Ramírez for emacs-devel links. Do you have an Emacs-related link or announcement? Please e-mail me at <a href="mailto:sacha@sachachua.com">sacha@sachachua.com</a>. Thank you!
</p>
<div><a href="https://sachachua.com/blog/2026/04/2026-04-20-emacs-news/index.org">View Org source for this post</a></div><p>You can <a href="https://social.sachachua.com/@sacha/statuses/01KPNPPZCQ3EE7E3JW0PF99AJ2" target="_blank" rel="noopener noreferrer">comment on Mastodon</a> or <a href="mailto:sacha@sachachua.com?subject=Comment%20on%20https%3A%2F%2Fsachachua.com%2Fblog%2F2026%2F04%2F2026-04-20-emacs-news%2F&body=Name%20you%20want%20to%20be%20credited%20by%20(if%20any)%3A%20%0AMessage%3A%20%0ACan%20I%20share%20your%20comment%20so%20other%20people%20can%20learn%20from%20it%3F%20Yes%2FNo%0A">e-mail me at sacha@sachachua.com</a>.</p>]]></content>
		</entry>
</feed>