branch: elpa/casual
commit 38c3cf06f34a7e996dc40b3331906cdb71198bb9
Author: Charles Choi <[email protected]>
Commit: Charles Choi <[email protected]>

    Miscellaneous tuning for Casual Org
    
    * docs/org.org: Update for Casual Org
    Improved indexing
    Added package names
    
    * lisp/casual-org.el:
    (casual-org-table-fedit-tmenu): Added more commands for Info
    lookups of Org Table formula documentation.
    (casual-org-table-fedit-tmenu): Added Vector section.
    
    * lisp/casual-org-utils.el:
    (casual-org-unicode-db): Added support for row and column.
    (casual-org-table-info-references): Added/moved Info commands.
    (casual-org-table--insert-calc-formula): Added Calc insertion commands.
    (casual-org-body-group): Added support for casual-org-insert-keyword.
    (casual-org-table-structure-tmenu): Added Align section.
    
    * tests/test-casual-org-utils.el: Updated tests.
    
    * tests/test-casual-org.el: Updated tests.
    
    * lisp/casual-org-utils.el:
    (casual-org-insert-checkbox): Add function
    (casual-org-item-group): Tune UI
---
 docs/agenda.org                                    |  15 +-
 docs/bibtex.org                                    |  13 +-
 docs/bookmarks.org                                 |   9 +-
 docs/calc.org                                      |   8 +-
 docs/calendar.org                                  |   4 +-
 docs/casual.info                                   | Bin 172951 -> 179988 bytes
 docs/casual.org                                    |  18 +-
 docs/compile.org                                   |   9 +-
 docs/css.org                                       |   9 +-
 docs/csv.org                                       |  16 +-
 docs/dired.org                                     |   9 +-
 docs/ediff.org                                     |   5 +-
 docs/editkit.org                                   |  29 ++--
 docs/elisp.org                                     |  14 +-
 docs/eshell.org                                    |  11 +-
 docs/eww.org                                       |  13 +-
 docs/help.org                                      |   9 +-
 docs/html.org                                      |  17 +-
 docs/ibuffer.org                                   |   6 +-
 docs/image.org                                     |   7 +-
 docs/images/casual-org-block-src-screenshot.png    | Bin 97916 -> 93640 bytes
 docs/images/casual-org-body-screenshot.png         | Bin 162419 -> 143670 bytes
 docs/images/casual-org-checkbox-screenshot.png     | Bin 117084 -> 107212 bytes
 docs/images/casual-org-clock-log-screenshot.png    | Bin 0 -> 93265 bytes
 docs/images/casual-org-drawer-screenshot.png       | Bin 0 -> 102291 bytes
 docs/images/casual-org-headline-screenshot.png     | Bin 185739 -> 176126 bytes
 docs/images/casual-org-in-block-src-screenshot.png | Bin 0 -> 95012 bytes
 docs/images/casual-org-item-screenshot.png         | Bin 113578 -> 95138 bytes
 docs/images/casual-org-keyword-affiliate.png       | Bin 0 -> 97390 bytes
 docs/images/casual-org-keyword-screenshot.png      | Bin 106788 -> 99147 bytes
 .../casual-org-property-drawer-screenshot.png      | Bin 0 -> 102693 bytes
 docs/images/casual-org-property-screenshot.png     | Bin 0 -> 104578 bytes
 docs/images/casual-org-table-fedit-screenshot.png  | Bin 116320 -> 116264 bytes
 docs/images/casual-org-table-layout-screenshot.png | Bin 60143 -> 111855 bytes
 docs/images/casual-org-table-screenshot.png        | Bin 132595 -> 121734 bytes
 docs/images/casual-org-tblfm-screenshot.png        | Bin 103599 -> 92691 bytes
 docs/info.org                                      |   7 +-
 docs/isearch.org                                   |   9 +-
 docs/make-mode.org                                 |   8 +-
 docs/man.org                                       |  11 +-
 docs/org.org                                       | 158 +++++++++++++----
 docs/re-builder.org                                |  15 +-
 docs/timezone.org                                  |   2 +-
 lisp/casual-org-utils.el                           | 191 ++++++++++++++++++---
 lisp/casual-org.el                                 |  31 ++--
 tests/test-casual-org-utils.el                     |  59 ++++++-
 tests/test-casual-org.el                           |  57 ++++--
 tests/test-casual-org.org                          |   2 +-
 48 files changed, 560 insertions(+), 211 deletions(-)

diff --git a/docs/agenda.org b/docs/agenda.org
index 00b7715094..976e222f0f 100644
--- a/docs/agenda.org
+++ b/docs/agenda.org
@@ -1,8 +1,8 @@
 * Agenda
 #+CINDEX: Agenda 
 #+CINDEX: Org Agenda
