Emacspeak HHG: Hidden Holiday Gems
1. Introduction
This is an Emacspeak-specific follow-on to my article Emacs: Hidden Holiday Gems. This article extends its predecessor by:
- Adding Emacspeak-specific details for each gem; the earlier article purposely avoided anything Emacspeak-specific.
- Where appropriate, I'll point out the importance of choosing a solution that is appropriate to the user, e.g., low-vision vs complete eyes-free use. Note that for the most part, Emacspeak is optimized for the latter case.
- As before, the goal is not to be exhaustive; — rather the goal is to be thought-provoking with respect to encouraging readers to discover their own optimal solution. The reference section at the end links to some of the follow-up discussion on the Emacspeak Mailing List.
- All topics covered here are already well-documented in the Emacs and Emacspeak manuals, and this article will not attempt to replace those.
2. Emacspeak: Hidden Holiday Gems
- Selective Display
- This expands and collapses content purely based on indentation. The human eye is very efficient at scanning down the margin and ignore content indented beyond a given level; selective-display provides the same affordance when you cannot see the display.
- Registers
- Easily becomes part of muscle-memory, especially when moving text around, duplicating content in multiple locations. For more complex use-cases, I use yasnippets, which is one of Emacs' many template libraries.
- Bookmarks
- Emacspeak builds heavily on Emacs' built-in
bookmarks to provide:
- Persistent bookmarks when reading EPub and Bookshare books.
- Audio Marks (AMarks) within org-mode buffers for marking locations in audio streams such as Podcasts.
- An Emacspeak browser for browsing saved eww-marks and a-marks.
- Together, the above make a very useful note-taking extension to org-mode.
- Tabulated Lists
Implements tabulated UIs and is speech-enabled by Emacspeak.
- Emacspeak augments it with additional keyboard navigation.
- This is leveraged in Emacs by a variety of
end-user packages including package.el and its asynchronous cousin paradox.el.
- It is also used to advantage by empv, a powerful
interface to the GNU MPv media player.
- AMarks mentioned in the previous item, this is my present means of listening to tech-talks on Youtube while taking notes using org-mode.
- Forms Mode
- Forms interface used by Emacspeak to browse BBC programs.
- Mark Ring
- Supported by default in Emacspeak but something I dont use much. Some of its affordances really shine in transient-mark-mode but that facility is somewhat counter to eyes-free use.
- Undo
- Both basic and advanced. However a long series of undo and redo commands as with tree-undo can get confusing quickly in eyes-free interaction.
- Dired
- I use dired-mode and its derivatives heavily:
- To browse the file-system as intended.
- With emacspeak-zoxide to rapidly move to far-away portions of the file system.
- With locate to search the file system.
- With command emacspeak-m-player-locate-media to find and play local media.
- With flx and fuzzy completion to provide a powerful interactive UI for finding and playing media such as Internet streams.
- - Writeable Dired
- Useful to:
- Consistently rename files, especially when confronted with filenames with embedded white space.
- Org-Mode
- This margin is too small to do it justice; see documentation for module emacspeak-org for all that Emacspeak does with org.
- Magit
- As with the previous item, see the associated Emacspeak documentation for emacspeak-magit.
- Forge
- I use forge for issue tracking, but often revert to old habits and use gh at the shell inside Emacs.
- EWW
- See the Emacspeak documentation for
emacspeak-eww. Highlights include:
- Dom filtering,
- XPath filtering,
- MPlayer and EMpv integration for playing online media,
- EPub and Bookshare books,
- And much, much more.
- Elfeed
- My chosen means of following RSS and Atom feeds.
- GNUS
- For mail, now that Usenet is history.
- I use gnus as an imap mail reader for GMail.
- Emacspeak implements the equivalent of GMail's search operators.
- I complement gnus with package vm for reading email delivered locally; I use fetchmail to fetch mail and procmail to sort mail into folders in the background.
- And finally I use notmuch to search locally saved email.
- Tramp
- Accessing and working in the Cloud:
- I use tramp to open remote files.
- Emacspeak wizard emacspeak-wizards-tramp-open-location to quickly open files on servers I access often.
- If you work in the Cloud, Emacspeak lets you SSH to your CloudTop and have Emacs running on the CloudTop speak on your local machine.
- The above can be done using a plain old XTerm with screen, dtach, or emacs –daemon providing a persistent Emacs session at the remote end.
- Alternatively, you can use wizard emacspeak-wizards-remote-frame to open a graphical frame on the remote machine.
- Eshell
- A Shell that is deeply integrated into Emacs. Fully speech-enabled by Emacspeak. Well-suited for running compile, grep and friends for starters.
- Comint
- This is the goto solution for software development in Emacspeak, be it Common Lisp or Python.
- Zip Archives
- One more reason you dont need to leave Emacs for a text console.
- Calculators
- From the simple to complex, we have it all!
- Simple calculations.
- Symbolic Algebra.
- Calc in embedded mode can directly replace a calculation with an answer.
- For even smarter work-flows, leverage org-mode with calc.
- you can even audio-format computations in Calc output as LaTeX using AsTeR.
3. References
- Mailing List Discussion.
- Emacs: Hidden Holiday Gems.
- Emacspeak Manual.
Emacspeak Blog Articles as a single page.
Note that the Emacspeak blog, the online manual etc., are all available locally in the Emacspeak Git checkout.