<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>Mon, 07 Sep 2026 12:02:00 -0400</lastBuildDate>
    <item>
      <title>LibreWolf Returns to macOS through Homebrew</title>
      <link>https://taonaw.com/2026/09/07/librewolf-returns-to-macos-through.html</link>
      <pubDate>Mon, 07 Sep 2026 12:02:00 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/09/07/librewolf-returns-to-macos-through.html</guid>
      <description>&lt;p&gt;LibreWolf is back on macOS. I was happy to see it can be installed through Homebrew again. In fact, it&amp;rsquo;s easier to install than ever, as it is now fully recognized by macOS&amp;rsquo;s Gatekeeper — no need for the awkward &lt;code&gt;--no-quarantine&lt;/code&gt; option that was once needed to skip Gatekeeper and then later became the reason it was no longer supported.&lt;/p&gt;
&lt;p&gt;I &lt;a href=&#34;https://taonaw.com/2024/08/08/librewolf-through-homebrew.html&#34;&gt;discussed LibreWolf and its installation issues on macOS before&lt;/a&gt;. The short version: The LibreWolf maintainers refuse to buy a developer account membership from Apple (basically $100 a year), which is understandable. Unfortunately, if you don&amp;rsquo;t pay to join the Apple club you don&amp;rsquo;t get a developer ID and you don&amp;rsquo;t get an Apple certificate. Without those, the user gets a misleading&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; message saying the app is flagged as &amp;ldquo;damaged&amp;rdquo; and that they should move it to the trash.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/librewolf-move-to-trash.webp&#34; width=&#34;600&#34; height=&#34;430&#34; alt=&#34;Auto-generated description: A warning message indicates that the LibreWolf.app is damaged and cannot be opened, suggesting the user move it to the Trash.&#34;&gt;
&lt;p&gt;However, if you try to download and install LibreWolf through Homebrew now it works just fine.&lt;/p&gt;
&lt;p&gt;Have the maintainers caved in and paid Apple? Not at all. They used &lt;a href=&#34;https://ossign.org&#34;&gt;OSSign&lt;/a&gt;, which now offers an option to purchase licenses from Apple for FOSS projects like LibreWolf (they are not receiving new applicants for the time being, but those who already signed up like LibreWolf are already in the program to stay). It is effectively what &lt;a href=&#34;https://letsencrypt.org&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt; does for Indieweb folks to obtain HTTPS certificates, like the one on the blog you&amp;rsquo;re reading right now (which I get through Micro.blog).&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;The &amp;ldquo;damaged&amp;rdquo; message is misleading because it&amp;rsquo;s a fraction of a potential truth. Apple requires developers to pay a yearly fee to get a license. The other part Apple does is a scan for malicious software (malware), which happens on Apple&amp;rsquo;s servers. But to upload to Apple&amp;rsquo;s servers, the developer needs the license first. On macOS, &lt;a href=&#34;https://support.apple.com/en-euro/guide/security/sec5599b66df/web&#34;&gt;Gatekeeper&lt;/a&gt; checks for a license and for a notarization ticket — the approval from Apple&amp;rsquo;s servers that the software is &amp;ldquo;free of known malicious content, and hasn&amp;rsquo;t been altered.&amp;rdquo; In the case of LibreWolf, because the developers refused to join Apple&amp;rsquo;s paid developer program, LibreWolf never got the chance to be uploaded to Apple for a scan — it was rejected outright. To call such software damaged then is a big stretch. This is exactly the kind of &lt;em&gt;lack&lt;/em&gt; of transparency I dislike about Apple.&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>LibreWolf is back on macOS. I was happy to see it can be installed through Homebrew again. In fact, it&#39;s easier to install than ever, as it is now fully recognized by macOS&#39;s Gatekeeper — no need for the awkward `--no-quarantine` option that was once needed to skip Gatekeeper and then later became the reason it was no longer supported.

