RSSAmplifier

Blog

hoowl

Blog posts by hanno

hoowl.seRSS feed ↗20 posts

Latest posts

Find recently modified files using =vertico= in Emacs

vertico is a powerful completion framework for Emacs that helps, for example, to find files using partial matches. By default, it sorts all matches alphabetically and even offers some alternative sorting mechanisms; but none matched my unpleasantly frequent use case: opening whatever-that-file-I-just-downloaded-is-called or just-give-me-whatever-that-command-just-produced . So sorting by…

git-annex: Managing my most ancient data

:ID: a841da2f-48f7-43c3-ac52-1ca0c30b1e7c At the moment, my various files are quite spread out between different computers, a number of USB drives and even old hard drives I usually keep offline. For the stuff I need access to everyday and always want to have the newest version in use, such as my notes, Emacs configuration or music files, I have been relying on Syncthing : a private, continuous…

Collecting images into one directory for self-contained Org mode exports

I often embed images into my Org mode documents. Especially attachments via org-download are convenient while composing notes or drafts. To share such documents, I usually export them. While HTML export allows to inline images , this is not an option for e.g. LaTeX (if I want to share the .tex file) or even Org mode. To create a self-contained export including images, I have written an Elisp…

org-capture-ref-jami-bot: Capturing bibliography entries while on the road

Let us get a little more fancy than the simple captures of the previous post : capturing bibliographic references (or simply interesting links). I often find myself getting excited about projects, blogs and (scientific) articles I discover while surfing or scrolling through Mastodon on my mobile phone. So I keep the tab open in my browser, which usually already shows “∞” instead for…

Note-taking on the go: Capturing messages and images sent via Jami in Org mode

:header-args:emacs-lisp: :tangle “~/src/org-jami-bot/org-jami-bot.el” I keep most of my life in plain text files and manage them using Org mode. That’s how I keep track of things to do, ideas to flesh out or random information that might come in useful later. However, when ideas strike, I don’t always have a keyboard and Emacs ready; often that is on the bus going to or…

An extendable GNU Jami chat bot written in Elisp

:header-args:emacs-lisp: :tangle “~/src/jami-bot/jami-bot.el” Jami is a distributed and private messenger that is part of the GNU project and mainly developed by Savoir-faire Linux . Private in this context does not only refer to the fact that messages, calls and video chats are encrypted, but that you need to provide essentially no personal information to create a Jami account . The…

Exploring the inter-process messaging bus /D-Bus/ using Elisp

As a user, you typically expect your software application to seamlessly interact with other processes and bits of the local system. For example, you might want it to immediately react to new USB devices being connected or mute itself on an incoming (video) call. One pretty neat way of accomplishing this is via the inter-process messaging bus D-Bus 1 . D-Bus has been around since almost two decades…

Elisp: Splicing conditional argument lists to pass to function calls

Today, I found out about the special marker ,@ in Elisp: it allows to splice an evaluated value into a quoted list while keeping the level of the “injected” elements the same as other elements on the resulting list. This solved (or at least simplified) a problem I faced a couple of times already: whenever I wanted to assemble arguments for functions that have a &rest ARGS in their…

Emacs: Salutation auto-complete for mail

I use email quite extensively in my every-day communication, at least at work. The style is usually half-formal, with a salutation but on a first-name basis as it is customary in Sweden. Since quite a number of the mails I write or reply to are to first-time contacts, I am even more nervous than usual to misspell someone’s name and always feel the need to double- or even tripple-check for…

Getting started writing interactive fiction with Inform7 on the command line

Although I have fond memories of playing the text adventure Hexuma (and some similar titles) in the 90s, I only started to get interested in interactive fiction as a story-telling medium a little while ago. I really enjoy short stories and the way they create entire worlds for the purpose of a short-lived, pointed narrative. And interactive fiction can add a whole explorative dimension to story…

Shrinking an SD card image using Linux shell commands

I really enjoy messing with Raspberry Pi computing systems and have several running inside my home, either feeding my stereo system with music or keeping my personal data in sync . To make backups or creating clones of existing systems, I can always stick the SD card running the operating system of the Raspberry Pi into my laptop and copy the entire content onto my hard disk. On those occasions it…

Managing calendar events in Emacs

Whether at home or at work, much of my usual work flow revolves around my Emacs setup (and many, many open browser tabs). Until recently, I also switched occasionally to Thunderbird for my emails – but now, I mostly use mu4e to interact even with mail within Emacs. Some rough edges in the configuration aside, I am really loving the tighter integration with my org-mode notes and my familiar…

Goodbye file-format woes: Using Pandoc to export LaTeX documents to word processors

I really like writing papers and complex documents in LaTeX. The results look very nice (with a little tweaking) and things tend to behave even when the text gets long. Emacs makes editing the document a smooth experience. For collaboration, I can rely on the awesome power of git. While the use of LaTeX is quite wide-spread in my discipline, some of my colleagues prefer to use WYSIWYG-style word…

Confessions of a data sink

I have had many, many accounts during the 25 years that I have spent online. Each had something of an identity connected to it but they all were shallow. Whether it was an account on a BBS somewhere (that wasn’t too expensive to dial into), ICQ, slashdot – yes, even facebook – or whatever other online space I was hanging out at at the time: they never had my name or any…

Auto-inserting .gitignore (and license) templates in Emacs

When you are using Emacs with the Doom-Emacs configuration, you might have noticed that you are being offered a couple of templates to select from whenever you are visiting certain types of file for the first time: your brand new file will be pre-populated from the template you pick. That is really quite convenient, and I especially enjoy that for files such as the special .gitignore file that…

The Day I Started Worrying and Deleted Google

I have had my first Google account since around 2003 when Google introduced GMail and still required you to be invited by an existing user. There had of course been many alternative email services around, and they usually offered some tier that one didn’t have to pay money for. But none could compete with Google’s offering of near-infinite storage and clean web interface, when most…

Finding the right and open font for me

I have been looking into a more suitable font choice for my blog. While my original and rather spontaneous choice, Mozilla’s “Fira” , is clean-looking it was a bit too smooth for my taste. I am looking for a calm font with a hint more serifs and a dash of charm. And, of course, without any restrictive license or the need to embed scripts or CSS hosted elsewhere. The Technical…

Revising history: How to clean a git project prior to publication

Version control systems such as git are amazing tools for software development and most projects involving more than a handful developers would hardly work without them. Especially git has proven to be incredibly useful for me even in small, personal projects as well as for other things than source code, such as my notes and (system) configuration files. Being able to review an evening’s…

New Blog and On Blogging with Emacs

A warm welcome to my first blog post! :) This is not the first time I attempt to keep a blog and have an online presence. But this time around, I have a much more coherent vision and many more ideas of what to actually write about. Having come to an actual first published post, in fact, a big step for me! For this to continue to work, I need to both be able to identify myself with the end result…

How to keep a lossless digital music library with lossy mirror in a few lines of /bash/

I have been building (and rebuilding) my digital music library for around 22 years now. Starting with encoding runs of my few CDs into mp3 which took close to an hour per track on my computer back when – and giving pretty abhorrent quality nevertheless – I moved over the years to a collection which is now several hundreds of albums large. Storage nowadays is much less of a concern,…