An umbrella package to support a single installation point for all Casual user interfaces for Emacs. These user interfaces built with Transient are included via the Elisp library header Package-Requires
. Included user interfaces are:
- Casual I-Search - a Transient menu for I-Search.
- Casual Dired - a Transient user interface for the Dired file manager.
- Casual Info - a Transient user interface for Info.
- Casual Calc - a Transient user interface for Calc.
- Casual IBuffer - a Transient user interface for IBuffer.
- Casual RE-Builder - a Transient user interface for RE-Builder.
- Casual Bookmarks - a Transient user interface for the bookmark list.
- Casual Agenda - a Transient user interface for Org Agenda.
- Casual Avy - a Transient user interface for Avy.
- Casual Symbol Overlay - a Transient user interface for Symbol Overlay.
- Casual EditKit - a Transient user interface library for Emacs editing commands.
Casual Suite requires usage of
- Emacs ≥ 29.1
- Avy ≥ 0.5.0
- Symbol Overlay ≥ 4.2
- Casual Lib ≥ 1.1.0
Casual Suite has been verified with the following configuration.
- Emacs 29.4 (macOS 14.5, Ubuntu Linux 22.04.4 LTS)
As Casual Suite is new, we are looking for early adopters! Your feedback is welcome as it will likely impact Casual Suite’s evolution, particularly with regards to UI.
It is highly recommended that a deep reading of the install procedure for each user interface be done beforehand as each of them have their own recommended customizations to go alongside them. Such customizations ensure that you have the best experience with each user interface.
- Casual I-Search
- Casual Dired
- Casual Info
- Casual Calc
- Casual IBuffer
- Casual RE-Builder
- Casual Bookmarks
- Casual Agenda
- Casual Avy
- Casual Symbol Overlay
- Casual EditKit
Casual Suite requires Casual Lib which in turn requires a recent installation of Transient 0.6.0+ from either ELPA or MELPA. As an older version of Transient is built-in to the Emacs release, the package manager package.el
will not update this package unless the customizable variable package-install-upgrade-built-in
is set to t
. Set this variable and proceed with installing Casual Suite. Alternately invoking package-install
with a prefix (C-u
) will temporarily coerce the update of the built-in package. (example: C-u M-x package-install
casual-suite
)
As Transient is closely tied to Magit, installing the latest version of Magit (via non-GNU ELPA or MELPA) before installing Casual Suite can also pick up the latest version of Transient.
Impatient readers can use the following code to put into their Emacs initialization file to immediately use Casual Suite.
The following lines illustrate an installation of the Casual Suite with no customization. The key bindings shown below are suggested but can always be changed to preference.
(require 'casual-suite)
(keymap-set calc-mode-map "C-o" #'casual-calc-tmenu)
(keymap-set dired-mode-map "C-o" #'casual-dired-tmenu)
(keymap-set isearch-mode-map "C-o" #'casual-isearch-tmenu)
(keymap-set ibuffer-mode-map "C-o" #'casual-ibuffer-tmenu)
(keymap-set ibuffer-mode-map "F" #'casual-ibuffer-filter-tmenu)
(keymap-set ibuffer-mode-map "s" #'casual-ibuffer-sortby-tmenu)
(keymap-set Info-mode-map "C-o" #'casual-info-tmenu)
(keymap-set reb-mode-map "C-o" #'casual-re-builder-tmenu)
(keymap-set reb-lisp-mode-map "C-o" #'casual-re-builder-tmenu)
(keymap-set bookmark-bmenu-mode-map "C-o" #'casual-bookmarks-tmenu)
(keymap-set org-agenda-mode-map "C-o" #'casual-agenda-tmenu)
(keymap-global-set "M-g" #'casual-avy-tmenu)
(keymap-set symbol-overlay-map "C-o" #'casual-symbol-overlay-tmenu)
(keymap-global-set "C-o" #'casual-editkit-main-tmenu)
For users who prefer use-package
, it is highly recommended that casual-suite
be installed via package.el
or some equivalent package manager and not through use-package
. As casual-suite
is an umbrella install package, installing it with :ensure t
alongside individual configurations of the Casual user interfaces that also install using :ensure t
can lead to undesired order-dependent behavior.
The following minimal configuration code using use-package
for configuring each Casual user interface is shown below. It is provided as an example to quickly use Casual Suite. As mentioned before, it is recommended that a deep read of the install procedure for each user interface be used for guidance for configuration.
(use-package casual-calc
:ensure nil
:bind (:map calc-mode-map ("C-o" . casual-calc-tmenu)))
(use-package casual-info
:ensure nil
:bind (:map Info-mode-map ("C-o" . casual-info-tmenu)))
(use-package casual-dired
:ensure nil
:bind (:map dired-mode-map ("C-o" . casual-dired-tmenu)))
(use-package casual-avy
:ensure nil
:bind ("M-g" . casual-avy-tmenu))
(use-package casual-isearch
:ensure nil
:bind (:map isearch-mode-map ("C-o" . casual-isearch-tmenu)))
(use-package ibuffer
:hook (ibuffer-mode . ibuffer-auto-mode)
:defer t)
(use-package casual-ibuffer
:ensure nil
:bind (:map
ibuffer-mode-map
("C-o" . casual-ibuffer-tmenu)
("F" . casual-ibuffer-filter-tmenu)
("s" . casual-ibuffer-sortby-tmenu)
("<double-mouse-1>" . ibuffer-visit-buffer) ; optional
("M-<double-mouse-1>" . ibuffer-visit-buffer-other-window) ; optional
("{" . ibuffer-backwards-next-marked) ; optional
("}" . ibuffer-forward-next-marked) ; optional
("[" . ibuffer-backward-filter-group) ; optional
("]" . ibuffer-forward-filter-group) ; optional
("$" . ibuffer-toggle-filter-group)) ; optional
:after (ibuffer))
(use-package re-builder
:defer t)
(use-package casual-re-builder
:ensure nil
:bind (:map
reb-mode-map ("C-o" . casual-re-builder-tmenu)
:map
reb-lisp-mode-map ("C-o" . casual-re-builder-tmenu))
:after (re-builder))
(use-package bookmark
:ensure nil
:defer t)
(use-package casual-bookmarks
:ensure nil
:bind (:map bookmark-bmenu-mode-map
("C-o" . casual-bookmarks-tmenu)
("S" . casual-bookmarks-sortby-tmenu)
("J" . bookmark-jump))
:after (bookmark))
(use-package casual-agenda
:ensure nil
:bind (:map
org-agenda-mode-map
("C-o" . casual-agenda-tmenu)
("M-j" . org-agenda-clock-goto) ; optional
("J" . bookmark-jump))) ; optional
(use-package casual-editkit
:ensure nil
:bind (("C-o" . casual-editkit-main-tmenu)))
If you enjoy using Casual Suite, consider making a modest financial contribution to help support its development and maintenance.
A heartfelt thanks to all the contributors to Calc, Dired, Info, I-Search, Info, IBuffer, RE-Builder, Bookmarks, Avy, and Transient. Casual Suite would not be possible without your efforts.