If Casual is installed using package-install, then you can use casual-init to setup support for Dired.
By default, casual-init will setup support for Dired via the hook function casual-dired-init which is included in the customizable variable casual-init-hook.
Use the command customize-variable on casual-init-hook to control inclusion of casual-dired-init via a checkbox interface.
Refer to the Simplified Install (Install) section for more detail on customizing casual-init.
Casual makes opinionated decisions on the keybindings used in its menus. Such opinions are extended from said menus to the keymap(s) of a particular mode. For Dired, this can be controlled via the customizable variable casual-dired-add-extra-keybindings (default t).
Users who want a more granular install of Casual modules can invoke the hook function of interest in their Emacs initialization file.
(casual-dired-init)
For users who have manually installed Casual outside of package-install, the following guidance is offered.
The primary interface for Casual Dired is the Transient menu casual-dired-tmenu. It is autoloaded ((elisp)Autoload) so if Casual is installed via package-install ((emacs)Package Installation) then casual-dired-tmenu can be invoked via execute-extended-command (M-x) without need for modifying your Emacs initialization file.
That said, Casual is designed with the intent of using a common (key)binding across multiple modes to lower cognitive load. This document uses the binding C-o for this purpose, but can be changed to user preference.
There are many ways to configure this binding. Shown below is a straightforward implementation:
(require 'casual-dired) ; load all dependencies including `dired' (keymap-set dired-mode-map "C-o" #'casual-dired-tmenu)
If lazy loading of the dired package is desired then try using eval-after-load:
(eval-after-load 'dired (keymap-set dired-mode-map "C-o" #'casual-dired-tmenu))
It is convenient to have both the sort-by (casual-dired-sort-by-tmenu) and search & replace (casual-dired-search-replace-tmenu) menus bound to s and / respectively.
(keymap-set dired-mode-map "s" #'casual-dired-sort-by-tmenu) (keymap-set dired-mode-map "/" #'casual-dired-search-replace-tmenu)
Users who frequently work with Emacs Lisp (Elisp) might consider binding a Dired-specific menu (casual-dired-elisp-tmenu) for it.
(keymap-set dired-mode-map "C-c e" #'casual-dired-elisp-tmenu)
To use Casual Dired, you should have GNU ls installed and configured so that the customizable variable dired-use-ls-dired uses it.
The Casual Dired Settings menu gives access to this via the menu key “l Use GNU ‘ls’ with –dired”.
The Casual Dired menus have several key bindings that differ from what is default in Dired. The following configuration below can be used to align Dired keybindings with menu keys used by Casual Dired.
(require 'dired) (require 'dired-x) (require 'wdired) (require 'hl-line) (require 'mouse) (require 'image-dired) (require 'image-dired-dired) (require 'casual-dired) (keymap-set dired-mode-map "C-o" #'casual-dired-tmenu) (keymap-set dired-mode-map "s" #'casual-dired-sort-by-tmenu) (keymap-set dired-mode-map "/" #'casual-dired-search-replace-tmenu) (keymap-set dired-mode-map "C-c e" #'casual-dired-elisp-tmenu) (add-hook 'dired-mode-hook 'hl-line-mode) (add-hook 'dired-mode-hook 'context-menu-mode) (add-hook 'dired-mode-hook 'dired-async-mode) (add-hook 'dired-mode-hook (lambda () (setq-local mouse-1-click-follows-link 'double))) (keymap-set dired-mode-map "M-o" #'dired-omit-mode) (keymap-set dired-mode-map "E" #'wdired-change-to-wdired-mode) (keymap-set dired-mode-map "M-n" #'dired-next-dirline) (keymap-set dired-mode-map "M-p" #'dired-prev-dirline) (keymap-set dired-mode-map "]" #'dired-next-subdir) (keymap-set dired-mode-map "[" #'dired-prev-subdir) (keymap-set dired-mode-map "M-]" #'dired-next-marked-file) (keymap-set dired-mode-map "M-[" #'dired-prev-marked-file) (keymap-set dired-mode-map "A-M-<mouse-1>" #'browse-url-of-dired-file) (keymap-set dired-mode-map "<backtab>" #'dired-prev-subdir) (keymap-set dired-mode-map "TAB" #'dired-next-subdir) (keymap-set dired-mode-map "M-j" #'dired-goto-subdir) (keymap-set dired-mode-map ";" #'image-dired-dired-toggle-marked-thumbs) (keymap-set image-dired-thumbnail-mode-map "n" #'image-dired-display-next) (keymap-set image-dired-thumbnail-mode-map "p" #'image-dired-display-previous)
Included is a standard keymap for Dired sorting commands (casual-dired-sort-menu) which can be included in a context menu for a mouse-driven workflow. An example of this is shown below:
(require 'casual-dired) (defun casual-dired-context-menu-addons (menu click) "Customize context MENU with CLICK event." (easy-menu-add-item menu nil casual-dired-sort-menu) menu) (add-hook 'context-menu-functions #'casual-dired-context-menu-addons) (add-hook 'dired-mode-hook 'context-menu-mode)
If you have Anju installed, you can use its support for casual-dired-sort-menu instead. More detail in Anju Dired Mode Context Menu.