Skip to content

Casual Suite - An umbrella package to support a single install point for all Casual user interfaces.

License

Notifications You must be signed in to change notification settings

kickingvegas/casual-suite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

https://melpa.org/packages/casual-suite-badge.svg

Casual Suite

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:

Requirements

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)

Asks

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.

Install

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.

A Note on Package Dependencies

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.

TL;DR

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

Sponsorship

If you enjoy using Casual Suite, consider making a modest financial contribution to help support its development and maintenance.

docs/images/default-yellow.png

Acknowledgments

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.

About

Casual Suite - An umbrella package to support a single install point for all Casual user interfaces.

Resources

License

Stars

Watchers

Forks