Tip: BBDB mode for contact management

BBDB1 is one of those libraries that has been around for so long it would be highly irregular if we weren’t talking about Emacs. The size and age of the thing is what originally scared me away from it in favor of org-contacts2, which had the advantage of being orgmode but was deprecated a long time ago. With BBDB you don’t usually view the elisp database that lies beneath, instead using its robust interface to interact.

Anzu mode for incremental find-and-replace

Shared on the Emacs Tip & Tricks thread 1. Anzu is great for previewing your query-replace as you go; just remember not to attempt it on HUGE files as the preview (or at least, result counting) gets problematic. Also remember that if you are doing a regexp replace that has side-effects (e.g. incrementing a counter), the preview itself will also do all those side effects before you run the actual replace.

Clojure in Action: Teaching new Clojure devs on our work applications

For reasons of internal review but also for the benefit of the community, at work I’ve started recording and making public some of our work meetings, where we build web applications using a full-stack Clojure setup derived (years ago) from Luminus. Several of our team members are brand new to Clojure, so we deal with lots of basics. Questions are welcome! https://www.youtube.com/playlist?list=PLRoUFLqvFD3MRYXTnXQyl-z_svY2gDhFi

What can Emacs give me in 2021? A response to the Mother of All Emacs Papers

Image above NOT a title for Burrough’s 1912 story “A Princess of Mars” 1 This is an essay inspired by Greenberg’s 1996 “Mother of All Emacs papers"2. We learn in that paper that Emacs was born of a necessity for a text tool that had to solve several problems: Hardware (memory space) limitations Costly, lengthy compilation times for other programming languages Steep learning curve compared to arcane character-editing tools, which were painfully close to the assembler and showed it It succeeded in all of these, and after we look at how it succeeded we’ll be ready to think about its viability in an age where the problems have changed completely.

exwm as a recognized desktop manager (my KDE SDDM)

For the past years I have had a little script that shuffles my ~/.profile file back and forth so that rebooting starts in exwm or not, since starting in my GUI is occasionally exactly what I need. Reviewing the exwm page1, though, I found a way of adding exwm (actually, “emacs”) to the list of “Start Session In…” options that are shown on the login screen, which bypasses the ~/.

straight change repo?

I just had an issue in which I changed the repo of a package I had been using (use-package), to a fork of that package. Making that change in Straight proved that either there needs to be an easy way, or I need to know the easy way. Due to conflicting recipes I ended up changing the use-package statement (expected), editing the straight cache file (ugh), manually deleting folders in /repos and /builds, and restarting emacs.

pdftools cannot open libpoppler.so.108

Error Message File mode specification error: (error Error running ‘/home/me/epdfinfo’: /home/me/epdfinfo: error while loading shared libraries: libpoppler.so.108: cannot open shared object file: No such file or directory Fix My system recently upgraded libpoppler to 1.09 with no 1.08 in sight. By making a symlink so that 1.08 is actually pointing at 1.09, pdftools resumed operation. A risky maneauver since we can’t guarantee 1.09 isn’t breaking, but it seems to work here and could be easily undone if necessary.

why does exwm sometimes fail to connect to extra monitors?

I have a 3-monitor setup, using a USB3 dock. Plugging in to my windows machine just works; all monitors connect. However, plug in into my exwm machine sometimes fails, where the extra monitors will remain blank. Usually this is easily fixed when I see it; I press C-M- to open up a terminal outside exwm, and all monitors come alive; then C-M- back to exwm and it finds them, and all workspaces are where they should be.

a cautionary tale on modelines and on updating your emacs config

I recently began having major problems with emacs, including my emacs freezing for significant amounts of time and my exwm windows requiring a repeated command to share focus: one for emacs to think it was focusing there, and another for exwm to move its focus. It never occurred to me that they were related, and efforts to sort them out went to a recent juncture in which I’d both performed a rolling-system upgrade (3000+ packages and Linux kernel upgraded) and also some major upgrades to my emacs config.

locking repos to avoid installation with zypper dup

** Especially on a rolling distro you sometimes want to avoid certain package updates that might break your system. Note that I’ve aliased sudo zypper to z (which I highly recommend). z addlock Mesa-dri-nouveau