-#+VINDEX: casual-agenda-tmenu
-Casual Agenda is a user interface for Org Agenda ([[info:org#Agenda Views]]), 
a feature of Emacs Org Mode ([[info:org#Top]]) to help plan your day. Its 
top-level library is ~casual-agenda~.
+#+VINDEX: casual-agenda
+Casual Agenda (library: ~casual-agenda~) is a user interface for Org Agenda 
([[info:org#Agenda Views]]), a feature of Emacs Org Mode ([[info:org#Top]]) to 
help plan your day. Its top-level library is ~casual-agenda~.
 
 [[file:images/casual-agenda-screenshot.png]]
 
@@ -27,6 +27,7 @@ Use these bindings to configure Org Agenda to be consistent 
with bindings used b
 
 ** Agenda Usage
 #+CINDEX: Agenda Usage
+#+VINDEX: casual-agenda-tmenu
 
 
 [[file:images/casual-agenda-screenshot.png]]
@@ -40,33 +41,33 @@ The main menu for Casual Agenda is ~casual-agenda-tmenu~. 
It is divided into fiv
 - Utils :: Set a timer, get almanac info.
 
 
-#+TEXINFO: @subheading Operating on Headlines (casual-agenda-operations-tmenu)
+#+TEXINFO: @subsubheading Operating on Headlines 
(casual-agenda-operations-tmenu)
 #+VINDEX: casual-agenda-operations-tmenu
 Use “{{{kbd(o)}}} Operations›” from ~casual-agenda-tmenu~ to change a 
headline's attributes such as TODO state, scheduling, tags, and priority. The 
following menu will be displayed.
 
 [[file:images/casual-agenda-operations-screenshot.png]]
 
 
-#+TEXINFO: @subheading Marking Headlines (casual-agenda-mark-tmenu)
+#+TEXINFO: @subsubheading Marking Headlines (casual-agenda-mark-tmenu)
 #+VINDEX: casual-agenda-mark-tmenu
 
 Use “{{{kbd(M)}}} Mark›” menu from ~casual-agenda-tmenu~ to mark different 
headlines and perform a bulk action on them. 
 
 [[file:images/casual-agenda-mark-screenshot.png]]
 
-#+TEXINFO: @subheading Almanac (casual-agenda-almanac-tmenu)
+#+TEXINFO: @subsubheading Almanac (casual-agenda-almanac-tmenu)
 #+VINDEX: casual-agenda-almanac-tmenu
 Get sunrise/sunset times, lunar cycle dates, and holidays with respect to a 
date via the “{{{kbd(l)}}} Almanac›” menu from ~casual-agenda-tmenu~.
 
 [[file:images/casual-agenda-almanac-screenshot.png]]
 
-#+TEXINFO: @subheading Changing Modes and Settings
+#+TEXINFO: @subsubheading Changing Modes and Settings
 #+VINDEX: casual-agenda-settings-tmenu
 Agenda views have different display modes and behavior that can be modified 
from the “{{{kbd(\,)}}} Settings›” menu from ~casual-agenda-tmenu~.
 
 [[file:images/casual-agenda-settings-screenshot.png]]
 
-#+TEXINFO: @subheading Agenda Unicode Symbol Support
+#+TEXINFO: @subsubheading Agenda Unicode Symbol Support
 By enabling “{{{kbd(u)}}} Use Unicode Settings” from the Settings menu, Casual 
Agenda will use Unicode symbols as appropriate in its menus.
 
 [[file:images/casual-agenda-unicode-screenshot.png]]
diff --git a/docs/bibtex.org b/docs/bibtex.org
index 61bcaa8223..15917a5b39 100644
--- a/docs/bibtex.org
+++ b/docs/bibtex.org
@@ -1,9 +1,9 @@
 * BibTeX
 #+CINDEX: BibTeX
 #+CINDEX: bibtex
-#+VINDEX: casual-bibtex-tmenu
+#+VINDEX: casual-bibtex
 
-Casual BibTeX is an opinionated user interface for BibTeX mode 
([[info:emacs#TeX Mode][info "(emacs) TeX Mode"]]), a major mode for working 
with BibTeX files ([[https://bibtex.eu][BibTeX Guide]]).
+Casual BibTeX (library: ~casual-bibtex~) is an opinionated user interface for 
BibTeX mode ([[info:emacs#TeX Mode][info "(emacs) TeX Mode"]]), a major mode 
for working with BibTeX files ([[https://bibtex.eu][BibTeX Guide]]).
 
 A BibTeX file is typically named using the suffix ~.bib~ to identify its file 
type.
 
@@ -62,6 +62,7 @@ In your initialization file, bind the Transient 
~casual-bibtex-tmenu~ to your ke
 
 ** BibTeX Usage
 #+CINDEX: BibTeX Usage
+#+VINDEX: casual-bibtex-tmenu
 
 [[file:images/casual-bibtex-screenshot.png]]
 
@@ -98,7 +99,7 @@ The following table shows the bindings for BibTeX navigation.
 
 In Casual BibTeX, CRUD (CReate, Update, Delete) operations for entry and field 
structures are intended to be achieved through their respective commands. This 
contrasts with manual editing of a buffer to achieve the same end, which is 
prone to errors.
 
-#+TEXINFO: @subheading Creating an Entry
+#+TEXINFO: @subsubheading Creating an Entry
 
 To create a new entry, use the “{{{kbd(A)}}} Add…” command. You will be 
prompted in the mini-buffer with completion support for the entry type. This 
new entry will be inserted relative to existing entry where the point is with 
all fields supported by the entry type enumerated.  Fields with the temporary 
prefix of "ALT" or "OPT" denote a field that is alternate or optional. Use the 
command “{{{kbd(o)}}} Remove OPT/ALT” to remove this prefix. 
 
@@ -109,7 +110,7 @@ When all desired information for a BibTeX entry has been 
entered, it can be "cle
 
 By default, cleaning an entry will not format (or "fill") the entry. This can 
be changed by setting the customizable variable ~bibtex-clean-entry-hook~ to 
include the command ~bibtex-fill-entry~. This can be done from "Hooks" section 
in the Settings menu ([[#bibtex-settings][Settings)]]. 
 
-#+TEXINFO: @subheading Creating a Field
+#+TEXINFO: @subsubheading Creating a Field
 
 To create a new field, use the “{{{kbd(a)}}} Add…” command. You will be 
prompted in the mini-buffer with completion support for the field type. This 
new field will be inserted relative to existing field where the point is.
 
@@ -120,7 +121,7 @@ There are two components to a field:
 
 A "brute-force" command to enumerate all fields for an entry is provided by 
the “{{{kbd(u)}}} Update…” command. Clean the entry to remove all unpopulated 
fields after using it.
   
-#+TEXINFO: @subheading BibTeX mode has its own kill-ring
+#+TEXINFO: @subsubheading BibTeX mode has its own kill-ring
 
 BibTeX has its own kill-ring variable ~bibtex-entry-kill-ring~ which the 
following menu commands use:
 
@@ -132,7 +133,7 @@ BibTeX has its own kill-ring variable 
~bibtex-entry-kill-ring~ which the followi
   
 The "∙" annotation in a menu label denotes commands that do /not/ use the 
~kill-ring~, but ~bibtex-entry-kill-ring~ instead.
 
-#+TEXINFO: @subheading Search and Jump
+#+TEXINFO: @subsubheading Search and Jump
 
 The ability to search and jump to a position in a BibTeX database are offered 
by the following menu commands:
 
diff --git a/docs/bookmarks.org b/docs/bookmarks.org
index 0444c8ef04..e6d814407c 100644
--- a/docs/bookmarks.org
+++ b/docs/bookmarks.org
@@ -1,8 +1,8 @@
 * Bookmarks
 #+CINDEX: Bookmarks
-#+VINDEX: casual-bookmarks-tmenu
+#+VINDEX: casual-bookmarks
 
-Casual Bookmarks is a user interface for the Emacs Bookmarks list 
([[info:emacs#Bookmarks]]). Its top-level library is ~casual-bookmarks~.
+Casual Bookmarks (library: ~casual-bookmarks~) is a user interface for the 
Emacs Bookmarks list ([[info:emacs#Bookmarks]]). Its top-level library is 
~casual-bookmarks~.
 
 [[file:images/casual-bookmarks-screenshot.png]]
 
@@ -51,6 +51,7 @@ The above guidance largely extends the work done in the blog 
post [[http://yummy
 
 ** Bookmarks Usage
 #+CINDEX: Bookmarks Usage
+#+VINDEX: casual-bookmarks-tmenu
 
 [[file:images/casual-bookmarks-screenshot.png]]
 
@@ -70,12 +71,12 @@ Casual Bookmarks organizes its main menu into the following 
sections:
 - Column :: Commands to navigate and control the display of the table layout 
for bookmarks.
 
 
-#+TEXINFO: @subheading Sorting
+#+TEXINFO: @subsubheading Sorting
 #+VINDEX: casual-bookmarks-sortby-tmenu
 
 Support for sorting the bookmarks list is provided by the menu 
~casual-bookmarks-sortby-tmenu~.
 
-#+TEXINFO: @subheading Unicode Symbol Support
+#+TEXINFO: @subsubheading Unicode Symbol Support
 
 [[file:images/casual-bookmarks-unicode-screenshot.png]]
 
diff --git a/docs/calc.org b/docs/calc.org
index 149d88b97f..ec8f7d4b41 100644
--- a/docs/calc.org
+++ b/docs/calc.org
@@ -1,7 +1,8 @@
 * Calc
 #+CINDEX: Calc
-#+VINDEX: casual-calc-tmenu
-Casual Calc is a user interface for Emacs Calc ([[info:calc#Top]]).
+#+VINDEX: casual-calc
+
+Casual Calc (library: ~casual-calc~) is a user interface for Emacs Calc 
([[info:calc#Top]]).
 
 [[file:images/casual-calc-tmenu.png]]
 
@@ -22,6 +23,7 @@ To install Casual Calc, add the following lines to your Emacs 
initialization fil
 
 ** Calc Usage
 #+CINDEX: Calc Usage
+#+VINDEX: casual-calc-tmenu
 
 [[file:images/casual-calc-tmenu.png]]
 
@@ -39,7 +41,7 @@ Casual Calc organizes its main menu into the following 
sections:
 - Functions :: Entry point for sub-menus of commands organized into different 
classes of functionality.
 - Settings :: Entry point for sub-menus of commands to configure Calc settings.
 
-#+TEXINFO: @subheading Calc Basics
+#+TEXINFO: @subsubheading Calc Basics
 
 It helps to know some basics about Calc.
 
diff --git a/docs/calendar.org b/docs/calendar.org
index 72f40f2d8c..bdd7e82faf 100644
--- a/docs/calendar.org
+++ b/docs/calendar.org
@@ -1,8 +1,7 @@
 * Calendar
 #+CINDEX: Calendar
 #+VINDEX: casual-calendar
-#+VINDEX: casual-calendar-tmenu
-Casual Calendar is a user interface for Emacs Calendar/Diary. Its top-level 
library is ~casual-calendar~. Access to numerous calendar and diary commands 
are made available, most notably support for non-Gregorian calendar systems.
+Casual Calendar (library: ~casual-calendar~) is a user interface for Emacs 
Calendar/Diary. Its top-level library is ~casual-calendar~. Access to numerous 
calendar and diary commands are made available, most notably support for 
non-Gregorian calendar systems.
 
 
 [[file:images/casual-calendar-screenshot.png]]
@@ -21,6 +20,7 @@ The main menu for Casual Calendar (~casual-calendar-tmenu)~ 
is invoked by the co
 
 ** Calendar Usage
 #+CINDEX: Calendar Usage
+#+VINDEX: casual-calendar-tmenu
 
 [[file:images/casual-calendar-screenshot.png]]
 
diff --git a/docs/casual.info b/docs/casual.info
index 9bfac06ff7..b40a83e23b 100644
Binary files a/docs/casual.info and b/docs/casual.info differ
diff --git a/docs/casual.org b/docs/casual.org
index 60f7be4239..b9af6e3358 100644
--- a/docs/casual.org
+++ b/docs/casual.org
@@ -61,7 +61,7 @@ Copyright © 2024-2025 Charles Y. Choi
 
 #+CINDEX: Motivations
 
-#+TEXINFO: @subheading Goals
+#+TEXINFO: @subsubheading Goals
 
 - To provide a keyboard-driven menu UI toolkit for common Emacs commands.
 
@@ -70,7 +70,7 @@ Copyright © 2024-2025 Charles Y. Choi
 - To be a frequently used interface for modes supported by Casual.
 
 
-#+TEXINFO: @subheading Non-Goals
+#+TEXINFO: @subsubheading Non-Goals
 
 - Full coverage of all Emacs commands.
 
@@ -123,7 +123,7 @@ For Transient menus that offer setting different values, 
the following bindings
 
   Clears the set and saved values of the active transient.
 
-#+TEXINFO: @subheading References
+#+TEXINFO: @subsubheading References
 
 - [[info:transient#Aborting and Resuming Transients]]
   
@@ -207,7 +207,7 @@ That said, if you have used ~:ensure t~ to install a 
superseded package, you /mu
 
 The Casual menus share common user experience (UX) conventions to facilitate 
usability. This section details this.
 
-#+TEXINFO: @subheading Common Menu Navigation
+#+TEXINFO: @subsubheading Common Menu Navigation
 
 Casual organizes a mode's command set into a menu hierarchy. As the user 
descends down different menu levels, the user is given the option to dismiss 
the current menu or to dismiss completely all menu levels descended. Transient 
provides a standard convention for menu dismissal via the {{{kbd(C-g)}}} 
(~transient-quit-one~) and {{{kbd(C-q)}}} (~transient-quit-all~) commands.
 
@@ -215,18 +215,18 @@ Casual makes explicit the display of {{{kbd(C-g)}}} and 
{{{kbd(C-q)}}} at the bo
 #+VINDEX: casual-lib-hide-navigation
 Users who wish to have them hidden can set the customizable variable 
~casual-lib-hide-navigation~ to a non-nil value. This can be changed from a 
Casual mode-specific settings menu.
 
-#+TEXINFO: @subheading Settings Menu
+#+TEXINFO: @subsubheading Settings Menu
 
 Most all Casual main menus support invoking a mode-specific settings menu via 
the binding {{{kbd(\,)}}}.
 
-#+TEXINFO: @subheading Unicode Symbol Support
+#+TEXINFO: @subsubheading Unicode Symbol Support
 #+VINDEX: casual-lib-use-unicode
 
 The customizable variable named ~casual-lib-use-unicode~ which when non-nil 
will inform Casual menus to use Unicode symbol labels whenever supported. This 
can be changed from Casual mode-specific settings menu.
 
 If ~casual-lib-use-unicode~ is set to ~t~, it is also recommended that the 
variable ~transient-align-variable-pitch~ also be set to ~t~.
 
-#+TEXINFO: @subheading Common Key Bindings
+#+TEXINFO: @subsubheading Common Key Bindings
 
 Listed below are keybindings which are common among Casual menus. 
 
@@ -251,7 +251,7 @@ Listed below are keybindings which are common among Casual 
menus.
   For modes that organize items into sections, navigation to a next or 
previous section is bound to {{{kbd([)}}} and {{{kbd(])}}} respectively.
 
 
-#+TEXINFO: @subheading Label Conventions
+#+TEXINFO: @subsubheading Label Conventions
 
 Casual annotates menu labels with the following conventions:
 
@@ -261,7 +261,7 @@ Casual annotates menu labels with the following conventions:
 - ‘ⓘ’ :: If the label starts with the glyph ⓘ (CIRCLED LATIN SMALL LETTER I), 
then the command will invoke the Info reader.
 
 
-#+TEXINFO: @subheading Menu Naming Conventions
+#+TEXINFO: @subsubheading Menu Naming Conventions
 
 To distinguish Transient menu (prefix) definitions from existing Emacs menu 
definitions using keymaps ([[info:elisp#Menu Keymaps][elisp#Menu Keymaps]]), 
Casual uses the naming suffix  ~-tmenu~. 
 
diff --git a/docs/compile.org b/docs/compile.org
index a327ce7a9e..b55a6497a6 100644
--- a/docs/compile.org
+++ b/docs/compile.org
@@ -2,9 +2,9 @@
 #+CINDEX: Compile
 #+CINDEX: compilation-mode
 #+CINDEX: grep-mode
-#+VINDEX: casual-compile-tmenu
+#+VINDEX: casual-compile
 
-Casual Compile is a user interface for the output of the ~compile~ command 
([[info:emacs#Compilation]]). The output buffer's major mode is 
~compilation-mode~ whose commands are surfaced by Casual Compile.
+Casual Compile (library: ~casual-compile~) is a user interface for the output 
of the ~compile~ command ([[info:emacs#Compilation]]). The output buffer's 
major mode is ~compilation-mode~ whose commands are surfaced by Casual Compile.
 
 In similar fashion, output of Emacs-wrapped Grep commands ([[info:emacs#Grep 
Searching]]) is also supported by Casual Compile. This is because the output of 
Grep commands use the major mode ~grep-mode~ which is derived from 
~compilation-mode~. 
 
@@ -62,6 +62,7 @@ Similar treatment for ~grep-mode-map~ can be done.
 
 ** Compile Usage
 #+CINDEX: Compile Usage
+#+VINDEX: casual-compile-tmenu
 
 [[file:images/casual-compile-screenshot.png]]
 
@@ -77,12 +78,12 @@ The following sections are offered in the menu:
 If the output window is from a Grep command, ~casual-compile-tmenu~ will 
adjust its labels accordingly as shown below.
 
 [[file:images/casual-compile-grep-screenshot.png]]
-#+TEXINFO: @subheading Compile Settings
+#+TEXINFO: @subsubheading Compile Settings
 #+VINDEX: casual-compile-settings-tmenu
 
 The menu ~casual-compile-settings-tmenu~ provides access to different 
~compilation-mode~ settings.
   
-#+TEXINFO: @subheading Compile Mode Unicode Symbol Support
+#+TEXINFO: @subsubheading Compile Mode Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Compile will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/css.org b/docs/css.org
index 8d77f0fb06..b779d6df80 100644
--- a/docs/css.org
+++ b/docs/css.org
@@ -3,9 +3,9 @@
 :CUSTOM_ID: css-top
 :END:
 #+CINDEX: CSS
-#+VINDEX: casual-css-tmenu
+#+VINDEX: casual-css
 
-Casual CSS is a user interface for ~css-mode~. 
+Casual CSS (library: ~casual-css~) is a user interface for ~css-mode~. 
 
 [[file:images/casual-css-screenshot.png]]
 Casual also has support for HTML editing ([[#html-top][HTML]]).
@@ -28,6 +28,7 @@ A different binding ({{{kbd(M-m)}}}) is used as 
~casual-css-tmenu~ is intended t
 
 ** CSS Usage
 #+CINDEX: CSS Usage
+#+VINDEX: casual-css-tmenu
 
 [[file:images/casual-css-screenshot.png]]
 
@@ -43,7 +44,7 @@ The following sections are offered in the menu:
   - “{{{kbd(h)}}} Highlight Line” toggles ~hl-line-mode~ to avoid interfering 
the display of color specifications.
   
 
-#+TEXINFO: @subheading CSS Settings
+#+TEXINFO: @subsubheading CSS Settings
 #+VINDEX: casual-css-settings-tmenu
 
 The menu ~casual-css-settings-tmenu~ provides access to different ~css-mode~ 
settings.
@@ -51,7 +52,7 @@ The menu ~casual-css-settings-tmenu~ provides access to 
different ~css-mode~ set
 [[file:images/casual-css-settings-screenshot.png]]
 
 
-#+TEXINFO: @subheading CSS Unicode Symbol Support
+#+TEXINFO: @subsubheading CSS Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
CSS will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/csv.org b/docs/csv.org
index c016f622b4..1a1c40f212 100644
--- a/docs/csv.org
+++ b/docs/csv.org
@@ -1,8 +1,8 @@
 * CSV
 #+CINDEX: CSV
-#+VINDEX: casual-csv-tmenu
+#+VINDEX: casual-csv
 
-Casual CSV is a user interface for ~csv-mode~, a mode for working with CSV 
files.
+Casual CSV (library: ~casual-csv~) is a user interface for ~csv-mode~, a mode 
for working with CSV files.
 
 [[file:images/casual-csv-edit-screenshot.png]]
 
@@ -19,6 +19,8 @@ In your initialization file, bind the Transient 
~casual-csv-tmenu~ to your key b
   (keymap-set csv-mode-map "M-m" #'casual-csv-tmenu)
 #+end_src
 
+The binding {{{kbd(M-m)}}} is intended to complement the binding 
{{{kbd(C-o)}}} used by [[#editkit-install][EditKit]].
+
 While not required, the following configuration is recommended for working 
with CSV files.
 
 #+BEGIN_SRC elisp :lexical no
@@ -36,7 +38,7 @@ While not required, the following configuration is 
recommended for working with
 
 ** CSV Usage
 #+CINDEX: CSV Usage
-
+#+VINDEX: casual-csv-tmenu
 [[file:images/casual-csv-edit-screenshot.png]]
 
 The following sections are offered in the menu:
@@ -49,7 +51,7 @@ The following sections are offered in the menu:
 - Fields :: Kill and yank commands dedicated for CSV mode. Note that these 
commands do /not/ use the default ~kill-ring~ and are marked with a bullet (•). 
This section is displayed only if the buffer is editable.
 - Misc :: Miscellaneous commands. Note if a region is selected containing 
multiple complete rows, the “{{{kbd(C)}}} Copy as Table” command will reformat 
the selected rows as an Org table and copy them in the ~kill-ring~ for 
subsequent pasting.
   
-#+TEXINFO: @subheading CVS View/Edit, Duplicate
+#+TEXINFO: @subsubheading CVS View/Edit, Duplicate
 
 If the buffer is in view (read-only) mode, then only relevant commands are 
displayed.
 
@@ -57,7 +59,7 @@ If the buffer is in view (read-only) mode, then only relevant 
commands are displ
 
 If the buffer is editable, a common to desire to instead work on a copy of the 
CSV file to avoid making unwanted changes. This can be done using the 
“{{{kbd(d)}}} Duplicate” command.
 
-#+TEXINFO: @subheading CSV Align
+#+TEXINFO: @subsubheading CSV Align
 #+VINDEX: casual-csv-align-tmenu
 
 The display of the CSV buffer can be controlled with the menu 
~casual-csv-align-tmenu~.
@@ -65,7 +67,7 @@ The display of the CSV buffer can be controlled with the menu 
~casual-csv-align-
 [[file:images/casual-csv-align-screenshot.png]]
 
 
-#+TEXINFO: @subheading CSV Settings
+#+TEXINFO: @subsubheading CSV Settings
 #+VINDEX: casual-csv-settings-tmenu
 
 The menu ~casual-csv-settings-tmenu~ provides access to different ~csv-mode~ 
settings.
@@ -73,7 +75,7 @@ The menu ~casual-csv-settings-tmenu~ provides access to 
different ~csv-mode~ set
 [[file:images/casual-csv-settings-screenshot.png]]
 
 
-#+TEXINFO: @subheading CSV Unicode Symbol Support
+#+TEXINFO: @subsubheading CSV Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
CSV will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/dired.org b/docs/dired.org
index c39c3df619..c5f4204087 100644
--- a/docs/dired.org
+++ b/docs/dired.org
@@ -1,7 +1,7 @@
 * Dired
 #+CINDEX: Dired
-#+VINDEX: casual-dired-tmenu
-Casual Dired provides a user interface for Dired ([[info:emacs#Dired]]), the 
Emacs file manager. Its top-level library is ~casual-dired~.
+#+VINDEX: casual-dired
+Casual Dired (library: ~casual-dired~) provides a user interface for Dired 
([[info:emacs#Dired]]), the Emacs file manager. Its top-level library is 
~casual-dired~.
 
 [[file:images/casual-dired-screenshot.png]]
 
@@ -56,7 +56,7 @@ Included is a standard keymap for Dired sorting commands 
(~casual-dired-sort-men
 #+end_src
 
 
-#+TEXINFO: @subheading Configuration
+#+TEXINFO: @subsubheading Configuration
 
 As Dired has been around for a long time, the different ways of configuring it 
are myriad. Described below is a configuration used by the author that is 
consistent with the bindings used in Casual Dired.
 
@@ -98,7 +98,7 @@ As Dired has been around for a long time, the different ways 
of configuring it a
   (keymap-set image-dired-thumbnail-mode-map "p" 
#'image-dired-display-previous)
 #+end_src
 
-#+TEXINFO: @subheading Dired Variables
+#+TEXINFO: @subsubheading Dired Variables
 
 The Casual Dired main menu offers “{{{kbd(\,)}}} Settings›” to customize a set 
of commonly used Dired variables. 
 
@@ -108,6 +108,7 @@ If you have GNU ~ls~ installed and configured, use the 
{{{kbd(l)}}} key to set t
 
 ** Dired Usage
 #+CINDEX: Dired Usage
+#+VINDEX: casual-dired-tmenu
 
 [[file:images/casual-dired-screenshot.png]]
 
diff --git a/docs/ediff.org b/docs/ediff.org
index f864630ed8..b33679d7fb 100644
--- a/docs/ediff.org
+++ b/docs/ediff.org
@@ -1,8 +1,8 @@
 * Ediff
 #+CINDEX: Ediff
-#+VINDEX: casual-ediff-tmenu
+#+VINDEX: casual-ediff
 
-Casual Ediff is a user interface for Ediff ([[info:ediff#Top][Ediff]]), a 
visual interface for the Unix diff and patch utilities. Casual Ediff strives to 
improve the usability of Ediff by simplifying the following workflows:
+Casual Ediff (library: ~casual-ediff~) is a user interface for Ediff 
([[info:ediff#Top][Ediff]]), a visual interface for the Unix diff and patch 
utilities. Casual Ediff strives to improve the usability of Ediff by 
simplifying the following workflows:
 
 - Comparing a modified and uncommitted version-controlled file with its most 
recent commit.
 - Resolving a merge conflicted file.
@@ -65,6 +65,7 @@ Casual Ediff recommends the following variables be set as 
follows:
 
 ** Ediff Usage
 #+CINDEX: Ediff Usage
+#+VINDEX: casual-ediff-tmenu
 
 [[file:images/casual-ediff-basic-screenshot.png]]
 
diff --git a/docs/editkit.org b/docs/editkit.org
index 25dd43c6e3..d899906753 100644
--- a/docs/editkit.org
+++ b/docs/editkit.org
@@ -3,9 +3,9 @@
 :CUSTOM_ID: editkit
 :END:
 #+CINDEX: EditKit
-#+VINDEX: casual-editkit-main-tmenu
+#+VINDEX: casual-editkit
 
-Casual EditKit provides a user interface for the numerous editing commands 
offered by Emacs. Its top-level library is ~casual-editkit~. As text editing is 
a core feature of Emacs, the menus provided here are intended to be made 
available in a global fashion for buffers that are intended to be edited.
+Casual EditKit (library: ~casual-editkit~) provides a user interface for the 
numerous editing commands offered by Emacs. Its top-level library is 
~casual-editkit~. As text editing is a core feature of Emacs, the menus 
provided here are intended to be made available in a global fashion for buffers 
that are intended to be edited.
 
 [[file:images/casual-editkit-main-screenshot.png]]
 
@@ -34,6 +34,7 @@ For motivated users desiring a bespoke solution, it is 
recommended that they use
 
 ** EditKit Usage
 #+CINDEX: EditKit Usage
+#+VINDEX: casual-editkit-main-tmenu
 
 [[file:images/casual-editkit-main-screenshot.png]]
 
@@ -74,7 +75,7 @@ The menu ~casual-editkit-edit-tmenu~ contains commands and 
sub-menus related to
 
 Depending on the buffer mode, text can be operated on with different 
granularity as words, sentences, paragraphs, balanced expressions, functions 
(defuns). The following sub-menus illustrate what operations can be done on the 
different text granularity.
 
-#+TEXINFO: @subheading Mark› (casual-editkit-mark-tmenu)
+#+TEXINFO: @subsubheading Mark› (casual-editkit-mark-tmenu)
 #+CINDEX: Mark commands
 #+VINDEX: casual-editkit-mark-tmenu
 
@@ -82,14 +83,14 @@ Text can be marked with different granularity with this 
menu. Note that the menu
 
 [[file:images/casual-editkit-mark-screenshot.png]]
 
-#+TEXINFO: @subheading Copy› (casual-editkit-copy-tmenu)
+#+TEXINFO: @subsubheading Copy› (casual-editkit-copy-tmenu)
 #+CINDEX: Copy commands
 #+VINDEX: casual-editkit-copy-tmenu
 Text can be copied with different granularity with this menu.
 
 [[file:images/casual-editkit-copy-screenshot.png]]
 
-#+TEXINFO: @subheading Kill (Cut)› (casual-editkit-kill-tmenu)
+#+TEXINFO: @subsubheading Kill (Cut)› (casual-editkit-kill-tmenu)
 #+CINDEX: Kill commands
 #+CINDEX: Cut commands
 #+VINDEX: casual-editkit-kill-tmenu
@@ -97,7 +98,7 @@ Text can be cut (killed) with different granularity with this 
menu.
 
 [[file:images/casual-editkit-kill-screenshot.png]]
 
-#+TEXINFO: @subheading Move› (casual-editkit-move-tmenu)
+#+TEXINFO: @subsubheading Move› (casual-editkit-move-tmenu)
 #+CINDEX: Move commands
 #+VINDEX: casual-editkit-move-tmenu
 #+VINDEX: casual-editkit-move-word-tmenu
@@ -114,35 +115,35 @@ If “{{{kbd(w)}}} Word›” is selected, then the following 
menu ~casual-editk
 
 Similar menus for moving a sentence (~casual-editkit-move-sentence-tmenu~) and 
balanced expression (~casual-editkit-move-sexp-tmenu~) are available.
 
-#+TEXINFO: @subheading Transpose› (casual-editkit-transpose-tmenu)
+#+TEXINFO: @subsubheading Transpose› (casual-editkit-transpose-tmenu)
 #+CINDEX: Transpose commands
 #+VINDEX: casual-editkit-transpose-tmenu
 Text can be transposed with different granularity with this menu. 
 
 [[file:images/casual-editkit-transpose-screenshot.png]]
 
-#+TEXINFO: @subheading Transform› (casual-editkit-transform-tmenu)
+#+TEXINFO: @subsubheading Transform› (casual-editkit-transform-tmenu)
 #+CINDEX: Transform commands
 #+VINDEX: casual-editkit-transform-tmenu
 Text can be transformed with different granularity with this menu. Supported 
transformations are capitalization, lower and upper casing of text.
 
 [[file:images/casual-editkit-transform-screenshot.png]]
 
-#+TEXINFO: @subheading Delete› (casual-editkit-delete-tmenu)
+#+TEXINFO: @subsubheading Delete› (casual-editkit-delete-tmenu)
 #+CINDEX: Delete commands
 #+VINDEX: casual-editkit-delete-tmenu
 Operations involving text deletion are included in this menu, including 
joining lines and zapping to a character.
 
 [[file:images/casual-editkit-delete-screenshot.png]]
 
-#+TEXINFO: @subheading Sort› (casual-editkit-sort-tmenu)
+#+TEXINFO: @subsubheading Sort› (casual-editkit-sort-tmenu)
 #+CINDEX: Sort commands
 #+VINDEX: casual-editkit-sort-tmenu
 Sorting operations on different sections of text are supported, as well as 
support for sorting off a field. Press ~?~ or ~C-h~ to get help for a specific 
command.
 
 [[file:images/casual-editkit-sort-screenshot.png]]
 
-#+TEXINFO: @subheading Reformat› (casual-editkit-reformat-tmenu)
+#+TEXINFO: @subsubheading Reformat› (casual-editkit-reformat-tmenu)
 #+CINDEX: Reformat commands
 #+VINDEX: casual-editkit-reformat-tmenu
 Commands to reformat text such as filling, centering, and repunctuating 
sentences are provided here. Press ~?~ or ~C-h~ to get help for a specific 
command.
@@ -150,7 +151,7 @@ Commands to reformat text such as filling, centering, and 
repunctuating sentence
 [[file:images/casual-editkit-reformat-screenshot.png]]
 
 
-#+TEXINFO: @subheading Rectangle› (casual-editkit-rectangle-tmenu)
+#+TEXINFO: @subsubheading Rectangle› (casual-editkit-rectangle-tmenu)
 #+CINDEX: Rectangle commands
 #+VINDEX: casual-editkit-rectangle-tmenu
 
@@ -173,7 +174,7 @@ Note that the section “Transpose” is only available if the 
package [[https:/
 Users wishing more direct access to this menu can bind 
~casual-editkit-windows-tmenu~ as shown in the [[#editkit-install][install 
section]].
 
 
-#+TEXINFO: @subheading Window Deletion
+#+TEXINFO: @subsubheading Window Deletion
 #+CINDEX: Window deletion
 #+VINDEX: casual-editkit-window-delete-tmenu
 
@@ -181,7 +182,7 @@ This menu provides support for deleting windows. Note the 
commands apply to othe
 
 [[file:images/casual-editkit-window-delete-screenshot.png]]
 
-#+TEXINFO: @subheading Window Menu Unicode Symbol Support
+#+TEXINFO: @subsubheading Window Menu Unicode Symbol Support
 
 If the variable ~casual-lib-use-unicode~ is set to ~t~, then Unicode symbols 
are used in the labels.
 
diff --git a/docs/elisp.org b/docs/elisp.org
index 2c86e37551..4c75d55483 100644
--- a/docs/elisp.org
+++ b/docs/elisp.org
@@ -1,8 +1,8 @@
 * Elisp
 #+CINDEX: Elisp
-#+VINDEX: casual-elisp-tmenu
+#+VINDEX: casual-elisp
 
-Casual Elisp is a user interface for ~emacs-lisp-mode~. It provides a menu for 
commands useful for Elisp development.
+Casual Elisp (library: ~casual-elisp~) is a user interface for 
~emacs-lisp-mode~. It provides a menu for commands useful for Elisp development.
 
 [[file:images/casual-elisp-screenshot.png]]
 
@@ -20,9 +20,11 @@ In your initialization file, bind the Transient 
~casual-elisp-tmenu~ to your key
 #+end_src
 
 
+The binding {{{kbd(M-m)}}} is intended to complement the binding 
{{{kbd(C-o)}}} used by [[#editkit-install][EditKit]].
+
 ** Elisp Usage
 #+CINDEX: Elisp Usage
-
+#+VINDEX: casual-elisp-tmenu
 [[file:images/casual-elisp-screenshot.png]]
 
 Invoke the Casual Elisp main menu ~casual-elisp-tmenu~ via the binding 
{{{kbd(M-m)}}} (or your binding of preference) in an Elisp window. Typically 
this is whenever an =.el= file is opened.
@@ -42,7 +44,7 @@ The following sections are offered in the menu:
 - Navigate :: Commands for Sexp (balanced expression) navigation.
 
 
-#+TEXINFO: @subheading Edebug Support
+#+TEXINFO: @subsubheading Edebug Support
 #+CINDEX: Edebug
 
 Using the command prefix {{{kbd(C-u)}}} when ~casual-elisp-tmenu~ is raised 
will change the “{{{kbd(d)}}} Defun✦” menu item to “{{{kbd(d)}}} Edebug” to 
support instrumenting a function for Edebug ([[info:elisp#Edebug]]).
@@ -50,14 +52,14 @@ Using the command prefix {{{kbd(C-u)}}} when 
~casual-elisp-tmenu~ is raised will
 [[file:images/casual-elisp-edebug-screenshot.png]]
 
 
-#+TEXINFO: @subheading Elisp Settings
+#+TEXINFO: @subsubheading Elisp Settings
 #+VINDEX: casual-elisp-settings-tmenu
 
 The menu ~casual-elisp-settings-tmenu~ provides access to different 
~emacs-lisp-mode~ settings.
 
 # TODO: Insert screenshot
 
-#+TEXINFO: @subheading Elisp Unicode Symbol Support
+#+TEXINFO: @subsubheading Elisp Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Elisp will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/eshell.org b/docs/eshell.org
index b677b9d01b..fd6962b064 100644
--- a/docs/eshell.org
+++ b/docs/eshell.org
@@ -1,8 +1,8 @@
 * Eshell
 #+CINDEX: Eshell
-#+VINDEX: casual-eshell-tmenu
+#+VINDEX: casual-eshell
 
-Casual Eshell is a user interface for ~Eshell~, a shell-like command 
interpreter implemented in Emacs Lisp.
+Casual Eshell (library: ~casual-eshell~) is a user interface for ~Eshell~, a 
shell-like command interpreter implemented in Emacs Lisp.
 
 [[file:images/casual-eshell-screenshot.png]]
 
@@ -22,6 +22,7 @@ In your initialization file, bind the Transient 
~casual-eshell-tmenu~ to your ke
 
 ** Eshell Usage
 #+CINDEX: Eshell Usage
+#+VINDEX: casual-eshell-tmenu
 
 Eshell can be invoked via ~M-x eshell~. In the Eshell window, press 
{{{kbd(C-o)}}} (or your binding of preference) to raise the menu 
~casual-eshell-tmenu~.
 
@@ -38,14 +39,14 @@ The following sections are offered in the menu:
   [[file:images/casual-eshell-process-screenshot.png]]
 
 
-#+TEXINFO: @subheading Eshell Settings
+#+TEXINFO: @subsubheading Eshell Settings
 #+VINDEX: casual-eshell-settings-tmenu
 
 The menu ~casual-eshell-settings-tmenu~ provides access to different 
~eshell-mode~ settings.
 
 # TODO: Insert screenshot
 
-#+TEXINFO: @subheading Eshell Info
+#+TEXINFO: @subsubheading Eshell Info
 #+VINDEX: casual-eshell-info-tmenu
 
 The menu ~casual-eshell-info-tmenu~ provides access to different ~eshell-mode~ 
documentation in its Info manual.
@@ -53,7 +54,7 @@ The menu ~casual-eshell-info-tmenu~ provides access to 
different ~eshell-mode~ d
 # TODO: Insert screenshot
 
   
-#+TEXINFO: @subheading Eshell Unicode Symbol Support
+#+TEXINFO: @subsubheading Eshell Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Eshell will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/eww.org b/docs/eww.org
index 6eddffa2ab..3f3f3f0d48 100644
--- a/docs/eww.org
+++ b/docs/eww.org
@@ -1,8 +1,8 @@
 * EWW
 #+CINDEX: EWW
-#+VINDEX: casual-eww-tmenu
+#+VINDEX: casual-eww
 
-Casual EWW is a user interface for Emacs Web Wowser ([[info:eww#Top]]), a web 
browser that runs inside Emacs.
+Casual EWW (library: ~casual-eww~) is a user interface for Emacs Web Wowser 
([[info:eww#Top]]), a web browser that runs inside Emacs.
 
 [[file:images/casual-eww-screenshot.png]]
 
@@ -50,6 +50,7 @@ While not mandatory, the following bindings can make the EWW 
keymaps consistent
 
 ** EWW Usage
 #+CINDEX: EWW Usage
+#+VINDEX: casual-eww-tmenu
 
 In an EWW window, invoke ~casual-eww-tmenu~ as shown below.
 
@@ -72,7 +73,7 @@ The following sections are offered in the menu:
   
 - EWW Bookmarks :: Commands associated with EWW bookmarks.
 
-#+TEXINFO: @subheading EWW Settings
+#+TEXINFO: @subsubheading EWW Settings
 #+VINDEX: casual-eww-settings-tmenu
 
 Customize common EWW settings from this menu. These settings can be persisted 
to be used across restarts of Emacs.
@@ -80,7 +81,7 @@ Customize common EWW settings from this menu. These settings 
can be persisted to
 [[file:images/casual-eww-settings-screenshot.png]]
 
 
-#+TEXINFO: @subheading EWW Display
+#+TEXINFO: @subsubheading EWW Display
 #+VINDEX: casual-eww-display-tmenu
 
 The menu ~casual-eww-display-tmenu~ provides commands to toggle different 
display attributes of a web page.
@@ -88,7 +89,7 @@ The menu ~casual-eww-display-tmenu~ provides commands to 
toggle different displa
 [[file:images/casual-eww-display-screenshot.png]]
 
 
-#+TEXINFO: @subheading EWW Bookmarks
+#+TEXINFO: @subsubheading EWW Bookmarks
 #+VINDEX: casual-eww-bookmarks-tmenu
 
 The menu ~casual-eww-bookmarks-tmenu~ provides commands for managing the EWW 
bookmark list.
@@ -97,7 +98,7 @@ The menu ~casual-eww-bookmarks-tmenu~ provides commands for 
managing the EWW boo
 
 Note that the EWW bookmarks list has a very limited feature set.
 
-#+TEXINFO: @subheading EWW Unicode Symbol Support
+#+TEXINFO: @subsubheading EWW Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
EWW will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/help.org b/docs/help.org
index a73ec6075a..7e80ee6372 100644
--- a/docs/help.org
+++ b/docs/help.org
@@ -1,8 +1,8 @@
 * Help
 #+CINDEX: Help
-#+VINDEX: casual-help-tmenu
+#+VINDEX: casual-help
 
-Casual Help is a user interface for ~help-mode~, a major mode for viewing help 
text and navigating references in it.
+Casual Help (library: ~casual-help~) is a user interface for ~help-mode~, a 
major mode for viewing help text and navigating references in it.
 
 [[file:images/casual-help-screenshot.png]]
 
@@ -45,6 +45,7 @@ The following keybindings are recommended to support 
consistent behavior between
 
 ** Help Usage
 #+CINDEX: Help Usage
+#+VINDEX: casual-help-tmenu
 
 After invoking help via a ~describe-~ command, invoke ~casual-help-tmenu~ 
using the binding ~C-o~ (or your binding of preference).
 
@@ -57,14 +58,14 @@ The following sections are offered in the menu:
 - Info :: If available, then open this help topic in [[file:info.org][Info]].
 - Source :: Show the Elisp source. If the help displayed is for a customizable 
variable, then show a customize menu item.
 
-#+TEXINFO: @subheading Help Mode Settings
+#+TEXINFO: @subsubheading Help Mode Settings
 #+VINDEX: casual-help-settings-tmenu
 
 The menu ~casual-help-settings-tmenu~ provides access to different ~help-mode~ 
settings.
 
 # TODO: Insert screenshot
   
-#+TEXINFO: @subheading Help Mode Unicode Symbol Support
+#+TEXINFO: @subsubheading Help Mode Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Help will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/html.org b/docs/html.org
index 7eec33e1e6..b0ae1dec81 100644
--- a/docs/html.org
+++ b/docs/html.org
@@ -2,11 +2,10 @@
 :PROPERTIES:
 :CUSTOM_ID: html-top
 :END:
-
 #+CINDEX: HTML
-#+VINDEX: casual-html-tmenu
+#+VINDEX: casual-html
 
-Casual HTML is a user interface for ~html-mode~ ([[info:emacs#HTML 
Mode][html-mode]]). 
+Casual HTML (library: ~casual-html~) is a user interface for ~html-mode~ 
([[info:emacs#HTML Mode][html-mode]]). 
 
 [[file:images/casual-html-screenshot.png]]
 Casual also has support for CSS editing ([[#css-top][CSS]]).
@@ -24,19 +23,19 @@ In your initialization file, bind the Transient 
~casual-html-tmenu~ to your key
   (keymap-set html-mode-map "M-m" #'casual-html-tmenu)
 #+end_src
 
-A different binding ({{{kbd(M-m)}}}) is used as ~casual-html-tmenu~ is 
intended to work alongside with [[#editkit-install][Casual EditKit]].
-
 It is convenient to also bind ~casual-html-tags-tmenu~ as well.
 
 #+begin_src elisp :lexical no
   (keymap-set html-mode-map "C-c m" #'casual-html-tags-tmenu)
 #+end_src
 
+The binding {{{kbd(M-m)}}} is intended to complement the binding 
{{{kbd(C-o)}}} used by [[#editkit-install][EditKit]].
+
 If HTML Tree-sitter support is enabled, use the keymap ~html-ts-mode-map~ in 
place of ~html-mode-map~.
 
 ** HTML Usage
 #+CINDEX: HTML Usage
-
+#+VINDEX: casual-html-tmenu
 [[file:images/casual-html-screenshot.png]]
 
 The following sections are offered in the menu:
@@ -49,21 +48,21 @@ The following sections are offered in the menu:
 Note that the item “{{{kbd(d)}}} Delete” (bound to ~sgml-delete-tag~) is not 
available when HTML Tree-sitter support is enabled.
 
 
-#+TEXINFO: @subheading HTML Tags
+#+TEXINFO: @subsubheading HTML Tags
 #+VINDEX: casual-html-tags-tmenu
 
 This menu provides support for HTML tag-related commands provided by 
~html-mode~.
 
 [[file:images/casual-html-tags-screenshot.png]]
 
-#+TEXINFO: @subheading HTML Settings
+#+TEXINFO: @subsubheading HTML Settings
 #+VINDEX: casual-html-settings-tmenu
 
 SGML/HTML mode related settings can be customized using the menu 
~casual-html-settings-tmenu~.
 
 [[file:images/casual-html-settings-screenshot.png]]
 
-#+TEXINFO: @subheading HTML Unicode Symbol Support
+#+TEXINFO: @subsubheading HTML Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
html will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/ibuffer.org b/docs/ibuffer.org
index f6f5b9930a..78c2d683fa 100644
--- a/docs/ibuffer.org
+++ b/docs/ibuffer.org
@@ -1,7 +1,8 @@
 * IBuffer
 #+CINDEX: IBuffer
-#+VINDEX: casual-ibuffer-tmenu
-Casual IBuffer provides a user interface to Emacs IBuffer ([[info:emacs#Buffer 
Menus][emacs#Buffer Menus]]), a mode designed for managing buffers. Its 
top-level library is ~casual-ibuffer~.
+#+VINDEX: casual-ibuffer
+
+Casual IBuffer (library: ~casual-ibuffer~) provides a user interface to Emacs 
IBuffer ([[info:emacs#Buffer Menus][emacs#Buffer Menus]]), a mode designed for 
managing buffers.
 
 IBuffer is a powerful tool for managing Emacs workflows. As Emacs is often 
compared to an operating system, through that lens one could compare IBuffer to 
being a task manager interface, managing instantiated buffers as opposed to 
processes.
 
@@ -51,6 +52,7 @@ While not necessary for Casual IBuffer, enabling 
~hl-line-mode~ and binding mous
 
 ** IBuffer Usage
 #+CINDEX: IBuffer Usage
+#+VINDEX: casual-ibuffer-tmenu
 
 [[file:images/casual-ibuffer-screenshot.png]]
 
diff --git a/docs/image.org b/docs/image.org
index db646e1d16..19b1dfcb0e 100644
--- a/docs/image.org
+++ b/docs/image.org
@@ -1,8 +1,8 @@
 * Image
 #+CINDEX: Image
-#+VINDEX: casual-image-tmenu
+#+VINDEX: casual-image
 
-Casual Image is a user interface for Image Mode ([[info:emacs#Image Mode]]). 
Its top level library is ~casual-image~.
+Casual Image (library: ~casual-image~) is a user interface for Image Mode 
([[info:emacs#Image Mode]]).
 
 Resizing an image is supported if ImageMagick 6 or 7 is installed. This 
interface deviates significantly with naming conventions used by ~image-mode~ 
to be more in alignment with conventional image editing tools.
 
@@ -24,6 +24,7 @@ The main menu for Casual Image is ~casual-image-tmenu~. Bind 
this menu in the ke
 
 ** Image Usage
 #+CINDEX: Image Usage
+#+VINDEX: casual-image-tmenu
 
 [[file:images/casual-image-main-screenshot.png]]
 
@@ -53,7 +54,7 @@ Note that if the image file has been modified, the resize 
interface will be disa
 
 [[file:images/casual-image-resize-screenshot.png]]
 
-#+TEXINFO: @subheading Image Resize Options
+#+TEXINFO: @subsubheading Image Resize Options
 - (g) Geometry - 
[[https://imagemagick.org/script/command-line-processing.php#geometry][ImageMagick
 specifier]] for the resize geometry.
 - (o) Output to another file - If enabled, then the user will be prompted for 
a different output file, else it will /irreversibly/ update the current image 
file.
 - (t) Type - Specify if /adaptive/ or /interpolative/ resizing should be used. 
If nothing is specified then /standard/ resizing is used.
diff --git a/docs/images/casual-org-block-src-screenshot.png 
b/docs/images/casual-org-block-src-screenshot.png
index f5a857de02..78243ff866 100644
Binary files a/docs/images/casual-org-block-src-screenshot.png and 
b/docs/images/casual-org-block-src-screenshot.png differ
diff --git a/docs/images/casual-org-body-screenshot.png 
b/docs/images/casual-org-body-screenshot.png
index c98bf11b7e..134ed11457 100644
Binary files a/docs/images/casual-org-body-screenshot.png and 
b/docs/images/casual-org-body-screenshot.png differ
diff --git a/docs/images/casual-org-checkbox-screenshot.png 
b/docs/images/casual-org-checkbox-screenshot.png
index 2441a32f4c..f42ea61577 100644
Binary files a/docs/images/casual-org-checkbox-screenshot.png and 
b/docs/images/casual-org-checkbox-screenshot.png differ
diff --git a/docs/images/casual-org-clock-log-screenshot.png 
b/docs/images/casual-org-clock-log-screenshot.png
new file mode 100644
index 0000000000..b2132a021f
Binary files /dev/null and b/docs/images/casual-org-clock-log-screenshot.png 
differ
diff --git a/docs/images/casual-org-drawer-screenshot.png 
b/docs/images/casual-org-drawer-screenshot.png
new file mode 100644
index 0000000000..d557c4c7fd
Binary files /dev/null and b/docs/images/casual-org-drawer-screenshot.png differ
diff --git a/docs/images/casual-org-headline-screenshot.png 
b/docs/images/casual-org-headline-screenshot.png
index 1d592ad055..9771988399 100644
Binary files a/docs/images/casual-org-headline-screenshot.png and 
b/docs/images/casual-org-headline-screenshot.png differ
diff --git a/docs/images/casual-org-in-block-src-screenshot.png 
b/docs/images/casual-org-in-block-src-screenshot.png
new file mode 100644
index 0000000000..c50b28d003
Binary files /dev/null and b/docs/images/casual-org-in-block-src-screenshot.png 
differ
diff --git a/docs/images/casual-org-item-screenshot.png 
b/docs/images/casual-org-item-screenshot.png
index 73fe57b522..22d11f4b48 100644
Binary files a/docs/images/casual-org-item-screenshot.png and 
b/docs/images/casual-org-item-screenshot.png differ
diff --git a/docs/images/casual-org-keyword-affiliate.png 
b/docs/images/casual-org-keyword-affiliate.png
new file mode 100644
index 0000000000..8691f5b7ec
Binary files /dev/null and b/docs/images/casual-org-keyword-affiliate.png differ
diff --git a/docs/images/casual-org-keyword-screenshot.png 
b/docs/images/casual-org-keyword-screenshot.png
index e3d054e25a..0b79c0e038 100644
Binary files a/docs/images/casual-org-keyword-screenshot.png and 
b/docs/images/casual-org-keyword-screenshot.png differ
diff --git a/docs/images/casual-org-property-drawer-screenshot.png 
b/docs/images/casual-org-property-drawer-screenshot.png
new file mode 100644
index 0000000000..f140b50993
Binary files /dev/null and 
b/docs/images/casual-org-property-drawer-screenshot.png differ
diff --git a/docs/images/casual-org-property-screenshot.png 
b/docs/images/casual-org-property-screenshot.png
new file mode 100644
index 0000000000..282d053e79
Binary files /dev/null and b/docs/images/casual-org-property-screenshot.png 
differ
diff --git a/docs/images/casual-org-table-fedit-screenshot.png 
b/docs/images/casual-org-table-fedit-screenshot.png
index 95b5693088..76fae3f31a 100644
Binary files a/docs/images/casual-org-table-fedit-screenshot.png and 
b/docs/images/casual-org-table-fedit-screenshot.png differ
diff --git a/docs/images/casual-org-table-layout-screenshot.png 
b/docs/images/casual-org-table-layout-screenshot.png
index 7fa2486e29..4fdb38eec3 100644
Binary files a/docs/images/casual-org-table-layout-screenshot.png and 
b/docs/images/casual-org-table-layout-screenshot.png differ
diff --git a/docs/images/casual-org-table-screenshot.png 
b/docs/images/casual-org-table-screenshot.png
index bbb3081cd6..b0f0788086 100644
Binary files a/docs/images/casual-org-table-screenshot.png and 
b/docs/images/casual-org-table-screenshot.png differ
diff --git a/docs/images/casual-org-tblfm-screenshot.png 
b/docs/images/casual-org-tblfm-screenshot.png
index b5c7fc5636..08366c2292 100644
Binary files a/docs/images/casual-org-tblfm-screenshot.png and 
b/docs/images/casual-org-tblfm-screenshot.png differ
diff --git a/docs/info.org b/docs/info.org
index b5cbf1fd1b..ea5d59668d 100644
--- a/docs/info.org
+++ b/docs/info.org
@@ -1,8 +1,8 @@
 * Info
 #+CINDEX: Info
-#+VINDEX: casual-info-tmenu
+#+VINDEX: casual-info
 
-Casual Info is a user interface for the Emacs Info Reader. Its top level 
library is ~casual-info~.
+Casual Info (library: ~casual-info~) is a user interface for the Emacs Info 
Reader.
 
 [[file:images/casual-info-screenshot.png]]
 
@@ -46,6 +46,7 @@ While not required, adding this configuration to your Emacs 
initialization file
 
 ** Info Usage
 #+CINDEX: Info Usage
+#+VINDEX: casual-info-tmenu
 
 [[file:images/casual-info-screenshot.png]]
 
@@ -67,7 +68,7 @@ The main menu for Casual Info is organized into the following 
sections:
 
 - Quick :: Miscellaneous commands for working with an Info document. Included 
are commands for bookmarks, copying the current node name, and cloning the 
buffer.
 
-#+TEXINFO: @subheading Info Unicode Symbol Support
+#+TEXINFO: @subsubheading Info Unicode Symbol Support
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Info will use Unicode symbols as appropriate in its menus. 
 
 For more info on using Unicode symbols, please refer to [[#ux-conventions][UX 
Conventions]].
diff --git a/docs/isearch.org b/docs/isearch.org
index 8dc769dcfd..edfefb4ad6 100644
--- a/docs/isearch.org
+++ b/docs/isearch.org
@@ -1,9 +1,9 @@
 * I-Search
 #+CINDEX: isearch
 #+CINDEX: I-Search
-#+VINDEX: casual-isearch-tmenu
+#+VINDEX: casual-isearch
 
-Casual I-Search is a user interface for Emacs Incremental Search 
([[info:emacs#Incremental Search][emacs#Incremental Search)]]. Its top level 
library is ~casual-isearch~.
+Casual I-Search (library: ~casual-isearch~) is a user interface for Emacs 
Incremental Search ([[info:emacs#Incremental Search][emacs#Incremental 
Search)]].
 
 [[file:images/casual-isearch-tmenu.png]]
 
@@ -22,6 +22,7 @@ The main menu for Casual I-Search is ~casual-isearch-tmenu~. 
Bind this menu to {
 
 ** I-Search Usage
 #+CINDEX: I-Search Usage
+#+VINDEX: casual-isearch-tmenu
 
 [[file:images/casual-isearch-tmenu.png]]
 
@@ -42,7 +43,7 @@ When in search mode (typically via the keybinding 
{{{kbd(C-s)}}} or {{{kbd(C-r)}
 Use {{{kbd(C-g)}}} to dismiss this Transient menu.
 
 
-#+TEXINFO: @subheading I-Search Settings
+#+TEXINFO: @subsubheading I-Search Settings
 #+VINDEX: casual-isearch-settings-tmenu
 
 The menu ~casual-isearch-settings-tmenu~ provides access to different I-Search 
settings.
@@ -50,7 +51,7 @@ The menu ~casual-isearch-settings-tmenu~ provides access to 
different I-Search s
 [[file:images/casual-isearch-settings-tmenu.png]]
 
 
-#+TEXINFO: @subheading I-Search Unicode Symbol Support
+#+TEXINFO: @subsubheading I-Search Unicode Symbol Support
 
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
I-Search will use Unicode symbols as appropriate in its menus.
 
diff --git a/docs/make-mode.org b/docs/make-mode.org
index 0c1de07a37..d606576819 100644
--- a/docs/make-mode.org
+++ b/docs/make-mode.org
@@ -1,11 +1,12 @@
 * Make
 #+CINDEX: Make
-#+VINDEX: casual-make-tmenu 
+#+VINDEX: casual-make
 
-Casual Make is a user interface for ~make-mode~, a mode tailored for editing a 
Makefile.
+Casual Make (library: ~casual-make~) is a user interface for ~make-mode~, a 
mode for editing a Makefile.
 
 [[file:images/casual-make-screenshot.png]]
 
+
 ** Make Install
 :PROPERTIES:
 :CUSTOM_ID: make-mode-install
@@ -18,8 +19,11 @@ In your initialization file, bind the Transient 
~casual-make-tmenu~ to your key
   (keymap-set makefile-mode-map "M-m" #'casual-make-tmenu)
 #+end_src
 
+The binding {{{kbd(M-m)}}} is intended to complement the binding 
{{{kbd(C-o)}}} used by [[#editkit-install][EditKit]].
+
 ** Make Usage
 #+CINDEX: Make Usage
+#+VINDEX: casual-make-tmenu
 
 [[file:images/casual-make-screenshot.png]]
 
diff --git a/docs/man.org b/docs/man.org
index bcc125baf9..0c3d50d690 100644
--- a/docs/man.org
+++ b/docs/man.org
@@ -1,8 +1,8 @@
 * Man
 #+CINDEX: Man
-#+VINDEX: casual-man-tmenu
+#+VINDEX: casual-man
 
-Casual Man is a user interface for ~Man-mode~, a Man page reader.
+Casual Man (library: ~casual-man~) is a user interface for ~Man-mode~, a Man 
page reader.
 
 [[file:images/casual-man-screenshot.png]]
 
@@ -46,6 +46,7 @@ The following keybindings are recommended to support 
consistent behavior between
 
 ** Man Usage
 #+CINDEX: Man Usage
+#+VINDEX: casual-man-tmenu
 
 [[file:images/casual-man-screenshot.png]]
 
@@ -59,12 +60,12 @@ The following sections are offered in the menu:
 - Link :: Jump to other Man pages referenced in the current Man page.
 - Page :: If the Man page reader is configured to display all manual pages for 
a given search key, navigation commands for multiple pages is provided.
 
-#+TEXINFO: @subheading Options Navigation
+#+TEXINFO: @subsubheading Options Navigation
 #+VINDEX: casual-man-occur-options
 
 ~casual-man-tmenu~ provides the menu item {{{kbd(o)}}} which runs the command 
~casual-man-occur-options~. This will invoke ~occur~ with a regexp that 
searches for command line options (for example, "--foo", "-a") that can be 
navigated via the ~occur~ interface.
 
-#+TEXINFO: @subheading Man Settings
+#+TEXINFO: @subsubheading Man Settings
 #+VINDEX: casual-man-settings-tmenu
 
 By default, the Man page reader will /not/ display all manual pages for given 
search key. This can be changed in the Settings menu 
~casual-man-settings-tmenu~ that can be invoked by pressing {{{kbd(\,)}}} in 
~casual-man-tmenu~. 
@@ -75,7 +76,7 @@ Press ‘s’ and configure ~Man-switches~ to have the value "-a" 
to get all man
 [[file:images/casual-man-settings.png]]
 
 
-#+TEXINFO: @subheading Man Unicode Symbol Support
+#+TEXINFO: @subsubheading Man Unicode Symbol Support
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Man will use Unicode symbols as appropriate in its menus.
 
 For more info on using Unicode symbols, please refer to [[#ux-conventions][UX 
Conventions]].
diff --git a/docs/org.org b/docs/org.org
index 94bf314200..a52b948275 100644
--- a/docs/org.org
+++ b/docs/org.org
@@ -1,8 +1,8 @@
 * Org
 #+CINDEX: Org
-#+VINDEX: casual-org-tmenu
+#+VINDEX: casual-org
 
-Casual Org is a keyboard-driven user interface for Org mode 
([[info:org#Top][org#Top]]). It endeavors to provide /context-sensitive/ 
assistance by providing structure-related commands based on where the point 
(cursor) is in an Org document.
+Casual Org (library: ~casual-org~) is a keyboard-driven user interface for Org 
mode ([[info:org#Top][org#Top]]). It endeavors to provide /context-sensitive/ 
assistance by providing structure-related commands based on where the point 
(cursor) is in an Org document.
 
 The Casual Org main menu (~casual-org-tmenu~) supports basic Emacs-style point 
navigation ([[info:emacs#Moving Point][emacs#Moving Point]]) in the buffer 
while the menu is still raised. As the point is moved, the menu will adjust to 
provide structure-related commands.
 
@@ -36,31 +36,51 @@ The binding {{{kbd(M-m)}}} is intended to complement the 
binding {{{kbd(C-o)}}}
 
 ** Org Usage
 #+CINDEX: Org Usage
+#+VINDEX: casual-org-tmenu
+
+Usage of Casual Org is primarily done through the Transient menu 
~casual-org-tmenu~. This menu dynamically adjusts with respect to where the 
point (cursor) is in an Org document's structure ([[info:org#Document 
Structure][org#Document Structure]]). For example, if the point is in a 
headline the menu displayed will be different from that of a table.
+
+Based on where the point is in an Org buffer, the following variants of 
~casual-org-tmenu~ are supported:
 
-The primary Org menu ~casual-org-tmenu~ dynamically configures itself with 
respect to the type of Org structure ([[info:org#Document 
Structure][org#Document Structure]]) the point is in. More detail on what menu 
variants are available for each structure are described in the links below.
+- Headline
+- Body
+- List
+- Table
+- Block
+- Keyword
+- Property Drawer
+- Property
+- Drawer
+- Clock Log
 
-Most of the menu variants have a common set of sections as shown below. These 
sections are:
+Many of the menu variants have a common set of command sections. These 
sections include:
 
 - Link :: Commands related to Org links and citation.
 - Timestamp :: Timestamp-related commands.
 - Clock :: Clock-related commands.
 - Display :: Display-related commands.
-- Navigation :: Navigation-related commands using basic Emacs-style key 
bindings.
 - Mark :: Structural-marking commands.
-- Org :: Miscellaneous Org commands.
+- Util ::  Org utility commands.
 
-Depending on the Org structure the point is in, some subset of the above 
sections are made available.
+Note that not all of these command sections are offered in all menu variants. 
This is because the design intent for Casual Org is to /constrain/ choice based 
on context.
 
-[[file:images/casual-org-body-screenshot.png]]
+#+TEXINFO: @subsubheading Navigation
+
+The menus in the Casual Org package (~casual-org~) are designed to allow for 
navigation of the current Org buffer using key bindings /not/ used by the 
Casual menu. This means that basic Emacs point (cursor) navigation not 
involving the arrow keys will be available ([[info:emacs#Moving 
Point][emacs#Moving Point]]). It is also possible to inadvertently insert text 
when a Casual Org menu is raised. Accidental changes can be undone using the 
“{{{kbd(U)}}} Undo” command.
+
+To use Casual Org effectively, it is recommended that the user is familiar 
with Org outline editing ([[info:org#Structure Editing][org#Structure 
Editing]]).
 
 *** Org Headline
 :PROPERTIES:
 :CUSTOM_ID: org-usage-headline
 :END:
 
+#+CINDEX: Org Headline
+
+
 [[file:images/casual-org-headline-screenshot.png]]
 
-When the point is in a headline ([[info:org#Headlines][org#Headlines]]) the 
following sections are displayed in ~casual-org-tmenu~:
+When the point is in a headline ([[info:org#Headlines][org#Headlines]]) the 
following command sections are displayed in ~casual-org-tmenu~:
 
 - Headline :: Commands that operate on a headline.
 - Add :: Commands that add a headline.
@@ -68,41 +88,60 @@ When the point is in a headline 
([[info:org#Headlines][org#Headlines]]) the foll
 - Date :: Date-related commands.
 - Priority :: Prioritization-related commands.
 - Misc :: Miscellaneous commands.
-  
-  
+
+
 *** Org Body
 :PROPERTIES:
 :CUSTOM_ID: org-usage-body
 :END:
+#+CINDEX: Org Body
 
-When the point is not in any Org structure it is considered "body" text and 
the following variant of ~casual-org-tmenu~ is shown.
+If the point is in a part of an Org document that is not considered structure, 
this menu variant of ~casual-org-tmenu~ is displayed.
 
 [[file:images/casual-org-body-screenshot.png]]
 
+Variant-specific command sections provided are:
+
+- To :: Commands to convert the Org element under point to either a heading or 
a list.
+- Add :: Commands to add either a block, drawer, or keyword.
+
+
 *** Org List
 :PROPERTIES:
 :CUSTOM_ID: org-usage-list
 :END:
+#+CINDEX: Org List
 
-When the point is in a list item ([[info:org#Plain Lists][org#Plain Lists]]) 
the following sections are displayed in ~casual-org-tmenu~:
+When the point is in a list item ([[info:org#Plain Lists][org#Plain Lists]]), 
the following list-related commands are displayed in ~casual-org-tmenu~:
+
+- {{{kbd(a)}}} Add :: Inserts a list item.
+- {{{kbd(b)}}} To Checkbox :: Converts a list item to a checkbox.
+- {{{kbd(c)}}} Cycle :: Changes the list style from a cycle of styles.
+- {{{kbd(s)}}} Sort :: Sorts the list given user-specified criteria.
+
+If the point is at the very start of the list, then then certain commands like 
“{{{kbd(b)}}} To Checkbox” will affect all items in the list.
 
-- Item :: List item related commands.
-- Checkbox :: Checkbox related commands.
-  
 [[file:images/casual-org-item-screenshot.png]]
 
 
-#+TEXINFO: @subheading Checkbox
+#+TEXINFO: @subsubheading Checkbox
 
-A list item can be converted to and from a checkbox using the “{{{kbd(b)}}} 
Toggle Checkbox” command. Note that the *Checkbox* section in the menu is 
enabled when the point is on a checkbox item.
+When an item is converted to a checkbox, the heading of the section changes 
from "Item" to "Checkbox". The following two commands are added:
+
+- {{{kbd(C-c)}}} Toggle :: Toggle the checkbox from an unchecked (~[ ]~) to a 
checked (~[X]~) state or vice-versa.
+- {{{kbd(-)}}} In Progress :: Change a checkbox from an unchecked (~[ ]~) to 
an in-progress (~[-]~) state.
+  Use the “{{{kbd(C-c)}}} Toggle” command to reset from the in-progress state.
 
 [[file:images/casual-org-checkbox-screenshot.png]]
 
+Use the “{{{kbd(b)}}} To Item” command to revert a checkbox back to a plain 
item.
+
 
 *** Org Table
 :PROPERTIES:
 :CUSTOM_ID: org-usage-table
 :END:
+#+CINDEX: Org Table
 
 When the point is in a table ([[info:org#Tables][org#Tables]]) the following 
sections are displayed in ~casual-org-tmenu~:
 
@@ -111,17 +150,17 @@ When the point is in a table 
([[info:org#Tables][org#Tables]]) the following sec
 - Region :: Region-specific editing commands.
 - Compute :: Table-specific compute commands.
 - Display :: Table-specific display commands.
-  
-  
+
+
 [[file:images/casual-org-table-screenshot.png]]
 
-#+TEXINFO: @subheading Table Formulas (TBLFM)
+#+TEXINFO: @subsubheading Table Formulas (TBLFM)
 
-If the point is on a ~TBLFM~ keyword ([[info:org#Field and range 
formulas][org#Field and range formulas]]), then the following menu variant of 
~casual-org-tmenu~ is displayed.
+If the point is on a ~TBLFM~ keyword ([[info:org#Field and range 
formulas][org#Field and range formulas]]), then the following menu variant of 
~casual-org-tmenu~ is shown.
 
 [[file:images/casual-org-tblfm-screenshot.png]]
 
-#+TEXINFO: @subheading Org Table Layout
+#+TEXINFO: @subsubheading Org Table Layout
 #+VINDEX: casual-org-table-structure-tmenu
 
 From the *Table* section in ~casual-org-tmenu~, selecting “{{{kbd(l)}}} 
Layout” will raise the table layout menu (~casual-org-table-structure-tmenu~). 
Use this menu to make structural edits to the table.
@@ -130,7 +169,7 @@ From the *Table* section in ~casual-org-tmenu~, selecting 
“{{{kbd(l)}}} Layout
 [[file:images/casual-org-table-layout-screenshot.png]]
 
 
-#+TEXINFO: @subheading Org Table Formula Edit
+#+TEXINFO: @subsubheading Org Table Formula Edit
 #+VINDEX: casual-org-table-fedit-tmenu
 
 When editing formulas for a table, the menu ~casual-org-table-fedit-tmenu~ can 
be raised to provide assistance with table references.
@@ -142,6 +181,7 @@ When editing formulas for a table, the menu 
~casual-org-table-fedit-tmenu~ can b
 :PROPERTIES:
 :CUSTOM_ID: org-usage-block
 :END:
+#+CINDEX: Org Block
 
 When the point is in a block ([[info:org#Blocks][org#Blocks]]) the following 
variant is displayed in ~casual-org-tmenu~:
 
@@ -156,28 +196,88 @@ Numerous different block types are recognized by 
~casual-org-tmenu~. They are:
 - Center (~#+BEGIN_CENTER~)
 - Verse (~#+BEGIN_VERSE~)
 
+#+TEXINFO: @subsubheading Org In Source Block
+
+If the point is within an Org source block, then the following menu variant is 
shown.
+
+
+[[file:images/casual-org-in-block-src-screenshot.png]]
+
+
 *** Org Keyword
 :PROPERTIES:
 :CUSTOM_ID: org-usage-keyword
 :END:
+#+CINDEX: Org Keyword
 
 When the point is in an Org keyword the following variant is displayed in 
~casual-org-tmenu~:
+
 [[file:images/casual-org-keyword-screenshot.png]]
 
 
+*** Org Property Drawer
+:PROPERTIES:
+:CUSTOM_ID: org-usage-property-drawer
+:END:
+#+CINDEX: Org Property Drawer
+
+This menu variant of ~casual-org-tmenu~ is shown when the point is on a 
property drawer ([[info:org#Properties and Columns][org#Properties and 
Columns]]).
+
+With this menu, one can add a property.
+
+[[file:images/casual-org-property-drawer-screenshot.png]]
+
+
+*** Org Property
+:PROPERTIES:
+:CUSTOM_ID: org-usage-property
+:END:
+#+CINDEX: Org Property
+
+This menu variant of ~casual-org-tmenu~ is shown when the point is on a 
property ([[info:org#Property Syntax][org#Property Syntax]]).
+
+With this menu, one can either add another property or perform an action on 
the current property.
+
+[[file:images/casual-org-property-screenshot.png]]
+
+
+*** Org Drawer
+:PROPERTIES:
+:CUSTOM_ID: org-usage-drawer
+:END:
+#+CINDEX: Org Drawer
+
+This menu variant of ~casual-org-tmenu~ is shown when the point is on a drawer 
[[info:org#Drawers][(org#Drawers]]).
+
+[[file:images/casual-org-drawer-screenshot.png]]
+
+
+*** Org Clock Log
+:PROPERTIES:
+:CUSTOM_ID: org-usage-clock-log
+:END:
+#+CINDEX: Org Clock Log
+
+This menu variant of ~casual-org-tmenu~ is shown when the point is on a clock 
log ([[info:org#Clocking commands][org#Clocking commands]]).
+
+[[file:images/casual-org-clock-log-screenshot.png]]
+Two command sections are provided:
+
+- Clock :: Clock in or out of the current item.
+- Timestamp :: If the point is on an Org timestamp, commands to adjust up or 
down a timestamp component (e.g. year, month, day) is provided.
+
+
 *** Org Settings
 :PROPERTIES:
 :CUSTOM_ID: org-usage-settings
 :END:
+#+CINDEX: Org Settings
 
 Use the Casual Org Settings menu to gain access to commonly customized Org 
settings.
 
 [[file:images/casual-org-settings-screenshot.png]]
 
-*** Org Unicode Symbol Support
-:PROPERTIES:
-:CUSTOM_ID: org-unicode-symbol-support
-:END:
 
-By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
org will use Unicode symbols as appropriate in its menus.
+#+TEXINFO: @subsubheading Org Unicode Symbol Support
 
+By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
Org will use Unicode symbols as appropriate in its menus.
diff --git a/docs/re-builder.org b/docs/re-builder.org
index 8b70460291..ac5dbc807a 100644
--- a/docs/re-builder.org
+++ b/docs/re-builder.org
@@ -1,8 +1,8 @@
 * RE-Builder
 #+CINDEX: RE-Builder
-#+VINDEX: casual-re-builder-tmenu
+#+VINDEX: casual-re-builder
 
-Casual RE-Builder is a user interface for RE-Builder. Its top level library is 
~casual-re-builder~.
+Casual RE-Builder (library: ~casual-re-builder~) is a user interface for 
RE-Builder.
 
 [[file:images/casual-re-builder-screenshot.png]]
 
@@ -22,6 +22,7 @@ The main menu for Casual RE-Builder is 
~casual-re-builder-tmenu~. Bind this menu
 
 ** RE-Builder Usage
 #+CINDEX: RE-Builder Usage
+#+VINDEX: casual-re-builder-tmenu
 
 [[file:images/casual-re-builder-screenshot.png]]
 
@@ -35,7 +36,7 @@ If multiple sub-expressions are in the regexp pattern, then 
they can be observed
 
 If the regexp pattern entered in "✳︎RE-Builder✳︎" finds multiple matches, a 
match can be navigated to via the  “{{{kbd(p)}}} Previous” and “{{{kbd(n)}}} 
Next” menu items.
 
-#+TEXINFO: @subheading Exporting the Regexp Pattern
+#+TEXINFO: @subsubheading Exporting the Regexp Pattern
 Once a desired regexp pattern is defined, there are two menu items that can be 
used to export (copy) it to the kill-ring for further use.
 
 - “{{{kbd(w)}}} Interactive” will copy the regexp to the kill-ring so that it 
can be yanked in an interactive command that requires a regexp (e.g. 
~query-replace-regexp~).
@@ -48,20 +49,20 @@ Once a desired regexp pattern is defined, there are two 
menu items that can be u
   - ❗️At current this is an experimental feature. The regexp exported from 
RE-Builder may not work. If so please report an 
[[https://github.com/kickingvegas/casual-re-builder/issues][issue]] describing 
the desired regexp and the target text.
   - This can only be used when the regexp syntax is set to ~string~.    
 
-#+TEXINFO: @subheading Regexp Syntax Help
+#+TEXINFO: @subsubheading Regexp Syntax Help
 The menu item {{{kbd(i)}}} will invoke the Info page for regexp syntax with 
respect to the current syntax type.
 
-#+TEXINFO: @subheading Quitting RE-Builder
+#+TEXINFO: @subsubheading Quitting RE-Builder
 Select “{{{kbd(q)}}} Quit” to exit the RE-Builder tool.
 
-#+TEXINFO: @subheading RE-Builder Settings
+#+TEXINFO: @subsubheading RE-Builder Settings
 #+VINDEX: casual-re-builder-settings-tmenu
 
 The menu ~casual-re-builder-settings-tmenu~ provides access to different 
RE-Builder settings.
 
 # TODO: Insert screenshot
 
-#+TEXINFO: @subheading RE-Builder Unicode Symbol Support
+#+TEXINFO: @subsubheading RE-Builder Unicode Symbol Support
 By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual 
RE-Builder will use Unicode symbols as appropriate in its menus.
 
 For more info on using Unicode symbols, please refer to [[#ux-conventions][UX 
Conventions]].
diff --git a/docs/timezone.org b/docs/timezone.org
index 64e4a4dfba..3f905712a4 100644
--- a/docs/timezone.org
+++ b/docs/timezone.org
@@ -34,7 +34,7 @@ The main menu for Casual Timezone (~casual-timezone-tmenu~) 
offers the following
 - ~casual-timezone-planner~ (menu binding: ~z~) will generate a table 
comparing hours between the local and a remote time zone on a certain date. 
Multiple remote time zones can be specified.
 
 
-#+TEXINFO: @subheading Timezone Planner
+#+TEXINFO: @subsubheading Timezone Planner
 #+VINDEX: casual-timezone-planner
 
 [[file:images/casual-timezone-planner-screenshot.png]]
diff --git a/lisp/casual-org-utils.el b/lisp/casual-org-utils.el
index e8d18e6c5e..53e9f3eac1 100644
--- a/lisp/casual-org-utils.el
+++ b/lisp/casual-org-utils.el
@@ -41,6 +41,12 @@
     (:end-of-line-table . '("⇥" "End"))
     (:beginning-of-field . '("⇤" "Begin"))
     (:end-of-field . '("⇥" "End"))
+    (:first-row . '("⤒ First" "First"))
+    (:last-row . '("⤓ Last" "Last"))
+    (:first-column . '("⇤ First" "First"))
+    (:last-column . '("⇥ Last" "Last"))
+    (:row . '("═" "Row"))
+    (:column . '("║" "Column"))
     (:beginning-of-buffer . '("⇱" "Beginning"))
     (:end-of-buffer . '("⇲" "End"))
     (:info-functions . '("ⓘ 𝑓(𝑥)" "Info f(x)"))
@@ -65,6 +71,16 @@ is non-nil, then the Unicode symbol is returned, otherwise a
 plain ASCII-range string."
   (casual-lib-unicode-db-get key casual-org-unicode-db))
 
+;; (defalias 'cc/insert-org-keyword
+;;   (kmacro "C-a # + M-x c o m p l e t e - s y m b o l <return>"))
+
+(defun casual-org-insert-keyword ()
+  "Insert Org keyword in buffer with completion."
+  (interactive)
+  (beginning-of-line)
+  (insert "#+")
+  (call-interactively #'complete-symbol))
+
 (defun casual-org-info ()
   "Open Info for Org manual based on context.
 
@@ -93,7 +109,27 @@ level of the Org manual is opened."
                (t "(org) Top"))))
     (info node)))
 
-;; TODO: not clear why this is need to get the Transient invocation to work.
+(defun casual-org-table-info-references ()
+  "Info for Org table references."
+  (interactive)
+  (info "(org) References" ))
+
+(defun casual-org-table-info-formula-syntax ()
+  "Info for Org table formula syntax."
+  (interactive)
+  (info "(org) Formula syntax for Calc"))
+
+(defun casual-org-table-info-calc-functions ()
+  "Info for Calc functions."
+  (interactive)
+  (info "(calc) Function Index"))
+
+(defun casual-org-table-info-width-alignment ()
+  "Info for Org table width and alignment."
+  (interactive)
+  (info "(org) Column Width and Alignment"))
+
+;; TODO: not clear why this is needed to get the Transient invocation to work.
 (defun casual-org-deactivate-mark ()
   "Deactivate mark using function `deactivate-mark'."
   (interactive)
@@ -117,6 +153,11 @@ which is done with `org-ctrl-c-ctrl-c'."
   (interactive)
   (org-ctrl-c-ctrl-c '(4)))
 
+(defun casual-org-insert-checkbox ()
+  "Insert Org checkbox using `org-insert-item'."
+  (interactive)
+  (org-insert-item t))
+
 
 ;; -------------------------------------------------------------------
 ;; Org Block & Table Functions
@@ -131,6 +172,65 @@ which is done with `org-ctrl-c-ctrl-c'."
   (org-end-of-line)
   (insert (format "\n#+NAME: %s" name)))
 
+(defun casual-org-table--insert-calc-formula (fn)
+  "Base insert formula for inserting a Calc function FN."
+  (let ((formula (format "%s()" fn)))
+    (insert formula)
+    (backward-char 1)))
+
+;; TODO: Maybe support region input
+(defun casual-org-table-insert-calc-sum ()
+  "Insert into buffer Calc vector sum ‘vsum()’ function."
+  (interactive)
+  (let ((fn "vsum"))
+    (casual-org-table--insert-calc-formula fn)))
+
+(defun casual-org-table-insert-calc-mean ()
+  "Insert into buffer Calc vector mean ‘vmean()’ function."
+  (interactive)
+  (let ((fn "vmean"))
+    (casual-org-table--insert-calc-formula fn)))
+
+(defun casual-org-table-insert-calc-max ()
+  "Insert into buffer Calc vector max ‘vmax()’ function."
+  (interactive)
+  (let ((fn "vmax"))
+    (casual-org-table--insert-calc-formula fn)))
+
+(defun casual-org-table-insert-calc-min ()
+  "Insert into buffer Calc vector min ‘vmin()’ function."
+  (interactive)
+  (let ((fn "vmin"))
+    (casual-org-table--insert-calc-formula fn)))
+
+(defun casual-org-table--insert-column-alignment (align)
+  "Base insert Org table alignment specifier ALIGN."
+  (let ((formula (format "<%s>" align)))
+    (insert formula)))
+
+(defun casual-org-table-insert-align-left ()
+  "Insert into buffer an Org table left alignment specifier ‘<l>’.
+
+This command should only be invoked in an empty table cell."
+  (interactive)
+  (let ((fn "l"))
+    (casual-org-table--insert-column-alignment fn)))
+
+(defun casual-org-table-insert-align-center ()
+  "Insert into buffer an Org table center alignment specifier ‘<c>’.
+
+This command should only be invoked in an empty table cell."
+  (interactive)
+  (let ((fn "c"))
+    (casual-org-table--insert-column-alignment fn)))
+
+(defun casual-org-table-insert-align-right ()
+  "Insert into buffer an Org table right alignment specifier ‘<r>’.
+
+This command should only be invoked in an empty table cell."
+  (interactive)
+  (let ((fn "r"))
+    (casual-org-table--insert-column-alignment fn)))
 
 
 ;; -------------------------------------------------------------------
@@ -466,15 +566,6 @@ See `casual-org-table--range' for more on RANGE object."
   (interactive)
   (insert "@I..@II"))
 
-(defun casual-org-table-info-references ()
-  "Info for Org table references."
-  (interactive) (info "(org) References" ))
-
-(defun casual-org-table-info-calc-functions ()
-  "Info for Calc functions."
-  (interactive)
-  (info "(calc) Function Index"))
-
 
 ;; -------------------------------------------------------------------
 ;; Transients
@@ -612,16 +703,28 @@ See `casual-org-table--range' for more on RANGE object."
    :description casual-org--item-description
 
    ["Item"
+    :description (lambda () (if (org-at-item-checkbox-p)
+                           "Checkbox"
+                         "Item"))
     :pad-keys t
     :inapt-if casual-lib-buffer-read-only-p
-    ("a" "Add" org-insert-item :transient t)
-    ("c" "Cycle" org-cycle-list-bullet :transient t)
-    ("b" "Toggle Checkbox" casual-org-toggle-list-to-checkbox :transient t)]
+    ("a" "Add" org-insert-item
+     :if-not org-at-item-checkbox-p
+     :transient t)
+    ("a" "Add" casual-org-insert-checkbox
+     :if org-at-item-checkbox-p
+     :transient t)
+    ("b" "Toggle Checkbox" casual-org-toggle-list-to-checkbox
+     :description (lambda () (if (org-at-item-checkbox-p)
+                            "To Item"
+                          "To Checkbox"))
+     :transient t)
+    ("c" "Cycle" org-cycle-list-bullet :transient t)]
 
-   ["Checkbox"
+   [""
     :pad-keys t
-    :inapt-if-not (lambda () (and (org-at-item-checkbox-p)
-                             (not (casual-lib-buffer-read-only-p))))
+    :if org-at-item-checkbox-p
+    :inapt-if casual-lib-buffer-read-only-p
     ("C-c" "Toggle" org-ctrl-c-ctrl-c
      :transient nil)
     ("-" "In Progress" casual-org-checkbox-in-progress :transient nil)]
@@ -671,8 +774,8 @@ See `casual-org-table--range' for more on RANGE object."
                       (org-in-src-block-p)
                       (org-at-property-p)))
     ("b" "Block…" org-insert-structure-template)
-    ("d" "Drawer…" org-insert-drawer)]
-
+    ("d" "Drawer…" org-insert-drawer)
+    ("k" "Keyword…" casual-org-insert-keyword)]
 
    ;; !!!: org-in-src-block-p
    [:if org-in-src-block-p
@@ -840,26 +943,60 @@ See `casual-org-table--range' for more on RANGE object."
    :inapt-if-not org-at-table-p
    ["Insert"
     :inapt-if casual-lib-buffer-read-only-p
-    ("r" "Row" org-table-insert-row :transient t)
-    ("c" "Column" org-table-insert-column :transient t)
+    ("r" "Row" org-table-insert-row
+     :description (lambda () (casual-org-unicode-get :row))
+     :transient t)
+    ("c" "Column" org-table-insert-column
+     :description (lambda () (casual-org-unicode-get :column))
+     :transient t)
     ("-" "H Line" org-table-insert-hline :transient t)]
 
    ["Delete"
     :inapt-if casual-lib-buffer-read-only-p
-    ("DEL" "Row" org-table-kill-row :transient t)
-    ("M-DEL" "Column" org-table-delete-column :transient t)]
+    ("DEL" "Row" org-table-kill-row
+     :description (lambda () (casual-org-unicode-get :row))
+     :transient t)
+    ("M-DEL" "Column" org-table-delete-column
+     :description (lambda () (casual-org-unicode-get :column))
+     :transient t)]
 
    ["Move"
     :inapt-if casual-lib-buffer-read-only-p
-    ("M-p" "Row ↑" org-table-move-row-up :transient t)
-    ("M-n" "Row ↓" org-table-move-row-down :transient t)]
+    ("M-b" "Column ←" org-table-move-column-left
+     :description (lambda () (format "%s %s"
+                                (casual-org-unicode-get :column)
+                                (casual-org-unicode-get :left)))
+     :transient t)]
 
    [""
     :inapt-if casual-lib-buffer-read-only-p
-    ("M-b" "Column ←" org-table-move-column-left :transient t)
-    ("M-f" "Column →" org-table-move-column-right :transient t)]]
+    ("M-p" "Row ↑" org-table-move-row-up
+     :description (lambda () (format "%s %s"
+                                (casual-org-unicode-get :row)
+                                (casual-org-unicode-get :up)))
+     :transient t)
+    ("M-n" "Row ↓" org-table-move-row-down
+     :description (lambda () (format "%s %s"
+                                (casual-org-unicode-get :row)
+                                (casual-org-unicode-get :down)))
+     :transient t)]
 
-  ;; TODO: Support <r> <c> <l> (org) Column Width and Alignment
+   [""
+    :inapt-if casual-lib-buffer-read-only-p
+    ("M-f" "Column →" org-table-move-column-right
+     :description (lambda () (format "%s %s"
+                                (casual-org-unicode-get :column)
+                                (casual-org-unicode-get :right)))
+     :transient t)]]
+
+  ["Align"
+   :class transient-row
+   ("al" "Left" casual-org-table-insert-align-left)
+   ("ac" "Center" casual-org-table-insert-align-center)
+   ("ar" "Right" casual-org-table-insert-align-right)
+   ("I" "Width & Alignment" casual-org-table-info-width-alignment
+    :description (lambda () (format "%s Width & Align"
+                               (casual-org-unicode-get :info))))]
 
   ["Field"
    [("M-a" "⇤" org-table-beginning-of-field :transient t)]
diff --git a/lisp/casual-org.el b/lisp/casual-org.el
index bc195be88f..f2d3853a9d 100644
--- a/lisp/casual-org.el
+++ b/lisp/casual-org.el
@@ -93,24 +93,33 @@ This menu provides commands for inserting formula 
references."
   ["Org Table Formula Edit"
    :pad-keys t
    ["Row"
-    ("@<" "First Row" casual-org-table-fedit-first-row-reference)
-    ("@>" "Last Row" casual-org-table-fedit-last-row-reference)]
+    ("@<" "⤒ First" casual-org-table-fedit-first-row-reference
+     :description (lambda () (casual-org-unicode-get :first-row)))
+    ("@>" "⤓ Last" casual-org-table-fedit-last-row-reference
+     :description (lambda () (casual-org-unicode-get :last-row)))]
 
    ["Column"
-    ("$<" "First" casual-org-table-fedit-first-column-reference)
-    ("$>" "Last" casual-org-table-fedit-last-column-reference)]
+    ("$<" "⇤ First" casual-org-table-fedit-first-column-reference
+     :description (lambda () (casual-org-unicode-get :first-column)))
+    ("$>" "⇥ Last" casual-org-table-fedit-last-column-reference
+     :description (lambda () (casual-org-unicode-get :last-column)))]
 
-   ["---"
+   ["H Line (-)"
     ("1" "First (@I)" casual-org-table-fedit-first-hline-reference)
     ("2" "Second (@II)" casual-org-table-fedit-second-hline-reference)
     ("r" "Range (@I..@II)" casual-org-table-fedit-hline-range-reference)]
 
-   ;; TODO: support format specifiers (org) Formula syntax for Calc
-
-   [""
-    ("I" "ⓘ References" casual-org-table-info-references
-     :description (lambda () (format "%s References"
-                                (casual-org-unicode-get :info))))]]
+   ["Vector"
+    ("s" "sum" casual-org-table-insert-calc-sum)
+    ("m" "mean" casual-org-table-insert-calc-mean)
+    ("a" "max" casual-org-table-insert-calc-max)
+    ("z" "min" casual-org-table-insert-calc-min)]
+
+   ["Info"
+    :description (lambda () (casual-org-unicode-get :info))
+    ("F" "Formula Syntax" casual-org-table-info-formula-syntax)
+    ("R" "References" casual-org-table-info-references)
+    ("f" "𝑓(𝑥)" casual-org-table-info-calc-functions)]]
 
   casual-lib-navigation-group-with-undo-and-return)
 
diff --git a/tests/test-casual-org-utils.el b/tests/test-casual-org-utils.el
index d22f60dda4..e1ed67107b 100644
--- a/tests/test-casual-org-utils.el
+++ b/tests/test-casual-org-utils.el
@@ -30,12 +30,67 @@
 (ert-deftest test-casual-org-unicode-get ()
   (let ((casual-lib-use-unicode nil))
     (should (string-equal (casual-org-unicode-get :previous) "Previous"))
-    (should (string-equal (casual-org-unicode-get :next) "Next")))
+    (should (string-equal (casual-org-unicode-get :next) "Next"))
+    (should (string-equal (casual-org-unicode-get :cycle) "Cycle"))
+    (should (string-equal (casual-org-unicode-get :shift-cycle) "S-Cycle"))
+    (should (string-equal (casual-org-unicode-get :up) "Up"))
+    (should (string-equal (casual-org-unicode-get :down) "Down"))
+    (should (string-equal (casual-org-unicode-get :left) "Left"))
+    (should (string-equal (casual-org-unicode-get :right) "Right"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-line) "BoL"))
+    (should (string-equal (casual-org-unicode-get :end-of-line) "EoL"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-line-table) 
"Begin"))
+    (should (string-equal (casual-org-unicode-get :end-of-line-table) "End"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-field) 
"Begin"))
+    (should (string-equal (casual-org-unicode-get :end-of-field) "End"))
+    (should (string-equal (casual-org-unicode-get :first-row) "First"))
+    (should (string-equal (casual-org-unicode-get :last-row) "Last"))
+    (should (string-equal (casual-org-unicode-get :first-column) "First"))
+    (should (string-equal (casual-org-unicode-get :last-column) "Last"))
+    (should (string-equal (casual-org-unicode-get :row) "Row"))
+    (should (string-equal (casual-org-unicode-get :column) "Column"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-buffer) 
"Beginning"))
+    (should (string-equal (casual-org-unicode-get :end-of-buffer) "End"))
+    (should (string-equal (casual-org-unicode-get :info-functions) "Info 
f(x)"))
+    (should (string-equal (casual-org-unicode-get :info) "Info"))
+    (should (string-equal (casual-org-unicode-get :clock-in) "In"))
+    (should (string-equal (casual-org-unicode-get :clock-out) "Out"))
+    (should (string-equal (casual-org-unicode-get :clock-report) "Report"))
+    (should (string-equal (casual-org-unicode-get :paragraph) "Paragraph"))
+    (should (string-equal (casual-org-unicode-get :update) "Update"))
+    (should (string-equal (casual-org-unicode-get :kill) "Close")))
 
   (let ((casual-lib-use-unicode t))
     (should (string-equal (casual-org-unicode-get :previous) "↑"))
     (should (string-equal (casual-org-unicode-get :next) "↓"))
-    ))
+    (should (string-equal (casual-org-unicode-get :cycle) "⥅"))
+    (should (string-equal (casual-org-unicode-get :shift-cycle) "⥆"))
+    (should (string-equal (casual-org-unicode-get :up) "↑"))
+    (should (string-equal (casual-org-unicode-get :down) "↓"))
+    (should (string-equal (casual-org-unicode-get :left) "←"))
+    (should (string-equal (casual-org-unicode-get :right) "→"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-line) "⇤"))
+    (should (string-equal (casual-org-unicode-get :end-of-line) "⇥"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-line-table) 
"⇤"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-field) "⇤"))
+    (should (string-equal (casual-org-unicode-get :end-of-line-table) "⇥"))
+    (should (string-equal (casual-org-unicode-get :end-of-field) "⇥"))
+    (should (string-equal (casual-org-unicode-get :first-row) "⤒ First"))
+    (should (string-equal (casual-org-unicode-get :last-row) "⤓ Last"))
+    (should (string-equal (casual-org-unicode-get :first-column) "⇤ First"))
+    (should (string-equal (casual-org-unicode-get :last-column) "⇥ Last"))
+    (should (string-equal (casual-org-unicode-get :row) "═"))
+    (should (string-equal (casual-org-unicode-get :column) "║"))
+    (should (string-equal (casual-org-unicode-get :beginning-of-buffer) "⇱"))
+    (should (string-equal (casual-org-unicode-get :end-of-buffer) "⇲"))
+    (should (string-equal (casual-org-unicode-get :info-functions) "ⓘ 𝑓(𝑥)"))
+    (should (string-equal (casual-org-unicode-get :info) "ⓘ"))
+    (should (string-equal (casual-org-unicode-get :clock-in) "🕘 in"))
+    (should (string-equal (casual-org-unicode-get :clock-out) "🕔 out"))
+    (should (string-equal (casual-org-unicode-get :clock-report) "🕒 🧾"))
+    (should (string-equal (casual-org-unicode-get :paragraph) "¶"))
+    (should (string-equal (casual-org-unicode-get :update) "⟳"))
+    (should (string-equal (casual-org-unicode-get :kill) "×"))))
 
 
 (provide 'test-casual-org-utils)
diff --git a/tests/test-casual-org.el b/tests/test-casual-org.el
index 47bee275dc..edf0eecaff 100644
--- a/tests/test-casual-org.el
+++ b/tests/test-casual-org.el
@@ -83,39 +83,38 @@
   (cl-letf ((casualt-mock #'org-insert-item)
             (casualt-mock #'org-cycle-list-bullet)
             (casualt-mock #'casual-org-toggle-list-to-checkbox)
-
-
             (casualt-mock #'casual-org-settings-tmenu)
             (casualt-mock #'casual-org-info)
             (casualt-mock #'transient-quit-all))
 
     (let ((test-vectors
-           '(
-             (:binding "a" :command org-insert-item)
-             (:binding "c" :command org-cycle-list-bullet)
+           '((:binding "a" :command org-insert-item)
              (:binding "b" :command casual-org-toggle-list-to-checkbox)
-
-
+             (:binding "c" :command org-cycle-list-bullet)
              (:binding "," :command casual-org-settings-tmenu)
              (:binding "I" :command casual-org-info)
-             (:binding "RET" :command transient-quit-all)
-             )))
+             (:binding "RET" :command transient-quit-all))))
 
       (casualt-suffix-testcase-runner test-vectors
                                       #'casual-org-tmenu
                                       '(lambda () (random 5000)))))
   (casualt-org-breakdown))
 
-
 (ert-deftest test-casual-org-tmenu-item-checkbox ()
   (casualt-org-setup)
   (search-forward "- [ ] task 1" nil t)
 
   (cl-letf ((casualt-mock #'org-ctrl-c-ctrl-c)
-            (casualt-mock #'casual-org-checkbox-in-progress))
+            (casualt-mock #'casual-org-checkbox-in-progress)
+            (casualt-mock #'casual-org-insert-checkbox)
+            (casualt-mock #'org-cycle-list-bullet)
+            (casualt-mock #'casual-org-toggle-list-to-checkbox))
 
     (let ((test-vectors
-           '((:binding "C-c" :command org-ctrl-c-ctrl-c)
+           '((:binding "a" :command casual-org-insert-checkbox)
+             (:binding "b" :command casual-org-toggle-list-to-checkbox)
+             (:binding "c" :command org-cycle-list-bullet)
+             (:binding "C-c" :command org-ctrl-c-ctrl-c)
              (:binding "-" :command casual-org-checkbox-in-progress))))
 
       (casualt-suffix-testcase-runner test-vectors
@@ -123,7 +122,6 @@
                                       '(lambda () (random 5000)))))
   (casualt-org-breakdown))
 
-
 (ert-deftest test-casual-org-tmenu-TBLFM ()
   (casualt-org-setup)
   (search-forward "#+TBLFM" nil t)
@@ -147,13 +145,16 @@
   (cl-letf ((casualt-mock #'org-ctrl-c-star)
             (casualt-mock #'org-ctrl-c-minus)
             (casualt-mock #'org-insert-structure-template)
-            (casualt-mock #'org-insert-drawer))
+            (casualt-mock #'org-insert-drawer)
+            (casualt-mock #'casual-org-insert-keyword)
+            )
 
     (let ((test-vectors
            '((:binding "*" :command org-ctrl-c-star)
              (:binding "-" :command org-ctrl-c-minus)
              (:binding "bc" :command org-insert-structure-template)
-             (:binding "d" :command org-insert-drawer))))
+             (:binding "d" :command org-insert-drawer)
+             (:binding "k" :command casual-org-insert-keyword))))
 
       (casualt-suffix-testcase-runner test-vectors
                                       #'casual-org-tmenu
@@ -450,7 +451,11 @@
             (casualt-mock #'org-table-move-row-up)
             (casualt-mock #'org-table-move-row-down)
             (casualt-mock #'org-table-move-column-left)
-            (casualt-mock #'org-table-move-column-right))
+            (casualt-mock #'org-table-move-column-right)
+            (casualt-mock #'casual-org-table-insert-align-left)
+            (casualt-mock #'casual-org-table-insert-align-center)
+            (casualt-mock #'casual-org-table-insert-align-right)
+            (casualt-mock #'casual-org-table-info-width-alignment))
 
     (let ((test-vectors
            '((:binding "M-a" :command org-table-beginning-of-field)
@@ -463,7 +468,11 @@
              (:binding "M-p" :command org-table-move-row-up)
              (:binding "M-n" :command org-table-move-row-down)
              (:binding "M-b" :command org-table-move-column-left)
-             (:binding "M-f" :command org-table-move-column-right))))
+             (:binding "M-f" :command org-table-move-column-right)
+             (:binding "al" :command casual-org-table-insert-align-left)
+             (:binding "ac" :command casual-org-table-insert-align-center)
+             (:binding "ar" :command casual-org-table-insert-align-right)
+             (:binding "I" :command casual-org-table-info-width-alignment))))
 
       (casualt-suffix-testcase-runner test-vectors
                                       #'casual-org-table-structure-tmenu
@@ -481,6 +490,12 @@
             (casualt-mock #'casual-org-table-fedit-second-hline-reference)
             (casualt-mock #'casual-org-table-fedit-hline-range-reference)
             (casualt-mock #'casual-org-table-info-references)
+            (casualt-mock #'casual-org-table-info-formula-syntax)
+            (casualt-mock #'casual-org-table-info-calc-functions)
+            (casualt-mock #'casual-org-table-insert-calc-sum)
+            (casualt-mock #'casual-org-table-insert-calc-mean)
+            (casualt-mock #'casual-org-table-insert-calc-max)
+            (casualt-mock #'casual-org-table-insert-calc-min)
             (casualt-mock #'undo)
             (casualt-mock #'transient-quit-all))
 
@@ -492,7 +507,13 @@
              (:binding "1" :command 
casual-org-table-fedit-first-hline-reference)
              (:binding "2" :command 
casual-org-table-fedit-second-hline-reference)
              (:binding "r" :command 
casual-org-table-fedit-hline-range-reference)
-             (:binding "I" :command casual-org-table-info-references)
+             (:binding "f" :command casual-org-table-info-calc-functions)
+             (:binding "s" :command casual-org-table-insert-calc-sum)
+             (:binding "m" :command casual-org-table-insert-calc-mean)
+             (:binding "a" :command casual-org-table-insert-calc-max)
+             (:binding "z" :command casual-org-table-insert-calc-min)
+             (:binding "R" :command casual-org-table-info-references)
+             (:binding "F" :command casual-org-table-info-formula-syntax)
              (:binding "U" :command undo :transient t)
              (:binding "RET" :command transient-quit-all))))
 
diff --git a/tests/test-casual-org.org b/tests/test-casual-org.org
index ae422969a4..42d563eb37 100644
--- a/tests/test-casual-org.org
+++ b/tests/test-casual-org.org
@@ -24,7 +24,7 @@ This is body text.
  | 4 |  12 |
  |---+-----|
  |   |  30 |
-#+TBLFM: $2=$1 *3::@6$2=vsum(@I..@II)
+#+TBLFM: $2=$1 * 3::@6$2=vsum(@I..@II)
 
 *** Item Test
 


Reply via email to