Version 1.0.1 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 i...@protesilaos.com ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 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.0.0, released on 2023-06-09. 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.1.0-dev. ## Recent NEWS: ━━━━━━━━━━━━━━━━━━━━━━━━━━ CHANGE LOG OF CURSORY.EL ━━━━━━━━━━━━━━━━━━━━━━━━━━ This document contains the release notes for each tagged commit on the project's main git repository: <https://sr.ht/~protesilaos/cursory>. The newest release is at the top. For further details, please consult the manual: <https://protesilaos.com/emacs/cursory>. Version 1.0.0 on 2023-06-09 ═══════════════════════════ Cursory has been in a stable state for a long time. I use it daily and am happy with what it does. This version refactors parts of the code in the interest of legibility/hackability, while providing a quality-of-life feature for users. A preset can now inherit from another ───────────────────────────────────── In the interest of defining multiple presets while avoiding duplication, the user option `cursory-presets' now accepts an `:inherit' property. For example: ┌──── │ (setq cursory-presets │ '( │ ;; Sample code here ... │ │ (bar │ :cursor-type (bar . 2) │ :cursor-in-non-selected-windows hollow │ :blink-cursor-mode 1 │ :blink-cursor-blinks 10 │ :blink-cursor-interval 0.5 │ :blink-cursor-delay 0.2) │ │ (bar-no-other-window │ :inherit bar │ :cursor-in-non-selected-windows nil) │ │ ;; More sample code here ... │ )) └──── Presets were already capable of getting properties from a default `t' preset. Now they can be controlled with greater precision. The value of `cursory-presets' is updated accordingly to benefit from this mechanism and to showcase how it is done: ┌──── │ (defcustom cursory-presets │ '((box │ :blink-cursor-interval 0.8) │ (box-no-blink │ :blink-cursor-mode -1) │ (bar │ :cursor-type (bar . 2) │ :blink-cursor-interval 0.5) │ (bar-no-other-window │ :inherit bar │ :cursor-in-non-selected-windows nil) │ (underscore │ :cursor-type (hbar . 3) │ :blink-cursor-blinks 50) │ (underscore-thin-other-window │ :inherit underscore │ :cursor-in-non-selected-windows (hbar . 1)) │ (t ; the default values │ :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)) │ ;; Omitting the doc string for demo purposes... │ ) └──── In the above sample, we notice both the `:inherit' property and the default `t' preset with all its properties. Presets beside `t' act as overrides of the defaults and, as such, need only consist of the properties that change from the default. In the case of an `:inherit', properties are first taken from the inherited preset and then the default one. Version 0.3.0 on 2022-09-04 ═══════════════════════════ ⁃ Implemented a mechanism to read fallback values for the presets specified in the user option `cursory-presets'. In practical terms, there can now be a `t' preset which holds the default values. Any other named preset overrides the `t', so it only needs to specify the properties that differ from the defaults. Sample using the original value: ┌──── │ (setq cursory-presets │ '((box │ :blink-cursor-interval 0.8) │ (box-no-blink │ :blink-cursor-mode -1) │ (bar │ :cursor-type (bar . 2) │ :blink-cursor-interval 0.5) │ (underscore │ :cursor-type (hbar . 3) │ :blink-cursor-blinks 50) │ (t ; the default values │ :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))) └──── ⁃ Expanded the available properties of the user option `cursory-presets' to accept a value for the `:blink-cursor-mode' key (as seen in the … …