Fixed my "image display" bug
Turns out the global-svg-tab-mode was turning off the ability to view all PNG files, so now I just hooked the mode to certain major modes, and we are back in business. Also cleaned up a few visual bugs.
This commit is contained in:
parent
4a7771b48a
commit
cf7b81c576
4 changed files with 110 additions and 45 deletions
|
@ -214,10 +214,11 @@ For this, I use the =request= package, which is /asynchronous/
|
||||||
** Initial Settings and UI
|
** Initial Settings and UI
|
||||||
Let's turn off the menu and other things:
|
Let's turn off the menu and other things:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
(when (display-graphic-p)
|
||||||
(tool-bar-mode -1)
|
(tool-bar-mode -1)
|
||||||
(scroll-bar-mode -1)
|
(scroll-bar-mode -1)
|
||||||
(horizontal-scroll-bar-mode -1)
|
(horizontal-scroll-bar-mode -1)
|
||||||
(setq visible-bell 1)
|
(setq visible-bell 1))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
I dislike forgetting to trim trailing white-space:
|
I dislike forgetting to trim trailing white-space:
|
||||||
|
|
||||||
|
|
|
@ -746,7 +746,9 @@ To use, read a message and save a link to it with ~SPC o l~. Next, in an org doc
|
||||||
* Display Configuration
|
* Display Configuration
|
||||||
Using the [[https://github.com/seagle0128/doom-modeline][Doom Modeline]] to add notifications:
|
Using the [[https://github.com/seagle0128/doom-modeline][Doom Modeline]] to add notifications:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq doom-modeline-mu4e t)
|
(use-package doom-modeline
|
||||||
|
:config
|
||||||
|
(setq doom-modeline-mu4e t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* Technical Artifacts :noexport:
|
* Technical Artifacts :noexport:
|
||||||
Let's provide a name so that the file can be required:
|
Let's provide a name so that the file can be required:
|
||||||
|
|
|
@ -122,9 +122,13 @@ Next, we just need to change the header sizes:
|
||||||
While we are at it, let’s make sure the code blocks are using my fixed with font:
|
While we are at it, let’s make sure the code blocks are using my fixed with font:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(when window-system
|
(when window-system
|
||||||
(dolist (face '(org-block org-code org-verbatim org-table org-drawer
|
(dolist (face '(org-block org-code org-verbatim org-table org-drawer org-table org-formula
|
||||||
org-special-keyword org-property-value org-document-info-keyword))
|
org-special-keyword org-property-value org-document-info-keyword))
|
||||||
(set-face-attribute face nil :inherit 'fixed-pitch)))
|
(set-face-attribute face nil :inherit 'fixed-pitch)))
|
||||||
|
|
||||||
|
(set-face-attribute 'org-table nil :height 1.0)
|
||||||
|
(set-face-attribute 'org-formula nil :height 1.0)
|
||||||
|
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
Not sure why the above code removes the color of =org-verbatim=, so let’s make it stand out slightly:
|
Not sure why the above code removes the color of =org-verbatim=, so let’s make it stand out slightly:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
|
@ -223,54 +227,110 @@ To make it more distinguishable, he also changed the colors:
|
||||||
While I'm intrigued with [[https://github.com/rougier][Nicolas P. Rougier]]'s [[https://github.com/rougier/notebook-mode][notebook project]], I really just want to steal their [[https://github.com/rougier/svg-lib][svg-lib project]] that allows me to create and display various SVG objects, namely tags, progress bars, progress pies and icons. Each object fits nicely in a text buffer ensuring width is an integer multiple of character width.
|
While I'm intrigued with [[https://github.com/rougier][Nicolas P. Rougier]]'s [[https://github.com/rougier/notebook-mode][notebook project]], I really just want to steal their [[https://github.com/rougier/svg-lib][svg-lib project]] that allows me to create and display various SVG objects, namely tags, progress bars, progress pies and icons. Each object fits nicely in a text buffer ensuring width is an integer multiple of character width.
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package svg-lib
|
(when (image-type-available-p 'svg)
|
||||||
:straight (:type git :protocol ssh :host github :repo "rougier/svg-lib"))
|
(use-package svg-lib
|
||||||
|
:straight (:type git :protocol ssh :host github :repo "rougier/svg-lib"))
|
||||||
|
|
||||||
(use-package svg-tag-mode
|
(use-package svg-tag-mode
|
||||||
:straight (:type git :protocol ssh :host github :repo "howardabrams/svg-tag-mode")
|
;; :straight (:type git :protocol ssh :host github :repo "rougier/svg-tag-mode")
|
||||||
:config
|
:straight (:type git :protocol ssh :host github :repo "howardabrams/svg-tag-mode")
|
||||||
(setq svg-tag-tags
|
:hook ((org-mode . svg-tag-mode)
|
||||||
'(("TODO:" . ((lambda (tag) (svg-tag-make "TODO" :face 'org-todo
|
(emacs-lisp-mode . svg-tag-mode)
|
||||||
:radius 2 :inverse t
|
(python-mode . svg-tag-mode))
|
||||||
:margin 0 :padding 0 :height 0.8))))
|
:config
|
||||||
("NOTE:" . ((lambda (tag) (svg-tag-make "NOTE" :face 'org-done
|
(setq svg-tag-tags
|
||||||
:inverse nil :margin 0 :radius 2 :height 0.8))))
|
`(("NOTE:" .
|
||||||
("\\(:[A-Z-]+\\):[a-zA-Z#0-9]+:" . ((lambda (tag)
|
((lambda (tag)
|
||||||
(svg-tag-make tag :beg 1 :inverse t
|
(svg-tag-make "NOTE" :face 'org-done
|
||||||
:margin 0 :crop-right t))))
|
:inverse nil :margin 0 :radius 2))))
|
||||||
(":[A-Z-]+\\(:[a-zA-Z#0-9]+:\\)" . ((lambda (tag)
|
|
||||||
(svg-tag-make tag :beg 1 :end -1
|
|
||||||
:margin 0 :crop-left t))))
|
|
||||||
("\\(:[A-Z-]+:\\)[ \n]" . ((lambda (tag) (svg-tag-make tag :beg 1 :end -1 :margin 0))))
|
|
||||||
|
|
||||||
; The notebook-mode overrides these:
|
;; ------------------------------------------------------------
|
||||||
("#\\+BEGIN_SRC [a-zA-Z#0-9-]+" . ((lambda (tag)
|
;; Two definitions of TODO That include the single line message
|
||||||
(svg-tag-make "SRC" :face 'org-block-begin-line
|
;; ------------------------------------------------------------
|
||||||
:height 0.6
|
(,(rx word-start "TODO" word-end) .
|
||||||
:inverse t :margin 0 :crop-right t))))
|
((lambda (tag)
|
||||||
("#\\+BEGIN_SRC \\([a-zA-Z#0-9-]+\\)" . ((lambda (tag)
|
(svg-tag-make "TODO" :face 'org-todo
|
||||||
(svg-tag-make tag :face 'org-block-begin-line
|
:radius 2 :inverse t :margin 0 :padding 0 :crop-right t))))
|
||||||
:height 0.6
|
(,(rx word-start "TODO"
|
||||||
:margin 0 :crop-left t))))
|
(group (one-or-more space) (zero-or-more not-newline)) line-end) .
|
||||||
("#\\+END_SRC" . ((lambda (tag)
|
((lambda (tag)
|
||||||
(svg-tag-make "SRC" :face 'org-block-end-line
|
(svg-tag-make tag :face 'org-todo
|
||||||
:height 0.6
|
:radius 2 :margin 0 :padding 0 :crop-left t))))
|
||||||
:beg 0 :inverse t :margin 0))))
|
|
||||||
("\\(#\\+[a-zA-Z#0-9-_]+:\\)" . ((lambda (tag) (svg-tag-make tag :face 'org-document-info-keyword
|
;; ------------------------------------------------------------
|
||||||
:beg 2 :end -1 :height 0.6))))))
|
;; Two definitions of tag combo, like :TAG:foobar:
|
||||||
(global-svg-tag-mode 1))
|
;; ------------------------------------------------------------
|
||||||
|
;; Where the first is inversed:
|
||||||
|
;; (,(rx (group ":" (one-or-more (any alpha "-")) ":")
|
||||||
|
;; (one-or-more (any alphanumeric "-" "_")) ":") .
|
||||||
|
;; ((lambda (tag)
|
||||||
|
;; (svg-tag-make tag :beg 1 :end -1 :inverse t :margin 0 :crop-right t))))
|
||||||
|
;; And the second is not:
|
||||||
|
;; (,(rx ":" (one-or-more (any alpha "-"))
|
||||||
|
;; (group ":" (one-or-more (any alphanumeric "-" "_")) ":")) .
|
||||||
|
;; ((lambda (tag)
|
||||||
|
;; (svg-tag-make tag :beg 1 :end -1 :margin 0 :crop-left t))))
|
||||||
|
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
;; Org-mode :TAGS: shown as a box:
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
(,(rx (or line-start space)
|
||||||
|
(group ":" (one-or-more (any alpha "-")) ":")
|
||||||
|
(or space line-end)) .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make tag :face 'org-drawer :beg 1 :end -1 :margin 0))))
|
||||||
|
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
;; Org-mode blocks #+BEGIN_SRC language ... #+END_SRC
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
(,(rx line-start (zero-or-more space) "#+BEGIN_SRC") .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make "RUN" :face 'org-block-begin-line
|
||||||
|
:inverse t :margin 0 :crop-right t))
|
||||||
|
(lambda () (interactive) (org-ctrl-c-ctrl-c))
|
||||||
|
"Run this block of code"))
|
||||||
|
(,(rx line-start (zero-or-more space) "#+BEGIN_SRC"
|
||||||
|
(1+ space) (group (one-or-more (any alpha "-"))) word-end) .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make tag :face 'org-block-begin-line
|
||||||
|
:margin 0 :crop-left t))
|
||||||
|
(lambda () (interactive) (org-ctrl-c-ctrl-c))
|
||||||
|
"Run this block of code"))
|
||||||
|
(,(rx line-start (zero-or-more space) "#+END_SRC" word-end) .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make "END" :face 'org-block-end-line :inverse t))))
|
||||||
|
("^#\\+RESULTS:" .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make "RESULTS" :face 'org-block-end-line :inverse t))))
|
||||||
|
|
||||||
|
(,(rx line-start (zero-or-more space) "#+ATTR" (zero-or-more (any alpha "_")) ":") .
|
||||||
|
((lambda (tag)
|
||||||
|
(svg-tag-make "ATTR" :face 'org-block-begin-line :inverse t))))
|
||||||
|
|
||||||
|
("^#\\+NAME:" . ((lambda (tag) (svg-tag-make "NAME" :face 'org-meta-line))))
|
||||||
|
("^#\\+HEADER:" . ((lambda (tag) (svg-tag-make "HEADER" :face 'org-meta-line))))
|
||||||
|
("^#\\+BEGIN_EXAMPLE" . ((lambda (tag) (svg-tag-make "CODE" :face 'org-block-begin-line))))
|
||||||
|
("^#\\+END_EXAMPLE" . ((lambda (tag) (svg-tag-make "END" :face 'org-block-end-line))))
|
||||||
|
("^#\\+begin_quote" . ((lambda (tag) (svg-tag-make "“" :face 'org-block-begin-line))))
|
||||||
|
("^#\\+end_quote" . ((lambda (tag) (svg-tag-make "”" :face 'org-block-end-line))))
|
||||||
|
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
;; Things like #+OPTIONS: and property definitions
|
||||||
|
;; ------------------------------------------------------------
|
||||||
|
("#\\+PROPERTY:" . ((lambda (tag) (svg-tag-make "PROPERTY" :face 'org-meta-line))))
|
||||||
|
("#\\+OPTIONS:" . ((lambda (tag) (svg-tag-make "OPTIONS" :face 'org-meta-line))))))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
What does do? Here are some examples:
|
What does do? Here are some examples:
|
||||||
- TODO: Marks comments for tasks (this can be in source files too).
|
TODO Marks comments for tasks (this can be in source files too).
|
||||||
- NOTE: Highlights comments and other notes.
|
NOTE: Highlights comments and other notes.
|
||||||
- :PROP:tag: are highlighted as two parts of the same tag
|
:PROP:tag: are highlighted as two parts of the same tag
|
||||||
- And :TAG: with colons are highlighted, which include :PROPERTY: drawers.
|
And :TAG: with colons are highlighted, which include :PROPERTY: drawers.
|
||||||
- Org-specific #+PROPERTY: entries are highlighted.
|
Org-specific #+PROPERTY: entries are highlighted.
|
||||||
|
|
||||||
#+BEGIN_SRC emacs-lisp :tangle no
|
#+BEGIN_SRC emacs-lisp :tangle no
|
||||||
(use-package notebook
|
(use-package notebook
|
||||||
:straight (:type git :protocol ssh :host github :repo "rougier/notebook")
|
:straight (:type git :protocol ssh :host github :repo "rougier/notebook-mode")
|
||||||
:after org
|
:after org
|
||||||
:hook (org-mode . notebook-mode))
|
:hook (org-mode . notebook-mode))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
|
@ -320,8 +320,10 @@ While my company is typically using =Rakefile= and =Makefile= in the top-level p
|
||||||
** Display Configuration
|
** Display Configuration
|
||||||
Using the [[https://github.com/seagle0128/doom-modeline][Doom Modeline]] to add notifications:
|
Using the [[https://github.com/seagle0128/doom-modeline][Doom Modeline]] to add notifications:
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(setq doom-modeline-lsp t)
|
(use-package doom-modeline
|
||||||
(setq doom-modeline-env-version t)
|
:config
|
||||||
|
(setq doom-modeline-lsp t
|
||||||
|
doom-modeline-env-version t))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* Languages
|
* Languages
|
||||||
Simple to configure languages go here. More advanced stuff will go in their own files… eventually.
|
Simple to configure languages go here. More advanced stuff will go in their own files… eventually.
|
||||||
|
|
Loading…
Reference in a new issue