rmoo.el
Table of Contents
1. About
https://codeberg.org/ggxx/rmoo
- This fork was created to make rmoo.el compatible with the latest Emacs releases circa 2025.
- Just one function name had to be changed to fix things.
- This fork also declares its dependency on xterm-color in the standard way.
- When installed via
use-package, all dependencies should be automatically downloaded.- The :vc keyword (introduced in Emacs 30) lets us install from source code repositories.
2. Installation
2.1. Emacs 30+
(use-package rmoo :vc (:url "https://codeberg.org/ggxx/rmoo" :branch "master") :demand t :bind (("C-c C-r" . rmoo)) :init ;; rmoo uses plural hooks, so I can't use use-package's :hook which assumes singular. (add-hook 'rmoo-interactive-mode-hooks #'goto-address-mode) (add-hook 'rmoo-interactive-mode-hooks (lambda () (electric-pair-mode -1))) :config (require 'rmoo-autoload) (require 'moocode-mode) (require 'coldc-mode) (add-to-list 'auto-mode-alist '("\\.moo$" . moocode-mode)))
I'm also a fan of adding olivetti-mode into the mix.
(use-package olivetti :ensure t :config (setq-default olivetti-body-width 0.75)) ;; This is optional, but I think it looks nice. (add-hook 'rmoo-interactive-mode-hooks #'olivetti-mode)
2.2. Older Emacs
- git clone https://codeberg.org/ggxx/rmoo.git ~/.emacs.d/rmoo
- git clone https://github.com/atomontage/xterm-color.git ~/.emacs.d/xterm-color
- Add the following to your configuration file:
(add-to-list 'load-path "~/.emacs.d/xterm-color") (add-to-list 'load-path "~/.emacs.d/rmoo") (require 'rmoo-autoload) (require 'moocode-mode) (require 'coldc-mode) (global-set-key (kbd "C-c C-r") 'rmoo) (add-to-list 'auto-mode-alist '("\\.moo$" . moocode-mode)) (add-hook 'rmoo-interactive-mode-hooks (lambda () (linum-mode -1) ;; ... no line numbers (goto-address-mode t))) ;; ... clickable links
3. Fun
3.1. Desktop Notifications
If you would like to receive desktop notifications when people message you on LamdaMOO, and you have Emacs 30+, this Elisp is for you.
- Download rmoo-notifications.v2.el, and put it in the same directory as your init.el.
- Load it into Emacs.
- Set
my/rmoo-usersto your username. - Add
#'my/rmoo-notifyto'rmoo-handle-text-hooks.
Below is an example of something you could add to the :config section of the use-package for rmoo.
(load (locate-user-emacs-file "rmoo-notifications.v2.el")) ; Put this in the same directory as your init.el. (setq my/rmoo-users '("ggxx")) ; Replace "ggxx" with your own username. (add-hook 'rmoo-handle-text-hooks #'my/rmoo-notify)
3.2. Emacspeak
If you have Emacspeak installed, rmoo.el should automatically detect it and enable support. I have not tested this myself, but it looks promising.
(defun rmoo-setup () (mapcar 'load-library rmoo-libraries) (if (string= window-system "x") (mapcar 'load-library rmoo-x-libraries)) (if (featurep 'emacspeak) (load-library "emacspeak-rmoo")) (setq rmoo-setup-done t))
4. Lineage
- ggxx/rmoo (codeberg)
- lisdude/rmoo (github)
- kmroz/rmoo (github)
- toddsundsted/rmoo (github)
- Matthew Campbell
- Ron Tapia