From 71d3eeb60ad453325a65c8d053c07e03adff0a3d Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Wed, 8 Nov 2023 06:22:20 -0600 Subject: [PATCH] updates to make mini-echo instead of doom-modeline work --- README.org | 113 +++++++++++++++++++++++++++++++++++++++++++++++++---- init.el | 108 ++++++++++++++++++++++++++++++++++++++++++++++---- recentf | 2 +- 3 files changed, 208 insertions(+), 15 deletions(-) diff --git a/README.org b/README.org index c5de0f61..ff013178 100644 --- a/README.org +++ b/README.org @@ -200,6 +200,7 @@ Finally this is not part of the UI but let's do this early and start the server I will also add my personal scripts to emacs' PATH #+begin_src emacs-lisp (add-to-list 'exec-path "/home/chris/bin") +(add-to-list 'exec-path "/home/chris/.cargo/bin") #+end_src Let's also set org-mode as the scratch buffer mode @@ -281,7 +282,7 @@ Probably the prettiest and best modeline I've found. (use-package doom-modeline :ensure t :init - (doom-modeline-mode 1) + (doom-modeline-mode 0) (setq doom-modeline-height 25 doom-modeline-bar-width 3 all-the-icons-scale-factor 0.9 @@ -305,6 +306,32 @@ Probably the prettiest and best modeline I've found. nano-modeline-prefix 'icon)) #+end_src +#+begin_src emacs-lisp +(use-package mini-echo + :init + (mini-echo-mode 1) + (setq mini-echo-default-segments '(:long + ("evil" "major-mode" "buffer-name" "vcs" "buffer-position" "buffer-size" + "flymake" "process" "selection-info" "narrow" "macro" "profiler") + :short + ("buffer-name-short" "buffer-position" "process" "profiler" + "selection-info" "narrow" "macro")) + mini-echo-rules '((org-mode :long + (("evil" . 1) + ("major-mode" . 2) + ("buffer-name" . 3) + ("word-count" . 4)))) + mini-echo-right-padding 0 + mini-echo-buffer-status-style 'both) + :config + (defun chris/toggle-mode-lines () + "Switch between doom and mini-echo" + (interactive) + (if mini-echo-mode + (eval (mini-echo-mode 0) (doom-modeline-mode 1)) + (eval (doom-modeline-mode 0) (mini-echo-mode 1))))) +#+end_src + Again, doom is pretty and I have fallen in love with the snazzy theme and use it about anywhere I can. #+begin_src emacs-lisp (use-package doom-themes @@ -931,6 +958,43 @@ Part of this config includes some special capture templates for my work as a you ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) + (setq org-publish-project-alist + `(("home" + :base-directory "~/org/" + :base-extension "org" + :exclude ".*" + :include "index.org" + :recursive nil + :html-doctype "html5" + :html-html5-fancy t + :html-self-link-headlines t + :html-head "" + :publishing-directory "~/cochrun.xyz/" + :publishing-function org-html-publish-to-html) + ("posts" + :base-directory "~/org/" + :base-extension "org" + :exclude "bibles\\|.st.*\\|.templates" + :recursive t + :html-doctype "html5" + :html-html5-fancy t + :html-self-link-headlines t + :htmlized-source t + :html-head "" + :publishing-directory "~/cochrun.xyz/content/" + :publishing-function org-html-publish-to-html) + ("static" + :base-directory "~/org/" + :base-extension "css\\|txt\\|jpg\\|gif\\|png" + :exclude "bibles\\|.st.*\\|.templates" + :recursive t + :html-doctype "html5" + :html-html5-fancy t + :html-head "" + :publishing-directory "~/cochrun.xyz/content/" + :publishing-function org-publish-attachment) + ("cochrun.xyz" :components ("home" "posts" "static")))) + :general (chris/leader-keys :states 'normal @@ -1777,6 +1841,9 @@ Here we can add those functions to the proper keys in both normal and insert mod : +org-enable-auto-update-cookies-h *** Org Reveal +:PROPERTIES: +:ID: 20231024T143730.876619 +:END: Org reveal allows me to create beautiful and powerful slideshows using the incredible reveal.js system. Whilst I hate the web making so much into terrible things, I do really like reveal.js. It's honestly a much better picture of what javascript can do than apps like Facebook. So, how do we use this? Well, let's try like this. @@ -1789,7 +1856,34 @@ So, how do we use this? Well, let's try like this. org-re-reveal-transition "slide" org-re-reveal-mobile-app t org-re-reveal-width "90%") - ) + (add-to-list 'org-re-reveal-plugin-config '(audio-slideshow "RevealAudioSlideshow" "plugin/audio-slideshow/plugin.js")) + +(defun chris/org-re-reveal-export-to-html + (&optional async subtreep visible-only body-only ext-plist backend) + "Export current buffer to a reveal.js HTML file with a different name +so that it can exists within a static site showing the file as a document +as well as a presentation. +Optional ASYNC, SUBTREEP, VISIBLE-ONLY, BODY-ONLY, EXT-PLIST are passed +to `org-export-to-file'. +Optional BACKEND must be `re-reveal' or a backend derived from it." + (interactive) + (let* ((backend (or backend 're-reveal)) + (extension (concat "-presentation" "." org-html-extension)) + (client-ext (concat org-re-reveal-multiplex-client-ext extension)) + (file (org-export-output-file-name extension subtreep)) + (clientfile (org-export-output-file-name client-ext subtreep)) + (org-html-container-element "div")) + + (setq org-re-reveal-client-multiplex nil) + (org-export-to-file backend file + async subtreep visible-only body-only ext-plist) + + ;; Export the client HTML file if org-re-reveal-client-multiplex is set true + ;; by previous call to org-export-to-file + (if org-re-reveal-client-multiplex + (org-export-to-file backend clientfile + async subtreep visible-only body-only ext-plist)) + file))) #+end_src *** Ox-Spectacle @@ -3480,7 +3574,7 @@ Ledger mode :END: #+begin_src emacs-lisp (use-package mu4e - :load-path "~/.guix-home/profile/share/emacs/site-lisp/mu4e/" + ;; :load-path "~/.guix-home/profile/share/emacs/site-lisp/mu4e/" :init (setq mu4e-maildir "~/mail" @@ -3833,7 +3927,7 @@ Let's add our own eshell prompt. and set the password cache to a significantly h (lambda nil (let ((path (abbreviate-file-name (eshell/pwd)))) (concat - (if (or (string= system-name "archdesktop") (string= system-name "syl")) + (if (or (string= system-name "kaladin") (string= system-name "syl")) nil (format (propertize "\n(%s@%s)" 'face '(:foreground "#606580")) @@ -3845,7 +3939,7 @@ Let's add our own eshell prompt. and set the password cache to a significantly h (format (propertize "\n[ %s | %s@%s ]" 'face font-lock-comment-face) (propertize root 'face `(:inherit org-warning)) - (propertize after-root 'face `(:inherit org-level-1 :height 1.0)) + (propertize after-root 'face `(:inherit org-level-1 :height 0.7)) (propertize (or (magit-get-current-branch) (magit-get-current-tag)) 'face `(:inherit org-macro)))) (format (propertize "\n[%s]" 'face font-lock-comment-face) @@ -3872,7 +3966,7 @@ Let's add our own eshell prompt. and set the password cache to a significantly h (setq eshell-banner-message "") - (setq eshell-path-env "/usr/local/bin:/usr/bin:/opt/android-sdk/cmdline-tools/latest/bin") + (setq eshell-path-env "/usr/local/bin:/usr/bin:/opt/android-sdk/cmdline-tools/latest/bin:/home/chris/.cargo/bin") ;; this makes it so flutter works properly (setenv "ANDROID_SDK_ROOT" "/opt/android-sdk") @@ -4014,7 +4108,12 @@ Let's use pdf-tools for a lot better interaction with pdfs. (custom-set-variables '(pdf-misc-print-program-executable "lpr") '(pdf-misc-print-program-args (quote ("-o media=Letter" "-o fitplot" "-o sides=two-sided-long-edge")))) - (add-hook 'pdf-view-mode 'pdf-view-fit-page-to-window)) + (add-hook 'pdf-view-mode 'pdf-view-fit-page-to-window) + :general + (general-def + :states 'normal + :keymaps 'pdf-view-mode-map + "C-p" 'chris/print-multi-pdf)) #+end_src ** EPUB diff --git a/init.el b/init.el index 9544cb8a..b4b7bd78 100644 --- a/init.el +++ b/init.el @@ -87,6 +87,7 @@ ;; (add-to-list 'savehist-additional-variables kill-ring) (add-to-list 'exec-path "/home/chris/bin") +(add-to-list 'exec-path "/home/chris/.cargo/bin") (setq initial-major-mode 'org-mode) (setq initial-scratch-message "#+TITLE: SCRATCH\n#+DESCRIPTION: This buffer is for temporary things") @@ -114,7 +115,7 @@ (use-package doom-modeline :ensure t :init - (doom-modeline-mode 1) + (doom-modeline-mode 0) (setq doom-modeline-height 25 doom-modeline-bar-width 3 all-the-icons-scale-factor 0.9 @@ -129,6 +130,30 @@ (with-selected-frame frame (setq doom-modeline-icon t)))))) +(use-package mini-echo + :init + (mini-echo-mode 1) + (setq mini-echo-default-segments '(:long + ("evil" "major-mode" "buffer-name" "vcs" "buffer-position" "buffer-size" + "flymake" "process" "selection-info" "narrow" "macro" "profiler") + :short + ("buffer-name-short" "buffer-position" "process" "profiler" + "selection-info" "narrow" "macro")) + mini-echo-rules '((org-mode :long + (("evil" . 1) + ("major-mode" . 2) + ("buffer-name" . 3) + ("word-count" . 4)))) + mini-echo-right-padding 0 + mini-echo-buffer-status-style 'both) + :config + (defun chris/toggle-mode-lines () + "Switch between doom and mini-echo" + (interactive) + (if mini-echo-mode + (eval (mini-echo-mode 0) (doom-modeline-mode 1)) + (eval (doom-modeline-mode 0) (mini-echo-mode 1))))) + (use-package doom-themes :ensure t :init (load-theme 'doom-snazzy t)) @@ -642,6 +667,43 @@ much faster. The hope is to also make this a faster version of imenu." ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) + (setq org-publish-project-alist + `(("home" + :base-directory "~/org/" + :base-extension "org" + :exclude ".*" + :include "index.org" + :recursive nil + :html-doctype "html5" + :html-html5-fancy t + :html-self-link-headlines t + :html-head "" + :publishing-directory "~/cochrun.xyz/" + :publishing-function org-html-publish-to-html) + ("posts" + :base-directory "~/org/" + :base-extension "org" + :exclude "bibles\\|.st.*\\|.templates" + :recursive t + :html-doctype "html5" + :html-html5-fancy t + :html-self-link-headlines t + :htmlized-source t + :html-head "" + :publishing-directory "~/cochrun.xyz/content/" + :publishing-function org-html-publish-to-html) + ("static" + :base-directory "~/org/" + :base-extension "css\\|txt\\|jpg\\|gif\\|png" + :exclude "bibles\\|.st.*\\|.templates" + :recursive t + :html-doctype "html5" + :html-html5-fancy t + :html-head "" + :publishing-directory "~/cochrun.xyz/content/" + :publishing-function org-publish-attachment) + ("cochrun.xyz" :components ("home" "posts" "static")))) + :general (chris/leader-keys :states 'normal @@ -1428,7 +1490,34 @@ All my (performant) foldings needs are met between this and `org-show-subtree' org-re-reveal-transition "slide" org-re-reveal-mobile-app t org-re-reveal-width "90%") - ) + (add-to-list 'org-re-reveal-plugin-config '(audio-slideshow "RevealAudioSlideshow" "plugin/audio-slideshow/plugin.js")) + +(defun chris/org-re-reveal-export-to-html + (&optional async subtreep visible-only body-only ext-plist backend) + "Export current buffer to a reveal.js HTML file with a different name +so that it can exists within a static site showing the file as a document +as well as a presentation. +Optional ASYNC, SUBTREEP, VISIBLE-ONLY, BODY-ONLY, EXT-PLIST are passed +to `org-export-to-file'. +Optional BACKEND must be `re-reveal' or a backend derived from it." + (interactive) + (let* ((backend (or backend 're-reveal)) + (extension (concat "-presentation" "." org-html-extension)) + (client-ext (concat org-re-reveal-multiplex-client-ext extension)) + (file (org-export-output-file-name extension subtreep)) + (clientfile (org-export-output-file-name client-ext subtreep)) + (org-html-container-element "div")) + + (setq org-re-reveal-client-multiplex nil) + (org-export-to-file backend file + async subtreep visible-only body-only ext-plist) + + ;; Export the client HTML file if org-re-reveal-client-multiplex is set true + ;; by previous call to org-export-to-file + (if org-re-reveal-client-multiplex + (org-export-to-file backend clientfile + async subtreep visible-only body-only ext-plist)) + file))) (use-package jinx ;; :hook (emacs-startup . global-jinx-mode) @@ -2477,7 +2566,7 @@ targets." (use-package ledger-mode) (use-package mu4e - :load-path "~/.guix-home/profile/share/emacs/site-lisp/mu4e/" + ;; :load-path "~/.guix-home/profile/share/emacs/site-lisp/mu4e/" :init (setq mu4e-maildir "~/mail" @@ -2772,7 +2861,7 @@ targets." (lambda nil (let ((path (abbreviate-file-name (eshell/pwd)))) (concat - (if (or (string= system-name "archdesktop") (string= system-name "syl")) + (if (or (string= system-name "kaladin") (string= system-name "syl")) nil (format (propertize "\n(%s@%s)" 'face '(:foreground "#606580")) @@ -2784,7 +2873,7 @@ targets." (format (propertize "\n[ %s | %s@%s ]" 'face font-lock-comment-face) (propertize root 'face `(:inherit org-warning)) - (propertize after-root 'face `(:inherit org-level-1 :height 1.0)) + (propertize after-root 'face `(:inherit org-level-1 :height 0.7)) (propertize (or (magit-get-current-branch) (magit-get-current-tag)) 'face `(:inherit org-macro)))) (format (propertize "\n[%s]" 'face font-lock-comment-face) @@ -2811,7 +2900,7 @@ targets." (setq eshell-banner-message "") - (setq eshell-path-env "/usr/local/bin:/usr/bin:/opt/android-sdk/cmdline-tools/latest/bin") + (setq eshell-path-env "/usr/local/bin:/usr/bin:/opt/android-sdk/cmdline-tools/latest/bin:/home/chris/.cargo/bin") ;; this makes it so flutter works properly (setenv "ANDROID_SDK_ROOT" "/opt/android-sdk") @@ -2928,7 +3017,12 @@ targets." (custom-set-variables '(pdf-misc-print-program-executable "lpr") '(pdf-misc-print-program-args (quote ("-o media=Letter" "-o fitplot" "-o sides=two-sided-long-edge")))) - (add-hook 'pdf-view-mode 'pdf-view-fit-page-to-window)) + (add-hook 'pdf-view-mode 'pdf-view-fit-page-to-window) + :general + (general-def + :states 'normal + :keymaps 'pdf-view-mode-map + "C-p" 'chris/print-multi-pdf)) (use-package nov :mode ("\\.epub\\'" . nov-mode) diff --git a/recentf b/recentf index b657e935..011882d4 100644 --- a/recentf +++ b/recentf @@ -1,4 +1,4 @@ -;;; Automatically generated by ‘recentf’ on Tue Aug 15 12:25:24 2023. +;;; Automatically generated by ‘recentf’ on Wed Oct 25 05:57:27 2023. (setq recentf-list '(