Version 1.2.0 of package Cursory has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Cursory describes itself as: ================================== Manage cursor styles using presets ================================== More at https://elpa.gnu.org/packages/cursory.html ## Summary: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ CURSORY.EL: MANAGE CURSOR STYLES USING PRESETS Protesilaos Stavrou [email protected] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ This manual, written by Protesilaos Stavrou, describes the customization options for `cursory' (or `cursory.el'), and provides every other piece of information pertinent to it. The documentation furnished herein corresponds to stable version 1.2.0, released on 2025-07-22. Any reference to a newer feature which does not yet form part of the latest tagged commit, is explicitly marked as such. Current development target is 1.3.0-dev. ## Recent NEWS: ━━━━━━━━━━━━━━━━━━━━━━━━━━ CHANGE LOG OF CURSORY.EL Protesilaos Stavrou [email protected] ━━━━━━━━━━━━━━━━━━━━━━━━━━ This document contains the release notes for each tagged commit on the project’s main git repository: <https://github.com/protesilaos/cursory>. The newest release is at the top. For further details, please consult the manual: <https://protesilaos.com/emacs/cursory>. Table of Contents ───────────────── 1. Version 1.2.0 on 2025-07-22 1 Version 1.2.0 on 2025-07-22 ═════════════════════════════ This version contains small additions to a stable package. 1.1 Set the last preset when starting up Emacs ────────────────────────────────────────────── The new function `cursory-set-last-or-fallback' makes it easier to set the 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 that always work. Before the introduction of `cursory-set-last-or-fallback' users had to do 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 the above example). Whereas the addition of a fallback preset guarantees a result that works. Note that I am defining the `cursory-fallback-preset' using `defconst' instead of exposing it as a user option. This is to avoid a scenario where the values are accidentally set incorrectly. 1.2 Presets can define a `:cursor-color' ──────────────────────────────────────── This is a new attribute which corresponds to the background value of the `cursor' face. • When the value is nil or `unspecified' (the default), Cursory does not modify the `cursor' face. • When the value is a hexadecimal RGB color value, like `#123456' it is used as-is. Same if it is a named color among those produced by the command `list-colors-display'. • When the value is the symbol of a face (unquoted), then the foreground of that face is used for the `cursor' face, falling back to `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. 1.3 The `cursory-mode' persists the `:cursor-color' while changing themes ───────────────────────────────────────────────────────────────────────── Before, the `cursory-mode' would only take care to save the last selected preset and to persist it across Emacs sessions. In addition to that, it now also ensures that loading a new theme does not override the `:cursor-color'. 1.4 The `cursory-set-preset' prompt is smarter about its default value ────────────────────────────────────────────────────────────────────── When the `cursory-set-preset' is called interactively, it uses the minibuffer to prompt for a preset among the `cursory-presets'. … …
