mirror of https://github.com/Chizi123/.emacs.d.git

Joel Grunbaum
2020-07-11 5a75e4272b27528a4ab0e83e2e3bb4cb31b6960a
config.org
@@ -1,5 +1,5 @@
#+TITLE: My Emacs configuration
#  LocalWords:  poppler mingw emacs eq nt gnuplot setenv mapconcat el cond minibuffer pdf color Smartparens smartparens yas aindent whitespace eldoc ielm ibuffer hippie pscp pos Spaceline spaceline powerline spacemacs seperator dir Yasnippet yasnippet flycheck magit fullscreen CEDET askifnotset semanticdb EDE ede gdb srefactor analyzer eval cdb autosetup ghostscript math unicode reftex bibtex TeXcount texcount str latin rkt PlantUML plantuml autoload alist matlab verilog ds vh src fontify natively fortran dvipng plist xcolor EXWM Zenburn setq zenburn defun dolist init config DejaVu ispell aspell flyspell kbd recentf sexp ov bg listp defadvice progn prog keyfreq autosave dabbrev hl gc linum linux utf RET ARG arg configs backends contribs AucTex tex auctex LaTeX url htmlize linter backend writegood ggtags gtags dired eshell asm cd dwim VHDL defvar ctags vhdl concat sp html awk defalias cedet mips IPython ein contrib pandoc dokuwiki EMMS MPD emms toc favicon href css stylesheet async dataLayer gtag js UA sitelinks br Github postamble isso center disqus onclick Disqus javascript dsq createElement getElementsByTagName xml urlset xmlns curr loc
#  LocalWords:  poppler mingw emacs eq nt gnuplot setenv mapconcat el cond minibuffer pdf color Smartparens smartparens yas aindent whitespace eldoc ielm ibuffer hippie pscp pos Spaceline spaceline powerline spacemacs seperator dir Yasnippet yasnippet flycheck magit fullscreen CEDET askifnotset semanticdb EDE ede gdb srefactor analyzer eval cdb autosetup ghostscript math unicode reftex bibtex TeXcount texcount str latin rkt PlantUML plantuml autoload alist matlab verilog ds vh src fontify natively fortran dvipng plist xcolor EXWM Zenburn setq zenburn defun dolist init config DejaVu ispell aspell flyspell kbd recentf sexp ov bg listp defadvice progn prog keyfreq autosave dabbrev hl gc linum linux utf RET ARG arg configs backends contribs AucTex tex auctex LaTeX url htmlize linter backend writegood ggtags gtags dired eshell asm cd dwim VHDL defvar ctags vhdl concat sp html awk defalias cedet mips IPython ein contrib pandoc dokuwiki EMMS MPD emms toc favicon href css stylesheet async dataLayer gtag js UA sitelinks br Github postamble isso center disqus onclick Disqus javascript dsq createElement getElementsByTagName xml urlset xmlns curr loc RSS elfeed
* COMMENT Windows dependencies
Dependencies needed for Aspell, poppler PDF-tools, compilers and ghost-script provided by mingw64 in windows.
@@ -40,6 +40,20 @@
           (load-theme 'doom-one t)
           (doom-themes-visual-bell-config)
           (doom-themes-org-config)))
        ((eq emacs-theme 'nord)
         (use-package nord-theme
           :ensure t
           :init
           (disable-all-themes)
           :config
           (load-theme 'nord t)))
        ((eq emacs-theme 'solarized)
         (use-package solarized-theme
           :ensure t
           :init
           (disable-all-themes)
           :config
           (load-theme 'solarized-dark t)))
        ((eq emacs-theme 'none)
         (disable-all-themes)))
#+END_SRC
@@ -47,9 +61,13 @@
** Default font
Set default font and faces.
#+BEGIN_SRC emacs-lisp 
  ;; (set-frame-font "DejaVu Sans Mono" nil t)
  (set-frame-font "Dank Mono-11" nil t)
  ;; (set-frame-font "Source Code Pro-10" nil t)
  (cond ((member "Dank Mono" (font-family-list))
         (set-frame-font "Dank Mono-11" nil t))
        ((member "DejaVu Sans Mono" (font-family-list))
         (set-frame-font "DejaVu Sans Mono" nil t))
        ((member "Source Code Pro" (font-family-list))
         (set-frame-font "Source Code Pro-10" nil t)))
  (set-face-italic 'font-lock-comment-face t)
  (set-face-italic 'font-lock-keyword-face t)
#+END_SRC
@@ -60,6 +78,17 @@
  (menu-bar-mode 0)
  (tool-bar-mode 0)
  (scroll-bar-mode 1)
#+END_SRC
* COMMENT EXWM
Emacs window manager.
Tiling window manager that runs in emacs.
Open external applications with =s-&=
#+BEGIN_SRC emacs-lisp
  (use-package exwm
    :ensure t
    :config
    (require 'exwm-config)
    (exwm-config-default))
#+END_SRC
* Writing requirements
@@ -74,6 +103,7 @@
  ;; (add-hook 'latex-mode-hook 'flyspell-buffer)
  (add-hook 'org-mode-hook 'flyspell-mode)
  ;; (add-hook 'org-mode-hook 'flyspell-buffer)
#+END_SRC
** Switch-window
@@ -779,7 +809,7 @@
    (semantic-mode 1))
#+END_SRC
*** EDE
*** COMMENT EDE
Emacs Development Environment.
Can be used to manage and create build files for a project.
#+BEGIN_SRC emacs-lisp
@@ -920,7 +950,7 @@
    :after company
    :config
    (add-to-list 'company-backends '(company-math-symbols-unicode company-math-symbols-latex
                                     compant-latex-commands))
                                     company-latex-commands))
    (setq company-math-allow-latex-symbols-in-faces t))
  (use-package company-reftex
@@ -986,7 +1016,8 @@
    (cond ((eq system-type 'windows-nt)
           (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar"))
          ((eq system-type 'gnu/linux)
           (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar"))))
           (setq plantuml-jar-path "/usr/share/java/plantuml/plantuml.jar")))
    (setq planuml-default-exec-mode 'jar))
#+END_SRC
*** COMMENT Racket
@@ -1123,6 +1154,12 @@
(diminish 'org-indent-mode)
(diminish 'visual-line-mode)
#+END_SRC
*** Spell checking for code and latex
#+BEGIN_SRC emacs-lisp
  (add-to-list 'ispell-skip-region-alist '("#\\+BEGIN_SRC" . "#\\+END_SRC"))
  (add-to-list 'ispell-skip-region-alist '("\\$" . "\\$"))
  (add-to-list 'ispell-skip-region-alist '("\\$\\$" . "\\$\\$"))
#+END_SRC
** Line wrapping
Enable line wrapping for long lines.
@@ -1166,6 +1203,14 @@
  (setq org-plantuml-jar-path plantuml-jar-path)
#+END_SRC
*** Async export
Allow the editing of files while execution of blocks is occurring.
Needs :async tag in src header.
#+BEGIN_SRC emacs-lisp
  (use-package ob-async
    :ensure t)
#+END_SRC
** Latex preview fragments match colour
Make the previews match theme colour of Emacs.
Gets very annoying very quickly without it.
@@ -1204,7 +1249,7 @@
    (setq emms-source-file-directory "~/Music/"))
#+END_SRC
* Org Blog
* COMMENT Org Blog
I use org to write my blog and use org-static-blog to generate the HTML.
** Org static blog config
Basic configuration for site.
@@ -1305,3 +1350,81 @@
    :ensure t)
#+END_SRC
* Journaling
** Noteworthy entries
I write weekly journal entries recapping my week.
These files are in org mode.
This is inspired by org-static-blog.
#+BEGIN_SRC emacs-lisp
  (defun journal-create-new-post ()
      "Create a new entry, prompt for title and insert header"
    (interactive)
    (let ((title (read-string "Title: ")))
      (find-file (concat "~/Documents/Journal/entry/"
                         (read-string "Filename: "
                                      (concat (format-time-string "%Y-%m-%d-" (current-time))
                                              (replace-regexp-in-string "\s" "-" (downcase title))
                                              ".org"))))
      (insert "#+title: " title "\n"
              "#+date: " (format-time-string "<%Y-%m-%d %H:%M>") "\n"
              "#+filetags: ")))
#+END_SRC
*** Publish entries
Use org-publish to collate entries into a single unit.
#+BEGIN_SRC emacs-lisp
  (setq org-publish-project-alist
               '(("Journal"
                 :base-directory "~/Documents/Journal/entry/"
                 :publishing-directory "~/Documents/Journal/out/"
                 :publishing-function org-html-publish-to-html
                 ;;:htmlized-source t
                 :section-numbers nil
                 :html-preamble t
                 :html-validation-link nil
                 :auto-sitemap t
                 :sitemap-sort-files anti-chronologically
                 :sitemap-file-entry-format "%d - %t"
                 :sitemap-title "Home"
                 :sitemap-filename "index.html"
                 :sitemap-function org-publish-sitemap)))
#+END_SRC
** COMMENT Daily
Using Org-Journal for daily journaling.
Package provides journaling support files for org mode.
#+BEGIN_SRC emacs-lisp
  (use-package org-journal
    :ensure t
    :custom
    (org-journal-dir "~/Documents/Journal/daily")
    (org-journal-date-format "%A, %d %B %Y")
    (org-journal-time-format "%I:%M %p")
    (org-journal-file-type "daily"))
#+END_SRC
* RSS
Various packages for reading RSS feeds in emacs.
** COMMENT Elfeed
Watch feeds using elfeed.
Add feeds to elfeed-feeds in the format ("URL" tags).
#+BEGIN_SRC emacs-lisp
  (use-package elfeed
    :ensure t
    :config
    (setq elfeed-feeds
          '(;;("https://www.abc.net.au/news/feed/51120/rss.xml" news affairs)
            ;;("https://www.theage.com.au/rss/feed.xml" news affairs)
            ("https://www.archlinux.org/feeds/news/" linux arch)
            ("https://xkcd.com/rss.xml" fun comics)
            ("http://feeds.feedburner.com/Explosm" fun comics)
            ("https://www.anandtech.com/rss/" news tech)
            ("https://www.webtoons.com/en/challenge/system32comics/rss?title_no=235074" comics fun)
            ("https://www.economist.com/international/rss.xml" news affairs economics)
            ("https://www.phoronix.com/rss.php" news linux tech)
            ("http://feeds.feedburner.com/servethehome" tech))))
  (use-package elfeed-goodies
    :ensure t
    :config
    (elfeed-goodies/setup))
#+END_SRC