I [discussed LibreWolf and its installation issues on macOS before](https://taonaw.com/2024/08/08/librewolf-through-homebrew.html). The short version: The LibreWolf maintainers refuse to buy a developer account membership from Apple (basically \$100 a year), which is understandable. Unfortunately, if you don&#39;t pay to join the Apple club you don&#39;t get a developer ID and you don&#39;t get an Apple certificate. Without those, the user gets a misleading[^1] message saying the app is flagged as &#34;damaged&#34; and that they should move it to the trash.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/librewolf-move-to-trash.webp&#34; width=&#34;600&#34; height=&#34;430&#34; alt=&#34;Auto-generated description: A warning message indicates that the LibreWolf.app is damaged and cannot be opened, suggesting the user move it to the Trash.&#34;&gt;

However, if you try to download and install LibreWolf through Homebrew now it works just fine.

Have the maintainers caved in and paid Apple? Not at all. They used [OSSign](https://ossign.org), which now offers an option to purchase licenses from Apple for FOSS projects like LibreWolf (they are not receiving new applicants for the time being, but those who already signed up like LibreWolf are already in the program to stay). It is effectively what [Let&#39;s Encrypt](https://letsencrypt.org) does for Indieweb folks to obtain HTTPS certificates, like the one on the blog you&#39;re reading right now (which I get through Micro.blog). 

[^1]: The &#34;damaged&#34; message is misleading because it&#39;s a fraction of a potential truth. Apple requires developers to pay a yearly fee to get a license. The other part Apple does is a scan for malicious software (malware), which happens on Apple&#39;s servers. But to upload to Apple&#39;s servers, the developer needs the license first. On macOS, [Gatekeeper](https://support.apple.com/en-euro/guide/security/sec5599b66df/web) checks for a license and for a notarization ticket — the approval from Apple&#39;s servers that the software is &#34;free of known malicious content, and hasn&#39;t been altered.&#34; In the case of LibreWolf, because the developers refused to join Apple&#39;s paid developer program, LibreWolf never got the chance to be uploaded to Apple for a scan — it was rejected outright. To call such software damaged then is a big stretch. This is exactly the kind of *lack* of transparency I dislike about Apple.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/09/04/nat-sent-this-to-me.html</link>
      <pubDate>Fri, 04 Sep 2026 16:52:13 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/09/04/nat-sent-this-to-me.html</guid>
      <description>&lt;p&gt;Nat sent this to me after I mentioned my Apple Watch makes me more anxious about my lack of sleep by constantly reminding me that I&amp;rsquo;m tired.&lt;/p&gt;
&lt;p&gt;Sometimes ignorance is a bliss.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/1823509392.jpg&#34; width=&#34;600&#34; height=&#34;573&#34; alt=&#34;&#34;&gt;
</description>
      <source:markdown>Nat sent this to me after I mentioned my Apple Watch makes me more anxious about my lack of sleep by constantly reminding me that I&#39;m tired. 

Sometimes ignorance is a bliss. 

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/1823509392.jpg&#34; width=&#34;600&#34; height=&#34;573&#34; alt=&#34;&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>There&#39;s Something about Mewgenics 🎮</title>
      <link>https://taonaw.com/2026/09/04/theres-something-about-mewgenics.html</link>
      <pubDate>Fri, 04 Sep 2026 14:15:50 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/09/04/theres-something-about-mewgenics.html</guid>
      <description>&lt;p&gt;I tried to write about &lt;a href=&#34;https://en.wikipedia.org/wiki/Mewgenics&#34;&gt;Mewgenics&lt;/a&gt; a couple of times now and failed — there&amp;rsquo;s so much going on in this game that makes it challenging to write about! But that&amp;rsquo;s been my go-to game for a long time now, and it&amp;rsquo;s time to try again. Oh, and in case you forgot: all the games I write about work on Linux through Steam&amp;rsquo;s Proton, as this is the only way I play (no Windows, no thanks).&lt;/p&gt;
&lt;p&gt;Mewgenics is… a dungeon crawler. Kind of. But it&amp;rsquo;s also a very simplified turn-based tactical RPG. But it&amp;rsquo;s also a rogue-like, with some elements of base building. It&amp;rsquo;s the messiest game I&amp;rsquo;ve seen in a long time, with so many things thrown into it, but somehow it holds them all together spectacularly. With 145 hours invested in it (and more added every week), I think &amp;ldquo;addictive mess&amp;rdquo; is the best definition I can come up with.&lt;/p&gt;
&lt;p&gt;OK, let me start this review again: with the confusing introduction I made above, you should be prepared. Now, think toilet humor. Think graphics that look like a 6-year-old made with crayons. Think &lt;a href=&#34;https://en.wikipedia.org/wiki/The_Binding_of_Isaac_(video_game)&#34;&gt;The Binding of Isaac (the game)&lt;/a&gt; and you won&amp;rsquo;t be far off, because the &lt;a href=&#34;https://en.wikipedia.org/wiki/Edmund_McMillen&#34;&gt;same guy&lt;/a&gt; is behind it.&lt;/p&gt;
&lt;p&gt;In the main game, you have a squad of four cats, each one has a specific class (loosely based on DnD and video game tropes: a cleric, a fighter, but also a &amp;ldquo;Tank&amp;rdquo;, etc.) Your goal is to fight different kinds of eeky enemies (mosquitoes, ticks, rotting cat zombies, headless dogs with exaggerated anuses, turds (yes, actual shit turds), puking leeches, and many more) and defeat the mini-boss and the main boss at the end of the level. You&amp;rsquo;d think that with four or five levels of this nasty comedy you&amp;rsquo;d exhaust the number of enemies you can run into, and you&amp;rsquo;d think wrong. This game has a way of looking like a small toddler joke that doesn&amp;rsquo;t have much going for it, but somehow it keeps introducing more sophisticated mechanics as you keep playing.&lt;/p&gt;
&lt;p&gt;What do I mean by sophisticated? Let me take an unexpected turn, because this is what this game does constantly. &lt;a href=&#34;https://ridiculon.bandcamp.com/album/mewgenics-ost&#34;&gt;The soundtrack&lt;/a&gt;. It&amp;rsquo;s so good I am actually considering buying it, with over 50 original tracks that stick with you. The kind you find yourself humming in the kitchen while doing dishes. You&amp;rsquo;d think, &amp;ldquo;How many songs about pussy-cats (har har) can you come up with?&amp;rdquo; That&amp;rsquo;s what I thought. The game plays a theme (instrumental) throughout the level, and the theme expands to the full song with lyrics when you fight the boss. At some point after defeating another boss I realized that it&amp;rsquo;s not a coincidence: the songs are actually decent, and some are &lt;em&gt;good&lt;/em&gt; and catchy. The game has a whole radio station built in, complete with a DJ, sponsors, and music.&lt;/p&gt;
&lt;iframe style=&#34;border: 0; width: 100%; height: 42px;&#34; src=&#34;https://bandcamp.com/EmbeddedPlayer/album=2396325458/size=small/bgcol=ffffff/linkcol=e99708/track=1030616759/transparent=true/&#34; seamless&gt;&lt;a href=&#34;https://ridiculon.bandcamp.com/album/mewgenics-ost&#34;&gt;Mewgenics - OST by Ridiculon&lt;/a&gt;&lt;/iframe&gt;
&lt;p&gt;A radio station means a radio, which means you need to listen to it somewhere. So you have a home base. A home, which is also your base, as in an actual house, complete with furniture and expansions you can unlock throughout the game. That base provides your mini-game off the main game, where you&amp;rsquo;re doing your best at breeding your cats. Yes I&amp;rsquo;m serious, the game is called Mewgenics after all. Each cat has unique abilities (rogue-like, remember) and it&amp;rsquo;s your job to decide which female-kinda cat to put with a male-kinda cat in one room, sit back, and watch them do their thing so one of them produces offspring. And yes, the genders in this game are also a question mark, literally — some of those cats have question marks hovering over their heads and they can be both genders or neither. They&amp;rsquo;re also complicated enough to have mutations, sexual orientations… Hell, they come with an entire family tree which you can unlock as you keep playing.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/mew-2.jpg&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;Auto-generated description: A two-story house with various rooms contains small creatures and a large bear-like figure inside, with game interface elements displayed around the screen.&#34;&gt;
&lt;p&gt;Speaking of unlocking, this is another big feature of this game. You have different NPCs that you meet early on, each one providing further bonuses and tips if you give them your cats. For example, the mad scientist (of course there&amp;rsquo;s a mad scientist) gives you unique cursed items you need to take into your adventures as sidequests; the stereotypical gay dude wants babies because him and his wife can&amp;rsquo;t have offspring and gives you all kinds of relationship advice which unlocks to additional features; there&amp;rsquo;s another guy who has a grandma (nanny) that doesn&amp;rsquo;t hear well and wants to sell you weird furniture; a bitter psycho that seems to work for PetSmart, and more.&lt;/p&gt;
&lt;p&gt;But wait, I didn&amp;rsquo;t really talk about the actual turn-based RPG part of the game, which is the main thing!&lt;/p&gt;
&lt;p&gt;The main game consists of taking turns with your cats on a grid that has different environmental effects (lava, water, flowers that heal you, garbage bags you can destroy, grass that can catch fire and spread, etc.) and attacking the enemies with your unique abilities. Some of those are straightforward (you shoot an arrow over a range, or swat with your paws), some are magical (a fireball or a lightning bolt), some are weapons (shotguns, broken glass, rocks), etc. Your cats, depending on the class and unique skills you pick up along the levels, also have other unique abilities like healing other cats, raising the dead, backstabbing, charming enemies, and more. Your goal is pretty simple (For once! Something simple in this game!): clear the level of enemies.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/mew-grid.webp&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;Auto-generated description: A turn-based strategy game scene shows a cat character named Tootsie navigating a graveyard with various icons and a turn-end button visible.&#34;&gt;
&lt;p&gt;The enemies have unique abilities of their own. Some are plain dumb, while others are completely disastrous (one of the bosses can possess one of your cats, which then turns on you. I hate this guy). Each level brings a bunch of new enemies, environmental hazards, and items that help you along - these are reshuffled each adventure. The game adjusts to difficulty levels, so you won&amp;rsquo;t see all the enemies a certain level has until later, and then some enemies can be &amp;ldquo;elite&amp;rdquo; status, creating even more havoc.&lt;/p&gt;
&lt;p&gt;At the start I didn&amp;rsquo;t think I could make it just with four cats, but as I progressed I unlocked abilities that made them real badasses; it helps that you can heal cats and even bring them back if they die, while you can recruit various other creatures to help along the way.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;m looking at the level list, my achievements list on Steam, and the wiki for the game, and I&amp;rsquo;m realizing that at this point I&amp;rsquo;m not even half done. It&amp;rsquo;s a game I picked up last year after finishing Hades 2, and I&amp;rsquo;ve been playing often. It&amp;rsquo;s a game that&amp;rsquo;s easy enough to pick up at any point but hard to put down. It has a &lt;em&gt;lot&lt;/em&gt; of content (if this post is any indication) and I highly recommend it if you&amp;rsquo;re into cats, rogue-like turn-based dungeon crawlers tactical games, dirty humor… look. Just get it. It usually hovers over the $20 range, and it&amp;rsquo;s worth every penny. Now if you excuse me, I have a mini boss to deal with that&amp;rsquo;s giving me a hard time.&lt;/p&gt;
</description>
      <source:markdown>I tried to write about [Mewgenics](https://en.wikipedia.org/wiki/Mewgenics) a couple of times now and failed — there&#39;s so much going on in this game that makes it challenging to write about! But that&#39;s been my go-to game for a long time now, and it&#39;s time to try again. Oh, and in case you forgot: all the games I write about work on Linux through Steam&#39;s Proton, as this is the only way I play (no Windows, no thanks).

Mewgenics is… a dungeon crawler. Kind of. But it&#39;s also a very simplified turn-based tactical RPG. But it&#39;s also a rogue-like, with some elements of base building. It&#39;s the messiest game I&#39;ve seen in a long time, with so many things thrown into it, but somehow it holds them all together spectacularly. With 145 hours invested in it (and more added every week), I think &#34;addictive mess&#34; is the best definition I can come up with.

OK, let me start this review again: with the confusing introduction I made above, you should be prepared. Now, think toilet humor. Think graphics that look like a 6-year-old made with crayons. Think [The Binding of Isaac (the game)](https://en.wikipedia.org/wiki/The_Binding_of_Isaac_(video_game)) and you won&#39;t be far off, because the [same guy](https://en.wikipedia.org/wiki/Edmund_McMillen) is behind it.

In the main game, you have a squad of four cats, each one has a specific class (loosely based on DnD and video game tropes: a cleric, a fighter, but also a &#34;Tank&#34;, etc.) Your goal is to fight different kinds of eeky enemies (mosquitoes, ticks, rotting cat zombies, headless dogs with exaggerated anuses, turds (yes, actual shit turds), puking leeches, and many more) and defeat the mini-boss and the main boss at the end of the level. You&#39;d think that with four or five levels of this nasty comedy you&#39;d exhaust the number of enemies you can run into, and you&#39;d think wrong. This game has a way of looking like a small toddler joke that doesn&#39;t have much going for it, but somehow it keeps introducing more sophisticated mechanics as you keep playing.

What do I mean by sophisticated? Let me take an unexpected turn, because this is what this game does constantly. [The soundtrack](https://ridiculon.bandcamp.com/album/mewgenics-ost). It&#39;s so good I am actually considering buying it, with over 50 original tracks that stick with you. The kind you find yourself humming in the kitchen while doing dishes. You&#39;d think, &#34;How many songs about pussy-cats (har har) can you come up with?&#34; That&#39;s what I thought. The game plays a theme (instrumental) throughout the level, and the theme expands to the full song with lyrics when you fight the boss. At some point after defeating another boss I realized that it&#39;s not a coincidence: the songs are actually decent, and some are *good* and catchy. The game has a whole radio station built in, complete with a DJ, sponsors, and music.

&lt;iframe style=&#34;border: 0; width: 100%; height: 42px;&#34; src=&#34;https://bandcamp.com/EmbeddedPlayer/album=2396325458/size=small/bgcol=ffffff/linkcol=e99708/track=1030616759/transparent=true/&#34; seamless&gt;&lt;a href=&#34;https://ridiculon.bandcamp.com/album/mewgenics-ost&#34;&gt;Mewgenics - OST by Ridiculon&lt;/a&gt;&lt;/iframe&gt;

A radio station means a radio, which means you need to listen to it somewhere. So you have a home base. A home, which is also your base, as in an actual house, complete with furniture and expansions you can unlock throughout the game. That base provides your mini-game off the main game, where you&#39;re doing your best at breeding your cats. Yes I&#39;m serious, the game is called Mewgenics after all. Each cat has unique abilities (rogue-like, remember) and it&#39;s your job to decide which female-kinda cat to put with a male-kinda cat in one room, sit back, and watch them do their thing so one of them produces offspring. And yes, the genders in this game are also a question mark, literally — some of those cats have question marks hovering over their heads and they can be both genders or neither. They&#39;re also complicated enough to have mutations, sexual orientations… Hell, they come with an entire family tree which you can unlock as you keep playing.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/mew-2.jpg&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;Auto-generated description: A two-story house with various rooms contains small creatures and a large bear-like figure inside, with game interface elements displayed around the screen.&#34;&gt;

Speaking of unlocking, this is another big feature of this game. You have different NPCs that you meet early on, each one providing further bonuses and tips if you give them your cats. For example, the mad scientist (of course there&#39;s a mad scientist) gives you unique cursed items you need to take into your adventures as sidequests; the stereotypical gay dude wants babies because him and his wife can&#39;t have offspring and gives you all kinds of relationship advice which unlocks to additional features; there&#39;s another guy who has a grandma (nanny) that doesn&#39;t hear well and wants to sell you weird furniture; a bitter psycho that seems to work for PetSmart, and more.

But wait, I didn&#39;t really talk about the actual turn-based RPG part of the game, which is the main thing!

The main game consists of taking turns with your cats on a grid that has different environmental effects (lava, water, flowers that heal you, garbage bags you can destroy, grass that can catch fire and spread, etc.) and attacking the enemies with your unique abilities. Some of those are straightforward (you shoot an arrow over a range, or swat with your paws), some are magical (a fireball or a lightning bolt), some are weapons (shotguns, broken glass, rocks), etc. Your cats, depending on the class and unique skills you pick up along the levels, also have other unique abilities like healing other cats, raising the dead, backstabbing, charming enemies, and more. Your goal is pretty simple (For once! Something simple in this game!): clear the level of enemies.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/mew-grid.webp&#34; width=&#34;600&#34; height=&#34;337&#34; alt=&#34;Auto-generated description: A turn-based strategy game scene shows a cat character named Tootsie navigating a graveyard with various icons and a turn-end button visible.&#34;&gt;

The enemies have unique abilities of their own. Some are plain dumb, while others are completely disastrous (one of the bosses can possess one of your cats, which then turns on you. I hate this guy). Each level brings a bunch of new enemies, environmental hazards, and items that help you along - these are reshuffled each adventure. The game adjusts to difficulty levels, so you won&#39;t see all the enemies a certain level has until later, and then some enemies can be &#34;elite&#34; status, creating even more havoc.

At the start I didn&#39;t think I could make it just with four cats, but as I progressed I unlocked abilities that made them real badasses; it helps that you can heal cats and even bring them back if they die, while you can recruit various other creatures to help along the way.

I&#39;m looking at the level list, my achievements list on Steam, and the wiki for the game, and I&#39;m realizing that at this point I&#39;m not even half done. It&#39;s a game I picked up last year after finishing Hades 2, and I&#39;ve been playing often. It&#39;s a game that&#39;s easy enough to pick up at any point but hard to put down. It has a *lot* of content (if this post is any indication) and I highly recommend it if you&#39;re into cats, rogue-like turn-based dungeon crawlers tactical games, dirty humor… look. Just get it. It usually hovers over the \$20 range, and it&#39;s worth every penny. Now if you excuse me, I have a mini boss to deal with that&#39;s giving me a hard time.
</source:markdown>
    </item>
    
    <item>
      <title>RSI/Pinky Update</title>
      <link>https://taonaw.com/2026/09/02/rsipinky-update.html</link>
      <pubDate>Wed, 02 Sep 2026 17:36:31 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/09/02/rsipinky-update.html</guid>
      <description>&lt;p&gt;I wanted to write a short update to my &lt;a href=&#34;https://taonaw.com/2026/08/16/rsi-and-emacs-when-your.html&#34;&gt;Emacs pinky / RSI situation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I am still using my Kinesis Freestyle Edge keyboard. I think I&amp;rsquo;ve decided on the &lt;a href=&#34;https://www.moergo.com&#34;&gt;Glove80&lt;/a&gt; as a replacement, but the price and the inability to easily return it are giving me second thoughts. Its style is very different, and I know I will have a hard time adjusting. Still as someone pointed out to me it&amp;rsquo;s not like I&amp;rsquo;m forced to throw away my current keyboard, which is true. I see myself using my Kinesis for work on the Mac while trying the new Glove80 on Linux for blog posts and more leisure-time typing.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve made a few adjustments, however:&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/kinesis-gaming-split-setup.jpg&#34; width=&#34;600&#34; height=&#34;351&#34; alt=&#34;Auto-generated description: A split ergonomic keyboard with blue backlighting is connected by a cable, positioned on a large owl-themed mousepad alongside a Logitech gaming mouse.&#34;&gt;
&lt;p&gt;First, the spread between the two halves is much wider. This is something I was considering when I first got this keyboard, but I didn&amp;rsquo;t follow through with it. I got used to the wider split within a couple of days. It does make my shoulders feel better and more natural, especially when I&amp;rsquo;m standing at my desk. With that, I also started using the keyboard&amp;rsquo;s full tenting capability at all times: I used to have the keyboard flatter when sitting down.&lt;/p&gt;
&lt;p&gt;The mouse is in the middle, and since I use it for quick bursts between otherwise typing sessions, it&amp;rsquo;s fine. When I game, I move it back to the right. I can basically ignore the entire right half of my keyboard while gaming, since most of the action happens on the left.&lt;/p&gt;
&lt;p&gt;Gone is the Caps Lock as Ctrl. Caps is just Caps again. I&amp;rsquo;m still pressing it now and then out of habit, but for the most part, I switched back to using the original Control keys. I try to force myself to use my thumb, which means I have to curve my thumb into my left palm if I use the left side, or I just go all the way to the right and use my Ctrl key there. This is the most difficult part because it&amp;rsquo;s not just muscle memory: the Ctrl key is out of the way, and it can slow me down.&lt;/p&gt;
&lt;p&gt;I also realized that the Windows key, which also acts as the Command key on my Mac, should be way more prominent than this keyboard allows. Thanks to &lt;a href=&#34;https://www.popclip.app/&#34;&gt;PopClip&lt;/a&gt; on the Mac, I don&amp;rsquo;t use it much for copy-pasting on macOS (and since you have to use your mouse anyway to highlight text in Emacs, having PopClip is just a natural extension that I&amp;rsquo;m happy to have).&lt;/p&gt;
&lt;p&gt;Speaking of the mouse, I know some of you will wrinkle your nose in disgust — but I started using it more in Emacs. Sometimes when I want to select text further down or up from where I am with the mark, it&amp;rsquo;s just easier to grab it and highlight the text this way instead of using the keyboard. I am also in the process of rediscovering the menus in Emacs (yes, those menus that all of you Emacs gurus love to hide), especially when it comes to reminding myself of useful shortcuts I keep forgetting — like registers, the mark ring, and other org-mode tricks I keep forgetting about.&lt;/p&gt;
&lt;p&gt;My pinky still annoys me, but less. I seem to have this habit now of letting it hover over the keyboard instead of resting on the shift key. It&amp;rsquo;s almost as if I lost my ability to place my left hand correctly and naturally at times. It&amp;rsquo;s one of the things I hope the Glove80 might help with.&lt;/p&gt;
</description>
      <source:markdown>I wanted to write a short update to my [Emacs pinky / RSI situation](https://taonaw.com/2026/08/16/rsi-and-emacs-when-your.html).


I am still using my Kinesis Freestyle Edge keyboard. I think I&#39;ve decided on the [Glove80](https://www.moergo.com) as a replacement, but the price and the inability to easily return it are giving me second thoughts. Its style is very different, and I know I will have a hard time adjusting. Still as someone pointed out to me it&#39;s not like I&#39;m forced to throw away my current keyboard, which is true. I see myself using my Kinesis for work on the Mac while trying the new Glove80 on Linux for blog posts and more leisure-time typing.

I&#39;ve made a few adjustments, however:

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/kinesis-gaming-split-setup.jpg&#34; width=&#34;600&#34; height=&#34;351&#34; alt=&#34;Auto-generated description: A split ergonomic keyboard with blue backlighting is connected by a cable, positioned on a large owl-themed mousepad alongside a Logitech gaming mouse.&#34;&gt;

First, the spread between the two halves is much wider. This is something I was considering when I first got this keyboard, but I didn&#39;t follow through with it. I got used to the wider split within a couple of days. It does make my shoulders feel better and more natural, especially when I&#39;m standing at my desk. With that, I also started using the keyboard&#39;s full tenting capability at all times: I used to have the keyboard flatter when sitting down.

The mouse is in the middle, and since I use it for quick bursts between otherwise typing sessions, it&#39;s fine. When I game, I move it back to the right. I can basically ignore the entire right half of my keyboard while gaming, since most of the action happens on the left.

Gone is the Caps Lock as Ctrl. Caps is just Caps again. I&#39;m still pressing it now and then out of habit, but for the most part, I switched back to using the original Control keys. I try to force myself to use my thumb, which means I have to curve my thumb into my left palm if I use the left side, or I just go all the way to the right and use my Ctrl key there. This is the most difficult part because it&#39;s not just muscle memory: the Ctrl key is out of the way, and it can slow me down.

I also realized that the Windows key, which also acts as the Command key on my Mac, should be way more prominent than this keyboard allows. Thanks to [PopClip](https://www.popclip.app/) on the Mac, I don&#39;t use it much for copy-pasting on macOS (and since you have to use your mouse anyway to highlight text in Emacs, having PopClip is just a natural extension that I&#39;m happy to have).

Speaking of the mouse, I know some of you will wrinkle your nose in disgust — but I started using it more in Emacs. Sometimes when I want to select text further down or up from where I am with the mark, it&#39;s just easier to grab it and highlight the text this way instead of using the keyboard. I am also in the process of rediscovering the menus in Emacs (yes, those menus that all of you Emacs gurus love to hide), especially when it comes to reminding myself of useful shortcuts I keep forgetting — like registers, the mark ring, and other org-mode tricks I keep forgetting about.

My pinky still annoys me, but less. I seem to have this habit now of letting it hover over the keyboard instead of resting on the shift key. It&#39;s almost as if I lost my ability to place my left hand correctly and naturally at times. It&#39;s one of the things I hope the Glove80 might help with.

</source:markdown>
    </item>
    
    <item>
      <title>Fairness and content</title>
      <link>https://taonaw.com/2026/08/30/fairness-and-content.html</link>
      <pubDate>Sun, 30 Aug 2026 08:44:28 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/30/fairness-and-content.html</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://danq.me/&#34;&gt;Dan&lt;/a&gt; had a &lt;a href=&#34;https://danq.me/2026/08/25/polyamory-boring-bedrooms/&#34;&gt;good post about polyamory&lt;/a&gt;, in which he explains how his partner Ruth shares a bed between him and his meta — her other life partner.&lt;/p&gt;
&lt;p&gt;This invites a discussion about polyamory, but first, a discussion about fairness and content. In my mind that&amp;rsquo;s the main thing in the post before we get to relationships.&lt;/p&gt;
&lt;p&gt;The point is simple:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;When you aim for parity, you&amp;rsquo;re trying to make sure that every person gets the same thing. But this isn&amp;rsquo;t ideal, because not every person wants or needs the same thing!&lt;/p&gt;
&lt;p&gt;Fairness, is aiming to for everybody to be content.&lt;/p&gt;
&lt;p&gt;Ideally, everybody would get everything they wanted, all the time! But where that&amp;rsquo;s impossible, we can aim to at-least ensure that everybody is content. That everything is &amp;ldquo;good enough&amp;rdquo; for everybody. Unlike a quest for parity, this respects the fact that people have different needs.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I like pour-over coffee on Sunday mornings. My partner Nat doesn&amp;rsquo;t really care as long as there &lt;em&gt;is&lt;/em&gt; coffee. Meanwhile, my mom, when she comes to visit, prefers pour-over every time because of its pureness and strength. If you were over, you might like it with cream and sugar — to my horror, may I add, but I won&amp;rsquo;t judge you for it! The point is, we all want different things.&lt;/p&gt;
&lt;p&gt;Take it another step. I like my pour-over Sundays, and Nat doesn&amp;rsquo;t really care, right? That means we build a routine around it. The Sunday morning coffee. We don&amp;rsquo;t build it because Sunday is special, or because I need to &lt;a href=&#34;https://taonaw.com/2026/08/23/i-dont-use-soap-for.html&#34;&gt;cycle through my compost containers&lt;/a&gt; — it&amp;rsquo;s the other way around: it works, so we start doing it this way, which becomes a custom, which makes Sunday a bit special because of it, and I end up rotating my compost disposal routine around it because it&amp;rsquo;s convenient. Before you know it, it&amp;rsquo;s weird if it &lt;em&gt;doesn&amp;rsquo;t&lt;/em&gt; happen.&lt;/p&gt;
&lt;p&gt;Relationships are not all that different.&lt;/p&gt;
&lt;p&gt;To circle back to Dan&amp;rsquo;s polyamory, the idea is to keep people content. Give everyone something so they feel satisfied enough. There is a compromise, yes, but it&amp;rsquo;s worth it because it means everyone is satisfied, not just individuals. And when you&amp;rsquo;re involved with and care about several people, having everyone content like this is the main thing. It&amp;rsquo;s what makes it work. If that wasn&amp;rsquo;t the case, it wouldn&amp;rsquo;t exist.&lt;/p&gt;
&lt;p&gt;When my partner RK comes around, about once a week, we spend intimate time together. It means Nat doesn&amp;rsquo;t get to be as intimate with me as they&amp;rsquo;d like, for that specific time. I&amp;rsquo;m taking a wild guess here, knowing Nat for I think 15 years (I&amp;rsquo;m losing count at this point), that he doesn&amp;rsquo;t mind it that much. He likes his space, and while he appreciates care and attention, he&amp;rsquo;d say he&amp;rsquo;s like a cat: give in small doses, maybe a small cuddle, show that he&amp;rsquo;s important, and run away before he scratches your face. I&amp;rsquo;m in a similar way, which is why we have our separate bedrooms. We each prefer our privacy and space this way. It&amp;rsquo;s a given. Our lives are built around this — much like the Sunday coffee, just on another level.&lt;/p&gt;
&lt;p&gt;I feel like this is a point people who look at non-monogamy from the outside don&amp;rsquo;t understand. How do you share the bedroom? How do you share romance, how do you share sex, how do you even live under the same roof? The answer is, you just do. It just happens. Just as Dan says:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you love and trust and want the best for one another, then – hopefully – you can be honest about what you want, and can be okay with being hearing whether or not it&amp;rsquo;s something that your partner(s) can provide. Or else work together to find compromise position that best facilitates everybody&amp;rsquo;s needs!&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In other words, &amp;ldquo;use your words.&amp;rdquo; Does it always work, 100%? Of course not. People get upset. Shit hits the fan. But it doesn&amp;rsquo;t happen often, or almost ever, if everyone is &lt;em&gt;content&lt;/em&gt;. Even if the package comes undone, and everyone goes their own way (as it happened to me not too long ago), it doesn&amp;rsquo;t feel like a loss, because we&amp;rsquo;re still in touch. We&amp;rsquo;re still friends. It&amp;rsquo;s just natural like everything else. You tune the volume level on the relationship and become content on a different level.&lt;/p&gt;
&lt;p&gt;I realize that for me this is a way of life, and for some this might sound like I&amp;rsquo;m from Mars. For me it was always this way, even before I could name my relationship type and try to chase the ever-changing labels that define it. And judging from how long this has been working, I&amp;rsquo;d say it&amp;rsquo;s pretty good and stable.&lt;/p&gt;
&lt;p&gt;And Dan, I appreciate you bringing this up, talking about it, and inviting a conversation. I don&amp;rsquo;t think we talk about it enough. So thanks!&lt;/p&gt;
</description>
      <source:markdown>[Dan](https://danq.me/) had a [good post about polyamory](https://danq.me/2026/08/25/polyamory-boring-bedrooms/), in which he explains how his partner Ruth shares a bed between him and his meta — her other life partner.

This invites a discussion about polyamory, but first, a discussion about fairness and content. In my mind that&#39;s the main thing in the post before we get to relationships.

The point is simple:

&gt; When you aim for parity, you&#39;re trying to make sure that every person gets the same thing. But this isn&#39;t ideal, because not every person wants or needs the same thing!
&gt;
&gt; Fairness, is aiming to for everybody to be content.
&gt;
&gt; Ideally, everybody would get everything they wanted, all the time! But where that&#39;s impossible, we can aim to at-least ensure that everybody is content. That everything is &#34;good enough&#34; for everybody. Unlike a quest for parity, this respects the fact that people have different needs.

I like pour-over coffee on Sunday mornings. My partner Nat doesn&#39;t really care as long as there *is* coffee. Meanwhile, my mom, when she comes to visit, prefers pour-over every time because of its pureness and strength. If you were over, you might like it with cream and sugar — to my horror, may I add, but I won&#39;t judge you for it! The point is, we all want different things.

Take it another step. I like my pour-over Sundays, and Nat doesn&#39;t really care, right? That means we build a routine around it. The Sunday morning coffee. We don&#39;t build it because Sunday is special, or because I need to [cycle through my compost containers](https://taonaw.com/2026/08/23/i-dont-use-soap-for.html) — it&#39;s the other way around: it works, so we start doing it this way, which becomes a custom, which makes Sunday a bit special because of it, and I end up rotating my compost disposal routine around it because it&#39;s convenient. Before you know it, it&#39;s weird if it *doesn&#39;t* happen.

Relationships are not all that different.

To circle back to Dan&#39;s polyamory, the idea is to keep people content. Give everyone something so they feel satisfied enough. There is a compromise, yes, but it&#39;s worth it because it means everyone is satisfied, not just individuals. And when you&#39;re involved with and care about several people, having everyone content like this is the main thing. It&#39;s what makes it work. If that wasn&#39;t the case, it wouldn&#39;t exist.

When my partner RK comes around, about once a week, we spend intimate time together. It means Nat doesn&#39;t get to be as intimate with me as they&#39;d like, for that specific time. I&#39;m taking a wild guess here, knowing Nat for I think 15 years (I&#39;m losing count at this point), that he doesn&#39;t mind it that much. He likes his space, and while he appreciates care and attention, he&#39;d say he&#39;s like a cat: give in small doses, maybe a small cuddle, show that he&#39;s important, and run away before he scratches your face. I&#39;m in a similar way, which is why we have our separate bedrooms. We each prefer our privacy and space this way. It&#39;s a given. Our lives are built around this — much like the Sunday coffee, just on another level.

I feel like this is a point people who look at non-monogamy from the outside don&#39;t understand. How do you share the bedroom? How do you share romance, how do you share sex, how do you even live under the same roof? The answer is, you just do. It just happens. Just as Dan says:

&gt; If you love and trust and want the best for one another, then – hopefully – you can be honest about what you want, and can be okay with being hearing whether or not it&#39;s something that your partner(s) can provide. Or else work together to find compromise position that best facilitates everybody&#39;s needs!

In other words, &#34;use your words.&#34; Does it always work, 100%? Of course not. People get upset. Shit hits the fan. But it doesn&#39;t happen often, or almost ever, if everyone is *content*. Even if the package comes undone, and everyone goes their own way (as it happened to me not too long ago), it doesn&#39;t feel like a loss, because we&#39;re still in touch. We&#39;re still friends. It&#39;s just natural like everything else. You tune the volume level on the relationship and become content on a different level.

I realize that for me this is a way of life, and for some this might sound like I&#39;m from Mars. For me it was always this way, even before I could name my relationship type and try to chase the ever-changing labels that define it. And judging from how long this has been working, I&#39;d say it&#39;s pretty good and stable.

And Dan, I appreciate you bringing this up, talking about it, and inviting a conversation. I don&#39;t think we talk about it enough. So thanks!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/29/finished-watching-prix-pantheon-se.html</link>
      <pubDate>Sat, 29 Aug 2026 21:55:17 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/29/finished-watching-prix-pantheon-se.html</guid>
      <description>&lt;p&gt;Finished watching: &lt;a href=&#34;https://www.themoviedb.org/tv/90015/season/1/episode/5&#34;&gt;Prix Pantheon S1E5, Episode 5&lt;/a&gt; 📺
This show is not super original, but somehow the way it works and develops clicks nicely. It&amp;rsquo;s been a while since I could just relax and watch TV. Happy I did.&lt;/p&gt;
</description>
      <source:markdown>Finished watching: [Prix Pantheon S1E5, Episode 5](https://www.themoviedb.org/tv/90015/season/1/episode/5) 📺
This show is not super original, but somehow the way it works and develops clicks nicely. It&#39;s been a while since I could just relax and watch TV. Happy I did.
</source:markdown>
    </item>
    
    <item>
      <title>Emacs Config Gems - Part 5</title>
      <link>https://taonaw.com/2026/08/29/emacs-config-gems-part.html</link>
      <pubDate>Sat, 29 Aug 2026 08:34:14 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/29/emacs-config-gems-part.html</guid>
      <description>&lt;p&gt;Being a text editor (among other things), Emacs has quite a few tricks up its sleeve for making writing not just easier but also fun and seemingly magical. I call this section in my config &amp;ldquo;Wordcraft.&amp;rdquo;&lt;/p&gt;
&lt;h3 id=&#34;emacs-dictionary&#34;&gt;Emacs Dictionary&lt;/h3&gt;
&lt;p&gt;When we need a dictionary, Emacs got us covered and then some. After version 28, Emacs connects to a dictionary as a two-step process by default:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;It tries to connect to a local host.&lt;/li&gt;
&lt;li&gt;If it fails, it next connects to an online dictionary at &lt;a href=&#34;https://www.dict.org&#34;&gt;www.dict.org&lt;/a&gt;,&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This workflow remains in place as long as &lt;code&gt;dictionary-server&lt;/code&gt; is &lt;code&gt;nil&lt;/code&gt;, which is the default. It&amp;rsquo;s a bit confusing (to me anyway), since &amp;ldquo;nil&amp;rdquo; might indicate that no dictionary is set up, but here it means we simply didn&amp;rsquo;t introduce any configuration to it.&lt;/p&gt;
&lt;p&gt;The online version at dict.org contains the Webster dictionary from 1913&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;, which (if you follow the footnote) will start sounding like an excellent resource. What I didn&amp;rsquo;t know up until now however is that dict.org contains &lt;em&gt;more&lt;/em&gt; than just this wonderful dictionary.&lt;/p&gt;
&lt;p&gt;When you search for something like &amp;ldquo;US&amp;rdquo; with Emacs&amp;rsquo; built-in dictionary, it checks this database and gives you results from:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The Collaborative International Dictionary of English&lt;/li&gt;
&lt;li&gt;WordNet&lt;/li&gt;
&lt;li&gt;V.E.R.A. – Virtual Entity of Relevant Acronyms&lt;/li&gt;
&lt;li&gt;The Free Online Dictionary of Computing (it has an entry as an ASCII character)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&#34;https://dict.org/bin/Dict?Form=Dict1&amp;amp;Query=00-database-info&amp;amp;Strategy=*&amp;amp;Database=*&#34;&gt;There are others&lt;/a&gt;, like the CIA Factbook and the Bible, among others. All of those are at your fingertips, inside Emacs, from a simple quick search&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;.&lt;/p&gt;
&lt;p&gt;The problem is that it&amp;rsquo;s an online dictionary. No internet, no dictionary. On my MacBook this can happen as I take it with me when I travel. Meanwhile, on Linux, I&amp;rsquo;m always online (desktop, wired connection).&lt;/p&gt;
&lt;p&gt;Follow the footnote, and you will learn how to get that Webster dictionary (but just that, not the database at dict.org) working offline. As for me, I don&amp;rsquo;t want to set up an offline dictionary because macOS&amp;rsquo;s dictionary app&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; (which works fine offline) is good enough — a quick copy-paste and I&amp;rsquo;m done. So I configured my &lt;code&gt;dictionary-server&lt;/code&gt; to point directly to dict.org, so Emacs doesn&amp;rsquo;t even search for a local one first.&lt;/p&gt;
&lt;p&gt;Here is the setting itself, including the localhost option as a reference and a reminder:&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;;; (set dictionary-server nil) default, search localhost and then dict.org&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 dictionary-server &amp;#34;localhost&amp;#34;) local only, no online search&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; dictionary-server &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;dict.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;hippie-expand&#34;&gt;Hippie Expand&lt;/h3&gt;
&lt;p&gt;I learned about &lt;code&gt;hippie-expand&lt;/code&gt; through &lt;a href=&#34;https://www.masteringemacs.org/article/text-expansion-hippie-expand&#34;&gt;Mastering Emacs&lt;/a&gt;. It&amp;rsquo;s one of those things that make Emacs magic. It uses different expansion functions (not to be confused with completion functions, which we will learn more about in a minute) to guess which word should come next in our text as we write, depending on which buffer we are in.&lt;/p&gt;
&lt;p&gt;Following Mickey&amp;rsquo;s advice (linked above), I rebound this to &lt;kbd&gt;M-/&lt;/kbd&gt;, which is bound to &lt;code&gt;dabbrev-expand&lt;/code&gt; by default. It&amp;rsquo;s similar, but not as powerful (essentially it&amp;rsquo;s more basic; &lt;code&gt;hippie-expand&lt;/code&gt; takes the functions that &lt;code&gt;dabbrev-expand&lt;/code&gt; uses and builds on top of those with additional ones). Keep pressing &lt;kbd&gt;M-/&lt;/kbd&gt; to flip through suggestions.&lt;/p&gt;
&lt;p&gt;The catch is that you need to open the buffers you want it to look through. For example, if I want it to pull words from my personal journal while writing this post, I need to have my journal buffer open somewhere. If you&amp;rsquo;re one of the people who don&amp;rsquo;t turn off Emacs often, this is not a problem — just keep that in mind when you use it.&lt;/p&gt;
&lt;p&gt;Turning it on (by replacing the command, using the same binding):&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-set-key [remap dabbrev-expand] &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;hippie-expand&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;We also want to change the order in which it searches for things so it works better for us. For me, as a person who does less coding and more writing, I prefer it to look at Lisp-related functions toward the end. The same logic applies to global (all-buffers) lists vs those that operate on the visible buffer only. So our first &lt;kbd&gt;M-/&lt;/kbd&gt; will give us suggestions from our current buffer, and as we keep pressing &lt;kbd&gt;M-/&lt;/kbd&gt; and exhaust those, it will search all the other buffers we have open. for other suggestions&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;(&lt;span style=&#34;color:#66d9ef&#34;&gt;setq&lt;/span&gt; hippie-expand-try-functions-list
&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;(try-expand-dabbrev
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-dabbrev-all-buffers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-dabbrev-from-kill
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-line
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-line-all-buffers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-list
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-list-all-buffers
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-complete-file-name-partially
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-complete-file-name
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-expand-all-abbrevs
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-complete-lisp-symbol-partially
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        try-complete-lisp-symbol))
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;ispell&#34;&gt;ispell&lt;/h3&gt;
&lt;p&gt;ispell is one of those things I set around the time I started using Emacs and never looked at again. I&amp;rsquo;ve made a mistake: I bound &lt;code&gt;ispell-region&lt;/code&gt; to &lt;kbd&gt;M-$&lt;/kbd&gt;. Those of you who use ispell often are probably perking an eyebrow: &amp;ldquo;huh? Why would you do that for? ispell does it by default!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;But somehow I didn&amp;rsquo;t know this. For &lt;em&gt;years&lt;/em&gt; I highlighted whatever I needed to spell check, even single words. The default keybinding attributes &lt;kbd&gt;M-$&lt;/kbd&gt; to &lt;code&gt;ispell-word&lt;/code&gt;, which checks the word at the marker, &lt;em&gt;but if you have a region selected&lt;/em&gt;, it spellchecks the region. I should have given Emacs more credit; today I know better.&lt;/p&gt;
&lt;p&gt;Another really handy thing I did not know about ispell is its ability to complete words I&amp;rsquo;m unsure of.
But before we go on, please note that word completion (and completion functions) in Emacs is a big topic that I just spent a whole week on, and what I&amp;rsquo;m going to discuss here is just the tip of the iceberg.&lt;/p&gt;
&lt;p&gt;First, the useful built-in completion built into ispell itself: l for lookup. Say you forgot how to write &amp;ldquo;psychiatry&amp;rdquo;. You type what you know — &amp;ldquo;psy&amp;rdquo; — and then call ispell, and as the suggestions show up, press &lt;kbd&gt;l&lt;/kbd&gt;. ispell will ask you what to complete, along with a wildcard, so add &lt;kbd&gt;*&lt;/kbd&gt; and then &lt;kbd&gt;y&lt;/kbd&gt; so you have &amp;ldquo;psy*y&amp;rdquo;. ispell will show you what words start with psy and have whatever letters after but end with y. Useful!&lt;/p&gt;
&lt;p&gt;Another thing I didn&amp;rsquo;t know: use &lt;kbd&gt;R&lt;/kbd&gt; for query replace. This is good when you make the same mistake across several words. For example, when I wrote this post, I originally capitalized every ispell as Ispell. No problem. Stand on one of those, call ispell, press R to replace, and change it to ispell. Now you are prompted if you want to change all of them one by one, or, just hit &lt;kbd&gt;!&lt;/kbd&gt; and get it over with in one swoop.&lt;/p&gt;
&lt;p&gt;With those quick tips, now back to completion functions.&lt;/p&gt;
&lt;p&gt;Years ago, when I started using Emacs, I installed &lt;a href=&#34;https://company-mode.github.io/&#34;&gt;company&lt;/a&gt; with its minimal default settings and called it a day. It&amp;rsquo;s been working OK, and up until I started writing this post, I didn&amp;rsquo;t realize how much about Emacs completion-at-point functions (capf). Prot &lt;a href=&#34;https://www.youtube.com/watch?v=x3rqjpNm3e0&#34;&gt;has a good video about this&lt;/a&gt;, which I&amp;rsquo;m still chewing through, but basically for ispell the magic happens when you stand on a word you don&amp;rsquo;t know how to finish and ask Emacs to suggest completions.&lt;/p&gt;
&lt;p&gt;To understand how this works, Let&amp;rsquo;s say we don&amp;rsquo;t know if water is written as watter or watar, as a simple example.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We write &amp;ldquo;wate&amp;rdquo; and we ask Emacs to complete the word by calling completion with ispell with &lt;kbd&gt;M-C&lt;/kbd&gt; &lt;kbd&gt;i&lt;/kbd&gt;. Because the only word that exists (in English anyway) that starts with &amp;ldquo;wate&amp;rdquo; is water, Emacs will complete it for us to &amp;ldquo;water&amp;rdquo; automatically.&lt;/li&gt;
&lt;li&gt;Now, while standing on the word &amp;ldquo;water,&amp;rdquo; we call completion again. Emacs informs us: &lt;strong&gt;complete, but not unique.&lt;/strong&gt; In other words: the word water is real and complete (we have it spelled right) &lt;em&gt;but&lt;/em&gt; there are other words that start with water.&lt;/li&gt;
&lt;li&gt;While still standing on &amp;ldquo;water&amp;rdquo;, we call complete yet again. Emacs goes &amp;ldquo;OK. So you know it&amp;rsquo;s a word that exists, and you also know there are other words that start with water, so if you&amp;rsquo;re calling complete again, you probably want to see the other words that start with water.&amp;rdquo;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bam, we have a buffer full of words that start with water, like waterboard or watermelon. We can select a word from this menu, even though it&amp;rsquo;s a bit weird — by going down or up with &lt;kbd&gt;M-⇡&lt;/kbd&gt; and &lt;kbd&gt;M-⇣&lt;/kbd&gt;, then insert the word we want with &lt;kbd&gt;M-Ret&lt;/kbd&gt;&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;This is nice, but usually you want to complete words that you already know, or kind of know. If I type &amp;ldquo;psych,&amp;rdquo; I don&amp;rsquo;t need a whole buffer of words if I&amp;rsquo;m looking for &amp;ldquo;psychology&amp;rdquo;; I just slowly add letters until I find what I need — and this is exactly what packages like company or corfu&lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt; do.&lt;/p&gt;
&lt;h3 id=&#34;harper-languagetool-and-abbrevs&#34;&gt;Harper, languagetool and abbrevs&lt;/h3&gt;
&lt;p&gt;Let me just remind you of those for now and finish up this post. We will dig into those more next time.&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;&lt;a href=&#34;https://irreal.org/blog/?p=9035&#34;&gt;This post from irreal&lt;/a&gt; is a good place to get a bit more understanding of how to use a local dictionary, a copy of the online one, and why. If you read it, you may find your way into Irreal&amp;rsquo;s older post and then this wonderful gem he found: &lt;a href=&#34;http://jsomers.net/blog/dictionary&#34;&gt;You&amp;rsquo;re probably using the wrong dictionary&lt;/a&gt;. The way these posts are written, I feel it makes more sense to read them in the reverse order I presented here, inviting more exploration as you go — however, if you&amp;rsquo;re short on time or patience, I recommend you read at least that last one, especially if you enjoy writing.&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;As I was learning this, this next question popped into my mind: can we then look for a definition in Wikipedia and the &lt;a href=&#34;https://www.urbandictionary.com&#34;&gt;Urban Dictionary&lt;/a&gt; as well? The straight answer: yes (it&amp;rsquo;s Emacs, duh). The full answer: it&amp;rsquo;s complicated. We can&amp;rsquo;t integrate it into the results buffer from &lt;code&gt;dictionary-search&lt;/code&gt; directly, but what I can do is have it inside a &amp;ldquo;wrapper&amp;rdquo; buffer that will contain the dict.org definition with the Wikipedia and Urban Dictionary below it. For now, I&amp;rsquo;m fine with just using &lt;code&gt;eww-search-words&lt;/code&gt; which initiates a search with Duck Duck Go, which already pulls Wikipedia search results near the top (Wikipedia itself forces JavaScript usage, which blocks Eww)&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;By the way, something fun I discovered while researching: we can call the macOS dictionary using &lt;code&gt;dict://&lt;/code&gt; (as a URL link), and we can build a function in Emacs for it if we want. Further — we could create something like this for offline situations only, but this is not needed at least in my case. Worth mentioning: there&amp;rsquo;s also the &lt;a href=&#34;https://github.com/xuchunyang/osx-dictionary.el&#34;&gt;osx-dictionary&lt;/a&gt; package, which bridges Emacs and the built-in dictionary app on macOS. But why, when you have a different (and arguably better) version built in?&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;&lt;code&gt;hippie-expand&lt;/code&gt; doesn&amp;rsquo;t really have a help file that lists all the functions, though I think I&amp;rsquo;ve listed most of those if not all above. Check out the package directly if you want to read more about the functions; they are described in comments at the top of the code. Online, &lt;a href=&#34;https://github.com/emacs-mirror/emacs/blob/master/lisp/hippie-exp.el&#34;&gt;it&amp;rsquo;s here&lt;/a&gt;, or you can navigate your way to the package inside Emacs with &lt;kbd&gt;C-h&lt;/kbd&gt;&lt;kbd&gt;k&lt;/kbd&gt;&lt;kbd&gt;M-/&lt;/kbd&gt;, and then go from there to the package.&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;li id=&#34;fn:5&#34;&gt;
&lt;p&gt;Turns out you don&amp;rsquo;t have to do it this way: you can switch to the completion buffer, and then you can move around with arrows, including up and down, and select what you want with Enter like a normal human being. You could also add &lt;code&gt;(setq completion-auto-select t)&lt;/code&gt; to your init for this switch to happen automatically whenever you press &lt;kbd&gt;C-M-i&lt;/kbd&gt;.&amp;#160;&lt;a href=&#34;#fnref:5&#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:6&#34;&gt;
&lt;p&gt;As mentioned earlier, these packages and their functions go beyond what I&amp;rsquo;ll write in this post, but a few things are worth mentioning: company is much older then corfu, which came into existence after Emacs implemented completion-at-point functions; as a result, corfu is based on capf, and doesn&amp;rsquo;t come with anything &amp;ldquo;extra&amp;rdquo; out of the box besides a few option to display completion in a dynamic matter. Company, on the other hand, is a much bigger package that has a whole backend to it, complete with a lot of additional functions. I ended up installing and trying corfu, with Emacs&amp;rsquo; native functions, and then installed cape (completion at point extensions) makes more functions available in a buffer than you&amp;rsquo;d usually have. What does that mean? Well, say you&amp;rsquo;re writing something in org-mode. the cap functions you have available do not include, for example, file names and paths, which you might want; these functions will be available to you when you are in a shell buffer (usually) — it&amp;rsquo;s Emacs being Emacs and trying to be useful. So with cape, you can ask for that function to be available in org-mode as well.&amp;#160;&lt;a href=&#34;#fnref:6&#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>Being a text editor (among other things), Emacs has quite a few tricks up its sleeve for making writing not just easier but also fun and seemingly magical. I call this section in my config &#34;Wordcraft.&#34; 

### Emacs Dictionary

When we need a dictionary, Emacs got us covered and then some. After version 28, Emacs connects to a dictionary as a two-step process by default:

1.  It tries to connect to a local host.
2.  If it fails, it next connects to an online dictionary at www.dict.org,

This workflow remains in place as long as `dictionary-server` is `nil`, which is the default. It&#39;s a bit confusing (to me anyway), since &#34;nil&#34; might indicate that no dictionary is set up, but here it means we simply didn&#39;t introduce any configuration to it.

The online version at dict.org contains the Webster dictionary from 1913[^1], which (if you follow the footnote) will start sounding like an excellent resource. What I didn&#39;t know up until now however is that dict.org contains *more* than just this wonderful dictionary.

When you search for something like &#34;US&#34; with Emacs&#39; built-in dictionary, it checks this database and gives you results from:

1.  The Collaborative International Dictionary of English
2.  WordNet
3.  V.E.R.A. – Virtual Entity of Relevant Acronyms
4.  The Free Online Dictionary of Computing (it has an entry as an ASCII character)

[There are others](https://dict.org/bin/Dict?Form=Dict1&amp;Query=00-database-info&amp;Strategy=*&amp;Database=*), like the CIA Factbook and the Bible, among others. All of those are at your fingertips, inside Emacs, from a simple quick search[^2].

The problem is that it&#39;s an online dictionary. No internet, no dictionary. On my MacBook this can happen as I take it with me when I travel. Meanwhile, on Linux, I&#39;m always online (desktop, wired connection).

Follow the footnote, and you will learn how to get that Webster dictionary (but just that, not the database at dict.org) working offline. As for me, I don&#39;t want to set up an offline dictionary because macOS&#39;s dictionary app[^3] (which works fine offline) is good enough — a quick copy-paste and I&#39;m done. So I configured my `dictionary-server` to point directly to dict.org, so Emacs doesn&#39;t even search for a local one first.

Here is the setting itself, including the localhost option as a reference and a reminder:

``` lisp
;; (set dictionary-server nil) default, search localhost and then dict.org
;; (setq dictionary-server &#34;localhost&#34;) local only, no online search
  (setq dictionary-server &#34;dict.org&#34;)
```

### Hippie Expand

I learned about `hippie-expand` through [Mastering Emacs](https://www.masteringemacs.org/article/text-expansion-hippie-expand). It&#39;s one of those things that make Emacs magic. It uses different expansion functions (not to be confused with completion functions, which we will learn more about in a minute) to guess which word should come next in our text as we write, depending on which buffer we are in. 

Following Mickey&#39;s advice (linked above), I rebound this to &lt;kbd&gt;M-/&lt;/kbd&gt;, which is bound to `dabbrev-expand` by default. It&#39;s similar, but not as powerful (essentially it&#39;s more basic; `hippie-expand` takes the functions that `dabbrev-expand` uses and builds on top of those with additional ones). Keep pressing &lt;kbd&gt;M-/&lt;/kbd&gt; to flip through suggestions.

The catch is that you need to open the buffers you want it to look through. For example, if I want it to pull words from my personal journal while writing this post, I need to have my journal buffer open somewhere. If you&#39;re one of the people who don&#39;t turn off Emacs often, this is not a problem — just keep that in mind when you use it.

Turning it on (by replacing the command, using the same binding):

``` lisp
(global-set-key [remap dabbrev-expand] &#39;hippie-expand)
```

We also want to change the order in which it searches for things so it works better for us. For me, as a person who does less coding and more writing, I prefer it to look at Lisp-related functions toward the end. The same logic applies to global (all-buffers) lists vs those that operate on the visible buffer only. So our first &lt;kbd&gt;M-/&lt;/kbd&gt; will give us suggestions from our current buffer, and as we keep pressing &lt;kbd&gt;M-/&lt;/kbd&gt; and exhaust those, it will search all the other buffers we have open. for other suggestions[^4].


``` lisp
(setq hippie-expand-try-functions-list
      &#39;(try-expand-dabbrev
        try-expand-dabbrev-all-buffers
        try-expand-dabbrev-from-kill
        try-expand-line
        try-expand-line-all-buffers
        try-expand-list
        try-expand-list-all-buffers
        try-complete-file-name-partially
        try-complete-file-name
        try-expand-all-abbrevs
        try-complete-lisp-symbol-partially
        try-complete-lisp-symbol))
```


### ispell

ispell is one of those things I set around the time I started using Emacs and never looked at again. I&#39;ve made a mistake: I bound `ispell-region` to &lt;kbd&gt;M-$&lt;/kbd&gt;. Those of you who use ispell often are probably perking an eyebrow: &#34;huh? Why would you do that for? ispell does it by default!&#34;

But somehow I didn&#39;t know this. For *years* I highlighted whatever I needed to spell check, even single words. The default keybinding attributes &lt;kbd&gt;M-$&lt;/kbd&gt; to `ispell-word`, which checks the word at the marker, _but if you have a region selected_, it spellchecks the region. I should have given Emacs more credit; today I know better.

Another really handy thing I did not know about ispell is its ability to complete words I&#39;m unsure of. 
But before we go on, please note that word completion (and completion functions) in Emacs is a big topic that I just spent a whole week on, and what I&#39;m going to discuss here is just the tip of the iceberg.

First, the useful built-in completion built into ispell itself: l for lookup. Say you forgot how to write &#34;psychiatry&#34;. You type what you know — &#34;psy&#34; — and then call ispell, and as the suggestions show up, press &lt;kbd&gt;l&lt;/kbd&gt;. ispell will ask you what to complete, along with a wildcard, so add &lt;kbd&gt;*&lt;/kbd&gt; and then &lt;kbd&gt;y&lt;/kbd&gt; so you have &#34;psy\*y&#34;. ispell will show you what words start with psy and have whatever letters after but end with y. Useful!

Another thing I didn&#39;t know: use &lt;kbd&gt;R&lt;/kbd&gt; for query replace. This is good when you make the same mistake across several words. For example, when I wrote this post, I originally capitalized every ispell as Ispell. No problem. Stand on one of those, call ispell, press R to replace, and change it to ispell. Now you are prompted if you want to change all of them one by one, or, just hit &lt;kbd&gt;!&lt;/kbd&gt; and get it over with in one swoop.

With those quick tips, now back to completion functions.

Years ago, when I started using Emacs, I installed [company](https://company-mode.github.io/) with its minimal default settings and called it a day. It&#39;s been working OK, and up until I started writing this post, I didn&#39;t realize how much about Emacs completion-at-point functions (capf). Prot [has a good video about this](https://www.youtube.com/watch?v=x3rqjpNm3e0), which I&#39;m still chewing through, but basically for ispell the magic happens when you stand on a word you don&#39;t know how to finish and ask Emacs to suggest completions.

To understand how this works, Let&#39;s say we don&#39;t know if water is written as watter or watar, as a simple example.

1.  We write &#34;wate&#34; and we ask Emacs to complete the word by calling completion with ispell with &lt;kbd&gt;M-C&lt;/kbd&gt; &lt;kbd&gt;i&lt;/kbd&gt;. Because the only word that exists (in English anyway) that starts with &#34;wate&#34; is water, Emacs will complete it for us to &#34;water&#34; automatically.
2.  Now, while standing on the word &#34;water,&#34; we call completion again. Emacs informs us: **complete, but not unique.** In other words: the word water is real and complete (we have it spelled right) *but* there are other words that start with water.
3.  While still standing on &#34;water&#34;, we call complete yet again. Emacs goes &#34;OK. So you know it&#39;s a word that exists, and you also know there are other words that start with water, so if you&#39;re calling complete again, you probably want to see the other words that start with water.&#34;

Bam, we have a buffer full of words that start with water, like waterboard or watermelon. We can select a word from this menu, even though it&#39;s a bit weird — by going down or up with &lt;kbd&gt;M-⇡&lt;/kbd&gt; and &lt;kbd&gt;M-⇣&lt;/kbd&gt;, then insert the word we want with &lt;kbd&gt;M-Ret&lt;/kbd&gt;[^5].

This is nice, but usually you want to complete words that you already know, or kind of know. If I type &#34;psych,&#34; I don&#39;t need a whole buffer of words if I&#39;m looking for &#34;psychology&#34;; I just slowly add letters until I find what I need — and this is exactly what packages like company or corfu[^6] do.

### Harper, languagetool and abbrevs

Let me just remind you of those for now and finish up this post. We will dig into those more next time.


[^1]: [This post from irreal](https://irreal.org/blog/?p=9035) is a good place to get a bit more understanding of how to use a local dictionary, a copy of the online one, and why. If you read it, you may find your way into Irreal&#39;s older post and then this wonderful gem he found: [You&#39;re probably using the wrong dictionary](http://jsomers.net/blog/dictionary). The way these posts are written, I feel it makes more sense to read them in the reverse order I presented here, inviting more exploration as you go — however, if you&#39;re short on time or patience, I recommend you read at least that last one, especially if you enjoy writing.

[^2]: As I was learning this, this next question popped into my mind: can we then look for a definition in Wikipedia and the [Urban Dictionary](https://www.urbandictionary.com) as well? The straight answer: yes (it&#39;s Emacs, duh). The full answer: it&#39;s complicated. We can&#39;t integrate it into the results buffer from `dictionary-search` directly, but what I can do is have it inside a &#34;wrapper&#34; buffer that will contain the dict.org definition with the Wikipedia and Urban Dictionary below it. For now, I&#39;m fine with just using `eww-search-words` which initiates a search with Duck Duck Go, which already pulls Wikipedia search results near the top (Wikipedia itself forces JavaScript usage, which blocks Eww)

[^3]: By the way, something fun I discovered while researching: we can call the macOS dictionary using `dict://` (as a URL link), and we can build a function in Emacs for it if we want. Further — we could create something like this for offline situations only, but this is not needed at least in my case. Worth mentioning: there&#39;s also the [osx-dictionary](https://github.com/xuchunyang/osx-dictionary.el) package, which bridges Emacs and the built-in dictionary app on macOS. But why, when you have a different (and arguably better) version built in?

[^4]: `hippie-expand` doesn&#39;t really have a help file that lists all the functions, though I think I&#39;ve listed most of those if not all above. Check out the package directly if you want to read more about the functions; they are described in comments at the top of the code. Online, [it&#39;s here](https://github.com/emacs-mirror/emacs/blob/master/lisp/hippie-exp.el), or you can navigate your way to the package inside Emacs with &lt;kbd&gt;C-h&lt;/kbd&gt;&lt;kbd&gt;k&lt;/kbd&gt;&lt;kbd&gt;M-/&lt;/kbd&gt;, and then go from there to the package.

[^5]: Turns out you don&#39;t have to do it this way: you can switch to the completion buffer, and then you can move around with arrows, including up and down, and select what you want with Enter like a normal human being. You could also add `(setq completion-auto-select t)` to your init for this switch to happen automatically whenever you press &lt;kbd&gt;C-M-i&lt;/kbd&gt;.

[^6]: As mentioned earlier, these packages and their functions go beyond what I&#39;ll write in this post, but a few things are worth mentioning: company is much older then corfu, which came into existence after Emacs implemented completion-at-point functions; as a result, corfu is based on capf, and doesn&#39;t come with anything &#34;extra&#34; out of the box besides a few option to display completion in a dynamic matter. Company, on the other hand, is a much bigger package that has a whole backend to it, complete with a lot of additional functions. I ended up installing and trying corfu, with Emacs&#39; native functions, and then installed cape (completion at point extensions) makes more functions available in a buffer than you&#39;d usually have. What does that mean? Well, say you&#39;re writing something in org-mode. the cap functions you have available do not include, for example, file names and paths, which you might want; these functions will be available to you when you are in a shell buffer (usually) — it&#39;s Emacs being Emacs and trying to be useful. So with cape, you can ask for that function to be available in org-mode as well.

</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/28/oh-yes-i-think-im.html</link>
      <pubDate>Fri, 28 Aug 2026 20:33:29 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/28/oh-yes-i-think-im.html</guid>
      <description>&lt;p&gt;Oh yes, I think I&amp;rsquo;m going to enjoy this game very much.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/espresso.jpg&#34; width=&#34;600&#34; height=&#34;811&#34; alt=&#34;Auto-generated description: A vintage-style diagram illustrates the steps to operate an espresso machine, including selecting the roast, placing a cup, balancing heat and pressure, and starting and stopping the brewing process.&#34;&gt;
</description>
      <source:markdown>Oh yes, I think I&#39;m going to enjoy this game very much.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/espresso.jpg&#34; width=&#34;600&#34; height=&#34;811&#34; alt=&#34;Auto-generated description: A vintage-style diagram illustrates the steps to operate an espresso machine, including selecting the roast, placing a cup, balancing heat and pressure, and starting and stopping the brewing process.&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/27/gcc-drive-error-on-macos.html</link>
      <pubDate>Thu, 27 Aug 2026 08:51:50 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/27/gcc-drive-error-on-macos.html</guid>
      <description>&lt;p&gt;This is now fixed: GCC drive error on macOS: This seems to show up with almost every new Emacs package I&amp;rsquo;ve been trying recently on my Mac. I remember trying to dig into it, and I went in circles trying to install something from Homebrew. Has anyone fixed this? I&amp;rsquo;m on GNU Emacs plus 30.2.&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/2026-08-27-08-47-30.png&#34; alt=&#34;A terminal window displays repeated error messages indicating a failure to invoke the GCC driver while compiling with native-compiler in Emacs.&#34;&gt;
</description>
      <source:markdown>This is now fixed: GCC drive error on macOS: This seems to show up with almost every new Emacs package I&#39;ve been trying recently on my Mac. I remember trying to dig into it, and I went in circles trying to install something from Homebrew. Has anyone fixed this? I&#39;m on GNU Emacs plus 30.2.

&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/2026-08-27-08-47-30.png&#34; alt=&#34;A terminal window displays repeated error messages indicating a failure to invoke the GCC driver while compiling with native-compiler in Emacs.&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/25/a-quick-update-for-my.html</link>
      <pubDate>Tue, 25 Aug 2026 09:56:10 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/25/a-quick-update-for-my.html</guid>
      <description>&lt;p&gt;A quick update for my Emacs config Gems series:&lt;/p&gt;
&lt;p&gt;I am working on part 5, and I&amp;rsquo;m trying to finalize a few things first. Currently it&amp;rsquo;s Ispell (I&amp;rsquo;ve not been using it to its full capacity) and completion&amp;hellip; more details soon.&lt;/p&gt;
</description>
      <source:markdown>A quick update for my Emacs config Gems series: 

I am working on part 5, and I&#39;m trying to finalize a few things first. Currently it&#39;s Ispell (I&#39;ve not been using it to its full capacity) and completion... more details soon.
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/25/uploaded-the-blogs-customcss-file.html</link>
      <pubDate>Tue, 25 Aug 2026 09:26:55 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/25/uploaded-the-blogs-customcss-file.html</guid>
      <description>&lt;p&gt;Uploaded the blog&amp;rsquo;s custom.css file to Codeberg over at &lt;a href=&#34;https://codeberg.org/jayteear/taonaw_css/&#34;&gt;codeberg.org/jayteear/&amp;hellip;&lt;/a&gt; (someone already has JTR on Codeberg, and I can&amp;rsquo;t find any evidence it was me, so can the real JTR please stand up?)&lt;/p&gt;
&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/custom-css.png&#34; width=&#34;600&#34; height=&#34;229&#34; alt=&#34;A split-screen webpage layout with a dark theme on the left and a light theme on the right features the title The Art Of Not Asking Why along with various navigation buttons&#34;&gt;
</description>
      <source:markdown>Uploaded the blog&#39;s custom.css file to Codeberg over at [codeberg.org/jayteear/...](https://codeberg.org/jayteear/taonaw_css/) (someone already has JTR on Codeberg, and I can&#39;t find any evidence it was me, so can the real JTR please stand up?)



&lt;img src=&#34;https://cdn.uploads.micro.blog/96826/2026/custom-css.png&#34; width=&#34;600&#34; height=&#34;229&#34; alt=&#34;A split-screen webpage layout with a dark theme on the left and a light theme on the right features the title The Art Of Not Asking Why along with various navigation buttons&#34;&gt;
</source:markdown>
    </item>
    
    <item>
      <title>I Don&#39;t use Soap for all my Dishes</title>
      <link>https://taonaw.com/2026/08/23/i-dont-use-soap-for.html</link>
      <pubDate>Sun, 23 Aug 2026 19:02:39 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/23/i-dont-use-soap-for.html</guid>
      <description>&lt;p&gt;I have a confession. I don&amp;rsquo;t wash my single-purpose dishes with soap all the time.&lt;/p&gt;
&lt;p&gt;Things like my tofu press, black tea diffuser, Chemex, compostable plastic dish, etc. For the most part, it&amp;rsquo;s because I use them too often (like the tea diffuser), but also, I think it&amp;rsquo;s a waste of soap to do it all the time.&lt;/p&gt;
&lt;p&gt;If I use my Chemex to make coffee on Sunday mornings, it&amp;rsquo;s fine if I just rinse it with water and let it dry. Same for my tofu press. I use those for only that one thing, and that one thing is not very germy anyway. It&amp;rsquo;s fine to use soap only once in a while. The tea diffuser doesn&amp;rsquo;t wash well in the dishwasher (leaves stay stuck in it), so I just rinse it by hand, get the leaves out with my fingers, and let it dry. I use soap after three or four uses, which translates to about once every couple of weeks.&lt;/p&gt;
&lt;p&gt;My compost plastic bin? Disgusting, right?&lt;/p&gt;
&lt;p&gt;Well, we don&amp;rsquo;t really eat meat at home. Most of what goes in there are remains of vegetables (skins and pits from eating or just those that are about to rot), old bread slices (I get fresh bread every week, and I don&amp;rsquo;t like to eat bread that&amp;rsquo;s older than two weeks), sometimes tea bags or sauces that are too thick to spill down the drain (here&amp;rsquo;s a tip: use the toilet for those. If it&amp;rsquo;s organic, it&amp;rsquo;s fine, and the toilet is meant to handle much larger&amp;hellip; chunks&amp;hellip; anyway)  All of those get frozen in the fridge so they don&amp;rsquo;t smell (&lt;a href=&#34;https://taonaw.com/2025/08/27/we-drink-a-lot-of.html&#34;&gt;here&amp;rsquo;s a picture&lt;/a&gt; of how the frozen coffee and loose tea leafs look like, frozen)&lt;/p&gt;
&lt;p&gt;I use a recyclable baking sheet at the bottom so the food doesn&amp;rsquo;t stick to the plastic, and when it&amp;rsquo;s time to empty the bin, I take it out, give it about two minutes to thaw just a bit, and take it downstairs to the trash room. With the baking sheet, it falls right out in one woosh. When I come back, unless there are stains and food remains, I don&amp;rsquo;t use soap. It&amp;rsquo;s for organic food only. We never eat from it. Hot water is fine.&lt;/p&gt;
&lt;p&gt;Just wanted to get it off my chest&lt;/p&gt;
</description>
      <source:markdown>I have a confession. I don&#39;t wash my single-purpose dishes with soap all the time.

Things like my tofu press, black tea diffuser, Chemex, compostable plastic dish, etc. For the most part, it&#39;s because I use them too often (like the tea diffuser), but also, I think it&#39;s a waste of soap to do it all the time.

If I use my Chemex to make coffee on Sunday mornings, it&#39;s fine if I just rinse it with water and let it dry. Same for my tofu press. I use those for only that one thing, and that one thing is not very germy anyway. It&#39;s fine to use soap only once in a while. The tea diffuser doesn&#39;t wash well in the dishwasher (leaves stay stuck in it), so I just rinse it by hand, get the leaves out with my fingers, and let it dry. I use soap after three or four uses, which translates to about once every couple of weeks.

My compost plastic bin? Disgusting, right?

Well, we don&#39;t really eat meat at home. Most of what goes in there are remains of vegetables (skins and pits from eating or just those that are about to rot), old bread slices (I get fresh bread every week, and I don&#39;t like to eat bread that&#39;s older than two weeks), sometimes tea bags or sauces that are too thick to spill down the drain (here&#39;s a tip: use the toilet for those. If it&#39;s organic, it&#39;s fine, and the toilet is meant to handle much larger... chunks... anyway)  All of those get frozen in the fridge so they don&#39;t smell ([here&#39;s a picture](https://taonaw.com/2025/08/27/we-drink-a-lot-of.html) of how the frozen coffee and loose tea leafs look like, frozen)

I use a recyclable baking sheet at the bottom so the food doesn&#39;t stick to the plastic, and when it&#39;s time to empty the bin, I take it out, give it about two minutes to thaw just a bit, and take it downstairs to the trash room. With the baking sheet, it falls right out in one woosh. When I come back, unless there are stains and food remains, I don&#39;t use soap. It&#39;s for organic food only. We never eat from it. Hot water is fine.

Just wanted to get it off my chest
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/21/microsoft-vent-outlook-on-mac.html</link>
      <pubDate>Fri, 21 Aug 2026 09:37:51 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/21/microsoft-vent-outlook-on-mac.html</guid>
      <description>&lt;p&gt;Microsoft vent #213: Outlook on Mac has shortcomings compared to the web version. Searching on the web client defaults to &amp;ldquo;all folders,&amp;rdquo; and on a Mac to the current folder. Can&amp;rsquo;t change it either. So you forget. The result is this Outlook gaslighting. I &lt;em&gt;know&lt;/em&gt; I wrote that email! I just can&amp;rsquo;t find it!&lt;/p&gt;
</description>
      <source:markdown>Microsoft vent #213: Outlook on Mac has shortcomings compared to the web version. Searching on the web client defaults to &#34;all folders,&#34; and on a Mac to the current folder. Can&#39;t change it either. So you forget. The result is this Outlook gaslighting. I *know* I wrote that email! I just can&#39;t find it!
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/20/last-evening-and-today-added.html</link>
      <pubDate>Thu, 20 Aug 2026 08:53:48 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/20/last-evening-and-today-added.html</guid>
      <description>&lt;p&gt;Last evening and today, added a few more elements to the site&amp;rsquo;s CSS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Keyboard keystrokes now stand out more with a small drop-shadow effect and the code font&lt;/li&gt;
&lt;li&gt;Red arrow (same color as footnotes indicators) points to external links&lt;/li&gt;
&lt;/ul&gt;
</description>
      <source:markdown>Last evening and today, added a few more elements to the site&#39;s CSS:

- Keyboard keystrokes now stand out more with a small drop-shadow effect and the code font
- Red arrow (same color as footnotes indicators) points to external links
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/19/a-few-days-ago-after.html</link>
      <pubDate>Wed, 19 Aug 2026 18:54:45 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/19/a-few-days-ago-after.html</guid>
      <description>&lt;p&gt;A few days ago, after getting annoyed that Apple Mail doesn&amp;rsquo;t have a normal Zoom-in function (Magnifier isn&amp;rsquo;t what I consider normal), I downloaded Thunderbird for my personal/blog emails. I&amp;rsquo;m impressed. I remember it being a mess. It&amp;rsquo;s still&amp;hellip; cluttered, but in a way I can follow.&lt;/p&gt;
</description>
      <source:markdown>A few days ago, after getting annoyed that Apple Mail doesn&#39;t have a normal Zoom-in function (Magnifier isn&#39;t what I consider normal), I downloaded Thunderbird for my personal/blog emails. I&#39;m impressed. I remember it being a mess. It&#39;s still... cluttered, but in a way I can follow. 
</source:markdown>
    </item>
    
    <item>
      <title></title>
      <link>https://taonaw.com/2026/08/19/scrolled-through-bluesky-and-mastodon.html</link>
      <pubDate>Wed, 19 Aug 2026 16:33:44 -0400</pubDate>
      
      <guid>http://jtr.micro.blog/2026/08/19/scrolled-through-bluesky-and-mastodon.html</guid>
      <description>&lt;p&gt;Scrolled through BlueSky and Mastodon without my filters. The hate, the anger, the hostility&amp;hellip; How can people stand it? When did we become so poisonous to each other? Yeesh&lt;/p&gt;
</description>
      <source:markdown>Scrolled through BlueSky and Mastodon without my filters. The hate, the anger, the hostility... How can people stand it? When did we become so poisonous to each other? Yeesh
</source:markdown>
    </item>
    
    <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>
    
  </channel>
</rss>
