From 6a9a4068a0460f6ff77d969a32a1d8c40f4a1cfc Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Thu, 23 Jan 2025 11:07:14 +0100 Subject: [PATCH] added org-present config + various fixes --- init.el | 1 + lisp/init-dired.el | 2 +- lisp/init-magit.el | 1 + lisp/init-matrix.el | 5 +- lisp/init-org-present.el | 103 +++++++++++++++++++++++++++++++++++++++ lisp/init-org.el | 4 ++ 6 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 lisp/init-org-present.el diff --git a/init.el b/init.el index b39a3f3..1c4a887 100644 --- a/init.el +++ b/init.el @@ -130,6 +130,7 @@ (require 'init-orgagenda) (require 'init-orgalist) (require 'init-orgtable) +(require 'init-org-present) (require 'init-outline) (require 'init-markdown) (require 'init-editorconfig) diff --git a/lisp/init-dired.el b/lisp/init-dired.el index 6d24a5d..e2590e3 100644 --- a/lisp/init-dired.el +++ b/lisp/init-dired.el @@ -193,7 +193,7 @@ files marked, always operate on current line in dired-mode" (eval-after-load 'dired '(progn ;; dired vars - (setq dired-listing-switches "-lt") + (setq dired-listing-switches "-lh") ;; stay with 1 dired buffer per instance ;; when changing directories diff --git a/lisp/init-magit.el b/lisp/init-magit.el index eaa4939..4bfe5e5 100644 --- a/lisp/init-magit.el +++ b/lisp/init-magit.el @@ -25,6 +25,7 @@ (call-interactively 'magit-status))) (setq magit-view-git-manual-method 'woman + magit-diff-refine-hunk t magit-commit-show-diff nil) (defalias 'git 'magit-status) diff --git a/lisp/init-matrix.el b/lisp/init-matrix.el index 101e27d..586613b 100644 --- a/lisp/init-matrix.el +++ b/lisp/init-matrix.el @@ -1,4 +1,7 @@ -(use-package ement) +(use-package ement + :custom + (ement-save-sessions t) + (ement-sessions-file "~/.emacs.d/cache/ement.el")) (provide 'init-matrix) ;;; init-matrix.el ends here diff --git a/lisp/init-org-present.el b/lisp/init-org-present.el new file mode 100644 index 0000000..790bddd --- /dev/null +++ b/lisp/init-org-present.el @@ -0,0 +1,103 @@ + +(use-package org-present + :config + (defun tvd/org-present-prepare-slide (buffer-name heading) + ;; Show only top-level headlines + (org-overview) + + ;; Unfold the current entry + (org-show-entry) + + ;; Show only direct subheadings of the slide but don't expand them + (org-show-children)) + + (defun tvd/org-present-start () + ;; Tweak font sizes + (setq-local face-remapping-alist '((default (:height 1.5) variable-pitch) + (header-line (:height 4.0) variable-pitch) + (org-document-title (:height 1.75) org-document-title) + (org-code (:height 1.55) org-code) + (org-verbatim (:height 1.55) org-verbatim) + (org-block (:height 1.25) org-block) + (org-block-begin-line (:height 0.7) org-block))) + + ;; Set a blank header line string to create blank space at the top + (setq header-line-format " ") + + ;; Display inline images automatically + (org-display-inline-images) + + (org-present-read-only) + + (setq word-wrap t + cursor-type nil + line-spacing 5) + + (hide-mode-line-mode +1) + + ;; Center the presentation and wrap lines + ;; (visual-fill-column-mode 1) + ;; (visual-line-mode 1) + + (set-fringe-mode 0) + (setq tvd/margin (/ (- (window-body-width) fill-column) 5)) + + (org-superstar-mode) + + (set-window-margins nil tvd/margin tvd/margin)) + + (defun tvd/org-present-end () + ;; Reset font customizations + (setq-local face-remapping-alist '((default variable-pitch default))) + + ;; Clear the header line string so that it isn't displayed + (setq header-line-format nil) + + ;; Stop displaying inline images + (org-remove-inline-images) + + (org-present-show-cursor) + (org-present-read-write) + + (setq word-wrap nil + cursor-type t + line-spacing nil) + (hide-mode-line-mode -1) + + ;; Stop centering the document + ;; (visual-fill-column-mode 0) + ;; (visual-line-mode 0) + + (set-fringe-mode 1) + (set-window-margins nil 0 0) + + (org-superstar-mode)) + + ;; Turn on variable pitch fonts in Org Mode buffers + (add-hook 'org-mode-hook 'variable-pitch-mode) + + ;; Register hooks with org-present + (add-hook 'org-present-mode-hook 'tvd/org-present-start) + (add-hook 'org-present-mode-quit-hook 'tvd/org-present-end) + (add-hook 'org-present-after-navigate-functions 'tvd/org-present-prepare-slide) + + (define-key org-present-mode-keymap (kbd "q") 'org-present-quit) + (define-key org-present-mode-keymap (kbd "") 'org-present-top) + (define-key org-present-mode-keymap (kbd "") 'org-present-end)) + +(use-package visual-fill-column + :config + (setq visual-fill-column-width 110 + visual-fill-column-center-text t) + ) + + + + + +(use-package hide-mode-line) + +(use-package org-superstar) + +(provide 'init-org-present) + diff --git a/lisp/init-org.el b/lisp/init-org.el index f3e9eda..c541348 100644 --- a/lisp/init-org.el +++ b/lisp/init-org.el @@ -213,6 +213,10 @@ down and unfold it, otherwise jump paragraph as usual." ;; no more ... at the end of a heading (setq org-ellipsis " ⤵") + ;; use mono spaced font in src blocks + (set-face-attribute 'org-block nil :inherit 'fixed-pitch) + (setq org-activate-links '(plain radio tag date footnote)) + ;; my own keywords, must be set globally, not catched correctly inside hook (setq org-todo-keywords '((sequence "TODO" "START" "WAIT" "|" "DONE" "CANCEL" "FAIL")))