<rss xmlns:source="http://source.scripting.com/" version="2.0">
  <channel>
    <title>The Art Of Not Asking Why</title>
    <link>https://taonaw.com/</link>
    <description></description>
    
    <language>en</language>
    
    <lastBuildDate>Tue, 18 Aug 2026 11:16:49 -0400</lastBuildDate>
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/18/made-a-couple-of-more.html</link>
      <pubDate>Tue, 18 Aug 2026 08:30:03 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/18/made-a-couple-of-more.html</guid>
      <description>&lt;p&gt;Made a couple of more tweaks to the CSS. Dove deeper this time, used Claude to help me figure out how to get to these elements in the CSS: footnotes&amp;rsquo; anchor (the super-text number) and the arrow leading back to the original post. Looks as intended now.&lt;/p&gt;
&lt;p&gt;Also changed the buttons in the navigation tab to stand out more and be readable when hovering over them. The colors balances nicely on both themes I think.&lt;/p&gt;
</description>
      <source:markdown>Made a couple of more tweaks to the CSS. Dove deeper this time, used Claude to help me figure out how to get to these elements in the CSS: footnotes&#39; anchor (the super-text number) and the arrow leading back to the original post. Looks as intended now.

Also changed the buttons in the navigation tab to stand out more and be readable when hovering over them. The colors balances nicely on both themes I think.  
</source:markdown>
    </item>
    
    <item>
      <title>RSI and Emacs: When Your Pinky Says Enough is Enough</title>
      <link>https://taonaw.com/2026/08/16/rsi-and-emacs-when-your.html</link>
      <pubDate>Sun, 16 Aug 2026 21:54:19 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/16/rsi-and-emacs-when-your.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been doing so much Emacs writing lately, so I guess it&amp;rsquo;s time I get my Emacs pinky (which is a form of &lt;a href=&#34;https://en.wikipedia.org/wiki/Repetitive_strain_injury&#34;&gt;RSI&lt;/a&gt;). I made a quick reference to it &lt;a href=&#34;https://taonaw.com/2026/08/13/emacs-pinky-is-becoming-a.html&#34;&gt;three days ago&lt;/a&gt; and got a lot of responses.&lt;/p&gt;
&lt;h3 id=&#34;what-happened&#34;&gt;What happened?&lt;/h3&gt;
&lt;p&gt;I started to feel a strain last week, but at first I didn&amp;rsquo;t think much about it. Sometimes my pinky rests awkwardly on the keyboard because I&amp;rsquo;m used to using the Caps Lock key, but it&amp;rsquo;s usually a hand-position issue. After I readjust and let my pinky rest, it goes away.&lt;/p&gt;
&lt;p&gt;This time the strain didn&amp;rsquo;t go away, and my pinky kept rebelling.&lt;/p&gt;
&lt;p&gt;My keyboard, &lt;a href=&#34;https://gaming.kinesis-ergo.com/edge/&#34;&gt;Kinesis Freestyle Edge&lt;/a&gt; (the one here is the RGB+, the original RGB is discontinued), has a prominent Caps Lock key that just screams &amp;ldquo;use me as control!&amp;rdquo; For years, that&amp;rsquo;s what I did. As you can see in the picture, with my pinky resting on it.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/88063302f0.jpg&#34; alt=&#34;A hand is positioned on the left side of a  Kinesis Gaming mechanical keyboard with blue backlit keys.&#34;&gt;
&lt;p&gt;The last week has been busy. I didn&amp;rsquo;t leave my small Manhattan apartment for two days, working straight from morning to evening, then gaming and sleeping. This isn&amp;rsquo;t normal for me and has taken a toll on my hands, and the RSI got worse.&lt;/p&gt;
&lt;p&gt;I think my new screen also exacerbated the problem somehow. It&amp;rsquo;s much bigger and has higher resolution, which I&amp;rsquo;m still adjusting to by how I sit and how I move my head and neck. I also have a standing desk I usually use in its standing position in the morning, when I write these posts or work on projects — these are easily my longest writing sessions, sometimes going for two hours straight without a break, especially in the last couple of weeks, and that&amp;rsquo;s all Emacs and pinky work.&lt;/p&gt;
&lt;p&gt;When I thought about Emacs pinky in the past, I mostly thought of it with a smirk. I mean, it&amp;rsquo;s your &lt;em&gt;pinky&lt;/em&gt;. How can you not read a comment about someone having their little finger hurt and not chuckle a bit? But folks, let me tell you, once you have it, you realize how much you depend on that one small finger, especially as an Emacs user.&lt;/p&gt;
&lt;p&gt;My work, my organization, even my gaming in the evening (as it turns out), it&amp;rsquo;s all going through that little finger. Sure, it&amp;rsquo;s my &amp;ldquo;fault&amp;rdquo; for using Emacs, but if you&amp;rsquo;ve been reading this blog for a while you&amp;rsquo;d know that I owe many things to Emacs (including, among other things, my current job).&lt;/p&gt;
&lt;h3 id=&#34;what-am-i-doing-about-it&#34;&gt;What am I doing about it?&lt;/h3&gt;
&lt;p&gt;For now, I&amp;rsquo;ve started using the keyboard&amp;rsquo;s dedicated control key again and changed how I use my hands. I try to use my right thumb, all the way to the side from the home row (my keyboard is huge, I will get to that in a minute) for when I need to use the left side of the keyboard, and then fold my pinky and use my knuckle to press it when I need the left control, for when I use the right side of the keyboard, as you can see in this picture:&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/9a230eb03c.jpg&#34; width=&#34;600&#34; height=&#34;672&#34; alt=&#34;A hand is resting the keys X and A with the little finger curled over the Ctrl key on a backlit keyboard with blue lighting.&#34;&gt;
&lt;p&gt;This adjustment is the easiest, since I know where these Control keys are by muscle memory. I turned off my Caps as control on my Mac to make sure I don&amp;rsquo;t get tempted to go back to my old habit. It&amp;rsquo;s been working OK, and that&amp;rsquo;s what I&amp;rsquo;m doing right now for writing this post.&lt;/p&gt;
&lt;p&gt;Other Emacs users have suggested several things, and I&amp;rsquo;ve been considering and trying a few of them.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/emacsorphanage/god-mode&#34;&gt;god-mode&lt;/a&gt; came up a couple of times. It creates a chord (two keys pressed at once) key binding that triggers a control press. For example, &lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;d&lt;/kbd&gt;, and then &lt;kbd&gt;x&lt;/kbd&gt;&lt;kbd&gt;s&lt;/kbd&gt; (separately) to save a file in Emacs — same as &lt;kbd&gt;C-x&lt;/kbd&gt;&lt;kbd&gt;C-s&lt;/kbd&gt;. This can be useful, but it has two problems.&lt;/p&gt;
&lt;p&gt;The obvious one is that this shortcut works only in Emacs. When I don&amp;rsquo;t use Emacs, which happens more often than I&amp;rsquo;d like for work, I have to use the OS shortcuts. Caps is so ingrained in my fingers&amp;rsquo; memory that I just use it all the time, but now I need to start thinking of other options. I could probably program the keyboard&amp;rsquo;s firmware to do something similar, but that&amp;rsquo;s a topic in itself — and if I do that, I don&amp;rsquo;t need god-mode anyway. Another odd issue is that it doesn&amp;rsquo;t work on my Mac. It throws a GCC error, which from what I gather has to do with Emacs internals and how it works (or doesn&amp;rsquo;t work in this case) with its internal compiling mechanisms. Yes, I tried the fix, which doesn&amp;rsquo;t seem to work well with Homebrew, and I gave up on it.&lt;/p&gt;
&lt;p&gt;There are other packages like god-mode, but I think the next one I&amp;rsquo;m going to try is &lt;a href=&#34;http://xahlee.info/emacs/misc/xah-fly-keys.html&#34;&gt;Xah Fly Keys&lt;/a&gt;, because what he&amp;rsquo;s after seems to make sense to me. Which brings me to the next point: a new keyboard.&lt;/p&gt;
&lt;h3 id=&#34;new-keyboards&#34;&gt;New Keyboards&lt;/h3&gt;
&lt;p&gt;I&amp;rsquo;ve been considering a new keyboard for a while, and the RSI has sped up the process. I&amp;rsquo;ve looked at a couple reviews and YouTube videos in the last couple of days. Kinesis, my current keyboard brand, is a known name in the ergonomic keyboard world, but after checking out their &lt;a href=&#34;https://kinesis-ergo.com/keyboards/advantage360/&#34;&gt;Advantage 360&lt;/a&gt; I&amp;rsquo;m not sure I&amp;rsquo;m sold. It&amp;rsquo;s an excellent premium-looking keyboard, but it&amp;rsquo;s having a huge and heavy keyboard again. My hands are small, and I&amp;rsquo;m not sure I want to commit to another expensive giant, especially when I already struggle with room for the mouse, especially when the two halves are spread apart for the shoulders. I already compromise on this, and my chest is closer than it should be. I also think that for the price of these keyboards (over $400), I might want to take them with me when I go to the office, and with a Kinesis keyboard, this is not going to happen. Another thing I&amp;rsquo;m considering is going wireless, because of &lt;a href=&#34;https://taonaw.com/2025/09/18/what-i-learned-about-kvms.html&#34;&gt;my USB switch setup&lt;/a&gt;. It can take my Linux Desktop or the Mac up to 30 seconds to detect the keyboard when I switch, which is small, but still annoying. The mouse, connected by a Bluetooth dongle, takes a second to switch over.&lt;/p&gt;
&lt;p&gt;The above reasons, and Xah&amp;rsquo;s reviews, landed me on &lt;a href=&#34;https://www.moergo.com/collections/glove80-keyboards&#34;&gt;Glove80&lt;/a&gt;, which is even a weirder-looking keyboard. This keyboard takes ergonomics further (or just looks crazier, if you&amp;rsquo;re not into those). It&amp;rsquo;s wireless and lighter, which means taking it with me makes more sense, and will hopefully fix the USB lag issue. It has keywells for the fingers, which is basically a &amp;ldquo;dip&amp;rdquo; or a bowl (hence the name) that curves downwards so your fingers, which are naturally curled on a keyboard, are resting downwards. It has its own super-light switches, which, while I don&amp;rsquo;t think I need them, are another example of thinking of RSI and finger pain.&lt;/p&gt;
&lt;p&gt;Going further with light keyboards, there&amp;rsquo;s the &lt;a href=&#34;https://www.zsa.io/voyager&#34;&gt;Voyager&lt;/a&gt;, which is tiny, lighter, and minimal. It&amp;rsquo;s not wireless, but it&amp;rsquo;s meant to be mobile, and it&amp;rsquo;s probably the best one for small hands. However, the Voyager only has 52 keys. It&amp;rsquo;s meant to be used with layers — meaning, there&amp;rsquo;s a modifier key that creates another &amp;ldquo;layer&amp;rdquo; of keys, which makes your Alt act as Ctrl, for example. I&amp;rsquo;m not sure I&amp;rsquo;m sold on this idea, especially when we&amp;rsquo;re talking Emacs. If I&amp;rsquo;m already challenged by my lack of Caps Lock, I can only imagine how much time I will have to sink into this keyboard with its layers and grid layout (which the Glove80 has too, by the way) to become efficient with it. I also think the Keywell is something I could use, so I have a rough idea of what I want to try next.&lt;/p&gt;
&lt;p&gt;The problem with the Glove80 is that you can&amp;rsquo;t really try it out. They have a 30-day return policy, shipping not included, and they&amp;rsquo;re in New Zealand. A keyboard like that takes time to get used to, and 30 days for a $ 400-plus keyboard requires a level of confidence in the product I don&amp;rsquo;t have yet.&lt;/p&gt;
&lt;h3 id=&#34;my-conclusion-so-far&#34;&gt;My conclusion so far&lt;/h3&gt;
&lt;p&gt;All in all, I think what I&amp;rsquo;m looking at is a combination of adjustments rather than one solution. I need to get used to the idea of different key bindings, be it something like god-mode or Xah Fly Keys, which will make it easier to use with a new keyboard and would also be beneficial now, until I get it. The idea of layering is a bit daunting, but I can see the wisdom in it, especially after I got an email back from &lt;a href=&#34;https://www.rousette.org.uk/&#34;&gt;BSAG&lt;/a&gt;, who was kind enough to share her experience with me (she&amp;rsquo;s the one who told me about the Voyager keyboard).&lt;/p&gt;
&lt;p&gt;It will be a while before I buy a new keyboard, then it will take some time to get here, and then it will take me even longer to get used to one. I&amp;rsquo;m not looking forward to having my typing hindered even further, especially because I&amp;rsquo;m so dependent on writing notes all the time, but it&amp;rsquo;s also &lt;em&gt;because&lt;/em&gt; of it that I have to do it. This is one thing I know I need to do.&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve been doing so much Emacs writing lately, so I guess it&#39;s time I get my Emacs pinky (which is a form of [RSI](https://en.wikipedia.org/wiki/Repetitive_strain_injury)). I made a quick reference to it [three days ago](https://taonaw.com/2026/08/13/emacs-pinky-is-becoming-a.html) and got a lot of responses.

### What happened?

I started to feel a strain last week, but at first I didn&#39;t think much about it. Sometimes my pinky rests awkwardly on the keyboard because I&#39;m used to using the Caps Lock key, but it&#39;s usually a hand-position issue. After I readjust and let my pinky rest, it goes away.

This time the strain didn&#39;t go away, and my pinky kept rebelling.

My keyboard, [Kinesis Freestyle Edge](https://gaming.kinesis-ergo.com/edge/) (the one here is the RGB+, the original RGB is discontinued), has a prominent Caps Lock key that just screams &#34;use me as control!&#34; For years, that&#39;s what I did. As you can see in the picture, with my pinky resting on it.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/88063302f0.jpg&#34; alt=&#34;A hand is positioned on the left side of a  Kinesis Gaming mechanical keyboard with blue backlit keys.&#34;&gt;

The last week has been busy. I didn&#39;t leave my small Manhattan apartment for two days, working straight from morning to evening, then gaming and sleeping. This isn&#39;t normal for me and has taken a toll on my hands, and the RSI got worse.

I think my new screen also exacerbated the problem somehow. It&#39;s much bigger and has higher resolution, which I&#39;m still adjusting to by how I sit and how I move my head and neck. I also have a standing desk I usually use in its standing position in the morning, when I write these posts or work on projects — these are easily my longest writing sessions, sometimes going for two hours straight without a break, especially in the last couple of weeks, and that&#39;s all Emacs and pinky work.

When I thought about Emacs pinky in the past, I mostly thought of it with a smirk. I mean, it&#39;s your *pinky*. How can you not read a comment about someone having their little finger hurt and not chuckle a bit? But folks, let me tell you, once you have it, you realize how much you depend on that one small finger, especially as an Emacs user.

My work, my organization, even my gaming in the evening (as it turns out), it&#39;s all going through that little finger. Sure, it&#39;s my &#34;fault&#34; for using Emacs, but if you&#39;ve been reading this blog for a while you&#39;d know that I owe many things to Emacs (including, among other things, my current job). 

### What am I doing about it?

For now, I&#39;ve started using the keyboard&#39;s dedicated control key again and changed how I use my hands. I try to use my right thumb, all the way to the side from the home row (my keyboard is huge, I will get to that in a minute) for when I need to use the left side of the keyboard, and then fold my pinky and use my knuckle to press it when I need the left control, for when I use the right side of the keyboard, as you can see in this picture:

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/9a230eb03c.jpg&#34; width=&#34;600&#34; height=&#34;672&#34; alt=&#34;A hand is resting the keys X and A with the little finger curled over the Ctrl key on a backlit keyboard with blue lighting.&#34;&gt;

This adjustment is the easiest, since I know where these Control keys are by muscle memory. I turned off my Caps as control on my Mac to make sure I don&#39;t get tempted to go back to my old habit. It&#39;s been working OK, and that&#39;s what I&#39;m doing right now for writing this post.

Other Emacs users have suggested several things, and I&#39;ve been considering and trying a few of them.

[god-mode](https://github.com/emacsorphanage/god-mode) came up a couple of times. It creates a chord (two keys pressed at once) key binding that triggers a control press. For example, &lt;kbd&gt;s&lt;/kbd&gt;&lt;kbd&gt;d&lt;/kbd&gt;, and then &lt;kbd&gt;x&lt;/kbd&gt;&lt;kbd&gt;s&lt;/kbd&gt; (separately) to save a file in Emacs — same as &lt;kbd&gt;C-x&lt;/kbd&gt;&lt;kbd&gt;C-s&lt;/kbd&gt;. This can be useful, but it has two problems.

The obvious one is that this shortcut works only in Emacs. When I don&#39;t use Emacs, which happens more often than I&#39;d like for work, I have to use the OS shortcuts. Caps is so ingrained in my fingers&#39; memory that I just use it all the time, but now I need to start thinking of other options. I could probably program the keyboard&#39;s firmware to do something similar, but that&#39;s a topic in itself — and if I do that, I don&#39;t need god-mode anyway. Another odd issue is that it doesn&#39;t work on my Mac. It throws a GCC error, which from what I gather has to do with Emacs internals and how it works (or doesn&#39;t work in this case) with its internal compiling mechanisms. Yes, I tried the fix, which doesn&#39;t seem to work well with Homebrew, and I gave up on it.

There are other packages like god-mode, but I think the next one I&#39;m going to try is [Xah Fly Keys](http://xahlee.info/emacs/misc/xah-fly-keys.html), because what he&#39;s after seems to make sense to me. Which brings me to the next point: a new keyboard.

### New Keyboards

I&#39;ve been considering a new keyboard for a while, and the RSI has sped up the process. I&#39;ve looked at a couple reviews and YouTube videos in the last couple of days. Kinesis, my current keyboard brand, is a known name in the ergonomic keyboard world, but after checking out their [Advantage 360](https://kinesis-ergo.com/keyboards/advantage360/) I&#39;m not sure I&#39;m sold. It&#39;s an excellent premium-looking keyboard, but it&#39;s having a huge and heavy keyboard again. My hands are small, and I&#39;m not sure I want to commit to another expensive giant, especially when I already struggle with room for the mouse, especially when the two halves are spread apart for the shoulders. I already compromise on this, and my chest is closer than it should be. I also think that for the price of these keyboards (over $400), I might want to take them with me when I go to the office, and with a Kinesis keyboard, this is not going to happen. Another thing I&#39;m considering is going wireless, because of [my USB switch setup](https://taonaw.com/2025/09/18/what-i-learned-about-kvms.html). It can take my Linux Desktop or the Mac up to 30 seconds to detect the keyboard when I switch, which is small, but still annoying. The mouse, connected by a Bluetooth dongle, takes a second to switch over.

The above reasons, and Xah&#39;s reviews, landed me on [Glove80](https://www.moergo.com/collections/glove80-keyboards), which is even a weirder-looking keyboard. This keyboard takes ergonomics further (or just looks crazier, if you&#39;re not into those). It&#39;s wireless and lighter, which means taking it with me makes more sense, and will hopefully fix the USB lag issue. It has keywells for the fingers, which is basically a &#34;dip&#34; or a bowl (hence the name) that curves downwards so your fingers, which are naturally curled on a keyboard, are resting downwards. It has its own super-light switches, which, while I don&#39;t think I need them, are another example of thinking of RSI and finger pain.

Going further with light keyboards, there&#39;s the [Voyager](https://www.zsa.io/voyager), which is tiny, lighter, and minimal. It&#39;s not wireless, but it&#39;s meant to be mobile, and it&#39;s probably the best one for small hands. However, the Voyager only has 52 keys. It&#39;s meant to be used with layers — meaning, there&#39;s a modifier key that creates another &#34;layer&#34; of keys, which makes your Alt act as Ctrl, for example. I&#39;m not sure I&#39;m sold on this idea, especially when we&#39;re talking Emacs. If I&#39;m already challenged by my lack of Caps Lock, I can only imagine how much time I will have to sink into this keyboard with its layers and grid layout (which the Glove80 has too, by the way) to become efficient with it. I also think the Keywell is something I could use, so I have a rough idea of what I want to try next.

The problem with the Glove80 is that you can&#39;t really try it out. They have a 30-day return policy, shipping not included, and they&#39;re in New Zealand. A keyboard like that takes time to get used to, and 30 days for a $ 400-plus keyboard requires a level of confidence in the product I don&#39;t have yet. 

### My conclusion so far

All in all, I think what I&#39;m looking at is a combination of adjustments rather than one solution. I need to get used to the idea of different key bindings, be it something like god-mode or Xah Fly Keys, which will make it easier to use with a new keyboard and would also be beneficial now, until I get it. The idea of layering is a bit daunting, but I can see the wisdom in it, especially after I got an email back from [BSAG](https://www.rousette.org.uk/), who was kind enough to share her experience with me (she&#39;s the one who told me about the Voyager keyboard).

It will be a while before I buy a new keyboard, then it will take some time to get here, and then it will take me even longer to get used to one. I&#39;m not looking forward to having my typing hindered even further, especially because I&#39;m so dependent on writing notes all the time, but it&#39;s also *because* of it that I have to do it. This is one thing I know I need to do.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/16/they-seem-to-have-integrated.html</link>
      <pubDate>Sun, 16 Aug 2026 16:48:05 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/16/they-seem-to-have-integrated.html</guid>
      <description>&lt;p&gt;They seem to have integrated co-pilot into Word, and this is one place I appreciate having AI. I &lt;em&gt;hate&lt;/em&gt; Word. I don&amp;rsquo;t want to think in Word. I want to just say, “here is my org mode file, you go ahead and turn this into a Word doc.” Hit enter. Minimize. Leave me alone. Done.&lt;/p&gt;
</description>
      <source:markdown>They seem to have integrated co-pilot into Word, and this is one place I appreciate having AI. I _hate_ Word. I don&#39;t want to think in Word. I want to just say, “here is my org mode file, you go ahead and turn this into a Word doc.” Hit enter. Minimize. Leave me alone. Done. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/13/emacs-pinky-is-becoming-a.html</link>
      <pubDate>Thu, 13 Aug 2026 12:57:20 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/13/emacs-pinky-is-becoming-a.html</guid>
      <description>&lt;p&gt;Emacs pinky is becoming a thing for me recently.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve been a happy user of CAPS as control, but recently my pinky started rebelling. My keyboard is non-standard. Time to think of other solutions :(&lt;/p&gt;
</description>
      <source:markdown>Emacs pinky is becoming a thing for me recently.

I&#39;ve been a happy user of CAPS as control, but recently my pinky started rebelling. My keyboard is non-standard. Time to think of other solutions :(
</source:markdown>
    </item>
    
    <item>
      <title>Back to Solarized</title>
      <link>https://taonaw.com/2026/08/12/back-to-solarized.html</link>
      <pubDate>Wed, 12 Aug 2026 10:09:15 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/12/back-to-solarized.html</guid>
      <description>&lt;p&gt;Years ago, &lt;a href=&#34;https://taonaw.com/2018/08/17/libre-and-clothes.html&#34;&gt;when I started the old blog&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, I discovered &lt;a href=&#34;https://ethanschoonover.com/solarized/&#34;&gt;Solarized&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I liked it. The colors were beautiful and worked for me, but eventually I switched to the &lt;a href=&#34;https://emacsthemes.com/themes/gotham&#34;&gt;Gotham theme&lt;/a&gt; in Emacs, which, if you take a look, is not much different — just a bit darker. I stayed with this theme for a long time, tweaking it a bit after a &lt;a href=&#34;https://taonaw.com/2021/01/04/the-colors-of-new-mexico.html&#34;&gt;trip to New Mexico&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;When I received my Mac and started working on it at home, I enjoyed its automatic switching between dark and light themes. At the same time, Prot started coming out with more of his excellent &lt;a href=&#34;https://gitlab.com/protesilaos/ef-themes&#34;&gt;Ef Themes&lt;/a&gt;, and I adopted ef-reverie for my light theme and ef-night for my dark one (once again, if you look at the &lt;a href=&#34;https://protesilaos.com/emacs/ef-themes-pictures&#34;&gt;images&lt;/a&gt;, you&amp;rsquo;d see they&amp;rsquo;re not far off from Solarized, especially my choice of a light theme).&lt;/p&gt;
&lt;p&gt;This has been the state of affairs until the beginning of this week, when I &amp;ldquo;found&amp;rdquo; Solarized again. I discovered Prot himself was heavily influenced by Solarized, and he discussed it several times on his blog. Here&amp;rsquo;s &lt;a href=&#34;https://protesilaos.com/codelog/intro-prot16-builder/&#34;&gt;part of his background story&lt;/a&gt; for his project Prot16:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;My starting point for developing a colour scheme was Ethan Schoonover&amp;rsquo;s Solarized. A true masterpiece. I thus settled on a method of using a 16-colour palette that consists of 8 base values and 8 accents. As with Solarized, the themes would have to be able to transition from &amp;rsquo;light&amp;rsquo; to &amp;lsquo;dark&amp;rsquo; environments with minor alteration to the mapping of colours (though not the values themselves).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Prot&amp;rsquo;s quest is an interesting one. Like me, he enjoyed Solarized, but eventually decided the colors were not contrasting enough for his taste. His reaction was to create his well-known Modus themes, which, along with his Ef-themes and Prot16, set new theming standards for Emacs.&lt;/p&gt;
&lt;p&gt;Meanwhile, &lt;a href=&#34;https://taonaw.com/2023/07/05/halatoion-and-accessiblity.html&#34;&gt;I have had the other issue&lt;/a&gt; since childhood:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve never liked harsh contrast for this reason. As a matter of fact, a more &amp;ldquo;gentle&amp;rdquo; contrasting theme is one of the reasons I like working in Emacs. My website and my wiki are a result of these preferences. The black text on the beige background is comfortable on my eyes. Enough contrast to read, but not enough to burn text into my vision, as many dark modes out there do.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While Prot&amp;rsquo;s ef-themes offer softer contrast (I didn&amp;rsquo;t check, but it does seem so visually) which I find excellent, I decided to try out &lt;a href=&#34;https://github.com/bbatsov/solarized-emacs&#34;&gt;bbatsov&amp;rsquo;s Solarized for Emacs&lt;/a&gt;, which I didn&amp;rsquo;t know about in the past when I first picked up this theme for Emacs — the &lt;a href=&#34;https://github.com/sellout/emacs-color-theme-solarized&#34;&gt;official Emacs port&lt;/a&gt; is not as good in my opinion.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve learned a couple of things I wasn&amp;rsquo;t aware of. For starters, you can have many variations of this theme, even though the main 16 colors are still preserved. It makes sense when you think about it: one person can choose Solarized&amp;rsquo;s red (#dc322f in hex) as an emphasis, while another can select its yellow (#b58900) or orange (#cb4b16), for example. Webpages and Emacs take it a step further, as certain texts can be bold or italicized, with solid underlines or dashed ones, etc. All of those changes take place without touching the colors themselves.&lt;/p&gt;
&lt;p&gt;Solarized also helps me with a certain itch I&amp;rsquo;ve had for a couple of months: a dark theme for my blog. I know most of you read my posts in your RSS reader, hopefully with a theme you enjoy, so this won&amp;rsquo;t matter much. For me, how my site looks and is styled is important, and getting there is fun.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/my-city3.png&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;A minimalist (solarized) skyline of a city with a prominent tall building, set against a dark background with waves in the foreground and a red moon in the sky.&#34;&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;This post is here, on the new blog, because I migrated it from the old. The date on it is accurate however, and it&amp;rsquo;s the first post I have saved in my old archive. The same is true about the New Mexico post.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      <source:markdown>Years ago, [when I started the old blog](https://taonaw.com/2018/08/17/libre-and-clothes.html)[^1], I discovered [Solarized](https://ethanschoonover.com/solarized/).

I liked it. The colors were beautiful and worked for me, but eventually I switched to the [Gotham theme](https://emacsthemes.com/themes/gotham) in Emacs, which, if you take a look, is not much different — just a bit darker. I stayed with this theme for a long time, tweaking it a bit after a [trip to New Mexico](https://taonaw.com/2021/01/04/the-colors-of-new-mexico.html).

When I received my Mac and started working on it at home, I enjoyed its automatic switching between dark and light themes. At the same time, Prot started coming out with more of his excellent [Ef Themes](https://gitlab.com/protesilaos/ef-themes), and I adopted ef-reverie for my light theme and ef-night for my dark one (once again, if you look at the [images](https://protesilaos.com/emacs/ef-themes-pictures), you&#39;d see they&#39;re not far off from Solarized, especially my choice of a light theme).

This has been the state of affairs until the beginning of this week, when I &#34;found&#34; Solarized again. I discovered Prot himself was heavily influenced by Solarized, and he discussed it several times on his blog. Here&#39;s [part of his background story](https://protesilaos.com/codelog/intro-prot16-builder/) for his project Prot16:

&gt; My starting point for developing a colour scheme was Ethan Schoonover&#39;s Solarized. A true masterpiece. I thus settled on a method of using a 16-colour palette that consists of 8 base values and 8 accents. As with Solarized, the themes would have to be able to transition from &#39;light&#39; to &#39;dark&#39; environments with minor alteration to the mapping of colours (though not the values themselves).

Prot&#39;s quest is an interesting one. Like me, he enjoyed Solarized, but eventually decided the colors were not contrasting enough for his taste. His reaction was to create his well-known Modus themes, which, along with his Ef-themes and Prot16, set new theming standards for Emacs. 

Meanwhile, [I have had the other issue](https://taonaw.com/2023/07/05/halatoion-and-accessiblity.html) since childhood:

&gt; I&#39;ve never liked harsh contrast for this reason. As a matter of fact, a more &#34;gentle&#34; contrasting theme is one of the reasons I like working in Emacs. My website and my wiki are a result of these preferences. The black text on the beige background is comfortable on my eyes. Enough contrast to read, but not enough to burn text into my vision, as many dark modes out there do.

While Prot&#39;s ef-themes offer softer contrast (I didn&#39;t check, but it does seem so visually) which I find excellent, I decided to try out [bbatsov&#39;s Solarized for Emacs](https://github.com/bbatsov/solarized-emacs), which I didn&#39;t know about in the past when I first picked up this theme for Emacs — the [official Emacs port](https://github.com/sellout/emacs-color-theme-solarized) is not as good in my opinion.

I&#39;ve learned a couple of things I wasn&#39;t aware of. For starters, you can have many variations of this theme, even though the main 16 colors are still preserved. It makes sense when you think about it: one person can choose Solarized&#39;s red (#dc322f in hex) as an emphasis, while another can select its yellow (#b58900) or orange (#cb4b16), for example. Webpages and Emacs take it a step further, as certain texts can be bold or italicized, with solid underlines or dashed ones, etc. All of those changes take place without touching the colors themselves.

Solarized also helps me with a certain itch I&#39;ve had for a couple of months: a dark theme for my blog. I know most of you read my posts in your RSS reader, hopefully with a theme you enjoy, so this won&#39;t matter much. For me, how my site looks and is styled is important, and getting there is fun.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/my-city3.png&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;A minimalist (solarized) skyline of a city with a prominent tall building, set against a dark background with waves in the foreground and a red moon in the sky.&#34;&gt;

[^1]: This post is here, on the new blog, because I migrated it from the old. The date on it is accurate however, and it&#39;s the first post I have saved in my old archive. The same is true about the New Mexico post.

</source:markdown>
    </item>
    
    <item>
      <title>Emacs Config Gems - Part 4</title>
      <link>https://taonaw.com/2026/08/09/emacs-config-gems-part.html</link>
      <pubDate>Sun, 09 Aug 2026 20:01:32 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/09/emacs-config-gems-part.html</guid>
      <description>&lt;p&gt;Part four of Emacs Config Gems is about basic file operations and save functions. I realized as I was working on this that I have the frame configuration here, which is the wrong place for it. I will change it after posting. Alright, here we go.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;When deleting a file in Emacs, we should use the system&amp;rsquo;s trash (or recycle bin) instead of deleting the file permanently, giving us a chance to restore the file in case we&amp;rsquo;ve made a mistake.&lt;/p&gt;
&lt;p&gt;In addition, since we have this turned on, we can also tell Emacs to always delete non-empty directories (because they&amp;rsquo;ll go to the trash) instead of prompting. It&amp;rsquo;s just faster.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; delete-by-moving-to-trash &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; dired-recursive-deletes &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;always&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Let&amp;rsquo;s set the frame Emacs starts with to be a bit bigger. In Emacs, these measurements are in lines and columns (character width), so we&amp;rsquo;re basically saying: &amp;ldquo;make the default frame 100 characters wide and 55 lines high.&amp;rdquo;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; default-frame-alist
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;   &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#39;&lt;/span&gt;((width &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     (height &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;55&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    )
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We might want to move Emacs&amp;rsquo; backup files and temp files (those are the ones with &lt;code&gt;~&lt;/code&gt; and &lt;code&gt;#&lt;/code&gt;)&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; to a different dedicated folder (emacs-bks) instead of the main Emacs folder. Since Emacs won&amp;rsquo;t just create the directory for us, let&amp;rsquo;s ask it to do so&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. It won&amp;rsquo;t throw an error if we already have it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(make-directory &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;~/emacs-bks&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; backup-directory-alist
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;((&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;~/emacs-bks&amp;#34;&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; auto-save-file-name-transforms
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;`&lt;/span&gt;((&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;.*&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;~/emacs-bks&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, let&amp;rsquo;s turn on the option to automatically save files we are working on inside Emacs, and set how long Emacs needs to be idle before auto-save kicks in. In my case, 300 seconds (= 5 minutes) is good enough for idle time. Importantly, I want to emphasize again, &lt;em&gt;idle time&lt;/em&gt;. It will &lt;em&gt;not&lt;/em&gt; auto-save the file as long as you type, so if you type non-stop for an hour and suddenly lose power, this will &lt;em&gt;not&lt;/em&gt; save you, since Emacs didn&amp;rsquo;t get the chance to be idle for 5 minutes (or even 30 seconds, which is the default). For this, we have &lt;code&gt;auto-save-interval&lt;/code&gt;, which auto-saves every 300 characters (globally in Emacs) by default. In my case, I&amp;rsquo;m lowering it here to 100, since I write plenty of quick notes (using &lt;code&gt;org-add-note&lt;/code&gt;, &lt;kbd&gt;C-c C-z&lt;/kbd&gt;), and it&amp;rsquo;s common for me to keep using Emacs between those without hitting the 300 mark. Both of those are described &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html&#34;&gt;in the manual under auto-saving&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(auto-save-visited-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; auto-save-visited-interval &lt;span style=&#34;color:#ae81ff&#34;&gt;300&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; auto-save-interval &lt;span style=&#34;color:#ae81ff&#34;&gt;100&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Auto-revert checks the buffer we&amp;rsquo;re visiting against the saved file itself. If the buffer has no changes, but the saved file &lt;em&gt;does&lt;/em&gt; have changes, it loads those changes into the buffer silently. However, if the buffer has changes (meaning, we&amp;rsquo;re writing something into the file and we haven&amp;rsquo;t saved yet), it won&amp;rsquo;t do a thing and won&amp;rsquo;t say anything. Since my particular setup means that all of my org files are inside a folder synced by &lt;a href=&#34;https://syncthing.net/&#34;&gt;Syncthing&lt;/a&gt;, this is ideal: if I save changes to a file on my Mac, when I switch to my Linux desktop I&amp;rsquo;ll have the file and the buffer visiting it refreshed and ready to go, provided of course that Syncthing is working and the sync is complete&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-auto-revert-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Activate recentf mode, so Emacs has a list of the recent files we worked on last time, up to 30 by my config. 10 is too little; 50 starts to feel more like &amp;ldquo;everything I opened this month,&amp;rdquo; which defeats the purpose. Useful when we don&amp;rsquo;t want to navigate to the same file each time, and we don&amp;rsquo;t want to have a bookmark. &lt;strong&gt;Note&lt;/strong&gt;: since I&amp;rsquo;m using consult, recent files are integrated and show under the &lt;em&gt;file&lt;/em&gt; header in the consult minibuffer, and can be quickly viewed with &lt;kbd&gt;f&lt;/kbd&gt; while visiting the consult minibuffer.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(recentf-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; recentf-max-saved-items &lt;span style=&#34;color:#ae81ff&#34;&gt;30&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;There are a couple of &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Frame-Parameters.html#Frame-Parameters&#34;&gt;more interesting parameters (options) to choose from&lt;/a&gt;. For example, alpha is a thing, if you like your windows to be translucent (and you can set it so that the frame in focus has a different degree of alpha than those out of focus). I played with it a bit, but eventually found it to be too distracting.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;But what are those anyway, and why do we need them? Let&amp;rsquo;s talk about auto-save first. It&amp;rsquo;s been there since the beginning. In the early 80s (and even before), when the idea of computers always being on and connected to some virtual cloud was science fiction, people lost their data quite often, either by hardware failure, power failures, and/or user errors, like hanging up the phone in the middle of a data transfer (these were the days of dial-up modems). Auto-saving a file was a feature that was a solution to a very common problem, and we can see it in computer magazines from the era (you can see those in the internet archive, look at &lt;a href=&#34;https://archive.org/details/your-computer-magazine-1981-12/page/70/mode/2up&#34;&gt;page 70 in this magazine&lt;/a&gt; for example). As for backups, it&amp;rsquo;s a similar idea, but the purpose is slightly different. Think of backup literally means &amp;ldquo;back up.&amp;rdquo; The idea here is to restore the file from &lt;em&gt;before&lt;/em&gt; you saved, backing up (as in going back) to what it was before you touched it. This idea is more closely associated with file-versioning, which Emacs also has, but that&amp;rsquo;s a slightly different story and it&amp;rsquo;s turned off by default. To differentiate the auto-save from backup files: In Emacs, auto-saved files are the ones marked with hashtags and the backup files are the ones with a trailing tilde: &lt;code&gt;#autosave-file#&lt;/code&gt; and &lt;code&gt;last-save-file~&lt;/code&gt;&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;There are a bunch of these helpful OS-file level functions available to us from inside Emacs. They are scattered in the Lisp manual in the file section, depending what you&amp;rsquo;re looking for. If you want a quick cheat-sheet of sorts with examples, Xah Lee has something &lt;a href=&#34;http://xahlee.info/emacs/emacs/elisp_file_name_dir_name.html&#34;&gt;a bit old, but still relevant&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;There are other functions around revert, particularly &lt;code&gt;auto-revert-avoid-polling&lt;/code&gt;, which is off by default. it&amp;rsquo;s a bit confusing: &lt;code&gt;auto-revert-avoid-polling&lt;/code&gt; means, avoid automatically polling for reverting. By default, this is nil (false) which means polling &lt;em&gt;is on&lt;/em&gt;: Emacs does its own polling to check if a file was changed every 5 seconds by default (this is determined by &lt;code&gt;auto-revert-interval&lt;/code&gt;). If this is flipped to true, Emacs does &lt;em&gt;not&lt;/em&gt; check the file, and instead relies on the OS file notification system (&lt;a href=&#34;https://en.wikipedia.org/wiki/Inotify&#34;&gt;inotify&lt;/a&gt; in Linux, &lt;a href=&#34;https://en.wikipedia.org/wiki/FSEvents&#34;&gt;FSEvents&lt;/a&gt; on macOS). This is good if we want to save battery and CPU cycles: our system checks if files were changed all the time, so Emacs just relies on that. In my case, with Syncthing, this is a bad idea because the OS may or may not catch changes done by Syncthing. My Desktop is always connected to power and my Mac is usually docked so leaving it as default makes sense. Check out the &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html&#34;&gt;manual for auto-saving&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      <source:markdown>Part four of Emacs Config Gems is about basic file operations and save functions. I realized as I was working on this that I have the frame configuration here, which is the wrong place for it. I will change it after posting. Alright, here we go.

---

When deleting a file in Emacs, we should use the system&#39;s trash (or recycle bin) instead of deleting the file permanently, giving us a chance to restore the file in case we&#39;ve made a mistake.

In addition, since we have this turned on, we can also tell Emacs to always delete non-empty directories (because they&#39;ll go to the trash) instead of prompting. It&#39;s just faster.

``` lisp
(setq delete-by-moving-to-trash t)
(setq dired-recursive-deletes &#39;always)
```

Let&#39;s set the frame Emacs starts with to be a bit bigger. In Emacs, these measurements are in lines and columns (character width), so we&#39;re basically saying: &#34;make the default frame 100 characters wide and 55 lines high.&#34;[^1]

``` lisp
(setq default-frame-alist
   &#39;((width . 100)
     (height . 55))
    )
```

We might want to move Emacs&#39; backup files and temp files (those are the ones with `~` and `#`)[^2] to a different dedicated folder (emacs-bks) instead of the main Emacs folder. Since Emacs won&#39;t just create the directory for us, let&#39;s ask it to do so[^3]. It won&#39;t throw an error if we already have it.

``` lisp
(make-directory &#34;~/emacs-bks&#34; t)
(setq backup-directory-alist
      `((&#34;.*&#34; . &#34;~/emacs-bks&#34;)))
(setq auto-save-file-name-transforms
      `((&#34;.*&#34; &#34;~/emacs-bks&#34; t)))
```

Now, let&#39;s turn on the option to automatically save files we are working on inside Emacs, and set how long Emacs needs to be idle before auto-save kicks in. In my case, 300 seconds (= 5 minutes) is good enough for idle time. Importantly, I want to emphasize again, *idle time*. It will *not* auto-save the file as long as you type, so if you type non-stop for an hour and suddenly lose power, this will *not* save you, since Emacs didn&#39;t get the chance to be idle for 5 minutes (or even 30 seconds, which is the default). For this, we have `auto-save-interval`, which auto-saves every 300 characters (globally in Emacs) by default. In my case, I&#39;m lowering it here to 100, since I write plenty of quick notes (using `org-add-note`, &lt;kbd&gt;C-c C-z&lt;/kbd&gt;), and it&#39;s common for me to keep using Emacs between those without hitting the 300 mark. Both of those are described [in the manual under auto-saving](https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html).

``` lisp
(auto-save-visited-mode t)
(setq auto-save-visited-interval 300)
(setq auto-save-interval 100)
```

Auto-revert checks the buffer we&#39;re visiting against the saved file itself. If the buffer has no changes, but the saved file *does* have changes, it loads those changes into the buffer silently. However, if the buffer has changes (meaning, we&#39;re writing something into the file and we haven&#39;t saved yet), it won&#39;t do a thing and won&#39;t say anything. Since my particular setup means that all of my org files are inside a folder synced by [Syncthing](https://syncthing.net/), this is ideal: if I save changes to a file on my Mac, when I switch to my Linux desktop I&#39;ll have the file and the buffer visiting it refreshed and ready to go, provided of course that Syncthing is working and the sync is complete[^4].

``` lisp
(global-auto-revert-mode t)
```

Activate recentf mode, so Emacs has a list of the recent files we worked on last time, up to 30 by my config. 10 is too little; 50 starts to feel more like &#34;everything I opened this month,&#34; which defeats the purpose. Useful when we don&#39;t want to navigate to the same file each time, and we don&#39;t want to have a bookmark. **Note**: since I&#39;m using consult, recent files are integrated and show under the *file* header in the consult minibuffer, and can be quickly viewed with &lt;kbd&gt;f&lt;/kbd&gt; while visiting the consult minibuffer.

``` lisp
(recentf-mode t)
(setq recentf-max-saved-items 30)
```

[^1]: There are a couple of [more interesting parameters (options) to choose from](https://www.gnu.org/software/emacs/manual/html_node/elisp/Frame-Parameters.html#Frame-Parameters). For example, alpha is a thing, if you like your windows to be translucent (and you can set it so that the frame in focus has a different degree of alpha than those out of focus). I played with it a bit, but eventually found it to be too distracting.

[^2]: But what are those anyway, and why do we need them? Let&#39;s talk about auto-save first. It&#39;s been there since the beginning. In the early 80s (and even before), when the idea of computers always being on and connected to some virtual cloud was science fiction, people lost their data quite often, either by hardware failure, power failures, and/or user errors, like hanging up the phone in the middle of a data transfer (these were the days of dial-up modems). Auto-saving a file was a feature that was a solution to a very common problem, and we can see it in computer magazines from the era (you can see those in the internet archive, look at [page 70 in this magazine](https://archive.org/details/your-computer-magazine-1981-12/page/70/mode/2up) for example). As for backups, it&#39;s a similar idea, but the purpose is slightly different. Think of backup literally means &#34;back up.&#34; The idea here is to restore the file from *before* you saved, backing up (as in going back) to what it was before you touched it. This idea is more closely associated with file-versioning, which Emacs also has, but that&#39;s a slightly different story and it&#39;s turned off by default. To differentiate the auto-save from backup files: In Emacs, auto-saved files are the ones marked with hashtags and the backup files are the ones with a trailing tilde: `#autosave-file#` and `last-save-file~`

[^3]: There are a bunch of these helpful OS-file level functions available to us from inside Emacs. They are scattered in the Lisp manual in the file section, depending what you&#39;re looking for. If you want a quick cheat-sheet of sorts with examples, Xah Lee has something [a bit old, but still relevant](http://xahlee.info/emacs/emacs/elisp_file_name_dir_name.html).

[^4]: There are other functions around revert, particularly `auto-revert-avoid-polling`, which is off by default. it&#39;s a bit confusing: `auto-revert-avoid-polling` means, avoid automatically polling for reverting. By default, this is nil (false) which means polling *is on*: Emacs does its own polling to check if a file was changed every 5 seconds by default (this is determined by `auto-revert-interval`). If this is flipped to true, Emacs does *not* check the file, and instead relies on the OS file notification system ([inotify](https://en.wikipedia.org/wiki/Inotify) in Linux, [FSEvents](https://en.wikipedia.org/wiki/FSEvents) on macOS). This is good if we want to save battery and CPU cycles: our system checks if files were changed all the time, so Emacs just relies on that. In my case, with Syncthing, this is a bad idea because the OS may or may not catch changes done by Syncthing. My Desktop is always connected to power and my Mac is usually docked so leaving it as default makes sense. Check out the [manual for auto-saving](https://www.gnu.org/software/emacs/manual/html_node/elisp/Auto_002dSaving.html).
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/08/this-guy-was-chilling-at.html</link>
      <pubDate>Sat, 08 Aug 2026 11:38:38 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/08/this-guy-was-chilling-at.html</guid>
      <description>&lt;p&gt;This guy was chilling at the farmer’s market today. 📷&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/fd22e06ddf.jpg&#34; width=&#34;600&#34; height=&#34;545&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>This guy was chilling at the farmer’s market today. 📷

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/fd22e06ddf.jpg&#34; width=&#34;600&#34; height=&#34;545&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>My New Montior is Pushing me to Start Fresh on Kubuntu (Again)</title>
      <link>https://taonaw.com/2026/08/07/my-new-montior-is-pushing.html</link>
      <pubDate>Fri, 07 Aug 2026 08:48:19 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/07/my-new-montior-is-pushing.html</guid>
      <description>&lt;p&gt;I got a bigger and better monitor recently, and I&amp;rsquo;ve been exploring calibrating it on both my Mac and my Linux desktop for the last week or so.&lt;/p&gt;
&lt;p&gt;It started out as a necessity: at full resolution (3840 x 2160), the text was just too small for me to read. Since I hated the fact that things looked &amp;ldquo;off&amp;rdquo; at a lower resolution, and the options for my new external display on the Mac were painfully minimal, I quickly found out about &lt;a href=&#34;https://betterdisplay.pro/&#34;&gt;BetterDisplay&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A couple of days later I was already reading about the differences between Retina and HiDPI (mostly a marketing term by Apple, though Retina does specify a higher number of HiDPI, High Dots Per Inch, which hey, should be PPI, Pixels Per Inch, but that&amp;rsquo;s another thing), how to sync brightness between my monitors, found out that TrueTone is a whole Apple thing (but Night Shift isn&amp;rsquo;t, mostly anyway) and wrote myself notes on how to set things up. I don&amp;rsquo;t know how I found the time while still researching my recent &lt;a href=&#34;https://taonaw.com/2026/08/05/emacs-config-gems-part.html&#34;&gt;Emacs stuff recently&lt;/a&gt;, which I&amp;rsquo;m still very much into at the moment. All I can say is that 5 hours of sleep a night have &lt;em&gt;some&lt;/em&gt; benefits (don&amp;rsquo;t do that. I don&amp;rsquo;t recommend).&lt;/p&gt;
&lt;p&gt;This morning I started looking into a similar degree of power in Linux. My Desktop is mostly used for Gaming (in terms of graphics anyway). The new screen gave me that &amp;ldquo;buttery smooth&amp;rdquo; feeling in games with the new refresh rate, which I didn&amp;rsquo;t know I was missing on the old display. The new resolution is awesome, but the real big benefit is the size of the new monitor (it&amp;rsquo;s a 32-inch), and a better aspect ratio (16:9, vs my Ultra-wide, which is 21:9), which means I get to see more without moving the mouse, and things are way more immersive (I now go for solo virtuals &amp;ldquo;walks&amp;rdquo; in Helldivers to relax and enjoy the view, which is not what you&amp;rsquo;re supposed to do in Helldivers, but so what).&lt;/p&gt;
&lt;p&gt;On Linux, Kubuntu 24.04 LTS in my case, I still use X11, which doesn&amp;rsquo;t even come with a built-in brightness bar. I could play with Dell&amp;rsquo;s firmware to get something working quickly, but BetterDisplay spoiled me. Because &lt;a href=&#34;https://kubuntu.org/news/&#34;&gt;Kubuntu 26.04 LTS&lt;/a&gt; is now out, I think it&amp;rsquo;s time for me to wipe and reinstall things on the Desktop yet again (last time was when &lt;a href=&#34;https://taonaw.com/2025/11/24/kubuntu-instead-of-pop-os.html&#34;&gt;I switched from PopOS&lt;/a&gt;). The built-in Wayland (which will come with more options) is just one more thing I want to try, but really, my Linux Desktop is a messy collection of various libraries and programs I downloaded and set up and forgot about, and I need to do it all over again slowly with the right documentation.&lt;/p&gt;
&lt;p&gt;I think I need another full week&amp;rsquo;s vacation to kick this one off, though, if we&amp;rsquo;re talking the kind of research and documentation I left for myself in terms of my Emacs config, but I think it will be worth it.&lt;/p&gt;
</description>
      <source:markdown>I got a bigger and better monitor recently, and I&#39;ve been exploring calibrating it on both my Mac and my Linux desktop for the last week or so.

It started out as a necessity: at full resolution (3840 x 2160), the text was just too small for me to read. Since I hated the fact that things looked &#34;off&#34; at a lower resolution, and the options for my new external display on the Mac were painfully minimal, I quickly found out about [BetterDisplay](https://betterdisplay.pro/).

A couple of days later I was already reading about the differences between Retina and HiDPI (mostly a marketing term by Apple, though Retina does specify a higher number of HiDPI, High Dots Per Inch, which hey, should be PPI, Pixels Per Inch, but that&#39;s another thing), how to sync brightness between my monitors, found out that TrueTone is a whole Apple thing (but Night Shift isn&#39;t, mostly anyway) and wrote myself notes on how to set things up. I don&#39;t know how I found the time while still researching my recent [Emacs stuff recently](https://taonaw.com/2026/08/05/emacs-config-gems-part.html), which I&#39;m still very much into at the moment. All I can say is that 5 hours of sleep a night have *some* benefits (don&#39;t do that. I don&#39;t recommend).

This morning I started looking into a similar degree of power in Linux. My Desktop is mostly used for Gaming (in terms of graphics anyway). The new screen gave me that &#34;buttery smooth&#34; feeling in games with the new refresh rate, which I didn&#39;t know I was missing on the old display. The new resolution is awesome, but the real big benefit is the size of the new monitor (it&#39;s a 32-inch), and a better aspect ratio (16:9, vs my Ultra-wide, which is 21:9), which means I get to see more without moving the mouse, and things are way more immersive (I now go for solo virtuals &#34;walks&#34; in Helldivers to relax and enjoy the view, which is not what you&#39;re supposed to do in Helldivers, but so what).

On Linux, Kubuntu 24.04 LTS in my case, I still use X11, which doesn&#39;t even come with a built-in brightness bar. I could play with Dell&#39;s firmware to get something working quickly, but BetterDisplay spoiled me. Because [Kubuntu 26.04 LTS](https://kubuntu.org/news/) is now out, I think it&#39;s time for me to wipe and reinstall things on the Desktop yet again (last time was when [I switched from PopOS](https://taonaw.com/2025/11/24/kubuntu-instead-of-pop-os.html)). The built-in Wayland (which will come with more options) is just one more thing I want to try, but really, my Linux Desktop is a messy collection of various libraries and programs I downloaded and set up and forgot about, and I need to do it all over again slowly with the right documentation.

I think I need another full week&#39;s vacation to kick this one off, though, if we&#39;re talking the kind of research and documentation I left for myself in terms of my Emacs config, but I think it will be worth it.
</source:markdown>
    </item>
    
    <item>
      <title>H3 HTML Tags are Right for Blog Posts</title>
      <link>https://taonaw.com/2026/08/06/h-html-tags-are-right.html</link>
      <pubDate>Thu, 06 Aug 2026 09:15:59 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/06/h-html-tags-are-right.html</guid>
      <description>&lt;p&gt;A few days ago, I was rambling about &lt;a href=&#34;https://taonaw.com/2026/07/27/style-emacs-config-a-semantic.html&#34;&gt;style and semantic HTML&lt;/a&gt;. It was a post mostly about &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt; tags, but toward the end I said this:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Reading through their tomb of standards, I realized I need to correct my headings on the blog too (I jump directly to &amp;lt;h3&amp;gt;&amp;lt;/h3&amp;gt; tags instead of going by order, because the CSS for these tags looks better — in other words, I&amp;rsquo;ve been lazy by not fixing this), among potentially many other things. There are over a hundred semantic tags in HTML, and there&amp;rsquo;s a reason for each one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;ldquo;Their tomb of standards&amp;rdquo; refers to the &lt;a href=&#34;https://html.spec.whatwg.org/#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements&#34;&gt;HTML Living Standard&lt;/a&gt;, and they (among other sources) explain why sub-headings in posts &lt;em&gt;should&lt;/em&gt; actually be &lt;code&gt;&amp;lt;h3&amp;gt;&amp;lt;/h3&amp;gt;&lt;/code&gt; tags (the way I&amp;rsquo;ve done it so far). Pretty simple when you think about it.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The main header of the entire website is &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; (in my case, &amp;ldquo;The Art of Not Asking Why&amp;rdquo;).&lt;/li&gt;
&lt;li&gt;Blog post headings are &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; (as in the heading of this post, above).&lt;/li&gt;
&lt;li&gt;Blog post sub-headings are &lt;code&gt;&amp;lt;h3&amp;gt;&lt;/code&gt;, as I was doing it.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This is not just a style and organizational thing; this is also how web browsers are programmed to read web pages, and &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements&#34;&gt;they expect&lt;/a&gt; one &lt;code&gt;&amp;lt;h1&amp;gt;&amp;lt;/h1&amp;gt;&lt;/code&gt; pair.&lt;/p&gt;
&lt;p&gt;You&amp;rsquo;d notice I didn&amp;rsquo;t use the word &amp;ldquo;title&amp;rdquo; above, because in HTML the &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt; is reserved for metadata in the head part of the page (defined by &lt;code&gt;&amp;lt;head&amp;gt;&amp;lt;/head&amp;gt;&lt;/code&gt;). It&amp;rsquo;s there, and it serves a purpose — it&amp;rsquo;s basically your website&amp;rsquo;s name or the title of your entire web document (we need to remember, these things originated and were based back on what was printed on paper).&lt;/p&gt;
&lt;p&gt;OK. I was wrong and order is restored. If I want to do sub-sub-headings, there&amp;rsquo;s &lt;code&gt;&amp;lt;h4&amp;gt;&lt;/code&gt; for that. But if I get to that level of breaking down my posts, I think it&amp;rsquo;s a good sign that I&amp;rsquo;ve been writing too much in one go and should consider a smaller post.&lt;/p&gt;
</description>
      <source:markdown>A few days ago, I was rambling about [style and semantic HTML](https://taonaw.com/2026/07/27/style-emacs-config-a-semantic.html). It was a post mostly about `&lt;kbd&gt;&lt;/kbd&gt;` tags, but toward the end I said this:

&gt; Reading through their tomb of standards, I realized I need to correct my headings on the blog too (I jump directly to &lt;h3\&gt;&lt;/h3\&gt; tags instead of going by order, because the CSS for these tags looks better — in other words, I&#39;ve been lazy by not fixing this), among potentially many other things. There are over a hundred semantic tags in HTML, and there&#39;s a reason for each one.

&#34;Their tomb of standards&#34; refers to the [HTML Living Standard](https://html.spec.whatwg.org/#the-h1,-h2,-h3,-h4,-h5,-and-h6-elements), and they (among other sources) explain why sub-headings in posts *should* actually be `&lt;h3&gt;&lt;/h3&gt;` tags (the way I&#39;ve done it so far). Pretty simple when you think about it.

1.  The main header of the entire website is `&lt;h1&gt;` (in my case, &#34;The Art of Not Asking Why&#34;).
2.  Blog post headings are `&lt;h2&gt;` (as in the heading of this post, above).
3.  Blog post sub-headings are `&lt;h3&gt;`, as I was doing it.

This is not just a style and organizational thing; this is also how web browsers are programmed to read web pages, and [they expect](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements) one `&lt;h1&gt;&lt;/h1&gt;` pair.

You&#39;d notice I didn&#39;t use the word &#34;title&#34; above, because in HTML the `&lt;title&gt;` is reserved for metadata in the head part of the page (defined by `&lt;head&gt;&lt;/head&gt;`). It&#39;s there, and it serves a purpose — it&#39;s basically your website&#39;s name or the title of your entire web document (we need to remember, these things originated and were based back on what was printed on paper).

OK. I was wrong and order is restored. If I want to do sub-sub-headings, there&#39;s `&lt;h4&gt;` for that. But if I get to that level of breaking down my posts, I think it&#39;s a good sign that I&#39;ve been writing too much in one go and should consider a smaller post.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/05/here-is-a-niche-tip.html</link>
      <pubDate>Wed, 05 Aug 2026 09:46:28 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/05/here-is-a-niche-tip.html</guid>
      <description>&lt;p&gt;Here is a niche tip: if you’re tired of correcting the word “Emacs” whenever you dictate on your iPhone, Add Emacs to your contact list.&lt;/p&gt;
</description>
      <source:markdown>Here is a niche tip: if you’re tired of correcting the word “Emacs” whenever you dictate on your iPhone, Add Emacs to your contact list. 
</source:markdown>
    </item>
    
    <item>
      <title>Emacs Config Gems - Part 3</title>
      <link>https://taonaw.com/2026/08/05/emacs-config-gems-part.html</link>
      <pubDate>Wed, 05 Aug 2026 09:06:09 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/05/emacs-config-gems-part.html</guid>
      <description>&lt;p&gt;My actual configs start with pretty usual stuff you&amp;rsquo;d see across many other Emacs configs. As I was going through these however, I started to wonder how things work and why they ended up the way we have them today. In turn, that led to reading about the intention behind those, which led to more options I didn&amp;rsquo;t think about. Also, it&amp;rsquo;s kind of fun. I&amp;rsquo;ve made two more passes for this part alone in the last couple of weeks, and I could probably go for a third. When reading this post, if you want the good stuff (in my opinion), get lost in the footnotes as I did. There&amp;rsquo;s a lot to explore. I just scratched the surface.&lt;/p&gt;
&lt;h3 id=&#34;load-melpa&#34;&gt;Load Melpa&lt;/h3&gt;
&lt;p&gt;Melpa is where many Emacs packages live. The story behind it (from what I can tell) revolves around one of Emacs&amp;rsquo; maintainers, Bozhidar Batsov, who pointed to &lt;a href=&#34;https://batsov.com/articles/2012/04/06/melpa-homebrew-emacs-edition/&#34;&gt;Melpa at some point in 2012, when Emacs&amp;rsquo;s then go-to third-party package repository went offline&lt;/a&gt;. He is not its creator — Melpa has been around before this post — but this seems to be the turning point where Emacs package maintainers started to really use it. I don&amp;rsquo;t have good coder/repository maintainer knowledge, but from what I read, it&amp;rsquo;s built on the same idea as Homebrew (for Mac), which was familiar to many of the Emacs folks at the time.&lt;/p&gt;
&lt;p&gt;So let&amp;rsquo;s get Melpa:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#a6e22e&#34;&gt;require&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;package&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(add-to-list &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;package-archives&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#39;&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;melpa&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://melpa.org/packages/&amp;#34;&lt;/span&gt;) &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;ui-and-fundamental-emacs-tweaks&#34;&gt;UI and Fundamental Emacs tweaks:&lt;/h3&gt;
&lt;p&gt;Most Emacs folks with a config file like this like to kill the toolbar, scrollbar, &lt;em&gt;and&lt;/em&gt; menu bar. I find that the menu bar makes Emacs look more like the other programs, especially in macOS&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. Besides, it&amp;rsquo;s nice to look every now and then and be reminded of good Emacs kung-fu I forgot exists (&lt;code&gt;org-sort&lt;/code&gt;, I&amp;rsquo;m sorry my friend, I&amp;rsquo;ll keep saying hi more often).&lt;/p&gt;
&lt;p&gt;This is why the menu-bar is commented out in my config; I want it, but I also want to remember I could turn it off if I wanted:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(tool-bar-mode &lt;span style=&#34;color:#ae81ff&#34;&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(scroll-bar-mode &lt;span style=&#34;color:#ae81ff&#34;&gt;-1&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; (menu-bar-mode -1) &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;By default, help commands&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; display the help buffer in a new window without selecting it. I find this annoying: if I bring up the help window, it&amp;rsquo;s usually because I want to scroll down to find something or copy (yank) something. On the other hand, if I just want to skim quickly in the help buffer, it&amp;rsquo;s helpful that the marker is on it for a quick &lt;kbd&gt;q&lt;/kbd&gt; for quit.&lt;/p&gt;
&lt;p&gt;In addition, we want to be able to navigate help menus as Emacs intended if we follow the links in a help buffer. &lt;code&gt;help-window-keep-selected&lt;/code&gt; allows us to keep help in its own dedicated window, so it won&amp;rsquo;t open in a separate window once we follow a link. Going back to the original is the same as we do in other browser-like buffers in Emacs, with &lt;kbd&gt;l&lt;/kbd&gt; (like in Eww, for example). Likewise, we can go forward with &lt;kbd&gt;r&lt;/kbd&gt;. I should also expand here on various help options; they definitely deserve a mention, but this is another huge topic (you can get an idea from the footer) that will take a couple of weeks. I will come back to this someday.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; help-window-select &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; help-window-keep-selected &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lisp is full of parentheses, and it&amp;rsquo;s easy to lose track. Turning &lt;code&gt;show-paren-mode&lt;/code&gt; on means that standing on an open or closed parentheses highlights its matching counterpart, which is handy.&lt;/p&gt;
&lt;p&gt;In addition, while we&amp;rsquo;re here: when we stand on an expression that is only showing a portion of an expression (meaning, we need to scroll down to see the rest) Emacs can highlight the expression for us to make sure we don&amp;rsquo;t get confused — this is the &lt;code&gt;mixed&lt;/code&gt; option below for &lt;code&gt;show-paren-style&lt;/code&gt;. If you want to see the whole expression highlighted every time you&amp;rsquo;re on it, there&amp;rsquo;s the option &lt;code&gt;expression&lt;/code&gt;, which I&amp;rsquo;m leaving here for reference for myself. For now, I think it&amp;rsquo;s too much visual noise, especially since we&amp;rsquo;re using &lt;code&gt;org-edit-special&lt;/code&gt;, which also highlights what we&amp;rsquo;re working on.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (show-paren-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; show-paren-style &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;mixed&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;; (setq show-paren-style &amp;#39;expression)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And now, a true Emacs classic. I don&amp;rsquo;t think I&amp;rsquo;ve seen a config without it: shortening &amp;ldquo;yes&amp;rdquo; or &amp;ldquo;no,&amp;rdquo; answer to &amp;ldquo;y&amp;rdquo; or &amp;ldquo;n&amp;rdquo; like any other program known to mankind. &lt;code&gt;use-short-answers&lt;/code&gt; was introduced in Emacs 28.1, which is a more graceful way to do this, intended exactly for this purpose. Before that, back when I started to use Emacs, it was done with &lt;code&gt;(fset &#39;yes-or-no-p &#39;y-or-n-p)&lt;/code&gt;. If you have an older Emacs version, you&amp;rsquo;d need it.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;;;  (fset &amp;#39;yes-or-no-p &amp;#39;y-or-n-p)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; use-short-answers &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This one was annoying until I learned this option exists from someone else&amp;rsquo;s config years ago: &amp;ldquo;Emacs, please stop asking me if I want to kill process when exiting Emacs (Shell, etc.), just do it!&amp;rdquo; Yep.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; confirm-kill-processes &lt;span style=&#34;color:#66d9ef&#34;&gt;nil&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Emacs has two annoying keyboard shortcuts that I should have disabled as soon as I started using it: &lt;kbd&gt;C-x C-c&lt;/kbd&gt; (exit Emacs) and &lt;kbd&gt;C-z&lt;/kbd&gt; (minimize Emacs). Both of them are too easy to press by mistake, especially &lt;kbd&gt;C-z&lt;/kbd&gt;, which is undo in many other programs. If I had a penny for each time I minimized Emacs by mistake… When we want to minimize Emacs (and why would you want to do that? Emacs deserves a prominent space on your screen), we can just do it by clicking the minimize window itself, shamefully using our mouse, as we do with other apps. And Exiting Emacs? With a shortcut that seems like it fits somewhere in org-mode? No thanks. Let&amp;rsquo;s disable those:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-unset-key (kbd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-x C-c&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-unset-key (kbd &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;C-z&amp;#34;&lt;/span&gt;))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Turn off the annoying error beep, which I first discovered in SUSE Linux by turning on a visual warning (a flash) instead. This will flash the top and bottom lines of our window instead of going &amp;ldquo;beep!&amp;rdquo;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; visible-bell &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Turn on &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Visual-Line-Mode.html&#34;&gt;visual line mode&lt;/a&gt; so text lines &amp;ldquo;wrap&amp;rdquo; inside the frame and don&amp;rsquo;t continue beyond the window&amp;rsquo;s edge. This is essential; I can&amp;rsquo;t read in Emacs without it. And a newcomer I discovered recently: since Emacs 30, we also have &lt;code&gt;global-visual-wrap-prefix-mode&lt;/code&gt;, which preserves indentation on wrapped lines. For example, in a list in org-mode (made of dashes one under the other), a long line of text that wraps will align under its starting point (dash) in the list instead of jumping back to column 0 (the start of the window, to the most left). This has been a huge pet peeve. Finally!&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-visual-line-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(global-visual-wrap-prefix-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Window-Convenience.html&#34;&gt;Winner mode&lt;/a&gt; (included in Emacs) is sort of &amp;ldquo;undo&amp;rdquo; for changes in windows&amp;rsquo; layout in Emacs. &lt;kbd&gt;C-c ←&lt;/kbd&gt; goes back to our previous setting, and &lt;kbd&gt;C-c →&lt;/kbd&gt; will &amp;ldquo;redo&amp;rdquo; the layout we just left. I use it all the time as in &amp;ldquo;oops, I closed the wrong window&amp;rdquo;&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(winner-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Saw this over at &lt;a href=&#34;https://emacsredux.com/blog/2026/04/07/stealing-from-the-best-emacs-configs/&#34;&gt;https://emacsredux.com/blog/2026/04/07/stealing-from-the-best-emacs-configs/&lt;/a&gt;. This is a nice little trick, and it requires a bit of reading to understand what exactly it does: preventing Emacs from deleting whatever we have in the system&amp;rsquo;s clipboard when we kill a line, so it&amp;rsquo;s still in the kill ring. Here&amp;rsquo;s an example to help you grasp the idea and why it&amp;rsquo;s useful:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We&amp;rsquo;re visiting a website with our default browser and copy its URL because we want to write about it in Emacs&lt;/li&gt;
&lt;li&gt;We go to Emacs, and we kill the line we&amp;rsquo;re on because we need some space&lt;/li&gt;
&lt;li&gt;Crap! Now we lost our paste in the clipboard, and we have to go back to the browser and grab that URL again!&lt;/li&gt;
&lt;li&gt;Wait, which tab was it? Did we close it? Should we look in our browsing history? Ugh!&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Not anymore! With this little guy, when we kill the line (step 2 above), Emacs &amp;ldquo;injects&amp;rdquo; it into the kill ring. Now, when we yank with &lt;code&gt;C-y&lt;/code&gt;, we will &lt;em&gt;still&lt;/em&gt; get the last line we killed, yes, &lt;em&gt;but&lt;/em&gt;look up the kill ring with &lt;code&gt;M-y&lt;/code&gt; and voilà! Your URL is there. No need to go find that URL again:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; save-interprogram-paste-before-kill &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You know how for years Emacs &amp;ldquo;jumped&amp;rdquo; when you scrolled down large embedded images in your org buffers? Let&amp;rsquo;s turn on &lt;code&gt;pixel-scroll-precision-mode&lt;/code&gt; for pixel scrolling instead of the default line scrolling to fix this. It&amp;rsquo;s pretty much what it reads: the default old way would &amp;ldquo;scroll&amp;rdquo; (it&amp;rsquo;s actually not scrolling at all) by a line of text at a time. Since our image of, say, 600px in height is treated as a single line of text, it will jump to the end of it. With this option turned on, Emacs would read the pixels from your mouse wheels as you scroll, and we get the smooth scrolling we&amp;rsquo;re used to.&lt;/p&gt;
&lt;p&gt;Interesting to know: moving up and down the line without a mouse (arrows, or &lt;kbd&gt;C-p&lt;/kbd&gt; and &lt;kbd&gt;C-n&lt;/kbd&gt;) is moving by text lines, utilizing &lt;code&gt;auto-windows-vscroll&lt;/code&gt; and &lt;code&gt;line-move&lt;/code&gt;, which basically does in Emacs what arrow movement &lt;em&gt;seems&lt;/em&gt; to be doing in modern applications: these apply this principle from the other direction — they natively work with pixels, so they treat these arrow movements as a fixed number of pixel movements, which is approximately a line of text. So, when you move up and down a large image (or say a PDF) in a browser, the browser thinks &amp;ldquo;ok, the user is moving up one line of text, which is.. hm.. let&amp;rsquo;s see… ah, it says it&amp;rsquo;s exactly 40 pixels, so let me show that&amp;rdquo;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;(pixel-scroll-precision-mode &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;test break&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Emacs is the editor of tinkerers and artisans; those who are eternally dissatisfied with all other tools because of their adamantine rigidity. Crafting, or shaping, your tools to meet your exacting needs is what Emacs excels at. Because of that, Emacs is – much to the chagrin of everyone who picks it up for the first time – squarely aimed at people who already know Emacs.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;In fact, if you&amp;rsquo;re curious about help and Emacs help, I suggest you head over there now and read that post. It expands on how to approach Emacs help by how to &lt;em&gt;think&lt;/em&gt; Emacs, which is something that experienced Emacs users struggle to explain to newcomers.&lt;/p&gt;
&lt;p&gt;As for the history of help in Emacs, I think it&amp;rsquo;s pretty safe to say it&amp;rsquo;s been there since the start, or at least since Emacs became intended for public use, sometime around the 1980s. By that point, most of the core help parts we know today (the tutorial, &lt;kbd&gt;C-h t&lt;/kbd&gt;; the Emacs Manual, &lt;kbd&gt;C-h R&lt;/kbd&gt;; as well as the framework itself) were already in place. The help system was there before GNU Emacs, back in the days of TECO Emacs that RMS worked on at MIT in the 1970s. You could browse &lt;a href=&#34;https://github.com/MITDDC/emacs-1976-1977/tree/main&#34;&gt;the original code from then&lt;/a&gt; (preserved by MIT) and see how Stallman explained what certain commands do in &lt;code&gt;emacs.doc&lt;/code&gt; inside that repository. Another interesting find about Emacs itself (and the help system that comes with it) is the &lt;a href=&#34;https://archive.org/details/bitsavers_mitaiaimAI_2207521/mode/2up&#34;&gt;EMACS paper written by RMS back in 1981&lt;/a&gt;. For the help system, take a look at page 17: &amp;ldquo;6. Self-Documentation and Extensibility&amp;rdquo; and the following chapter in page 18: &amp;ldquo;7. History&amp;rdquo;. Fascinating stuff.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;And here, dear reader, I fell down a &lt;em&gt;deep&lt;/em&gt; rabbit hole, one that pushed this post a couple of days. There are two parts to this. The Emacs part, which I will explore at some point in the near future, has to do with Emacs&amp;rsquo; menu itself, which is controlled by &lt;code&gt;easymenu.el&lt;/code&gt;. This is an old Emacs package that&amp;rsquo;s been around since 1994, written by RMS himself — kind of. It was first created by Per Abrahamsen (who seems to be a bit of a mystery, but that&amp;rsquo;s digging for another day). In turn, this package was taken from &lt;code&gt;lmenu.el&lt;/code&gt;, which was part of yet a different Emacs fork at the time. In a regular Emacs style, the menu bar can be completely reconstructed and changed — and that&amp;rsquo;s something I want to explore soon as a way to recall useful functions I keep forgetting exist (like having an &amp;ldquo;organize&amp;rdquo; menu with something like &amp;ldquo;org-sort&amp;rdquo; under it). This will be a fun project of its own for another day. Meanwhile, the other, bigger rabbit hole is the story of the GUI menu itself as we have it today. Apple has a big role here, back in the days before Steve Jobs left Apple and worked on the &lt;a href=&#34;https://en.wikipedia.org/wiki/Apple_Lisa&#34;&gt;Lisa&lt;/a&gt;. This seems to be the first usage of a graphical interface in personal computers, and the menu, which was taken from Xerox, &lt;a href=&#34;https://computerhistory.org/blog/happy-40th-birthday-lisa/&#34;&gt;was a big part of it&lt;/a&gt; (there&amp;rsquo;s a short YouTube video there that would give you a quick brief of what happened). This means that I am right on keeping the menu in theme with the rest of the Mac apps, based on history!&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Emacs&amp;rsquo; built-in help deserves its own series of posts. Looking at it now, from the eyes of someone who used it for a couple of years, I find &lt;a href=&#34;https://www.masteringemacs.org/article/beginners-guide-to-emacs&#34;&gt;Micky&amp;rsquo;s description&lt;/a&gt; satisfying, reflecting what I felt at the time:&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;I forget how exactly, but some research into &lt;code&gt;winner-mode&lt;/code&gt; history (&lt;a href=&#34;https://github.com/emacs-mirror/emacs/blob/master/lisp/winner.el&#34;&gt;turns out it&amp;rsquo;s been around since 1997&lt;/a&gt; — also, a lot of goodies here to look into!) led me down the path of tabs in Emacs, &lt;code&gt;tab-bar&lt;/code&gt; in particular. I didn&amp;rsquo;t think much about tabs in Emacs, but since I&amp;rsquo;ve been using Kubuntu for a while and experimented with its &lt;a href=&#34;https://kde.org/announcements/4/4.5.0/plasma/&#34;&gt;Workspaces&lt;/a&gt;, I understand the concept better. I looked into &lt;a href=&#34;https://www.rousette.org.uk/archives/using-the-tab-bar-in-emacs/&#34;&gt;BSAG&amp;rsquo;s post&lt;/a&gt;, and it looks like you can hide the tabs while still displaying them on the mode line, and of course, you don&amp;rsquo;t have to use the mouse. The concept of having a whole &lt;em&gt;workplace&lt;/em&gt; completed with its unique window arrangement available with a single keyboard shortcut is alluring. Now, instead of playing around with where and how I want my windows to display, I can just save (or re-create) those, and I always have a &amp;ldquo;work&amp;rdquo; environment vs a &amp;ldquo;personal&amp;rdquo; environment within the same Emacs frame. This can be a good organizational feature. I&amp;rsquo;m going to dig more into this one.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      <source:markdown>My actual configs start with pretty usual stuff you&#39;d see across many other Emacs configs. As I was going through these however, I started to wonder how things work and why they ended up the way we have them today. In turn, that led to reading about the intention behind those, which led to more options I didn&#39;t think about. Also, it&#39;s kind of fun. I&#39;ve made two more passes for this part alone in the last couple of weeks, and I could probably go for a third. When reading this post, if you want the good stuff (in my opinion), get lost in the footnotes as I did. There&#39;s a lot to explore. I just scratched the surface.

### Load Melpa

Melpa is where many Emacs packages live. The story behind it (from what I can tell) revolves around one of Emacs&#39; maintainers, Bozhidar Batsov, who pointed to [Melpa at some point in 2012, when Emacs&#39;s then go-to third-party package repository went offline](https://batsov.com/articles/2012/04/06/melpa-homebrew-emacs-edition/). He is not its creator — Melpa has been around before this post — but this seems to be the turning point where Emacs package maintainers started to really use it. I don&#39;t have good coder/repository maintainer knowledge, but from what I read, it&#39;s built on the same idea as Homebrew (for Mac), which was familiar to many of the Emacs folks at the time.

So let&#39;s get Melpa:

``` lisp
(require &#39;package)
(add-to-list &#39;package-archives &#39;(&#34;melpa&#34; . &#34;https://melpa.org/packages/&#34;) t)
```
### UI and Fundamental Emacs tweaks:

Most Emacs folks with a config file like this like to kill the toolbar, scrollbar, *and* menu bar. I find that the menu bar makes Emacs look more like the other programs, especially in macOS[^1]. Besides, it&#39;s nice to look every now and then and be reminded of good Emacs kung-fu I forgot exists (`org-sort`, I&#39;m sorry my friend, I&#39;ll keep saying hi more often).

This is why the menu-bar is commented out in my config; I want it, but I also want to remember I could turn it off if I wanted:

``` lisp
(tool-bar-mode -1)
(scroll-bar-mode -1)
;; (menu-bar-mode -1) 
```
By default, help commands[^2] display the help buffer in a new window without selecting it. I find this annoying: if I bring up the help window, it&#39;s usually because I want to scroll down to find something or copy (yank) something. On the other hand, if I just want to skim quickly in the help buffer, it&#39;s helpful that the marker is on it for a quick &lt;kbd&gt;q&lt;/kbd&gt; for quit.

In addition, we want to be able to navigate help menus as Emacs intended if we follow the links in a help buffer. `help-window-keep-selected` allows us to keep help in its own dedicated window, so it won&#39;t open in a separate window once we follow a link. Going back to the original is the same as we do in other browser-like buffers in Emacs, with &lt;kbd&gt;l&lt;/kbd&gt; (like in Eww, for example). Likewise, we can go forward with &lt;kbd&gt;r&lt;/kbd&gt;. I should also expand here on various help options; they definitely deserve a mention, but this is another huge topic (you can get an idea from the footer) that will take a couple of weeks. I will come back to this someday.

``` lisp
(setq help-window-select t)
(setq help-window-keep-selected t)
```
Lisp is full of parentheses, and it&#39;s easy to lose track. Turning `show-paren-mode` on means that standing on an open or closed parentheses highlights its matching counterpart, which is handy.

In addition, while we&#39;re here: when we stand on an expression that is only showing a portion of an expression (meaning, we need to scroll down to see the rest) Emacs can highlight the expression for us to make sure we don&#39;t get confused — this is the `mixed` option below for `show-paren-style`. If you want to see the whole expression highlighted every time you&#39;re on it, there&#39;s the option `expression`, which I&#39;m leaving here for reference for myself. For now, I think it&#39;s too much visual noise, especially since we&#39;re using `org-edit-special`, which also highlights what we&#39;re working on.

``` lisp
  (show-paren-mode t)
  (setq show-paren-style &#39;mixed)
;; (setq show-paren-style &#39;expression)
```
And now, a true Emacs classic. I don&#39;t think I&#39;ve seen a config without it: shortening &#34;yes&#34; or &#34;no,&#34; answer to &#34;y&#34; or &#34;n&#34; like any other program known to mankind. `use-short-answers` was introduced in Emacs 28.1, which is a more graceful way to do this, intended exactly for this purpose. Before that, back when I started to use Emacs, it was done with `(fset &#39;yes-or-no-p &#39;y-or-n-p)`. If you have an older Emacs version, you&#39;d need it.

``` lisp
;;  (fset &#39;yes-or-no-p &#39;y-or-n-p)
(setq use-short-answers t)
```
This one was annoying until I learned this option exists from someone else&#39;s config years ago: &#34;Emacs, please stop asking me if I want to kill process when exiting Emacs (Shell, etc.), just do it!&#34; Yep.

``` lisp
(setq confirm-kill-processes nil)
```
Emacs has two annoying keyboard shortcuts that I should have disabled as soon as I started using it: &lt;kbd&gt;C-x C-c&lt;/kbd&gt; (exit Emacs) and &lt;kbd&gt;C-z&lt;/kbd&gt; (minimize Emacs). Both of them are too easy to press by mistake, especially &lt;kbd&gt;C-z&lt;/kbd&gt;, which is undo in many other programs. If I had a penny for each time I minimized Emacs by mistake… When we want to minimize Emacs (and why would you want to do that? Emacs deserves a prominent space on your screen), we can just do it by clicking the minimize window itself, shamefully using our mouse, as we do with other apps. And Exiting Emacs? With a shortcut that seems like it fits somewhere in org-mode? No thanks. Let&#39;s disable those:

``` lisp
(global-unset-key (kbd &#34;C-x C-c&#34;))
(global-unset-key (kbd &#34;C-z&#34;))
```
Turn off the annoying error beep, which I first discovered in SUSE Linux by turning on a visual warning (a flash) instead. This will flash the top and bottom lines of our window instead of going &#34;beep!&#34;

``` lisp
(setq visible-bell t)
```
Turn on [visual line mode](https://www.gnu.org/software/emacs/manual/html_node/emacs/Visual-Line-Mode.html) so text lines &#34;wrap&#34; inside the frame and don&#39;t continue beyond the window&#39;s edge. This is essential; I can&#39;t read in Emacs without it. And a newcomer I discovered recently: since Emacs 30, we also have `global-visual-wrap-prefix-mode`, which preserves indentation on wrapped lines. For example, in a list in org-mode (made of dashes one under the other), a long line of text that wraps will align under its starting point (dash) in the list instead of jumping back to column 0 (the start of the window, to the most left). This has been a huge pet peeve. Finally!

``` lisp
(global-visual-line-mode t)
(global-visual-wrap-prefix-mode t)
```
[Winner mode](https://www.gnu.org/software/emacs/manual/html_node/emacs/Window-Convenience.html) (included in Emacs) is sort of &#34;undo&#34; for changes in windows&#39; layout in Emacs. &lt;kbd&gt;C-c ←&lt;/kbd&gt; goes back to our previous setting, and &lt;kbd&gt;C-c →&lt;/kbd&gt; will &#34;redo&#34; the layout we just left. I use it all the time as in &#34;oops, I closed the wrong window&#34;[^3].

``` lisp
(winner-mode t)
```
Saw this over at &lt;https://emacsredux.com/blog/2026/04/07/stealing-from-the-best-emacs-configs/&gt;. This is a nice little trick, and it requires a bit of reading to understand what exactly it does: preventing Emacs from deleting whatever we have in the system&#39;s clipboard when we kill a line, so it&#39;s still in the kill ring. Here&#39;s an example to help you grasp the idea and why it&#39;s useful:

1.  We&#39;re visiting a website with our default browser and copy its URL because we want to write about it in Emacs
2.  We go to Emacs, and we kill the line we&#39;re on because we need some space
3.  Crap! Now we lost our paste in the clipboard, and we have to go back to the browser and grab that URL again!
4.  Wait, which tab was it? Did we close it? Should we look in our browsing history? Ugh!

Not anymore! With this little guy, when we kill the line (step 2 above), Emacs &#34;injects&#34; it into the kill ring. Now, when we yank with `C-y`, we will *still* get the last line we killed, yes, *but*look up the kill ring with `M-y` and voilà! Your URL is there. No need to go find that URL again:

``` lisp
(setq save-interprogram-paste-before-kill t)
```
You know how for years Emacs &#34;jumped&#34; when you scrolled down large embedded images in your org buffers? Let&#39;s turn on `pixel-scroll-precision-mode` for pixel scrolling instead of the default line scrolling to fix this. It&#39;s pretty much what it reads: the default old way would &#34;scroll&#34; (it&#39;s actually not scrolling at all) by a line of text at a time. Since our image of, say, 600px in height is treated as a single line of text, it will jump to the end of it. With this option turned on, Emacs would read the pixels from your mouse wheels as you scroll, and we get the smooth scrolling we&#39;re used to.

Interesting to know: moving up and down the line without a mouse (arrows, or &lt;kbd&gt;C-p&lt;/kbd&gt; and &lt;kbd&gt;C-n&lt;/kbd&gt;) is moving by text lines, utilizing `auto-windows-vscroll` and `line-move`, which basically does in Emacs what arrow movement *seems* to be doing in modern applications: these apply this principle from the other direction — they natively work with pixels, so they treat these arrow movements as a fixed number of pixel movements, which is approximately a line of text. So, when you move up and down a large image (or say a PDF) in a browser, the browser thinks &#34;ok, the user is moving up one line of text, which is.. hm.. let&#39;s see… ah, it says it&#39;s exactly 40 pixels, so let me show that&#34;.

``` lisp
(pixel-scroll-precision-mode t)
```
test break

[^1]: And here, dear reader, I fell down a *deep* rabbit hole, one that pushed this post a couple of days. There are two parts to this. The Emacs part, which I will explore at some point in the near future, has to do with Emacs&#39; menu itself, which is controlled by `easymenu.el`. This is an old Emacs package that&#39;s been around since 1994, written by RMS himself — kind of. It was first created by Per Abrahamsen (who seems to be a bit of a mystery, but that&#39;s digging for another day). In turn, this package was taken from `lmenu.el`, which was part of yet a different Emacs fork at the time. In a regular Emacs style, the menu bar can be completely reconstructed and changed — and that&#39;s something I want to explore soon as a way to recall useful functions I keep forgetting exist (like having an &#34;organize&#34; menu with something like &#34;org-sort&#34; under it). This will be a fun project of its own for another day. Meanwhile, the other, bigger rabbit hole is the story of the GUI menu itself as we have it today. Apple has a big role here, back in the days before Steve Jobs left Apple and worked on the [Lisa](https://en.wikipedia.org/wiki/Apple_Lisa). This seems to be the first usage of a graphical interface in personal computers, and the menu, which was taken from Xerox, [was a big part of it](https://computerhistory.org/blog/happy-40th-birthday-lisa/) (there&#39;s a short YouTube video there that would give you a quick brief of what happened). This means that I am right on keeping the menu in theme with the rest of the Mac apps, based on history!

[^2]: Emacs&#39; built-in help deserves its own series of posts. Looking at it now, from the eyes of someone who used it for a couple of years, I find [Micky&#39;s description](https://www.masteringemacs.org/article/beginners-guide-to-emacs) satisfying, reflecting what I felt at the time:

&#34;Emacs is the editor of tinkerers and artisans; those who are eternally dissatisfied with all other tools because of their adamantine rigidity. Crafting, or shaping, your tools to meet your exacting needs is what Emacs excels at. Because of that, Emacs is – much to the chagrin of everyone who picks it up for the first time – squarely aimed at people who already know Emacs.&#34;

In fact, if you&#39;re curious about help and Emacs help, I suggest you head over there now and read that post. It expands on how to approach Emacs help by how to *think* Emacs, which is something that experienced Emacs users struggle to explain to newcomers.

As for the history of help in Emacs, I think it&#39;s pretty safe to say it&#39;s been there since the start, or at least since Emacs became intended for public use, sometime around the 1980s. By that point, most of the core help parts we know today (the tutorial, &lt;kbd&gt;C-h t&lt;/kbd&gt;; the Emacs Manual, &lt;kbd&gt;C-h R&lt;/kbd&gt;; as well as the framework itself) were already in place. The help system was there before GNU Emacs, back in the days of TECO Emacs that RMS worked on at MIT in the 1970s. You could browse [the original code from then](https://github.com/MITDDC/emacs-1976-1977/tree/main) (preserved by MIT) and see how Stallman explained what certain commands do in `emacs.doc` inside that repository. Another interesting find about Emacs itself (and the help system that comes with it) is the [EMACS paper written by RMS back in 1981](https://archive.org/details/bitsavers_mitaiaimAI_2207521/mode/2up). For the help system, take a look at page 17: &#34;6. Self-Documentation and Extensibility&#34; and the following chapter in page 18: &#34;7. History&#34;. Fascinating stuff.

[^3]: I forget how exactly, but some research into `winner-mode` history ([turns out it&#39;s been around since 1997](https://github.com/emacs-mirror/emacs/blob/master/lisp/winner.el) — also, a lot of goodies here to look into!) led me down the path of tabs in Emacs, `tab-bar` in particular. I didn&#39;t think much about tabs in Emacs, but since I&#39;ve been using Kubuntu for a while and experimented with its [Workspaces](https://kde.org/announcements/4/4.5.0/plasma/), I understand the concept better. I looked into [BSAG&#39;s post](https://www.rousette.org.uk/archives/using-the-tab-bar-in-emacs/), and it looks like you can hide the tabs while still displaying them on the mode line, and of course, you don&#39;t have to use the mouse. The concept of having a whole *workplace* completed with its unique window arrangement available with a single keyboard shortcut is alluring. Now, instead of playing around with where and how I want my windows to display, I can just save (or re-create) those, and I always have a &#34;work&#34; environment vs a &#34;personal&#34; environment within the same Emacs frame. This can be a good organizational feature. I&#39;m going to dig more into this one.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/03/still-working-on-emacs-config.html</link>
      <pubDate>Mon, 03 Aug 2026 08:21:03 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/03/still-working-on-emacs-config.html</guid>
      <description>&lt;p&gt;Still working on Emacs Config Gems part 3. Fell into a deep rabbit hole and got lost for a couple of days, then climbed out just to discover another one I have to explore next. I wanted to crunch the first few tweaks of my Emacs config in one post, but there&amp;rsquo;s too much to explore. I&amp;rsquo;m getting there!&lt;/p&gt;
</description>
      <source:markdown>Still working on Emacs Config Gems part 3. Fell into a deep rabbit hole and got lost for a couple of days, then climbed out just to discover another one I have to explore next. I wanted to crunch the first few tweaks of my Emacs config in one post, but there&#39;s too much to explore. I&#39;m getting there!
</source:markdown>
    </item>
    
    <item>
      <title>Em Dashes in org-mode and the Nuances of Abbrev</title>
      <link>https://taonaw.com/2026/08/02/em-dashes-in-orgmode-and.html</link>
      <pubDate>Sun, 02 Aug 2026 10:07:04 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/02/em-dashes-in-orgmode-and.html</guid>
      <description>&lt;p&gt;Since &lt;a href=&#34;https://taonaw.com/2026/07/25/i-love-me-some-em.html&#34;&gt;I confessed my enjoyment of em dash&lt;/a&gt; in my writing last week, I started using them more freely. On a Mac, it&amp;rsquo;s &lt;kbd&gt;Option Shift Hyphen&lt;/kbd&gt;, as Sasha would tell you. In Linux, it&amp;rsquo;s a bit more involved: &lt;kbd&gt;Ctrl Shift U&lt;/kbd&gt; to bring up a search for Unicode number reference, and then the number for em dash: &lt;kbd&gt;2014&lt;/kbd&gt;.&lt;/p&gt;
&lt;p&gt;This is all good and well, but what about Emacs, where I write most of my text?&lt;/p&gt;
&lt;p&gt;Emacs comes with &lt;code&gt;abbrev-mode&lt;/code&gt;, a powerful text-expanding option that automatically converts something like &amp;ldquo;om&amp;rdquo; to &amp;ldquo;org-mode&amp;rdquo;, or even &amp;ldquo;fox&amp;rdquo; to &amp;ldquo;The quick brown fox jumps over the lazy dog&amp;rdquo; if I wanted to. But the em dash is a bit more tricky. I could, if I wanted, create an abbreviation like &amp;ldquo;em&amp;rdquo; to simply expand to &amp;ldquo;—&amp;rdquo;. But this doesn&amp;rsquo;t make much sense.&lt;/p&gt;
&lt;p&gt;When converting org-mode to markdown (as I do when I post something), the built-in solution for Emacs&amp;rsquo; markdown exporter is to convert &lt;code&gt;---&lt;/code&gt; (three dashes) to &lt;code&gt;—&lt;/code&gt;, em dash — but this presents two annoyances. First, the built-in exporter would convert those to their character reference, as we just saw: &lt;code&gt;&amp;amp;#2014;&lt;/code&gt;. I &lt;a href=&#34;https://taonaw.com/2026/07/27/style-emacs-config-a-semantic.html&#34;&gt;explained this more in-depth&lt;/a&gt; previously. Second, even after I fixed this issue by using pandoc, I still see &lt;code&gt;---&lt;/code&gt; in org-mode, not —. This looks like the kind of thing &lt;code&gt;abbrev-mode&lt;/code&gt; was made for, right?&lt;/p&gt;
&lt;p&gt;But it&amp;rsquo;s a bit more complicated. &lt;code&gt;abbrev-mode&lt;/code&gt; triggers only when you type a space after a letter. So, &amp;ldquo;em&amp;rdquo; to — would work, but - to — would not, because a dash is not part of a word&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;The solution was simpler than I thought: &lt;code&gt;expand-abbrev&lt;/code&gt;, which &amp;ldquo;Expands the abbrev before point, if there is an abbrev there. Effective when explicitly called even when &amp;lsquo;abbrev-mode&amp;rsquo; is nil.&amp;rdquo; In other words, it calls expand-abbrev without needing to trigger it the usual way. We simply call the abbrev replacement directly.&lt;/p&gt;
&lt;p&gt;Now whenever I want an em dash, I type &lt;code&gt;---&lt;/code&gt; first, and then I make sure the marker is right after the last dash, and call &lt;code&gt;expand-abbrev&lt;/code&gt;, which in my config is tied to &lt;kbd&gt;C-x &amp;lsquo;&lt;/kbd&gt;. I then get an em dash in Emacs, and the exporter in Emacs (or pandoc, in my case) leaves it alone.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Prot has a related, interesting video about expanding abbrevs with non-word-like characters, which &lt;a href=&#34;https://taonaw.com/2024/02/10/emacs-abbrevs-hacks.html&#34;&gt;I already use&lt;/a&gt;. The problem here is that there&amp;rsquo;s nothing &amp;ldquo;word-like&amp;rdquo; in &amp;mdash;. We can work with something like &amp;ldquo;!word&amp;rdquo; or &amp;ldquo;word!&amp;rdquo; because the mechanism that catches abbrevs will recognize a word-like character before or after the &amp;ldquo;!&amp;rdquo; (using regex, as explained in the post) and trigger it, but in the case we have above, there&amp;rsquo;s nothing that looks like a word to trigger it at all, so it does not work.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      <source:markdown>Since [I confessed my enjoyment of em dash](https://taonaw.com/2026/07/25/i-love-me-some-em.html) in my writing last week, I started using them more freely. On a Mac, it&#39;s &lt;kbd&gt;Option Shift Hyphen&lt;/kbd&gt;, as Sasha would tell you. In Linux, it&#39;s a bit more involved: &lt;kbd&gt;Ctrl Shift U&lt;/kbd&gt; to bring up a search for Unicode number reference, and then the number for em dash: &lt;kbd&gt;2014&lt;/kbd&gt;.

This is all good and well, but what about Emacs, where I write most of my text?

Emacs comes with `abbrev-mode`, a powerful text-expanding option that automatically converts something like &#34;om&#34; to &#34;org-mode&#34;, or even &#34;fox&#34; to &#34;The quick brown fox jumps over the lazy dog&#34; if I wanted to. But the em dash is a bit more tricky. I could, if I wanted, create an abbreviation like &#34;em&#34; to simply expand to &#34;—&#34;. But this doesn&#39;t make much sense.

When converting org-mode to markdown (as I do when I post something), the built-in solution for Emacs&#39; markdown exporter is to convert `---` (three dashes) to `—`, em dash — but this presents two annoyances. First, the built-in exporter would convert those to their character reference, as we just saw: `&amp;#2014;`. I [explained this more in-depth](https://taonaw.com/2026/07/27/style-emacs-config-a-semantic.html) previously. Second, even after I fixed this issue by using pandoc, I still see `---` in org-mode, not —. This looks like the kind of thing `abbrev-mode` was made for, right?

But it&#39;s a bit more complicated. `abbrev-mode` triggers only when you type a space after a letter. So, &#34;em&#34; to — would work, but - to — would not, because a dash is not part of a word[^1].

The solution was simpler than I thought: `expand-abbrev`, which &#34;Expands the abbrev before point, if there is an abbrev there. Effective when explicitly called even when &#39;abbrev-mode&#39; is nil.&#34; In other words, it calls expand-abbrev without needing to trigger it the usual way. We simply call the abbrev replacement directly.

Now whenever I want an em dash, I type `---` first, and then I make sure the marker is right after the last dash, and call `expand-abbrev`, which in my config is tied to &lt;kbd&gt;C-x &#39;&lt;/kbd&gt;. I then get an em dash in Emacs, and the exporter in Emacs (or pandoc, in my case) leaves it alone.

[^1]: Prot has a related, interesting video about expanding abbrevs with non-word-like characters, which [I already use](https://taonaw.com/2024/02/10/emacs-abbrevs-hacks.html). The problem here is that there&#39;s nothing &#34;word-like&#34; in ---. We can work with something like &#34;!word&#34; or &#34;word!&#34; because the mechanism that catches abbrevs will recognize a word-like character before or after the &#34;!&#34; (using regex, as explained in the post) and trigger it, but in the case we have above, there&#39;s nothing that looks like a word to trigger it at all, so it does not work.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/31/i-keep-seeing-this-dont.html</link>
      <pubDate>Fri, 31 Jul 2026 09:09:12 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/31/i-keep-seeing-this-dont.html</guid>
      <description>&lt;p&gt;I keep seeing this: &amp;ldquo;Don’t place your workspace in your bedroom! I did this to optimize the space at home and I totally regret this decision.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s becoming one of the main reasons to want to leave NYC. An apartment with an office for a room instead of another person paying the rent is not sustainable.&lt;/p&gt;
</description>
      <source:markdown>I keep seeing this: &#34;Don’t place your workspace in your bedroom! I did this to optimize the space at home and I totally regret this decision.&#34;

It&#39;s becoming one of the main reasons to want to leave NYC. An apartment with an office for a room instead of another person paying the rent is not sustainable.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/28/you-know-when-you-talk.html</link>
      <pubDate>Tue, 28 Jul 2026 10:42:38 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/28/you-know-when-you-talk.html</guid>
      <description>&lt;p&gt;You know when you talk to someone else with ADHD when you realize you juggle 3 conversations in one, going from one layer to the other, and you&amp;rsquo;re both able to keep track AND connect the layers when needed all while having lunch walking, because who has time to sit down anyway.&lt;/p&gt;
</description>
      <source:markdown>You know when you talk to someone else with ADHD when you realize you juggle 3 conversations in one, going from one layer to the other, and you&#39;re both able to keep track AND connect the layers when needed all while having lunch walking, because who has time to sit down anyway. 
</source:markdown>
    </item>
    
    <item>
      <title>Style &amp; Emacs Config: A Semantic HTML Reckoning</title>
      <link>https://taonaw.com/2026/07/27/style-emacs-config-a-semantic.html</link>
      <pubDate>Mon, 27 Jul 2026 09:02:40 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/27/style-emacs-config-a-semantic.html</guid>
      <description>&lt;p&gt;For years, I&amp;rsquo;ve been using verbatim &lt;a href=&#34;https://orgmode.org/manual/Emphasis-and-Monospace.html&#34;&gt;emphasis&lt;/a&gt; in org-mode to mark files and keyboard strokes, while reserving code emphasis to show function names, variables, and other elements of code.&lt;/p&gt;
&lt;p&gt;With the reintroduction of &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt; tags to the blog &lt;a href=&#34;https://taonaw.com/2026/07/26/emacs-config-gems-part.html&#34;&gt;yesterday&lt;/a&gt;&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;, I wanted these tags to follow the same logic derived from my usage in org-mode: if I used verbatim in org-mode to indicate keystrokes and filenames, then I should use &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt; tags on the blog to indicate the same thing. I explained in a footnote in the post: &amp;ldquo;The reason I have it different here is because I often talk about files in my posts without referring to code.&amp;rdquo; That might have been my preference, but it was wrong. We&amp;rsquo;ll get back to it in a minute.&lt;/p&gt;
&lt;p&gt;I wanted to get my markdown-exported posts to preserve the verbatim emphasis from org-mode. But Markdown doesn&amp;rsquo;t distinguish between verbatim and code emphasis in org-mode — it treats both as &lt;code&gt;``&lt;/code&gt;, or &lt;code&gt;&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;/code&gt; tags in HTML. So I started looking for a way to fix this.&lt;/p&gt;
&lt;p&gt;The abridged version (the research took over an hour): I ended up with a wrapper function that would add Markdown raw code injection specifically for that code (I&amp;rsquo;m still working on it) to work with Pandoc. Why Pandoc and not Emacs&amp;rsquo;s built-in Markdown exporter? Because Emacs&amp;rsquo;s built-in exporter outputs certain characters, like my now &lt;a href=&#34;https://taonaw.com/2026/07/25/i-love-me-some-em.html&#34;&gt;beloved em-dash again&lt;/a&gt;, as character reference numbers, which results in a character reference (&lt;code&gt;—&lt;/code&gt; specifically) instead of an em-dash. Why&amp;rsquo;s that? Look, have you eaten breakfast today? Because I haven&amp;rsquo;t. Let me just tell you, these rabbits dig deep holes.&lt;/p&gt;
&lt;p&gt;So now, after I had a working way (more or less) to produce my newly introduced &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt; tags, I wanted to start using them for filenames. But I was bothered by the fact that while I can do whatever the hell I want this is not considered standard. And when I say &amp;ldquo;bothered,&amp;rdquo; I mean this is the thought I woke up to at around 05:40 this morning, which is what you get from a delirious dork Emacs brain like mine.&lt;/p&gt;
&lt;p&gt;I knew HTML has standards, but I didn&amp;rsquo;t connect the logic behind it to semantic HTML — not until I browsed on my phone, in my bed, for another half an hour of impulsive research. Turns out, this is something that some folks take &lt;a href=&#34;https://validator.w3.org/nu/&#34;&gt;very&lt;/a&gt; &lt;a href=&#34;https://html.spec.whatwg.org&#34;&gt;seriously&lt;/a&gt;. And according to these folks, filenames and paths do not and should not have a dedicated HTML tag (surely not &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt;, which is for &lt;del&gt;keystrokes only&lt;/del&gt; — actually, it&amp;rsquo;s for &amp;ldquo;textual user input&amp;rdquo; which can include voice, for example). Authority has it that I should be indicating filenames using the &lt;code&gt;&amp;lt;code&amp;gt;&amp;lt;/code&amp;gt;&lt;/code&gt; tags (and code emphasis in org-mode), and there&amp;rsquo;s a good reason for that. Just take my word for it for now (breakfast, remember?)&lt;/p&gt;
&lt;p&gt;Reading through their tomb of standards, I realized I need to correct my headings on the blog too (I jump directly to &lt;code&gt;&amp;lt;h3&amp;gt;&amp;lt;/h3&amp;gt;&lt;/code&gt; tags instead of going by order, because the CSS for these tags looks better — in other words, I&amp;rsquo;ve been lazy by not fixing this), among potentially many other things. There are over a &lt;em&gt;hundred&lt;/em&gt; semantic tags in HTML, and there&amp;rsquo;s a reason for each one.&lt;/p&gt;
&lt;p&gt;Damn those rabbits.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I realize that most of you read this via RSS, which might translate these tags as code anyway, making the entire point moot&amp;hellip; if you want to see what I mean, you might have to actually use your browser and visit my page as is, just this once.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      <source:markdown>For years, I&#39;ve been using verbatim [emphasis](https://orgmode.org/manual/Emphasis-and-Monospace.html) in org-mode to mark files and keyboard strokes, while reserving code emphasis to show function names, variables, and other elements of code.

With the reintroduction of `&lt;kbd&gt;&lt;/kbd&gt;` tags to the blog [yesterday](https://taonaw.com/2026/07/26/emacs-config-gems-part.html)[^1], I wanted these tags to follow the same logic derived from my usage in org-mode: if I used verbatim in org-mode to indicate keystrokes and filenames, then I should use `&lt;kbd&gt;&lt;/kbd&gt;` tags on the blog to indicate the same thing. I explained in a footnote in the post: &#34;The reason I have it different here is because I often talk about files in my posts without referring to code.&#34; That might have been my preference, but it was wrong. We&#39;ll get back to it in a minute.

I wanted to get my markdown-exported posts to preserve the verbatim emphasis from org-mode. But Markdown doesn&#39;t distinguish between verbatim and code emphasis in org-mode — it treats both as ``` `` ```, or `&lt;code&gt;&lt;/code&gt;` tags in HTML. So I started looking for a way to fix this.

The abridged version (the research took over an hour): I ended up with a wrapper function that would add Markdown raw code injection specifically for that code (I&#39;m still working on it) to work with Pandoc. Why Pandoc and not Emacs&#39;s built-in Markdown exporter? Because Emacs&#39;s built-in exporter outputs certain characters, like my now [beloved em-dash again](https://taonaw.com/2026/07/25/i-love-me-some-em.html), as character reference numbers, which results in a character reference (`—` specifically) instead of an em-dash. Why&#39;s that? Look, have you eaten breakfast today? Because I haven&#39;t. Let me just tell you, these rabbits dig deep holes.

So now, after I had a working way (more or less) to produce my newly introduced `&lt;kbd&gt;&lt;/kbd&gt;` tags, I wanted to start using them for filenames. But I was bothered by the fact that while I can do whatever the hell I want this is not considered standard. And when I say &#34;bothered,&#34; I mean this is the thought I woke up to at around 05:40 this morning, which is what you get from a delirious dork Emacs brain like mine.

I knew HTML has standards, but I didn&#39;t connect the logic behind it to semantic HTML — not until I browsed on my phone, in my bed, for another half an hour of impulsive research. Turns out, this is something that some folks take [very](https://validator.w3.org/nu/) [seriously](https://html.spec.whatwg.org). And according to these folks, filenames and paths do not and should not have a dedicated HTML tag (surely not `&lt;kbd&gt;&lt;/kbd&gt;`, which is for ~~keystrokes only~~ — actually, it&#39;s for &#34;textual user input&#34; which can include voice, for example). Authority has it that I should be indicating filenames using the `&lt;code&gt;&lt;/code&gt;` tags (and code emphasis in org-mode), and there&#39;s a good reason for that. Just take my word for it for now (breakfast, remember?)

Reading through their tomb of standards, I realized I need to correct my headings on the blog too (I jump directly to `&lt;h3&gt;&lt;/h3&gt;` tags instead of going by order, because the CSS for these tags looks better — in other words, I&#39;ve been lazy by not fixing this), among potentially many other things. There are over a *hundred* semantic tags in HTML, and there&#39;s a reason for each one.

Damn those rabbits.


[^1]: I realize that most of you read this via RSS, which might translate these tags as code anyway, making the entire point moot... if you want to see what I mean, you might have to actually use your browser and visit my page as is, just this once.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/26/this-is-one-of-the.html</link>
      <pubDate>Sun, 26 Jul 2026 18:07:42 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/26/this-is-one-of-the.html</guid>
      <description>&lt;p&gt;This is one of the awesome things about having an espresso machine at home. I love watching the hot coffee “drilling” into the ice 📷. 🧊☕️☀️&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/2101255f5e.jpg&#34; width=&#34;452&#34; height=&#34;600&#34; alt=&#34;A glass of iced coffee or iced latte sits on a metal surface with jars and a bag of Domino sugar in the background.&#34;&gt;
</description>
      <source:markdown>This is one of the awesome things about having an espresso machine at home. I love watching the hot coffee “drilling” into the ice 📷. 🧊☕️☀️

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/2101255f5e.jpg&#34; width=&#34;452&#34; height=&#34;600&#34; alt=&#34;A glass of iced coffee or iced latte sits on a metal surface with jars and a bag of Domino sugar in the background.&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Emacs Config Gems - Part 2</title>
      <link>https://taonaw.com/2026/07/26/emacs-config-gems-part.html</link>
      <pubDate>Sun, 26 Jul 2026 14:22:54 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/26/emacs-config-gems-part.html</guid>
      <description>&lt;p&gt;You know how I said last time &lt;a href=&#34;https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html&#34;&gt;Part 1&lt;/a&gt; was just the introduction? I lied.&lt;/p&gt;
&lt;p&gt;My &lt;kbd&gt;emacs-settings.org&lt;/kbd&gt; file includes an introduction that covers what I already went over and more. I thought I&amp;rsquo;d skip it, but as I looked through the notes I left to myself — various guidelines, warnings, and tips — I realized that this is exactly the kind of stuff I should share.&lt;/p&gt;
&lt;h3 id=&#34;style&#34;&gt;Style&lt;/h3&gt;
&lt;p&gt;As I was writing this, I fell into a rabbit hole (of course) and made a couple of additional changes.&lt;/p&gt;
&lt;p&gt;Style and style guides are important to me. In college, as an editor, I used the &lt;a href=&#34;https://en.wikipedia.org/wiki/AP_Stylebook&#34;&gt;AP Stylebook&lt;/a&gt; as a bible almost, along with the Chicago Manual of Style for academic papers. When I worked as a technical writer, it was &lt;a href=&#34;https://learn.microsoft.com/en-us/style-guide/welcome/&#34;&gt;Microsoft&amp;rsquo;s stylebook&lt;/a&gt; I checked constantly — and some of it stuck (don&amp;rsquo;t say &amp;ldquo;click&amp;rdquo;; say &amp;ldquo;select&amp;rdquo;, don&amp;rsquo;t say &amp;ldquo;sign in&amp;rdquo;; say &amp;ldquo;log in,&amp;rdquo; etc.) The main point is to stick to a style and keep using it — which one matters less.&lt;/p&gt;
&lt;p&gt;Here are the notes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Emacs keyboard shortcuts and file paths should be placed in &lt;code&gt;verbatim&lt;/code&gt; (between &lt;kbd&gt;=&lt;/kbd&gt; and &lt;kbd&gt;=&lt;/kbd&gt;)&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;Code (as part of an explanation) should be placed in &lt;code&gt;code&lt;/code&gt; (between &lt;kbd&gt;&lt;del&gt;&lt;/kbd&gt; and &lt;kbd&gt;&lt;/del&gt;&lt;/kbd&gt;)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Code blocks&lt;/strong&gt;: use structure templates (&lt;kbd&gt;C-c C-,&lt;/kbd&gt;) and choose &lt;code&gt;emacs-lisp&lt;/code&gt; from the list (this is defined below). It should be in lower case: &lt;code&gt;#+begin_src emacs-lisp&lt;/code&gt; and &lt;code&gt;#+end_src&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;When explaining code&lt;/strong&gt;: the explanation follows the code immediately (no space). Use a space &lt;em&gt;after&lt;/em&gt; the code (new line) for the next item:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt; explanation for item 1
 #+begin_src emacs-lisp
 code for item 1
 #+end_src
 
 explanation for item 2
 #+begin_src emacs-lisp
 code for item 2
 #+end_src
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;navigation-tips&#34;&gt;Navigation Tips&lt;/h3&gt;
&lt;p&gt;My settings file is long and requires that I jump around to different sections. As I was working on revamping it, I&amp;rsquo;ve learned quite a few useful &amp;ldquo;tricks&amp;rdquo; that I started sharing in earlier posts. These are always good to know, not just in our setting file.&lt;/p&gt;
&lt;h4 id=&#34;jump-back-with-the-mark-ring&#34;&gt;Jump Back With the Mark Ring&lt;/h4&gt;
&lt;p&gt;While &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Registers.html&#34;&gt;registers&lt;/a&gt; (I have a section about them below) are a nice org-mode feature I keep forgetting about, they&amp;rsquo;re a bit of an in-between too much or too little for most cases in this file. For quickly getting around, we should use the &lt;a href=&#34;https://www.gnu.org/software/emacs/manual/html_node/emacs/Mark-Ring.html&#34;&gt;mark ring&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;Use &lt;kbd&gt;C-u C-SPC&lt;/kbd&gt; (built on &lt;code&gt;set-mark-command&lt;/code&gt;) to jump back to where our marker was before, which is usually where we ended scrolling or moving to see something. Keep pressing to keep going back — it remembers all the positions we landed on. By default, it remembers the last 16 positions.&lt;/p&gt;
&lt;h4 id=&#34;editing-code-blocks&#34;&gt;Editing Code Blocks&lt;/h4&gt;
&lt;p&gt;&lt;a href=&#34;https://orgmode.org/manual/Editing-Source-Code.html&#34;&gt;Edit code blocks&lt;/a&gt; with &lt;kbd&gt;C-c &amp;lsquo;&lt;/kbd&gt; instead of just working with the text inside the org buffer directly&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Don&amp;rsquo;t&lt;/em&gt; edit the text in a code block (&lt;code&gt;#+begin_src&lt;/code&gt;&amp;hellip; &lt;code&gt;#+end_src&lt;/code&gt;) directly. While it works, we&amp;rsquo;re missing out on the power of &lt;code&gt;org-edit-special&lt;/code&gt;, and this is one powerful org-mode feature. Here are some of the highlights relevant to me, in bold:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;  *When at a table, call the formula editor with &amp;#39;org-table-edit-formulas&amp;#39;.*
 When at table.el table, edit it in dedicated buffer.
 When in a source code block, call &amp;#39;org-edit-src-code&amp;#39;; with prefix
   argument, switch to session buffer.
 When in an example block, call &amp;#39;org-edit-src-code&amp;#39;.
 *When in an inline code block, call &amp;#39;org-edit-inline-src-code&amp;#39;.* **(this is what we&amp;#39;re doing here!)**
 When in a fixed-width region, call &amp;#39;org-edit-fixed-width-region&amp;#39;.
 When in an export block, call &amp;#39;org-edit-export-block&amp;#39;.
 When in a comment block, call &amp;#39;org-edit-comment-block&amp;#39;.
 When in a LaTeX environment, call &amp;#39;org-edit-latex-environment&amp;#39;.
 When at an INCLUDE, SETUPFILE or BIBLIOGRAPHY keyword, visit the included file.
 *When at a footnote reference, call &amp;#39;org-edit-footnote-reference&amp;#39;.*
 When at a planning line call, &amp;#39;org-deadline&amp;#39; and/or &amp;#39;org-schedule&amp;#39;.
 When at an active timestamp, call &amp;#39;org-timestamp&amp;#39;.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;What it gives us when we work with the settings here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A separate temporary buffer, without the &lt;code&gt;#+begin_src&lt;/code&gt;&amp;hellip; &lt;code&gt;#+end_src&lt;/code&gt;, which we can evaluate any time, without worrying about being at the end of an expression (parentheses) and use &lt;kbd&gt;C-x C-e&lt;/kbd&gt;&lt;sup&gt;&lt;a id=&#34;fnr.3&#34; class=&#34;footref&#34; href=&#34;#fn.3&#34; role=&#34;doc-backlink&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;Safety net: as long as we don&amp;rsquo;t close it with another &lt;kbd&gt;C-c &amp;lsquo;&lt;/kbd&gt;, it doesn&amp;rsquo;t save the code, and we can run it in that separate buffer to see what it does.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Also, nice bonus: it highlights the code we&amp;rsquo;re in with a separate color, and it will keep highlighting it as long as &lt;code&gt;org-edit-special&lt;/code&gt; is open. Need a coffee refill? No problem, you know exactly where you left off.&lt;/p&gt;
&lt;h4 id=&#34;links&#34;&gt;Links&lt;/h4&gt;
&lt;p&gt;In my config, I started using links more often instead of setting registers (as I noted earlier, registers are too much for moving around, but too little as permanent location savers). I stole the thunder from this section &lt;a href=&#34;https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html&#34;&gt;in this post&lt;/a&gt;, but it deserves its own post anyway. org-mode internal links are &lt;em&gt;very&lt;/em&gt; powerful, and I don&amp;rsquo;t think the manual explains them well enough (examples would be good), so go check it out.&lt;/p&gt;
&lt;h4 id=&#34;registers&#34;&gt;Registers&lt;/h4&gt;
&lt;p&gt;Registers can save a location in a file to be recalled later from anywhere else in Emacs, or, to save a chunk of code to be pasted (yanked) later.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;To save a location: &lt;kbd&gt;C-x r SPC&lt;/kbd&gt;, then a number or a letter to name the register. So &lt;kbd&gt;C-x r SPC&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will save a register called &amp;ldquo;1&amp;rdquo; in the position the marker is on.&lt;/li&gt;
&lt;li&gt;To jump to a saved location in a register: &lt;kbd&gt;C-x r j&lt;/kbd&gt;, then the number/letter we previously selected. So in this example, &lt;kbd&gt;C-x r j&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will take us back to the location we saved as &amp;ldquo;1&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;To save a region in a register: First, highlight (select) a region in Emacs. Then &lt;kbd&gt;C-x r s&lt;/kbd&gt;, then a number or a letter to name the register. So selecting this sentence, then &lt;kbd&gt;C-x r s&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will save the sentence in register &lt;kbd&gt;1&lt;/kbd&gt;.&lt;sup&gt;&lt;a id=&#34;fnr.4&#34; class=&#34;footref&#34; href=&#34;#fn.4&#34; role=&#34;doc-backlink&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;To insert a saved region: &lt;kbd&gt;C-x r i&lt;/kbd&gt;, then the number/letter we previously selected.&lt;/li&gt;
&lt;li&gt;To view saved registers: &lt;kbd&gt;M-x&lt;/kbd&gt; &lt;code&gt;view-register&lt;/code&gt;, which allows you to select one by number. A good replacement for &lt;kbd&gt;C-x r j&lt;/kbd&gt; if you need a visual reminder like I do.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&amp;rsquo;s a good idea to keep numbers for positions and letters for text so we don&amp;rsquo;t get them confused and overwrite our registers.&lt;/p&gt;
&lt;h3 id=&#34;footnotes&#34;&gt;Footnotes&lt;/h3&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Most Emacs users, I believe, use &lt;code&gt;code&lt;/code&gt; for file paths. The reason I have it different here is because I often talk about files in my posts without referring to code, and I will now make use of the &lt;code&gt;&amp;lt;kbd&amp;gt;&amp;lt;/kbd&amp;gt;&lt;/code&gt; tags as well, which I forgot about. This is good for clarity, especially when we talk about Emacs, since Emacs and keyboard shortcuts are mentioned together all the time.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Those of you who code and write functions on Emacs regularly would probably find this &amp;ldquo;trick&amp;rdquo; trivial. However, as a person who does not have this background, I&amp;rsquo;ve been editing my code blocks directly in org for years — I had no idea &lt;code&gt;org-edit-special&lt;/code&gt; exists. I&amp;rsquo;m sure some folks out there are in the same boat.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.3&#34; href=&#34;#fnr.3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; Which is, as I explained in my previous footnote, exactly what I&amp;rsquo;ve been doing for years. It works, but it can lead to mistakes, and it&amp;rsquo;s not as safe (you&amp;rsquo;re changing your settings, so if something goes wrong, Emacs&amp;rsquo; startup will stop at the error).&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.4&#34; href=&#34;#fnr.4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; In a usual discovery manner, I found out that &lt;kbd&gt;C-x r +&lt;/kbd&gt; appends text to the register. So, if you were to select this footer here from the word &amp;ldquo;In&amp;rdquo; to the dot after &amp;ldquo;register&amp;rdquo;, you could then go to the word &amp;ldquo;So&amp;rdquo; and mark again to the word &amp;ldquo;footer&amp;rdquo; 7 words later, hit &lt;kbd&gt;C-x r +&lt;/kbd&gt;, and then when you ready to yank (paste), hit &lt;kbd&gt;C-x r i&lt;/kbd&gt; and both sections will be yanked as one. Actually, you could forgo &lt;kbd&gt;C-x r i&lt;/kbd&gt; altogether and use &lt;kbd&gt;C-x r +&lt;/kbd&gt; from the start, because if you append to an empty register, it will just append that first chunk.&lt;/p&gt;
</description>
      <source:markdown>You know how I said last time [Part 1](https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html) was just the introduction? I lied.

My &lt;kbd&gt;emacs-settings.org&lt;/kbd&gt; file includes an introduction that covers what I already went over and more. I thought I&#39;d skip it, but as I looked through the notes I left to myself — various guidelines, warnings, and tips — I realized that this is exactly the kind of stuff I should share.

### Style

As I was writing this, I fell into a rabbit hole (of course) and made a couple of additional changes.

Style and style guides are important to me. In college, as an editor, I used the [AP Stylebook](https://en.wikipedia.org/wiki/AP_Stylebook) as a bible almost, along with the Chicago Manual of Style for academic papers. When I worked as a technical writer, it was [Microsoft&#39;s stylebook](https://learn.microsoft.com/en-us/style-guide/welcome/) I checked constantly — and some of it stuck (don&#39;t say &#34;click&#34;; say &#34;select&#34;, don&#39;t say &#34;sign in&#34;; say &#34;log in,&#34; etc.) The main point is to stick to a style and keep using it — which one matters less.

Here are the notes:

1.  Emacs keyboard shortcuts and file paths should be placed in `verbatim` (between &lt;kbd&gt;=&lt;/kbd&gt; and &lt;kbd&gt;=&lt;/kbd&gt;)&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;
2.  Code (as part of an explanation) should be placed in `code` (between &lt;kbd&gt;~&lt;/kbd&gt; and &lt;kbd&gt;~&lt;/kbd&gt;)

**Code blocks**: use structure templates (&lt;kbd&gt;C-c C-,&lt;/kbd&gt;) and choose `emacs-lisp` from the list (this is defined below). It should be in lower case: `#+begin_src emacs-lisp` and `#+end_src`.

**When explaining code**: the explanation follows the code immediately (no space). Use a space *after* the code (new line) for the next item:

```
 explanation for item 1
 #+begin_src emacs-lisp
 code for item 1
 #+end_src
 
 explanation for item 2
 #+begin_src emacs-lisp
 code for item 2
 #+end_src
```

### Navigation Tips

My settings file is long and requires that I jump around to different sections. As I was working on revamping it, I&#39;ve learned quite a few useful &#34;tricks&#34; that I started sharing in earlier posts. These are always good to know, not just in our setting file.

#### Jump Back With the Mark Ring

While [registers](https://www.gnu.org/software/emacs/manual/html_node/emacs/Registers.html) (I have a section about them below) are a nice org-mode feature I keep forgetting about, they&#39;re a bit of an in-between too much or too little for most cases in this file. For quickly getting around, we should use the [mark ring](https://www.gnu.org/software/emacs/manual/html_node/emacs/Mark-Ring.html):

Use &lt;kbd&gt;C-u C-SPC&lt;/kbd&gt; (built on `set-mark-command`) to jump back to where our marker was before, which is usually where we ended scrolling or moving to see something. Keep pressing to keep going back — it remembers all the positions we landed on. By default, it remembers the last 16 positions.

#### Editing Code Blocks

[Edit code blocks](https://orgmode.org/manual/Editing-Source-Code.html) with &lt;kbd&gt;C-c &#39;&lt;/kbd&gt; instead of just working with the text inside the org buffer directly&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;

*Don&#39;t* edit the text in a code block (`#+begin_src`... `#+end_src`) directly. While it works, we&#39;re missing out on the power of `org-edit-special`, and this is one powerful org-mode feature. Here are some of the highlights relevant to me, in bold:

```
  *When at a table, call the formula editor with &#39;org-table-edit-formulas&#39;.*
 When at table.el table, edit it in dedicated buffer.
 When in a source code block, call &#39;org-edit-src-code&#39;; with prefix
   argument, switch to session buffer.
 When in an example block, call &#39;org-edit-src-code&#39;.
 *When in an inline code block, call &#39;org-edit-inline-src-code&#39;.* **(this is what we&#39;re doing here!)**
 When in a fixed-width region, call &#39;org-edit-fixed-width-region&#39;.
 When in an export block, call &#39;org-edit-export-block&#39;.
 When in a comment block, call &#39;org-edit-comment-block&#39;.
 When in a LaTeX environment, call &#39;org-edit-latex-environment&#39;.
 When at an INCLUDE, SETUPFILE or BIBLIOGRAPHY keyword, visit the included file.
 *When at a footnote reference, call &#39;org-edit-footnote-reference&#39;.*
 When at a planning line call, &#39;org-deadline&#39; and/or &#39;org-schedule&#39;.
 When at an active timestamp, call &#39;org-timestamp&#39;.
```
What it gives us when we work with the settings here:

1.  A separate temporary buffer, without the `#+begin_src`... `#+end_src`, which we can evaluate any time, without worrying about being at the end of an expression (parentheses) and use &lt;kbd&gt;C-x C-e&lt;/kbd&gt;&lt;sup&gt;&lt;a id=&#34;fnr.3&#34; class=&#34;footref&#34; href=&#34;#fn.3&#34; role=&#34;doc-backlink&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;.
2.  Safety net: as long as we don&#39;t close it with another &lt;kbd&gt;C-c &#39;&lt;/kbd&gt;, it doesn&#39;t save the code, and we can run it in that separate buffer to see what it does.

Also, nice bonus: it highlights the code we&#39;re in with a separate color, and it will keep highlighting it as long as `org-edit-special` is open. Need a coffee refill? No problem, you know exactly where you left off.

#### Links

In my config, I started using links more often instead of setting registers (as I noted earlier, registers are too much for moving around, but too little as permanent location savers). I stole the thunder from this section [in this post](https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html), but it deserves its own post anyway. org-mode internal links are *very* powerful, and I don&#39;t think the manual explains them well enough (examples would be good), so go check it out.

#### Registers

Registers can save a location in a file to be recalled later from anywhere else in Emacs, or, to save a chunk of code to be pasted (yanked) later.

1.  To save a location: &lt;kbd&gt;C-x r SPC&lt;/kbd&gt;, then a number or a letter to name the register. So &lt;kbd&gt;C-x r SPC&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will save a register called &#34;1&#34; in the position the marker is on.
2.  To jump to a saved location in a register: &lt;kbd&gt;C-x r j&lt;/kbd&gt;, then the number/letter we previously selected. So in this example, &lt;kbd&gt;C-x r j&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will take us back to the location we saved as &#34;1&#34;.
3.  To save a region in a register: First, highlight (select) a region in Emacs. Then &lt;kbd&gt;C-x r s&lt;/kbd&gt;, then a number or a letter to name the register. So selecting this sentence, then &lt;kbd&gt;C-x r s&lt;/kbd&gt; and then &lt;kbd&gt;1&lt;/kbd&gt; will save the sentence in register &lt;kbd&gt;1&lt;/kbd&gt;.&lt;sup&gt;&lt;a id=&#34;fnr.4&#34; class=&#34;footref&#34; href=&#34;#fn.4&#34; role=&#34;doc-backlink&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;
4.  To insert a saved region: &lt;kbd&gt;C-x r i&lt;/kbd&gt;, then the number/letter we previously selected.
5.  To view saved registers: &lt;kbd&gt;M-x&lt;/kbd&gt; `view-register`, which allows you to select one by number. A good replacement for &lt;kbd&gt;C-x r j&lt;/kbd&gt; if you need a visual reminder like I do.

It&#39;s a good idea to keep numbers for positions and letters for text so we don&#39;t get them confused and overwrite our registers.

### Footnotes

&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Most Emacs users, I believe, use `code` for file paths. The reason I have it different here is because I often talk about files in my posts without referring to code, and I will now make use of the `&lt;kbd&gt;&lt;/kbd&gt;` tags as well, which I forgot about. This is good for clarity, especially when we talk about Emacs, since Emacs and keyboard shortcuts are mentioned together all the time.

&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Those of you who code and write functions on Emacs regularly would probably find this &#34;trick&#34; trivial. However, as a person who does not have this background, I&#39;ve been editing my code blocks directly in org for years — I had no idea `org-edit-special` exists. I&#39;m sure some folks out there are in the same boat.

&lt;sup&gt;&lt;a id=&#34;fn.3&#34; href=&#34;#fnr.3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; Which is, as I explained in my previous footnote, exactly what I&#39;ve been doing for years. It works, but it can lead to mistakes, and it&#39;s not as safe (you&#39;re changing your settings, so if something goes wrong, Emacs&#39; startup will stop at the error).

&lt;sup&gt;&lt;a id=&#34;fn.4&#34; href=&#34;#fnr.4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; In a usual discovery manner, I found out that &lt;kbd&gt;C-x r +&lt;/kbd&gt; appends text to the register. So, if you were to select this footer here from the word &#34;In&#34; to the dot after &#34;register&#34;, you could then go to the word &#34;So&#34; and mark again to the word &#34;footer&#34; 7 words later, hit &lt;kbd&gt;C-x r +&lt;/kbd&gt;, and then when you ready to yank (paste), hit &lt;kbd&gt;C-x r i&lt;/kbd&gt; and both sections will be yanked as one. Actually, you could forgo &lt;kbd&gt;C-x r i&lt;/kbd&gt; altogether and use &lt;kbd&gt;C-x r +&lt;/kbd&gt; from the start, because if you append to an empty register, it will just append that first chunk.
</source:markdown>
    </item>
    
    <item>
      <title>I Love me Some Em Dashes, and I Don&#39;t Care</title>
      <link>https://taonaw.com/2026/07/25/i-love-me-some-em.html</link>
      <pubDate>Sat, 25 Jul 2026 14:04:49 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/25/i-love-me-some-em.html</guid>
      <description>&lt;p&gt;They&amp;rsquo;ve been sneaking up on me again in my own writing, and I&amp;rsquo;ve been trying to catch them, changing them to colons. That&amp;rsquo;s alright for the most part; it kinda works. Kinda.&lt;/p&gt;
&lt;p&gt;And then &lt;a href=&#34;https://psychotechnology.substack.com&#34;&gt;this guy&lt;/a&gt;&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;a href=&#34;https://psychotechnology.substack.com/p/em-dashes-are-fucking-amazing&#34;&gt;came along&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;hellip;colons are so nearly useless — they are the same width as a comma and unlike periods they don&amp;rsquo;t change the register of the following letter. Em dashes are of a clearly different length. And most colons are better off as em dashes to delineate different parts of the sentence.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The problem with Em dashes these days is AI of course. Sasha has an answer for this as well:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don&amp;rsquo;t give a shit what the &amp;ldquo;oh yeah let&amp;rsquo;s examine this piece of writing with a magnifying glass for any signs of AI&amp;rdquo; crowd thinks. I don&amp;rsquo;t give a shit that AI figured out how to produce em dashes before these online troglodytes did. Typing em dashes is not an AGI-complete problem. It&amp;rsquo;s not that difficult to produce an organic, artisanal, hand-crafted em dash — on Mac, for example, it&amp;rsquo;s simply Option + Shift + Hyphen.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&amp;rsquo;ve been using regular dashes as em dashes for years before I even knew they&amp;rsquo;re called em dashes (and then realized that I&amp;rsquo;ve been using regular dashes wrong) and thanks to this guy I learned how to do that on a Mac, and now in my Emacs too: &lt;code&gt;---&lt;/code&gt; in org-mode will become em-dashes in a new dwim function I just made&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;So yes: someone, at some point, would point to my posts and blame me for spewing AI-made content. &lt;a href=&#34;https://taonaw.com/2026/03/22/using-ai-to-edit-and.html&#34;&gt;I already confessed I use AI to edit and polish my posts&lt;/a&gt;, and also:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;But what would people think of my writing if I ever used an em dash? What if someone points one out in my writing?&amp;rdquo;. Bitch, please. Are you writing for an internet rando who&amp;rsquo;s got nothing better to do than to hunt for em dashes? Fine, you do, okay, fair enough. Then I&amp;rsquo;ve got you covered: use AP-style em dashes, these are separated from the text by spaces instead of being glued to it. That&amp;rsquo;s how every em dash in this piece is styled — and it&amp;rsquo;s unlike AI em dashes which are &amp;ldquo;like—this, word—word&amp;rdquo;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;So I&amp;rsquo;ve been using AP-style em dashes the whole time? &lt;a href=&#34;https://www.apstylebook.com/blog_posts/24&#34;&gt;Turns out I did&lt;/a&gt;!&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;They are about the width of a capital letter M, and always get a space on either side, except in sports agate.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And while there, I saw they mention AI too (because how can you not):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;It&amp;rsquo;d be nice if there was an easy tell &lt;em&gt;(if something is written by AI or not - JTR)&lt;/em&gt;. Unfortunately, that tell is not the em dash, which has been around for many years. In fact, they are so ubiquitous in AP lingo, we just call them dashes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;OK then, I feel vindicated enough. Sorry Em dashes, it&amp;rsquo;s been too long.&lt;/p&gt;
&lt;p&gt;Oh, and while I&amp;rsquo;m on my AI soap box, let me vent about yet another thing that AI is actually messing up for me: commas.&lt;/p&gt;
&lt;p&gt;I don&amp;rsquo;t care if I need a comma before &amp;ldquo;too&amp;rdquo; or &amp;ldquo;ok&amp;rdquo; in a sentence like this one here ok?&lt;/p&gt;
&lt;p&gt;If I were to write: &amp;ldquo;I don&amp;rsquo;t care if I need a comma before &amp;rsquo;too&amp;rsquo; or &amp;lsquo;ok&amp;rsquo; in a sentence like this one here, ok?&amp;rdquo; with that comma before the ok, it will break the flow. And I like my grumpy flow.&lt;/p&gt;
&lt;p&gt;It makes you take a pause, as if the &amp;ldquo;OK&amp;rdquo; is its own thought almost, but it&amp;rsquo;s not. It&amp;rsquo;s part of the whole sentence before it, just as I&amp;rsquo;d say it. I don&amp;rsquo;t &lt;em&gt;care&lt;/em&gt; if it&amp;rsquo;s grammatically correct — it&amp;rsquo;s not JTR correct. So screw that. Thanks but not thanks.&lt;/p&gt;
&lt;h3 id=&#34;footnotes&#34;&gt;Footnotes&lt;/h3&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;: I have a lot to say about not liking this guy being on Substack, but every now and then there&amp;rsquo;s someone who writes something I like in a place I don&amp;rsquo;t like, so instead of bitching about it I just bite the bullet. Also, Sasha offers writing classes for money (I feel like shelling out $175 an hour is a bit much, but that&amp;rsquo;s me), so it kind of works.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;: org-mode can export to markdown, so why do I need a function in dwim to do it through pandoc? Because org-mode&amp;rsquo;s markdown exporter is based on its HTML exporter, which converts those to HTML numeric code. This is fine if you export to HTML and open with a browser, but if you export to a markdown file or a temporary markdown buffer (as I do to copy into Micro.blog&amp;rsquo;s app), it will just show the code, and then I have to find them all and replace them and it&amp;rsquo;s annoying and cumbersome.&lt;/p&gt;
</description>
      <source:markdown>They&#39;ve been sneaking up on me again in my own writing, and I&#39;ve been trying to catch them, changing them to colons. That&#39;s alright for the most part; it kinda works. Kinda.

And then [this guy](https://psychotechnology.substack.com)&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;[came along](https://psychotechnology.substack.com/p/em-dashes-are-fucking-amazing):

&gt; ...colons are so nearly useless — they are the same width as a comma and unlike periods they don&#39;t change the register of the following letter. Em dashes are of a clearly different length. And most colons are better off as em dashes to delineate different parts of the sentence.

The problem with Em dashes these days is AI of course. Sasha has an answer for this as well:

&gt; I don&#39;t give a shit what the &#34;oh yeah let&#39;s examine this piece of writing with a magnifying glass for any signs of AI&#34; crowd thinks. I don&#39;t give a shit that AI figured out how to produce em dashes before these online troglodytes did. Typing em dashes is not an AGI-complete problem. It&#39;s not that difficult to produce an organic, artisanal, hand-crafted em dash — on Mac, for example, it&#39;s simply Option + Shift + Hyphen.

I&#39;ve been using regular dashes as em dashes for years before I even knew they&#39;re called em dashes (and then realized that I&#39;ve been using regular dashes wrong) and thanks to this guy I learned how to do that on a Mac, and now in my Emacs too: `---` in org-mode will become em-dashes in a new dwim function I just made&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.

So yes: someone, at some point, would point to my posts and blame me for spewing AI-made content. [I already confessed I use AI to edit and polish my posts](https://taonaw.com/2026/03/22/using-ai-to-edit-and.html), and also:

&gt; &#34;But what would people think of my writing if I ever used an em dash? What if someone points one out in my writing?&#34;. Bitch, please. Are you writing for an internet rando who&#39;s got nothing better to do than to hunt for em dashes? Fine, you do, okay, fair enough. Then I&#39;ve got you covered: use AP-style em dashes, these are separated from the text by spaces instead of being glued to it. That&#39;s how every em dash in this piece is styled — and it&#39;s unlike AI em dashes which are &#34;like—this, word—word&#34;.

So I&#39;ve been using AP-style em dashes the whole time? [Turns out I did](https://www.apstylebook.com/blog_posts/24)!

&gt; They are about the width of a capital letter M, and always get a space on either side, except in sports agate.

And while there, I saw they mention AI too (because how can you not):

&gt; It&#39;d be nice if there was an easy tell *(if something is written by AI or not - JTR)*. Unfortunately, that tell is not the em dash, which has been around for many years. In fact, they are so ubiquitous in AP lingo, we just call them dashes.

OK then, I feel vindicated enough. Sorry Em dashes, it&#39;s been too long.

Oh, and while I&#39;m on my AI soap box, let me vent about yet another thing that AI is actually messing up for me: commas.

I don&#39;t care if I need a comma before &#34;too&#34; or &#34;ok&#34; in a sentence like this one here ok?

If I were to write: &#34;I don&#39;t care if I need a comma before &#39;too&#39; or &#39;ok&#39; in a sentence like this one here, ok?&#34; with that comma before the ok, it will break the flow. And I like my grumpy flow.

It makes you take a pause, as if the &#34;OK&#34; is its own thought almost, but it&#39;s not. It&#39;s part of the whole sentence before it, just as I&#39;d say it. I don&#39;t *care* if it&#39;s grammatically correct — it&#39;s not JTR correct. So screw that. Thanks but not thanks.

### Footnotes

&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;: I have a lot to say about not liking this guy being on Substack, but every now and then there&#39;s someone who writes something I like in a place I don&#39;t like, so instead of bitching about it I just bite the bullet. Also, Sasha offers writing classes for money (I feel like shelling out $175 an hour is a bit much, but that&#39;s me), so it kind of works.

&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;: org-mode can export to markdown, so why do I need a function in dwim to do it through pandoc? Because org-mode&#39;s markdown exporter is based on its HTML exporter, which converts those to HTML numeric code. This is fine if you export to HTML and open with a browser, but if you export to a markdown file or a temporary markdown buffer (as I do to copy into Micro.blog&#39;s app), it will just show the code, and then I have to find them all and replace them and it&#39;s annoying and cumbersome.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/25/nice-sunny-day-to-see.html</link>
      <pubDate>Sat, 25 Jul 2026 12:01:21 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/25/nice-sunny-day-to-see.html</guid>
      <description>&lt;p&gt;Nice sunny day to see a sunflower 📷&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/775f70bf49.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>Nice sunny day to see a sunflower 📷


&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/775f70bf49.jpg&#34; width=&#34;450&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Emacs Config Gems - Part 1</title>
      <link>https://taonaw.com/2026/07/23/emacs-config-gems-part.html</link>
      <pubDate>Thu, 23 Jul 2026 19:40:23 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/23/emacs-config-gems-part.html</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve been working on my Emacs config for three weeks now, coming this weekend. It&amp;rsquo;s one of the deepest and most fun rabbit holes I&amp;rsquo;ve been exploring. As I stumble upon new ways to do things, I dig deeper, learn more, and keep tweaking my config, which makes this rabbit lair even bigger.&lt;/p&gt;
&lt;p&gt;Eventually I realized that if I wait until I&amp;rsquo;m done to upload the config file, it will never happen: by the time I&amp;rsquo;m done, I will accumulate enough fixes and additional tricks and tweaks to warrant a whole &lt;em&gt;new&lt;/em&gt; file.&lt;/p&gt;
&lt;p&gt;The conclusion is what I should have done from the beginning: apply changes in chunks and explain what I&amp;rsquo;m doing and why as these happen.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m starting with changes to my &lt;code&gt;.emacs&lt;/code&gt;&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; file on my mac&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, before we&amp;rsquo;re even touching the &amp;ldquo;good stuff&amp;rdquo; in my main &lt;code&gt;emacs-settings.org&lt;/code&gt; file. Why? Because Emacs was built with Linux in mind, and we need to make some important adjustments to how Emacs works on a Mac before we use it. As you will see, I&amp;rsquo;m using this conceptually too: while some of the configurations in the &lt;code&gt;.emacs&lt;/code&gt; file (the &amp;ldquo;init&amp;rdquo; file) could technically be placed in the big &lt;code&gt;emacs-settings.org&lt;/code&gt; file, I still place them in what I consider Emacs&amp;rsquo; &amp;ldquo;booting&amp;rdquo; process.&lt;/p&gt;
&lt;p&gt;My &lt;code&gt;.emacs&lt;/code&gt; file contains only these four code blocks, which are separated with spaces for visual convenience:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (when (memq window-system &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#39;&lt;/span&gt;(mac ns x))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (exec-path-from-shell-initialize))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; insert-directory-program &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;gls&amp;#34;&lt;/span&gt; dired-use-ls-dired &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; custom-file (expand-file-name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;emacs_custom.el&amp;#34;&lt;/span&gt; user-emacs-directory))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#a6e22e&#34;&gt;load&lt;/span&gt; custom-file &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;noerror&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (org-babel-load-file
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Users/user/Sync/Public/emacs_settings/emacs_settings.org&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;exec-path-from-shell-initialize&#34;&gt;exec-path-from-shell-initialize&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (when (memq window-system &lt;span style=&#34;color:#f92672&#34;&gt;&amp;#39;&lt;/span&gt;(mac ns x))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      (exec-path-from-shell-initialize))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This tells Emacs that if its windowing system is macOS-related (&lt;strong&gt;ns&lt;/strong&gt; or &lt;strong&gt;x&lt;/strong&gt;; there&amp;rsquo;s also the old &lt;strong&gt;mac&lt;/strong&gt; version of Emacs that is not being used today — the Homebrew emacs-plus one we are using here is ns, which can be checked with &lt;code&gt;M-x emacs-version&lt;/code&gt;), it should run &lt;code&gt;exec-path-from-shell-initialize&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;This function copies the PATH from the shell, as if we were using a terminal program. By design, macOS GUI applications (those that live in the user&amp;rsquo;s &lt;code&gt;Applications&lt;/code&gt; folder and have an &lt;code&gt;.app&lt;/code&gt; extension) are not exposed to this PATH because they&amp;rsquo;re launched by a different process altogether (&lt;code&gt;launchd&lt;/code&gt;)&lt;sup&gt;&lt;a id=&#34;fnr.3&#34; class=&#34;footref&#34; href=&#34;#fn.3&#34; role=&#34;doc-backlink&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. But Emacs needs this PATH, as many of its core components integrate with the OS as a terminal application, which is what it is, at its core.&lt;/p&gt;
&lt;p&gt;In fact, this is why we need this condition in a file that resides on a Mac, and why this condition is triggered by the windowing system, and not the OS itself (every other condition in our config would be written as &lt;code&gt;eq system-type &#39;darwin&lt;/code&gt; or similar). If we run Emacs in terminal, the program already has access to PATH, and this execution is not needed.&lt;/p&gt;
&lt;h3 id=&#34;use-gls-in-dired&#34;&gt;Use gls in Dired&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; insert-directory-program &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;gls&amp;#34;&lt;/span&gt; dired-use-ls-dired &lt;span style=&#34;color:#66d9ef&#34;&gt;t&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This doesn&amp;rsquo;t have to live in our &lt;code&gt;.emacs&lt;/code&gt; file, as it can live as part of our Dired options in &lt;code&gt;emacs-settings.org&lt;/code&gt;, which will come later. However, this is a macOS-only thing, and since we need to get &lt;code&gt;gls&lt;/code&gt; from Homebrew, it&amp;rsquo;s one of those things to prepare before we start Emacs for the first time. After all, we will probably use Dired right away after install, and we want to make sure it&amp;rsquo;s ready.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;gls&lt;/code&gt;, GNU&amp;rsquo;s ls command, is bundled with other utilities inside &lt;code&gt;coreutils&lt;/code&gt;, so we install it with &lt;code&gt;brew install coreutils&lt;/code&gt;. Then the above command makes sense — we&amp;rsquo;re telling Emacs to use this flavor of this &lt;code&gt;ls&lt;/code&gt; command instead of the one that comes with macOS, which is lighter and doesn&amp;rsquo;t have what we&amp;rsquo;re used to seeing in Emacs Dired (at least, not for me). As it turns out, there are other well-known utilities in this package, such as &lt;code&gt;rm&lt;/code&gt; and &lt;code&gt;mkdir&lt;/code&gt;, but we don&amp;rsquo;t use them, so it&amp;rsquo;s really just for &lt;code&gt;gls&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id=&#34;changing-emacs-custom-default-file-to-emacs_customel&#34;&gt;Changing Emacs&amp;rsquo; custom default file to &lt;code&gt;emacs_custom.el&lt;/code&gt;&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; custom-file (expand-file-name &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;emacs_custom.el&amp;#34;&lt;/span&gt; user-emacs-directory))
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (&lt;span style=&#34;color:#a6e22e&#34;&gt;load&lt;/span&gt; custom-file &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;noerror&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is something I discovered while working on my &lt;code&gt;.emacs&lt;/code&gt; file. It was cluttered with comments and configurations from Emacs&amp;rsquo;s &lt;code&gt;custom&lt;/code&gt;, Emacs&amp;rsquo; settings wizard. This is because by default, Emacs doesn&amp;rsquo;t have a definition for it:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;File used for storing customization information.
The default is nil, which means to use your init file
as specified by &amp;lsquo;user-init-file&amp;rsquo;.  If the value is not nil,
it should be an absolute file name.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It makes sense if you use custom often, which probably means you don&amp;rsquo;t bother with babel (coming up) and writing long Emacs posts like this one, but in reality, I haven&amp;rsquo;t met an Emacs user who used it for more than a few months at most without getting their hands dirty. It&amp;rsquo;s just too tempting.&lt;/p&gt;
&lt;p&gt;The first line tells Emacs where the custom file config is (inside &lt;code&gt;/.emacs.d/&lt;/code&gt;, the default for &lt;code&gt;user-emacs-directory&lt;/code&gt;), and the second line tells it to &amp;ldquo;not worry&amp;rdquo; if the file is not there. Why? Because the first time we run Emacs (or a clean reinstall), we might not have this file at all yet, as it&amp;rsquo;s created by custom. If we don&amp;rsquo;t have this file, Emacs will do whatever it does whenever it encounters an error: tell us there&amp;rsquo;s an error and stop running the rest of the config. And this happens right at the beginning, so essentially our entire config will be skipped. So this is a good safety option&lt;sup&gt;&lt;a id=&#34;fnr.4&#34; class=&#34;footref&#34; href=&#34;#fn.4&#34; role=&#34;doc-backlink&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;, and probably good practice.&lt;/p&gt;
&lt;h3 id=&#34;org-babel-load-the-configuration-from-an-org-file&#34;&gt;Org-babel: load the configuration from an org file&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-lisp&#34; data-lang=&#34;lisp&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    (org-babel-load-file
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;     &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;/Users/user/Sync/Public/emacs_settings/emacs_settings.org&amp;#34;&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, after we put all the critical macOS&lt;sup&gt;&lt;a id=&#34;fnr.5&#34; class=&#34;footref&#34; href=&#34;#fn.5&#34; role=&#34;doc-backlink&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; configuration in place, it&amp;rsquo;s time to tell Emacs where the &lt;em&gt;rest&lt;/em&gt; of the configurations are. This here was just the introduction, the Emacs &amp;ldquo;boot&amp;rdquo; for Mac only, after all&lt;sup&gt;&lt;a id=&#34;fnr.6&#34; class=&#34;footref&#34; href=&#34;#fn.6&#34; role=&#34;doc-backlink&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;So here we are, done with part 1. It took me way longer to write than I thought it would take (I&amp;rsquo;ve been standing at my desk for about 2 hours now), but this is exactly the sort of thing that keeps me hooked on Emacs. Everything leads to more&amp;hellip; everything. There&amp;rsquo;s a story behind every dot, apparently. As you can see from my footnotes, I&amp;rsquo;ve found additional tangents to go on while writing this just now, and that&amp;rsquo;s on top of a growing list I already have, of about 10 other things I want to check — and my config is only about 25% done. And as I said, by the time I&amp;rsquo;m done, it will be time for round 2, which in turn will probably lead to round 3&amp;hellip;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Emacs. It really whips the GNU&amp;rsquo;s&amp;hellip;&amp;rdquo; errm. Anyway. See you next time!&lt;/p&gt;
&lt;h3 id=&#34;footnotes&#34;&gt;Footnotes&lt;/h3&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The &lt;a href=&#34;https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory&#34;&gt;story of dot&lt;/a&gt; files (files that start with a dot, like &lt;code&gt;.emacs&lt;/code&gt;) is an interesting one. Turns out it was a &lt;a href=&#34;http://xahlee.info/UnixResource_dir/writ/unix_origin_of_dot_filename.html&#34;&gt;programming mistake&lt;/a&gt; back in the days when Unix started, and it stuck as an idea. These became convenient to use as configuration files because they are the sort of files that are usually created when you install something and configure it once, probably to never see it again (this was before Emacs users started popping up, obviously), so the bug became a feature.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; On a Mac, you have several options when installing Emacs. The one I&amp;rsquo;ve been using over the years, and what seems to be the most popular, is emacs-plus at &lt;a href=&#34;https://github.com/d12frosted/homebrew-emacs-plus&#34;&gt;https://github.com/d12frosted/homebrew-emacs-plus&lt;/a&gt;. Some of the choices I made in my &lt;code&gt;.emacs&lt;/code&gt; file are based on this fact.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.3&#34; href=&#34;#fnr.3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; There&amp;rsquo;s another rabbit hole here I didn&amp;rsquo;t explore much: Emacs on Homebrew, at least in some versions, has incorporated the option to grab the PATH during installation; however, it seems Apple blocked this option at some point, so we need to run it like this. I don&amp;rsquo;t recall ever getting a warning that Emacs needs access to my PATH or something similar, but I wouldn&amp;rsquo;t be surprised if something to that effect is happening when you first install it.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.4&#34; href=&#34;#fnr.4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; As I&amp;rsquo;m writing this, I realize there&amp;rsquo;s another worthwhile rabbit hole here: the option to tell Emacs to ignore errors for non-critical configurations, such as the theme, or the way org-mode displays, etc. While I want these in place, if there&amp;rsquo;s an error, I&amp;rsquo;d like Emacs to keep loading the config if it can. Since there are different &amp;ldquo;skip error&amp;rdquo; options depending on where and what is being skipped, and since I need to be sure what I&amp;rsquo;m skipping, I&amp;rsquo;ll do more digging another time.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.5&#34; href=&#34;#fnr.5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; Ah ha, but that last one, the custom file location, is also good on Linux! Good thing I&amp;rsquo;m writing this blog post. When I go back to my Linux machine, I will include this line there as well.&lt;/p&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.6&#34; href=&#34;#fnr.6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; By the way, while there is no &lt;code&gt;org-babel.el&lt;/code&gt;, it can almost be one from a quick look (yes, yet another rabbit hole). There are many different &lt;code&gt;.el&lt;/code&gt; files scattered in Emacs that relate to &lt;code&gt;org-babel&lt;/code&gt; which can do different things.&lt;/p&gt;
</description>
      <source:markdown>I&#39;ve been working on my Emacs config for three weeks now, coming this weekend. It&#39;s one of the deepest and most fun rabbit holes I&#39;ve been exploring. As I stumble upon new ways to do things, I dig deeper, learn more, and keep tweaking my config, which makes this rabbit lair even bigger.

Eventually I realized that if I wait until I&#39;m done to upload the config file, it will never happen: by the time I&#39;m done, I will accumulate enough fixes and additional tricks and tweaks to warrant a whole *new* file.

The conclusion is what I should have done from the beginning: apply changes in chunks and explain what I&#39;m doing and why as these happen.

I&#39;m starting with changes to my `.emacs`&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; file on my mac&lt;sup&gt;&lt;a id=&#34;fnr.2&#34; class=&#34;footref&#34; href=&#34;#fn.2&#34; role=&#34;doc-backlink&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, before we&#39;re even touching the &#34;good stuff&#34; in my main `emacs-settings.org` file. Why? Because Emacs was built with Linux in mind, and we need to make some important adjustments to how Emacs works on a Mac before we use it. As you will see, I&#39;m using this conceptually too: while some of the configurations in the `.emacs` file (the &#34;init&#34; file) could technically be placed in the big `emacs-settings.org` file, I still place them in what I consider Emacs&#39; &#34;booting&#34; process.

My `.emacs` file contains only these four code blocks, which are separated with spaces for visual convenience:

```lisp
    (when (memq window-system &#39;(mac ns x))
      (exec-path-from-shell-initialize))
    
    (setq insert-directory-program &#34;gls&#34; dired-use-ls-dired t)
    
    (setq custom-file (expand-file-name &#34;emacs_custom.el&#34; user-emacs-directory))
    (load custom-file &#39;noerror)
    
    (org-babel-load-file
     &#34;/Users/user/Sync/Public/emacs_settings/emacs_settings.org&#34;)
```

### exec-path-from-shell-initialize

```lisp
    (when (memq window-system &#39;(mac ns x))
      (exec-path-from-shell-initialize))
```
This tells Emacs that if its windowing system is macOS-related (**ns** or **x**; there&#39;s also the old **mac** version of Emacs that is not being used today — the Homebrew emacs-plus one we are using here is ns, which can be checked with `M-x emacs-version`), it should run `exec-path-from-shell-initialize`.

This function copies the PATH from the shell, as if we were using a terminal program. By design, macOS GUI applications (those that live in the user&#39;s `Applications` folder and have an `.app` extension) are not exposed to this PATH because they&#39;re launched by a different process altogether (`launchd`)&lt;sup&gt;&lt;a id=&#34;fnr.3&#34; class=&#34;footref&#34; href=&#34;#fn.3&#34; role=&#34;doc-backlink&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;. But Emacs needs this PATH, as many of its core components integrate with the OS as a terminal application, which is what it is, at its core.

In fact, this is why we need this condition in a file that resides on a Mac, and why this condition is triggered by the windowing system, and not the OS itself (every other condition in our config would be written as `eq system-type &#39;darwin` or similar). If we run Emacs in terminal, the program already has access to PATH, and this execution is not needed.

### Use gls in Dired
```lisp
    (setq insert-directory-program &#34;gls&#34; dired-use-ls-dired t)
```
This doesn&#39;t have to live in our `.emacs` file, as it can live as part of our Dired options in `emacs-settings.org`, which will come later. However, this is a macOS-only thing, and since we need to get `gls` from Homebrew, it&#39;s one of those things to prepare before we start Emacs for the first time. After all, we will probably use Dired right away after install, and we want to make sure it&#39;s ready.

`gls`, GNU&#39;s ls command, is bundled with other utilities inside `coreutils`, so we install it with `brew install coreutils`. Then the above command makes sense — we&#39;re telling Emacs to use this flavor of this `ls` command instead of the one that comes with macOS, which is lighter and doesn&#39;t have what we&#39;re used to seeing in Emacs Dired (at least, not for me). As it turns out, there are other well-known utilities in this package, such as `rm` and `mkdir`, but we don&#39;t use them, so it&#39;s really just for `gls`.

### Changing Emacs&#39; custom default file to `emacs_custom.el`
```lisp
    (setq custom-file (expand-file-name &#34;emacs_custom.el&#34; user-emacs-directory))
    (load custom-file &#39;noerror)
```
This is something I discovered while working on my `.emacs` file. It was cluttered with comments and configurations from Emacs&#39;s `custom`, Emacs&#39; settings wizard. This is because by default, Emacs doesn&#39;t have a definition for it:

&gt; File used for storing customization information.
&gt; The default is nil, which means to use your init file
&gt; as specified by &#39;user-init-file&#39;.  If the value is not nil,
&gt; it should be an absolute file name.

It makes sense if you use custom often, which probably means you don&#39;t bother with babel (coming up) and writing long Emacs posts like this one, but in reality, I haven&#39;t met an Emacs user who used it for more than a few months at most without getting their hands dirty. It&#39;s just too tempting.

The first line tells Emacs where the custom file config is (inside `/.emacs.d/`, the default for `user-emacs-directory`), and the second line tells it to &#34;not worry&#34; if the file is not there. Why? Because the first time we run Emacs (or a clean reinstall), we might not have this file at all yet, as it&#39;s created by custom. If we don&#39;t have this file, Emacs will do whatever it does whenever it encounters an error: tell us there&#39;s an error and stop running the rest of the config. And this happens right at the beginning, so essentially our entire config will be skipped. So this is a good safety option&lt;sup&gt;&lt;a id=&#34;fnr.4&#34; class=&#34;footref&#34; href=&#34;#fn.4&#34; role=&#34;doc-backlink&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;, and probably good practice.

### Org-babel: load the configuration from an org file
```lisp
    (org-babel-load-file
     &#34;/Users/user/Sync/Public/emacs_settings/emacs_settings.org&#34;)
```
Now, after we put all the critical macOS&lt;sup&gt;&lt;a id=&#34;fnr.5&#34; class=&#34;footref&#34; href=&#34;#fn.5&#34; role=&#34;doc-backlink&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; configuration in place, it&#39;s time to tell Emacs where the *rest* of the configurations are. This here was just the introduction, the Emacs &#34;boot&#34; for Mac only, after all&lt;sup&gt;&lt;a id=&#34;fnr.6&#34; class=&#34;footref&#34; href=&#34;#fn.6&#34; role=&#34;doc-backlink&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;.

- - -

So here we are, done with part 1. It took me way longer to write than I thought it would take (I&#39;ve been standing at my desk for about 2 hours now), but this is exactly the sort of thing that keeps me hooked on Emacs. Everything leads to more... everything. There&#39;s a story behind every dot, apparently. As you can see from my footnotes, I&#39;ve found additional tangents to go on while writing this just now, and that&#39;s on top of a growing list I already have, of about 10 other things I want to check — and my config is only about 25% done. And as I said, by the time I&#39;m done, it will be time for round 2, which in turn will probably lead to round 3...

&#34;Emacs. It really whips the GNU&#39;s...&#34; errm. Anyway. See you next time!

### Footnotes

&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; The [story of dot](https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory) files (files that start with a dot, like `.emacs`) is an interesting one. Turns out it was a [programming mistake](http://xahlee.info/UnixResource_dir/writ/unix_origin_of_dot_filename.html) back in the days when Unix started, and it stuck as an idea. These became convenient to use as configuration files because they are the sort of files that are usually created when you install something and configure it once, probably to never see it again (this was before Emacs users started popping up, obviously), so the bug became a feature.

&lt;sup&gt;&lt;a id=&#34;fn.2&#34; href=&#34;#fnr.2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; On a Mac, you have several options when installing Emacs. The one I&#39;ve been using over the years, and what seems to be the most popular, is emacs-plus at &lt;https://github.com/d12frosted/homebrew-emacs-plus&gt;. Some of the choices I made in my `.emacs` file are based on this fact.

&lt;sup&gt;&lt;a id=&#34;fn.3&#34; href=&#34;#fnr.3&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; There&#39;s another rabbit hole here I didn&#39;t explore much: Emacs on Homebrew, at least in some versions, has incorporated the option to grab the PATH during installation; however, it seems Apple blocked this option at some point, so we need to run it like this. I don&#39;t recall ever getting a warning that Emacs needs access to my PATH or something similar, but I wouldn&#39;t be surprised if something to that effect is happening when you first install it.

&lt;sup&gt;&lt;a id=&#34;fn.4&#34; href=&#34;#fnr.4&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; As I&#39;m writing this, I realize there&#39;s another worthwhile rabbit hole here: the option to tell Emacs to ignore errors for non-critical configurations, such as the theme, or the way org-mode displays, etc. While I want these in place, if there&#39;s an error, I&#39;d like Emacs to keep loading the config if it can. Since there are different &#34;skip error&#34; options depending on where and what is being skipped, and since I need to be sure what I&#39;m skipping, I&#39;ll do more digging another time.

&lt;sup&gt;&lt;a id=&#34;fn.5&#34; href=&#34;#fnr.5&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; Ah ha, but that last one, the custom file location, is also good on Linux! Good thing I&#39;m writing this blog post. When I go back to my Linux machine, I will include this line there as well.

&lt;sup&gt;&lt;a id=&#34;fn.6&#34; href=&#34;#fnr.6&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; By the way, while there is no `org-babel.el`, it can almost be one from a quick look (yes, yet another rabbit hole). There are many different `.el` files scattered in Emacs that relate to `org-babel` which can do different things.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/23/interesting-trick-discovered-by-mistake.html</link>
      <pubDate>Thu, 23 Jul 2026 07:55:04 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/23/interesting-trick-discovered-by-mistake.html</guid>
      <description>&lt;p&gt;Interesting trick, discovered by mistake:&lt;/p&gt;
&lt;p&gt;Dragging and dropping a file into Emacs while in a folder with Dired copies it there, just as Finder would. Did you know that? I didn&amp;rsquo;t!&lt;/p&gt;
</description>
      <source:markdown>Interesting trick, discovered by mistake:

Dragging and dropping a file into Emacs while in a folder with Dired copies it there, just as Finder would. Did you know that? I didn&#39;t! 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/22/hello-there-red-guy-glad.html</link>
      <pubDate>Wed, 22 Jul 2026 12:51:50 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/22/hello-there-red-guy-glad.html</guid>
      <description>&lt;p&gt;Hello there red guy. Glad you’re enjoying the weather. Me? Eh. I think it’s back to the AC in a few. Keep it real. 📷&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/24b18e8d39.jpg&#34; width=&#34;575&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>Hello there red guy. Glad you’re enjoying the weather. Me? Eh. I think it’s back to the AC in a few. Keep it real. 📷

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/24b18e8d39.jpg&#34; width=&#34;575&#34; height=&#34;600&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>Two Weeks, Two Projects</title>
      <link>https://taonaw.com/2026/07/20/two-weeks-two-projects.html</link>
      <pubDate>Mon, 20 Jul 2026 10:08:04 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/20/two-weeks-two-projects.html</guid>
      <description>&lt;p&gt;Two things kept me busy: revamping my Emacs config (that&amp;rsquo;s one huge rabbit hole) and attempting to organize a book.&lt;/p&gt;
&lt;p&gt;The Emacs config is probably relatable to many (if not most) folks who read this blog. Emacs is a text editor by definition, but an operating system by description. There is a &lt;em&gt;lot&lt;/em&gt; to tweak in it, which is why the parody I &lt;a href=&#34;https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html&#34;&gt;pointed at at the top of this post&lt;/a&gt; &lt;a href=&#34;https://taonaw.com/2026/06/09/sometimes-you-just-gotta-laugh.html&#34;&gt;several times&lt;/a&gt;. The short of it is that it&amp;rsquo;s going well, I&amp;rsquo;m learning a lot, and I&amp;rsquo;m really enjoying it. It&amp;rsquo;s one of the best (if not the best) educational experiences I&amp;rsquo;m having with AI, &lt;em&gt;because&lt;/em&gt;&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; it&amp;rsquo;s AI.&lt;/p&gt;
&lt;p&gt;But I can imagine most of the eyebrow raises stem from the book part. I&amp;rsquo;ve had this idea in my head for a long time, and I owe it to one of the folks on Micro.blog (I can&amp;rsquo;t find the link right now). What I have in mind is simple: collect a few of my posts that create a certain theme, and add a few photos (I have a couple that could benefit from quality printing). To make it interesting, I want to add a few entries from my personal journal (edited for the general public) to fill in on my general state of mind during that time period.&lt;/p&gt;
&lt;p&gt;The natural theme that came to mind was blogging itself, a book that talks about blogging, which is kind of odd, but I know I&amp;rsquo;d enjoy reading something like that. The problem is collecting posts into something that makes sense and feels like a story.&lt;/p&gt;
&lt;p&gt;I wanted to collect texts from three major writing periods: starting to use Emacs org-mode, which is my writing tool of choice, starting my old blog, and starting my new blog here on Micro.blog. What was on my mind during these times? What did I learn? What were the choices I made, and why? I think that sounds interesting enough, so I went to search for those and&amp;hellip; well, it&amp;rsquo;s not that easy.&lt;/p&gt;
&lt;p&gt;While the texts themselves exist (for example, my first journal entry in Emacs org-mode, back in 2018, or my first posts on Micro.blog in 2023), the &lt;em&gt;meaning&lt;/em&gt; is missing. These texts are mostly technical vents of a sleep-deprived and caffeinated brain, not stories. Which, when you think about it, makes sense: the first steps you take figuring out something new are not huge declarations (unless you land on the moon I guess) but mostly something along the lines of &amp;ldquo;Finally this shit works!&amp;rdquo; c&amp;rsquo;est la vie, right?&lt;/p&gt;
&lt;p&gt;I have a couple of days off, so I have time to think, but I&amp;rsquo;m not sure how to approach it. I&amp;rsquo;d like to connect the dots myself and explain what I was doing, but that&amp;rsquo;s also technical and building on things I don&amp;rsquo;t remember fully.&lt;/p&gt;
&lt;h3 id=&#34;footnotes&#34;&gt;Footnotes&lt;/h3&gt;
&lt;p&gt;&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; : The AI points me to things that might be outdated or not true, which keeps me on my toes. As I keep asking it questions (&amp;ldquo;why are you saying this, when we can do this?&amp;rdquo;), it keeps pointing me to things that have me explore even further. It remembers what I&amp;rsquo;ve been doing so it gets an idea of what I&amp;rsquo;ll be more interested in, which is more or less the right direction.&lt;/p&gt;
</description>
      <source:markdown>Two things kept me busy: revamping my Emacs config (that&#39;s one huge rabbit hole) and attempting to organize a book.

The Emacs config is probably relatable to many (if not most) folks who read this blog. Emacs is a text editor by definition, but an operating system by description. There is a *lot* to tweak in it, which is why the parody I [pointed at at the top of this post](https://taonaw.com/2026/07/13/a-quick-orgmode-internal-links.html) [several times](https://taonaw.com/2026/06/09/sometimes-you-just-gotta-laugh.html). The short of it is that it&#39;s going well, I&#39;m learning a lot, and I&#39;m really enjoying it. It&#39;s one of the best (if not the best) educational experiences I&#39;m having with AI, *because*&lt;sup&gt;&lt;a id=&#34;fnr.1&#34; class=&#34;footref&#34; href=&#34;#fn.1&#34; role=&#34;doc-backlink&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; it&#39;s AI.

But I can imagine most of the eyebrow raises stem from the book part. I&#39;ve had this idea in my head for a long time, and I owe it to one of the folks on Micro.blog (I can&#39;t find the link right now). What I have in mind is simple: collect a few of my posts that create a certain theme, and add a few photos (I have a couple that could benefit from quality printing). To make it interesting, I want to add a few entries from my personal journal (edited for the general public) to fill in on my general state of mind during that time period.

The natural theme that came to mind was blogging itself, a book that talks about blogging, which is kind of odd, but I know I&#39;d enjoy reading something like that. The problem is collecting posts into something that makes sense and feels like a story.

I wanted to collect texts from three major writing periods: starting to use Emacs org-mode, which is my writing tool of choice, starting my old blog, and starting my new blog here on Micro.blog. What was on my mind during these times? What did I learn? What were the choices I made, and why? I think that sounds interesting enough, so I went to search for those and... well, it&#39;s not that easy.

While the texts themselves exist (for example, my first journal entry in Emacs org-mode, back in 2018, or my first posts on Micro.blog in 2023), the *meaning* is missing. These texts are mostly technical vents of a sleep-deprived and caffeinated brain, not stories. Which, when you think about it, makes sense: the first steps you take figuring out something new are not huge declarations (unless you land on the moon I guess) but mostly something along the lines of &#34;Finally this shit works!&#34; c&#39;est la vie, right?

I have a couple of days off, so I have time to think, but I&#39;m not sure how to approach it. I&#39;d like to connect the dots myself and explain what I was doing, but that&#39;s also technical and building on things I don&#39;t remember fully.

### Footnotes

&lt;sup&gt;&lt;a id=&#34;fn.1&#34; href=&#34;#fnr.1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; : The AI points me to things that might be outdated or not true, which keeps me on my toes. As I keep asking it questions (&#34;why are you saying this, when we can do this?&#34;), it keeps pointing me to things that have me explore even further. It remembers what I&#39;ve been doing so it gets an idea of what I&#39;ll be more interested in, which is more or less the right direction.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/07/19/been-reading-apple-in-china.html</link>
      <pubDate>Sun, 19 Jul 2026 18:30:15 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/07/19/been-reading-apple-in-china.html</guid>
      <description>&lt;img src=&#34;https://cdn.micro.blog/books/9781806159901/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;
&lt;p&gt;Been reading: &lt;a href=&#34;https://micro.blog/books/9781806159901&#34;&gt;Apple in China by Patrick McGee&lt;/a&gt; by Patrick McGee 📚.&lt;/p&gt;
&lt;p&gt;Surprisingly informative. In a way, it&amp;rsquo;s like reading some of the history of Apple and how they became this successful. It&amp;rsquo;s not too critical of Apple, at least not yet.&lt;/p&gt;
</description>
      <source:markdown>&lt;img src=&#34;https://cdn.micro.blog/books/9781806159901/cover.jpg&#34; align=&#34;left&#34; class=&#34;microblog_book&#34; style=&#34;max-width: 60px; margin-right: 20px; margin-top: 0px; padding-top: 0px;&#34;&gt;

Been reading: [Apple in China by Patrick McGee](https://micro.blog/books/9781806159901) by Patrick McGee 📚.

Surprisingly informative. In a way, it&#39;s like reading some of the history of Apple and how they became this successful. It&#39;s not too critical of Apple, at least not yet.
</source:markdown>
    </item>
    
  </channel>
</rss>
