The main menu for Dired is casual-dired-tmenu. Bind this menu in the keymap dired-mode-map as follows in your initialization file.
(keymap-set dired-mode-map "C-o" #'casual-dired-tmenu)
In addition, 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.