branch: elpa/casual
commit 35bc70e14aa3c2cd6d862d37a0181783682843b8
Merge: 7522e3bc76 783eb70203
Author: Charles Choi <[email protected]>
Commit: GitHub <[email protected]>
Merge pull request #274 from kickingvegas/271-tune-casual-user-guide-css
Tune Casual User Guide HTML CSS
---
docs/Makefile | 2 -
docs/casual.info | Bin 120784 -> 121770 bytes
docs/casual.org | 15 ++++-
docs/casual.texi | 23 +++++++-
docs/main.css | 147 +++++++++++++++++++++++++++++++++++++++++-------
docs/texi2any-config.pm | 7 +++
docs/timezone.org | 7 ++-
lisp/casual.el | 106 ++++++++++++----------------------
8 files changed, 210 insertions(+), 97 deletions(-)
diff --git a/docs/Makefile b/docs/Makefile
index c6e663344f..94002fa55f 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -27,8 +27,6 @@ gen-html: html html/images html/main.css sync-images
--output=html \
${PKG_NAME}.texi
-# --init-file=texinfo.cfg
-
html/images:
mkdir -p $@
diff --git a/docs/casual.info b/docs/casual.info
index 9ce83e8dce..bf5c1a41ea 100644
Binary files a/docs/casual.info and b/docs/casual.info differ
diff --git a/docs/casual.org b/docs/casual.org
index aadb56805a..eda4882d3e 100644
--- a/docs/casual.org
+++ b/docs/casual.org
@@ -16,7 +16,6 @@
#+TEXINFO_DIR_NAME: Casual
#+TEXINFO_DIR_DESC: Transient user interfaces for different Emacs modes.
#+TEXINFO_PRINTED_TITLE: Casual User Guide
-#+TEXINFO_FOOTER: https://buymeacoffee.com/kickingvegas
Version: {{{version}}}
@@ -30,6 +29,18 @@ Casual has no aims to be a mutually exclusive user
interface. All existing user
To learn more about the motivations and design considerations for Casual and
to see it at work, please watch the presentation
[[https://emacsconf.org/2024/talks/casual/][“Re-imagining the Emacs User
Experience with Casual Suite”]] from EmacsConf 2024.
+/Example Casual menu - Dired/
+
+[[file:images/casual-dired-screenshot.png]]
+
+/Example Casual menu - EditKit/
+
+[[file:images/casual-editkit-main-screenshot.png]]
+
+/Example Casual menu - Calc/
+
+[[file:images/casual-calc-tmenu.png]]
+
#+INCLUDE: "./sponsorship.org"
* Copying
@@ -126,7 +137,7 @@ Certain menus require more installed software:
* Install
#+CINDEX: Install
-Standard installation of the ~casual~ package is via MELPA distribution.
+Standard installation of the ~casual~ package is via
[[https://melpa.org/#/casual][MELPA distribution]].
Configuration of a particular Casual user interface is performed per mode. Go
to the *Install* section for a mode of interest below for guidance on its
configuration.
diff --git a/docs/casual.texi b/docs/casual.texi
index f3f12cb48b..4e2056051a 100644
--- a/docs/casual.texi
+++ b/docs/casual.texi
@@ -45,6 +45,18 @@ Casual has no aims to be a mutually exclusive user
interface. All existing user
To learn more about the motivations and design considerations for Casual and
to see it at work, please watch the presentation
@uref{https://emacsconf.org/2024/talks/casual/, “Re-imagining the Emacs User
Experience with Casual Suite”} from EmacsConf 2024.
+@emph{Example Casual menu - Dired}
+
+@image{images/casual-dired-screenshot,,,,png}
+
+@emph{Example Casual menu - EditKit}
+
+@image{images/casual-editkit-main-screenshot,,,,png}
+
+@emph{Example Casual menu - Calc}
+
+@image{images/casual-calc-tmenu,,,,png}
+
If you enjoy using Casual, consider making a modest financial contribution to
help support its development and maintenance.
@image{images/default-yellow,,,,png}
@@ -391,7 +403,7 @@ Casual Image: ImageMagick 6+
@cindex Install
-Standard installation of the @code{casual} package is via MELPA distribution.
+Standard installation of the @code{casual} package is via
@uref{https://melpa.org/#/casual, MELPA distribution}.
Configuration of a particular Casual user interface is performed per mode. Go
to the @strong{Install} section for a mode of interest below for guidance on
its configuration.
@@ -2872,6 +2884,9 @@ These commands are offered in the menu
@code{casual-timezone-tmenu} shown below.
@node Timezone Formatting
@subsubsection Timezone Formatting
+@vindex casual-timezone-datestamp-format
+@vindex casual-timezone-convert-datestamp-format
+
The formatted representation of time in Casual Timezone is set by the
following customizable variables:
@itemize
@@ -2901,6 +2916,10 @@ These variables can be customized via the Transient menu
@code{casual-timezone-s
@node Planner Configuration
@subsubsection Planner Configuration
+@vindex casual-timezone-working-hours-range
+@vindex casual-timezone-working-hour-glyph
+@vindex casual-timezone-planner-working-highlight
+
The following variables can control how working hours are displayed in the
timezone planner.
@itemize
@@ -2917,6 +2936,8 @@ These variables can be customized via the Transient menu
@code{casual-timezone-s
@node Zoneinfo Database
@subsubsection Zoneinfo Database
+@vindex casual-timezone-zone-info-database
+
The variable @code{casual-timezone-zone-info-database} is default set to the
path ``/usr/share/zoneinfo/tzdata.zi''. Customize this variable if the zoneinfo
database is located at a different path.
@node Timezone Unicode Symbol Support
diff --git a/docs/main.css b/docs/main.css
index f76e06c38d..d45c0c8fc3 100644
--- a/docs/main.css
+++ b/docs/main.css
@@ -1,40 +1,142 @@
/**
-
+ * Copyright 2025 Charles Y. Choi
*/
-body {
- margin: 0pt;
- padding: 0.5in;
- font-family: Optima, Helvetica, Arial;
- font-size: 12pt;
- //counter-reset: chapter;
+@media (prefers-color-scheme: dark) {
+ .body.adaptive {
+ background-color: #1C1C1C;
+ color: #f0f0f0;
+ }
+
+ .lisp-preformatted {
+ background-color: #2F2F2F;
+ color: #F0F0F0;
+ font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier
New", Courier;
+ font-size: 85%;
+ padding: 8pt;
+ }
+
+ a:link, a:visited {
+ color: #3287a8;
+ text-decoration: none;
+ }
+
+ a:hover, a:active {
+ color: #32a885;
+ text-decoration: underline;
+ }
+}
+
+@media (prefers-color-scheme: light) {
+ .body.adaptive {
+ background-color: #f9f9f9;
+ color: black;
+ }
+
+ .lisp-preformatted {
+ font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier
New", Courier;
+ font-size: 85%;
+ padding: 8pt;
+ }
+
+ a:link, a:visited {
+ color: blue;
+ text-decoration: none;
+ }
+
+ a:hover, a:active {
+ color: #1593F5;
+ text-decoration: underline;
+ }
+}
+
+@media only screen and (max-device-width: 500px) {
+ body {
+ margin: 0pt;
+ padding-top: 0.05in;
+ padding-left: 0.15in;
+ padding-right: 0.15in;
+ padding-bottom: 0.05in;
+ font-family: Optima, Constantia, 'Linux Biolinum O', "Linux Libertine
Display O", 'Times New Roman', Arial;
+ font-size: 14pt;
+ }
}
-/* h1:before { */
-/* content: counter(chapter) ". "; */
-/* counter-increment: chapter; */
-/* } */
+@media only screen and (width > 500px) {
+ body {
+ margin: 0pt;
+ padding-top: 0.25in;
+ padding-left: 0.5in;
+ padding-right: 0.5in;
+ padding-bottom: 0.25in;
+ font-family: Optima, Constantia, 'Linux Biolinum O', "Linux Libertine
Display O", 'Times New Roman', Arial;
+ font-size: 14pt;
+ }
+}
+
+p {
+ margin-top: 2pt;
+ margin-bottom: 10pt;
+ line-height: 1.4;
+}
+
+ul {
+ line-height: 1.4;
+ margin-top: 1pt;
+ margin-bottom: 10pt;
+ padding-left: 0.25in;
+}
+
+ol {
+ line-height: 1.4;
+ margin-top: 1pt;
+ margin-bottom: 10pt;
+ padding-left: 0.25in;
+}
h1 {
- // background-color: lightgrey;
- font-size: 16pt;
- //counter-reset: section1;
+ font-size: 130%;
+ margin-top: 30pt;
+ margin-bottom: 10pt;
+ line-height: 1.1;
}
h2 {
- font-size: 14pt;
+ font-size: 110%;
+ margin-top: 20pt;
+ margin-bottom: 10pt;
+ line-height: 1.1;
}
h3 {
- // font-style: oblique;
- font-size: 14pt;
+ font-size: 110%;
+ margin-top: 10pt;
+ margin-bottom: 10pt;
+ line-height: 1.1;
}
h4 {
- font-size: 14pt;
- //font-style: oblique;
+ font-size: 110%;
+ margin-top: 10pt;
+ margin-bottom: 10pt;
+ line-height: 1.1;
}
+h5 {
+ font-style: oblique;
+ margin-top: 0pt;
+ margin-bottom: 5pt;
+ line-height: 1.1;
+}
+
+h6 {
+ font-style: oblique;
+ margin-top: 1pt;
+ margin-bottom: 5pt;
+ line-height: 1.1;
+}
+
+
table {
border-style: solid;
border-width: 1px;
@@ -70,7 +172,12 @@ tfoot {
pre {
- background-color: #ECECEC
+ font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier
New", Courier;
+ background-color: #ECECEC
+}
+
+code {
+ font-family: Menlo, Consolas, "Noto Mono", monospace, Monaco, "Courier
New", Courier;
}
.break {
diff --git a/docs/texi2any-config.pm b/docs/texi2any-config.pm
new file mode 100644
index 0000000000..681f37b284
--- /dev/null
+++ b/docs/texi2any-config.pm
@@ -0,0 +1,7 @@
+# Copyright 2005 Charles Y. Choi
+#
+texinfo_set_from_init_file('BODY_ELEMENT_ATTRIBUTES', 'class="body adaptive"
lang="en"');
+# texinfo_set_from_init_file('VERTICAL_HEAD_NAVIGATION', 1);
+# texinfo_set_from_init_file('SHOW_TITLE', 1);
+# texinfo_set_from_init_file('USE_TITLEPAGE_FOR_TITLE', 1);
+# texinfo_set_from_init_file('USE_NODE_DIRECTIONS', 0);
diff --git a/docs/timezone.org b/docs/timezone.org
index e9a5aa697b..15b8a0018d 100644
--- a/docs/timezone.org
+++ b/docs/timezone.org
@@ -37,6 +37,8 @@ These commands are offered in the menu
~casual-timezone-tmenu~ shown below.
*** Timezone Formatting
+#+VINDEX: casual-timezone-datestamp-format
+#+VINDEX: casual-timezone-convert-datestamp-format
The formatted representation of time in Casual Timezone is set by the
following customizable variables:
@@ -56,6 +58,9 @@ The following table shows which format variable applies to
which command.
These variables can be customized via the Transient menu
~casual-timezone-settings-tmenu~.
*** Planner Configuration
+#+VINDEX: casual-timezone-working-hours-range
+#+VINDEX: casual-timezone-working-hour-glyph
+#+VINDEX: casual-timezone-planner-working-highlight
The following variables can control how working hours are displayed in the
timezone planner.
@@ -66,9 +71,9 @@ The following variables can control how working hours are
displayed in the timez
These variables can be customized via the Transient menu
~casual-timezone-settings-tmenu~.
*** Zoneinfo Database
+#+VINDEX: casual-timezone-zone-info-database
The variable ~casual-timezone-zone-info-database~ is default set to the path
"/usr/share/zoneinfo/tzdata.zi". Customize this variable if the zoneinfo
database is located at a different path.
-
*** Timezone Unicode Symbol Support
By enabling “{{{kbd(u)}}} Use Unicode Symbols” from the Settings menu, Casual
Timezone will use Unicode symbols as appropriate in its menus.
diff --git a/lisp/casual.el b/lisp/casual.el
index a1c62ff88a..74b659bd78 100644
--- a/lisp/casual.el
+++ b/lisp/casual.el
@@ -26,116 +26,80 @@
;; Casual is a collection of opinionated Transient-based keyboard driven user
;; interfaces for various built-in modes.
-;; INSTALLATION
-
;; Casual is organized into different user interface (UI) libraries tuned for
;; different modes. Different user interfaces for the following modes are
;; supported:
-;; - Agenda (Elisp library: `casual-agenda')
+;; - Agenda (Elisp library: `casual-agenda.el')
;; An interface for Org Agenda to help you plan your day.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/agenda.org'
-;; - Bookmarks (Elisp library: `casual-bookmarks')
+;; - Bookmarks (Elisp library: `casual-bookmarks.el')
;; An interface for editing your bookmark collection.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/bookmarks.org'
-;; - Calc (Elisp library: `casual-calc')
+;; - Calc (Elisp library: `casual-calc.el')
;; An interface for Emacs Calc, an embarrasingly feature-rich calculator.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/calc.org'
-;; - Calendar (Elisp library: `casual-calendar')
+;; - Calendar (Elisp library: `casual-calendar.el')
;; An interface for the built-in calendar and diary of Emacs.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/calendar.org'
-;; - Dired (Elisp library: `casual-dired')
+;; - Compile (Elisp library: `casual-compile.el')
+;; An interface for the output of the `compile' and Grep commands.
+
+;; - Dired (Elisp library: `casual-dired.el')
;; An interface for the venerable file manager Dired.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/dired.org'
-;; - EditKit (Elisp library: `casual-editkit')
+;; - EditKit (Elisp library: `casual-editkit.el')
;; A cornucopia of interfaces for the different editing features (e.g.
;; marking, copying, killing, duplicating, transforming, deleting) of Emacs.
;; Included are interfaces for rectangle, register, macro, and project
;; commands.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/editkit.org'
-;; - Eshell (Elisp library: `casual-eshell')
-;; A user interface for Eshell, a shell-like command interpreter implemented
-;; in Emacs Lisp.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/eshell.org'
+;; - Elisp (Elisp library: `casual-elisp.el')
+;; An interface for `emacs-lisp-mode'. It provides a menu for commands useful
+;; for Elisp development.
+
+;; - Eshell (Elisp library: `casual-eshell.el')
+;; An interface for Eshell, a shell-like command interpreter implemented in
+;; Emacs Lisp.
+
+;; - Help (Elisp library: `casual-help.el')
+;; An interface for `help-mode', a major mode for viewing help text and
+;; navigating references in it.
-;; - Image (Elisp library: `casual-image')
+;; - IBuffer (Elisp library: `casual-ibuffer.el')
+;; An interface to Emacs IBuffer, a mode designed for managing buffers.
+
+;; - Image (Elisp library: `casual-image.el')
;; An interface for viewing an image file with `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.
-;; URL `https://github.com/kickingvegas/casual/blob/main/docs/image.org'
-;; - Info (Elisp library: `casual-info')
+;; - Info (Elisp library: `casual-info.el')
;; An interface for the Info documentation system.
-;; URL: `https://github.com/kickingvegas/casual/blob/main/docs/info.org'
-;; - I-Search (Elisp library: `casual-isearch')
+;; - I-Search (Elisp library: `casual-isearch.el')
;; An interface for the many commands supported by I-Search.
-;; URL: `https://github.com/kickingvegas/casual/blob/main/docs/isearch.org'
-;; - Make (Elisp library: `casual-make')
+;; - Make (Elisp library: `casual-make.el')
;; An interface to `make-mode'.
-;; URL: `https://github.com/kickingvegas/casual/blob/main/docs/make-mode.org'
-;; - Man (Elisp library: `casual-man')
-;; An interface to `Man-mode'.
-;; URL: `https://github.com/kickingvegas/casual/blob/main/docs/man.org'
+;; - Man (Elisp library: `casual-man.el')
+;; An interface to `Man-mode', the Emacs Man page reader.
-;; - Re-Builder (Elisp library: `casual-re-builder')
+;; - Re-Builder (Elisp library: `casual-re-builder.el')
;; An interface for the Emacs regular expression tool.
-;; URL:
`https://github.com/kickingvegas/casual/blob/main/docs/re-builder.org'
-;; - Timezone (Elisp library: `casual-timezone')
+;; - Timezone (Elisp library: `casual-timezone.el')
;; A library of commands to work with different time zones.
-;; URL: `https://github.com/kickingvegas/casual/blob/main/docs/timezone.org'
+
+;; INSTALLATION
;; Users can choose any or all of the user interfaces made available by Casual
;; at their pleasure.
-;; UPGRADING to Casual 2.x
-
-;; If you have been using an earlier version 1.x of Casual, thank you. Please
-;; use the following guidance:
-
-;; * If you do not use `use-package' to configure Casual
-
-;; Before installing Casual, you should update all of your existing Casual
-;; packages. This is most easily done via the package menu buffer described in
-;; info node `(emacs) Package Menu'. After updating your packages, install the
-;; `casual' package.
-
-;; Migrate your existing Casual packages from 1.x to 2.x by running the
-;; following commands:
-
-;; M-x load-library casual
-;; M-x casual-upgrade-base-to-version-2
-
-;; Any Casual v1.x packages that have been superseded by this package will be
-;; uninstalled.
-
-;; While not necessary, it is recommended to run `package-autoremove' to purge
-;; any dangling dependent packages. Cautious readers can choose to audit any
-;; packages that are targeted to be removed.
-
-;; * If you have used `use-package' to configure Casual
-
-;; For version 2.x going forward, I (Charles Choi) have decided to not offer
any
-;; documented guidance on using `use-package' to configure Casual due my lack
of
-;; expertise in using it. I leave it to more skilled readers to determine how
to
-;; best use it (described in info node `(use-package) Top') for their
-;; configuration. Please also note that this is not a prohibition on using
-;; `use-package' with Casual. I am simply admitting that I don't know how to
use
-;; it.
-
-;; That said, if you have used :ensure t to install a superseded package, you
-;; must remove that configuration. After doing so, please follow the above
-;; instructions for installing `casual'.
+;; Configuration of a particular Casual user interface is performed per mode.
+;; For details, refer to the Info node `(casual) Install'.
;; Casual relies on the latest stable release of `transient' which may differ
;; from the version that is preinstalled as a built-in. By b default,
`package.el'