Anju is a project to align mouse interactions in Emacs with contemporary (circa 2026) expectations. Effort towards this alignment is made in the following areas:
- Context-sensitive menus
- De-emphasis of middle mouse button usage (binding
<mouse-2>) - Support direct manipulation when possible
- Re-organization of the main menu bar
The features offered by Anju are opinionated, but avoids unconventional behavior. Anju aspires to bring a calmer mouse experience to Emacs.
Please note that all UI terminology in this document is Emacs-centric and differs from conventional GUI terminology. Refer to Frames (GNU Emacs Manual) for more detail on this.
Anju offers many enhancements to the mouse interactions provided by Emacs. These enhancements are organized to the following areas below:
- Mode Line
- Context Menu
- Main Menu
- Emacs Window Management
Some screenshots to demo Anju’s offerings are shown below.
On the mode line, left-click (mouse-1) on the buffer name to raise a pop-up menu containing a list of open buffers. The contents of this list is controlled by the customizable variable anju-buffer-list-filter-functions.
A right-click (mouse-3) on any blank space on the mode line will pop-up a window management menu.
From here, one can:
- Delete the window (×)
- Split the window horizontally (→)
- Split the window vertically (↓)
- If multiple windows are shown, swap the current window.
Shown below is an screenshot of a context menu when text is selected.
More detail on Anju’s features can be found in the Anju User Guide.
Anju requires Emacs 29.1+, Casual 2.13+, Markdown Mode 2.7+.Certain menus require more installed software:
- Anju Dired Support: GNU Coreutils (
ls) - Markdown import to Org: pandoc
Anju provides optional support for Magit 4.4+.
To install Anju, add the command anju-init to your Emacs initialization file.
(anju-init)This command will initialize context-menu-mode and reconfigure the following mouse menus and bindings:
- Legacy mouse bindings
- Mode line bindings
- Main menu
- Context menus for different modes
The anju-init command can be customized to preference. Read more on this in the Anju User Guide.
Work on Anju is on-going. Plans for future enhancements include:
- Support for more built-in modes
- Further changes to the main menu
Although much consideration on both the user and developer experience has been made, they are both subject to change in future releases if a better approach presents itself.
It costs money to make, enhance, and maintain Anju as ideologically free software. If you enjoy using Anju, please buy me a coffee to help support its development and maintenance.Thanks goes out to the contributors to mouse.el, whose work this package builds upon.
© 2026 Charles Y. Choi