Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/zonuexe/emacs-presentation-mode

Display large character for presentation and live coding
https://github.com/zonuexe/emacs-presentation-mode

Last synced: 15 days ago
JSON representation

Display large character for presentation and live coding

Awesome Lists containing this project

README

        

* Emacs Presentation Mode
*Presentation mode* is a global minor mode to zoom characters. This mode applies the effect of ~text-scale-mode~ to all buffers.
This feature help you to present Emacs edit / operation to the audience in front of the screen.

[[./emacs-presentation.jpg]]

** How to use
1. Execute ~M-x presentation-mode~ to start the presentation.
2. Adjust scale size by ~C-x C-+~ or ~C-x C--~
See https://www.gnu.org/software/emacs/manual/html_node/emacs/Text-Scale.html
3. After the presentation, execute ~M-x presentation-mode~ again.
4. And then execute ~M-x presentation-mode~ again, the last scale will be reproduced.
5. If you want to persistize its size as the default size of presentation-mode
after restarting Emacs, set ~presentation-default-text-scale~.

** Notice
*** Not for "persistent font size change"
It is well known that how to change the font size of Emacs in GUI is difficult.
However, this mode is *NOT* intended for permanent font size change.
- https://www.gnu.org/software/emacs/manual/html_node/elisp/Parameter-Access.html
- https://www.gnu.org/software/emacs/manual/html_node/emacs/Frame-Parameters.html

** Customization
You can switch modes for screen decoration by defining hook for on/off.
#+BEGIN_SRC emacs-lisp
(defun my-presentation-on ()
(helm-mode -1)
;; (global-display-line-numbers-mode -1)
(ido-ubiquitous-mode 1)
(bind-key "M-x" #'smex))

(defun my-presentation-off ()
(ido-ubiquitous-mode -1)
;; (global-display-line-numbers-mode 1)
(helm-mode 1)
(bind-key "M-x" #'helm-smex))

(add-hook 'presentation-on-hook #'my-presentation-on)
(add-hook 'presentation-off-hook #'my-presentation-off)
#+END_SRC
Typically it is on/off of ~display-line-numbers-mode~ (or ~linum-mode~) /(although I do not use it)/.
I normally use [[https://emacs-helm.github.io/helm/][Helm]], but I think that [[https://www.gnu.org/software/emacs/manual/html_node/ido/index.html][IDO]] is more compact and easy to see during presentation.
** Difference from other methods
*** vs [[https://www.emacswiki.org/emacs/GlobalTextScaleMode][GlobalTextScaleMode]] (Emacs Wiki)
Although the content of this article is simple, it does not provide a way to recover buffers.
*** vs [[https://github.com/takaxp/moom][moom]]
~moom~ package has flexible frame control and font size change function.
Its font size change function is controlled by a mechanism different from ~presentation.el~.
*** vs [[https://github.com/purcell/default-text-scale][default-text-scale]]
~default-text-scale~ package is an implementation that replaces ~text-scale-mode~.
This package is probably not compatible with ~presentation.el~, but please use this whenever you want to synchronize font size at all times, not only for presentation use.
*** vs [[https://github.com/takaxp/org-tree-slide][Org Tree Slide]] and [[https://github.com/rlister/org-present][org-present]]
These packages are simple presentations using org-mode.
By using these with org-babel, it may be possible to perform live coding of arbitrary languages.

** Video
[[./emacs-presentation.gif]]