From b84fbeb5d47d751043e30fe819483ce93b395e0c Mon Sep 17 00:00:00 2001 From: Howard Abrams Date: Fri, 1 Apr 2022 11:35:27 -0700 Subject: [PATCH] Fix the dashboard including a function to tell me what is available Minor tweaks to things that have bothered me. --- ha-display.org | 37 +++++++++++++++++++++++++++- ha-org.org | 8 ++++-- support/ha-org-graphviz-example.png | Bin 0 -> 21997 bytes 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 support/ha-org-graphviz-example.png diff --git a/ha-display.org b/ha-display.org index 5107d52..c733f1e 100644 --- a/ha-display.org +++ b/ha-display.org @@ -25,7 +25,17 @@ A literate programming file to configure the Emacs UI. ;;; Code: #+END_SRC * Dashboard -The [[https://github.com/emacs-dashboard/emacs-dashboard][emacs-dashboard]] project makes a nicer startup screen. +The [[https://github.com/emacs-dashboard/emacs-dashboard][emacs-dashboard]] project makes a nicer startup screen. It requires [[https://github.com/purcell/page-break-lines][page-break-lines]] (which is a nice project): +#+BEGIN_SRC emacs-lisp + (use-package page-break-lines) +#+END_SRC + +And let’s make this Emacs look more like a fancy IDE with [[https://github.com/domtronn/all-the-icons.el][all-the-icons]]: +#+BEGIN_SRC emacs-lisp + (use-package all-the-icons + :if (display-graphic-p)) +#+END_SRC + #+BEGIN_SRC emacs-lisp (use-package dashboard :init @@ -52,6 +62,31 @@ The [[https://github.com/emacs-dashboard/emacs-dashboard][emacs-dashboard]] proj (setq dashboard-footer-messages (list (ha--dad-joke)))) #+END_SRC + +I would appreciate seeing if my Emacs installation has the features that I expect: +#+BEGIN_SRC emacs-lisp + (defun ha-hamacs-features (&optional iconic) + "Simple display of features I'm most keen about. + If ICONIC is non-nil, return a string of icons." + (interactive) + (let* ((png-icon (all-the-icons-material "image")) + (svg-icon (all-the-icons-alltheicon "svg")) + (tls-icon (all-the-icons-faicon "expeditedssl")) + (json-icon (all-the-icons-fileicon "jsx")) + (mag-icon (all-the-icons-faicon "magic")) + (jit-icon (all-the-icons-faicon "cog")) + (results (s-join " " + (list (when (and (fboundp 'native-comp-available-p) + (native-comp-available-p)) (if iconic jit-icon "Native-Compilation")) + (when (image-type-available-p 'svg) (if iconic svg-icon "SVG")) + (when (image-type-available-p 'png) (if iconic png-icon "PNG")) + (when (gnutls-available-p) (if iconic tls-icon "TLS")) + (when (json-available-p) (if iconic json-icon "JSON")) + (when (fboundp 'imagemagick-types) (if iconic mag-icon "ImageMagick")))))) + (if (called-interactively-p) + (message "Enabled features: %s" results) + results))) +#+END_SRC * Mode Line Let's install and load some of packages from the [[https://github.com/hlissner/doom-emacs][Doom Emacs]] project, like [[https://github.com/seagle0128/doom-modeline][doom-modeline]] and maybe the themes: #+BEGIN_SRC emacs-lisp diff --git a/ha-org.org b/ha-org.org index c2c7109..1a78c39 100644 --- a/ha-org.org +++ b/ha-org.org @@ -302,8 +302,12 @@ The [[https://graphviz.org/][graphviz project]] can be written in org blocks, an #+END_SRC For example: -#+BEGIN_SRC dot :file ha-org-graphviz-example.png :exports file :results replace file +#+BEGIN_SRC dot :file support/ha-org-graphviz-example.png :exports file :results replace file digraph G { + graph [bgcolor=transparent]; + edge [color=white]; + node[style=filled]; + A -> B -> E; A -> D; A -> C; @@ -317,7 +321,7 @@ For example: #+ATTR_ORG: :width 400px #+RESULTS: -[[file:ha-org-graphviz-example.png]] +[[file:support/ha-org-graphviz-example.png]] *** Next Image When I create images or other artifacts that I consider /part/ of the org document, I want to have them based on the org file, but with a prepended number. Keeping track of what numbers are now free is difficult, so for a /default/ let's figure it out: diff --git a/support/ha-org-graphviz-example.png b/support/ha-org-graphviz-example.png new file mode 100644 index 0000000000000000000000000000000000000000..926302cba5bfce1f5d56feabdb5e7114c57d433c GIT binary patch literal 21997 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 literal 0 HcmV?d00001