‘The half minute which we daily devote to the winding-up of our watches is an exertion of labour almost insensible; yet, by the aid of a few wheels, its effect is spread over the whole twenty-four hours.’
Benjamin Slade

Posts categorized in ‘emacs’ (19)

C-c-c-conjecturing, and dealing with recursion in Emacs (more excursus)

I’m not putting this in the lambda-calculus series, though it touches on issues from the last post in the series, but specifically issues of recursion. I was curious to go back and recall how The Little Schemer dealt with problems of recursion (and the Y Combinator (which we still haven’t got properly to yet, but we will, I promise)). In Chapter 9 of The Little Schemer (“and Again, and Again, and Again,…"), it starts off by querying the reader if they want caviar and how to find it in a list, and then essentially gets (from caviar and grits) into issues around the halting problem.

Lambda Calculus and Lisp, part 2 (recursion excursion)

From the previous entry in this series, one of the things of note in discussing the nature of the connections between LISP and (the) lambda calculus was John McCarthy’s concern about recursion and higher-order functions. A couple of excerpts from previous quotes from McCarthy on the subject to set the stage: …And so, the way in which to [be able to handle function passing/higher order functions] was to borrow from Church’s Lambda Calculus, to borrow the lambda definition.

Using Emacs and Org-Roam/Org-Node on Android (with Termux Extra Keys)

My main use of Emacs on Android (via Termux) is to be able to access and add to my Org-roam library of notes. This post is primarily about some Termux features which improve the user experience for this use case. [Update [2025-02-03 Mon]: added some screenshots throughout to give a sense of what it looks like.] Trying to Cope with Emacs on mobile I’ve tried a number of different solutions for managing sync’ed Org files on mobile1, and some of these are useful for some purposes, but to being able to access and add to my Org-Roam notes, I’ve found I really need a full-blooded Emacs instance.

Guix, XIM, Emacs, Multi_key, Shft+SPC

— Describe in single words only the good things that come into your mind about… <Multi_key>. — <Multi_key>? — Yeah. — Let me tell you about <Multi_key>…. "<Multi_key> is undefined" A bit out of order, but things tangle, a problem I’m having on my Guix machine with Emacs. It’s connected with the Lucid toolkit1, but only in an indirect causal sort of way:— I’m using the standard GTK3 toolkit on this particular build of Emacs on Guix.

Equake: A Geas on Gnomish Smiths

A new version of Equake, the drop-down “terminal emulator” for Emacs, should be hitting Melpa shortly. This version includes a number of bug fixes, and some new features. Jeff Kowalski added code for a “close Equake frame on loss of focus feature” (similar to the Tilda feature) and a number of bug fixes and code-cleanup. Further: I’m (half-)jokingly calling this the Geas on Gnomish Smiths release as I’ve finally figured out how to make it behave properly under GNOME Shell Wayland.

Free keybinding with Tridactyl in Firefox, and in-Emacs editing

Since the effective demise of the Conkeror web browser, I’ve mainly been using Firefox (with some experimentation with Nyxt browser). I’ve missed the ability to quickly browse with the keyboard and customise keybindings. I’ve played with the Tridactyl extension for a few years, but Firefox limitations in part have kept me from using it more extensively. But I stumbled across a relatively easy way of “unreserving” reserved Firefox keys (like <C-p>, <C-f> etc.

Automatically adding information to Org-roam file properties

This expands on a feature I included in the setup for using Org-roam on Android/LineageOS in the last post, specifically automatically adding properties to newly created Org-roam files. Since Org-roam v2 creates a top properties drawer (with an :ID: tag) anyway, it is nice to stick other information there as well. Specifically, information that could be useful in some situation, but which usually we don’t want to see, like :AUTHOR: (it’s probably you, and you know who you are), :CREATION_TIME: (and why not use Unix epoch time?

Org-roam on Android

I’ve been using the note-taking Zettelkasten-ish Org-roam system for a few months and it’s been very useful to me, just as a low-friction way of making more notes and easily finding and/or (re)discovering notes that I’ve made. It’s pretty useful to be able to have access to these notes, and be able to quickly add notes, on mobile as well. I thought it might be useful to include here some notes on how to do, since (especially since v2 of Org-roam) there are some hurdles.

Dynamically set pdf-tools annotation colours

In Emacs, pdf-tools can be used to add annotations to a PDF document. It can be useful to have multiple annotation colours though, and be able to set these on the fly. Here’s an example of how to do it with four colours: ;; annotation colours (defun bms/pdf-annot-colour-blue () (interactive) (setq pdf-annot-default-markup-annotation-properties '((label . "") (color . "blue") (popup-is-open))) (message "%s" (propertize "Annotation colour set to blue." 'face '(:foreground "blue")))) (defun bms/pdf-annot-colour-yellow () (interactive) (setq pdf-annot-default-markup-annotation-properties '((label .

Twiddler config for Emacs

The Twiddler [here’s archive.org’s link, as the site seems to be down as I write this], a one-handed chording keyboard, has a longish history of being associated with Emacs. Here’s 1990s Alan Alda interviewing Thad Starner, who’s using a wearable-computing device foreshadowing Google Glass, using a Twiddler mk 1 to interact with Emacs (using the Remembrance Agent): I’ve long been intrigued by this one-hand, non-tethered input method and finally got a Twiddler 3.

Beautiful and Free Unicode Typefaces, for editor and printer (including a comparison of Latin Modern and Computer Modern Unicode)

For my academic papers, I often need a typeface with a wide range of characters and diacritic combinations. Basic diacritics are supported by a wide range of fonts, but more specialised diacritics and particularly combinations of diacritics only work well in a handful of typefaces. I write my papers in TeX, which has two components: the typeface used to set the paper in (La)TeX and the typeface/font used inside Emacs, where I write the papers.

Top 50 IF list 2019

Emily Short wrote a blog post a fortnight ago or so discussing her nominees for Victor Gijsbers’ Top 50 Interactive Fiction Games of All Time list, 2019 edition. The contest closes on the 31st of July 2019 (i.e. in 2 days, as of the day I write this), and I was thinking about what games would be on my list. This has also resulted, perhaps more importantly, with me having a list of games I still need to play.

Auto-generate “creator” PDF metadata in AUCTeX using yasnippet

After struggling with some poorly-handled, apparently “reset” proofs introducing heaps of errors (despite my providing a .tex source) for the past few days,1 I thought about providing automated pdf-tags indicating creation tools used for my TeX-produced documents. Real, professionally-typeset documents deserve to have the tools used to produce them properly recognised in their metadata. So here’s a yasnippet which generates auto-populated hyperref options to generate a pdf-creator tag indicating the version of Emacs, AUCTeX, and distro used:

Equake(!) Quake-style overlay console in StumpWM

I’ve been alternatively using both KDE Plasma 5 and StumpWM on various machines and have got a working model for using the Equake drop-down in StumpWM. The StumpWM #'invoke-equake command hides (using StumpWM native hide-window, rather than Emacs’s make-frame-invisible as the latter creates various issues in finding and fetching the Equake window) the Equake frame if it’s the currently active window; it searches through all windows in all groups on the current screen/monitor, and calls emacsclient -n -e '(equake-invoke)' to create an Equake frame if no extant Equake window is found; and if an Equake window does already exist for the current screen, it is yanked into the current group, pulled into the current frame, and unhidden (if necessary).

Equake: A drop-down console written in Emacs Lisp

Over the holiday break I’ve been working on developing a Quake-style drop-down console, dubbed Equake / equake. It is not yet on Melpa, but is accessible at https://gitlab.com/emacsomancer/equake.1 equake, written fully in Emacs Lisp, is designed as a ‘classic’ drop-down console interface like Yakuake, inspired by ‘cheat’ consoles in games like Quake. It provides access to various ‘shells’ implemented in Emacs, including shell (an Emacs wrapper around the current system shell), term and ansi-term, (both terminal emulators, emulating VT100-style ANSI escape codes, like xterm does), and eshell (a shell written entirely in Emacs Lisp).

Grab word etymologies in Emacs

On Xah Lee’s blog I noticed an entry on linking to word etymologies from Emacs (2018-08-16: “emacs, create link of word etymology”). What his function does is create a html link to the Etymonline.com page on the currently selected word. But I thought: it would be great to have a quick way of pulling up etymological information within Emacs itself. So, with a little help from Links (i.e. you’ll need to have Links installed), here is a first attempt at such a function:

Managing emacsclient windows in StumpWM

I’m still working on getting my GuixSD machine configured, including working on getting familiar with StumpWM – a windows manager written in Common Lisp – which is the desktop paradigm I’ve decided upon for this Lisp-centric machine. I’m somewhat habituated to (my) AwesomeWM keybindings, which involve the Super key in combination with various other keys, including say s-1 for tag/workspace 1, s-3 for tag/workspace 3, &c., and s-E (i.e. hold Super and Shift and press e) to launch an emacsclient (see below on the Emacs client/daemon configuration).

Guix: You are in a maze of lispy little passages, (map equal? ′(′all ′alike) ′(′all ′alike))

So I finally made a serious go of running GuixSD, a GNU Linux distro which is largely built on GNU Guile Scheme (a dialect of Lisp) on one of my machines (one I had actually put together with GuixSD in mind: an X200 Thinkpad, which I Libreboot‘ed and put a Atheros Wi-Fi card in), and, to increase both the quantity and variety of Lisps involved, am trying to use with StumpWM (which is written in Common Lisp).

New blog using Emacs, Org mode & Hugo

I’ve been wanting to have an Emacs-powered blog for some time. Finally, thanks largely to the yeoman’s work put in by Kaushal Modi on ox-hugo, an exporter from native Org mode format to Hugo-ready markdown files, as well his theme/configuration for Hugo, hugo-refined (which the theme used here is largely based on), I finally have an ideal Emacs-centric blogging environment, though I’m sure I’ll continue to tweak things a bit.