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
  …  …

Reply via email to