<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Emacs on Arthur's blog</title><link>https://blog.aheymans.xyz/tags/emacs/</link><description>Recent content in Emacs on Arthur's blog</description><generator>Hugo</generator><language>en</language><copyright>Copyright © 2018–2024, Arthur Heymans; all rights reserved.</copyright><lastBuildDate>Mon, 02 Feb 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.aheymans.xyz/tags/emacs/index.xml" rel="self" type="application/rss+xml"/><item><title>Vibe Coding an Emacs-Style Hugo Theme</title><link>https://blog.aheymans.xyz/post/hugo-emacs-theme/</link><pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate><guid>https://blog.aheymans.xyz/post/hugo-emacs-theme/</guid><description>&lt;p>
I&amp;#39;ve been using &lt;a href="https://github.com/panr/hugo-theme-terminal">hugo-theme-terminal&lt;/a> for my blog and really liked its clean, terminal-inspired aesthetic. But as someone who spends most of their day in Emacs, I wanted something that felt more like home.&lt;/p>
&lt;p>
So I vibe coded an Emacs-style theme with Claude. The entire thing - HTML templates, CSS, JavaScript interactions - was built through conversation with AI.&lt;/p>
&lt;div id="outline-container-headline-1" class="outline-2">
&lt;h2 id="headline-1">
Features
&lt;/h2>
&lt;div id="outline-text-headline-1" class="outline-text-2">
&lt;ul>
&lt;li>Dired-style article list with reading time, word count, and dates&lt;/li>
&lt;li>Window splitting with &lt;code class="verbatim">C-x 2&lt;/code> (vertical) and &lt;code class="verbatim">C-x 3&lt;/code> (horizontal)&lt;/li>
&lt;li>Navigate with &lt;code class="verbatim">n/p&lt;/code>, open with &lt;code class="verbatim">RET&lt;/code>, go back with &lt;code class="verbatim">q&lt;/code>&lt;/li>
&lt;li>Modus Vivendi (dark) and Modus Operandi (light) themes, toggle with &lt;code class="verbatim">t&lt;/code>&lt;/li>
&lt;li>Emacs modeline showing buffer name, scroll position, and mode&lt;/li>
&lt;li>Even has a working menu bar&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/div>
&lt;div id="outline-container-headline-2" class="outline-2">
&lt;h2 id="headline-2">
The Result
&lt;/h2>
&lt;div id="outline-text-headline-2" class="outline-text-2">
&lt;p>
The theme is available at &lt;a href="https://github.com/ArthurHeymans/hugo-emacs-theme">github.com/ArthurHeymans/hugo-emacs-theme&lt;/a>.&lt;/p></description></item><item><title>Experimenting with a faster TRAMP backend using Rust and JSON-RPC</title><link>https://blog.aheymans.xyz/post/emacs-tramp-rpc/</link><pubDate>Fri, 16 Jan 2026 11:23:08 +0100</pubDate><guid>https://blog.aheymans.xyz/post/emacs-tramp-rpc/</guid><description>&lt;p>
TRAMP is one of Emacs&amp;#39; killer features. The ability to transparently edit files on remote machines, run shells, and use version control as if everything were local is remarkable. The implementation is impressively portable - it works over SSH, sudo, docker, and countless other methods by cleverly parsing shell command output.&lt;/p>
&lt;p>
I&amp;#39;ve been experimenting with an alternative approach that trades some of TRAMP&amp;#39;s universality for speed improvements in the common SSH use case. This is very much an alpha project and nowhere near as battle-tested as TRAMP, but the early results are promising enough that I wanted to share it and get feedback.&lt;/p></description></item><item><title>Sending receipts to my accountant from Emacs</title><link>https://blog.aheymans.xyz/post/sending_docs_to_accountant_from_emacs/</link><pubDate>Thu, 11 Dec 2025 14:19:22 +0100</pubDate><guid>https://blog.aheymans.xyz/post/sending_docs_to_accountant_from_emacs/</guid><description>&lt;p>
Living inside Emacs is a dream - email, git, project management, writing, coding all in one environment. But every so often, something forces you back to a web browser. Uploading receipts to my accountant through ClearFacts was one of those moments.&lt;/p>
&lt;p>
Every month, receipts and invoices accumulate that need to reach my accountant. ClearFacts provides an API for this, but the journey from documentation to working solution proved more interesting than expected.&lt;/p></description></item><item><title>Using LLMs in emacs</title><link>https://blog.aheymans.xyz/post/llm_in_emacs/</link><pubDate>Wed, 06 Nov 2024 08:34:52 +0100</pubDate><guid>https://blog.aheymans.xyz/post/llm_in_emacs/</guid><description>&lt;p>
This post will review 2 llm options in emacs how I set them up.&lt;/p>
&lt;div id="outline-container-headline-1" class="outline-2">
&lt;h2 id="headline-1">
Ellama
&lt;/h2>
&lt;div id="outline-text-headline-1" class="outline-text-2">
&lt;video width=100% controls autoplay>
 &lt;source src="https://blog.aheymans.xyz/ellama.webm" type="video/webm">
 Your browser does not support the video tag.
&lt;/video>
&lt;p>
From &lt;a href="https://github.com/s-kostyaev/ellama">ellama&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Ellama is a tool for interacting with large language models from Emacs. It allows you to ask questions and receive responses from the LLMs. Ellama can perform various tasks such as translation, code review, summarization, enhancing grammar/spelling or wording and more through the Emacs interface. Ellama natively supports streaming output, making it effortless to use with your preferred text editor.&lt;/p></description></item></channel></rss>