Cursory lets users define preset configurations for the cursor. Thosecover the style of the cursor (e.g. box or bar), whether it isblinking or not, and how fast, as well as the colour it uses. Havingdistinct presets makes it easy to switch between, say, a “readingmode” with an ambient cursor and a “presentation mode” with a cursorthat is more noticeable and thus easier to spot. Package name (GNU ELPA): cursory Official manual: https://protesilaos.com/emacs/cursory Change log: https://protesilaos.com/emacs/cursory-changelog Git repositories: GitHub: https://github.com/protesilaos/cursory GitLab: https://gitlab.com/protesilaos/cursory Backronym: Cursor Usability Requires Styles Objectively Rated Yearlong.Below are the release notes.Version 1.2.0 on 2025-07-22This version contains small additions to a stable package.Set the last preset when starting up EmacsThe new function cursory-set-last-or-fallback makes it easier to setthe last known preset when starting Emacs or via a hook such as after-init-hook.Internally, it takes care to fall back to a set of default values thatalways work.Before the introduction of cursory-set-last-or-fallback users had todo something like this:;; Old way of setting a preset:(cursory-set-preset (or cursory-last-selected-preset cursory-recovered-preset 'box));; Old way of doing the above via a hook:(add-hook 'after-init-hook (lambda () (cursory-set-preset (or cursory-last-selected-preset cursory-recovered-preset 'box))))Those would also fail if the named preset did not exist (box in theabove example). Whereas the addition of a fallback preset guarantees aresult that works.Note that I am defining the cursory-fallback-preset using defconstinstead of exposing it as a user option. This is to avoid a scenariowhere the values are accidentally set incorrectly.Presets can define a :cursor-colorThis is a new attribute which corresponds to the background value ofthe cursor face. When the value is nil or unspecified (the default), Cursory doesnot modify the cursor face. When the value is a hexadecimal RGB color value, like #123456 itis used as-is. Same if it is a named color among those produced bythe command list-colors-display. When the value is the symbol of a face (unquoted), then theforeground of that face is used for the cursor face, falling backto default. Concretely, users can have something like this in their configuration:(setq cursory-presets '((box :cursor-color "#21439f" :blink-cursor-interval 1.2) (baring :cursor-type (bar . 2) :cursor-color error ; the `error' face will typically be red (see `list-faces-display') :blink-cursor-interval 0.8) (underscore :cursor-color "green" ; see `list-colors-display' :cursor-type (hbar . 1) :blink-cursor-interval 0.3 :blink-cursor-blinks 50) (t ; the default values :cursor-color unspecified ; use the theme's original :cursor-type box :cursor-in-non-selected-windows hollow :blink-cursor-mode 1 :blink-cursor-blinks 10 :blink-cursor-interval 0.2 :blink-cursor-delay 0.2)))Remember to read the documentation of cursory-presets for all the rest.The cursory-mode persists the :cursor-color while changing themesBefore, the cursory-mode would only take care to save the lastselected preset and to persist it across Emacs sessions. In additionto that, it now also ensures that loading a new theme does notoverride the :cursor-color.The cursory-set-preset prompt is smarter about its default valueWhen the cursory-set-preset is called interactively, it uses theminibuffer to prompt for a preset among the cursory-presets.In the past, its default value would simply be the last selectedpreset. Cursory would not check whether that symbol was still a memberof the cursory-presets. This had the potential to set the wrongconfigurations.Now the prompt only uses as its default value the last selected andexisting preset among those found in the history of selections. Itwill not provide a default if it cannot find any.Note that the “default value” in the context of the minibuffer refersto the input that will normally be provided if the user types RETwithout writing anything into the minibuffer.