From df17440f9338d31ad837cbc98b584441bf469ada Mon Sep 17 00:00:00 2001
From: Joel Grunbaum <joelgrun@gmail.com>
Date: Fri, 09 Oct 2020 10:56:08 +0000
Subject: [PATCH] checks for texcount installed in system

---
 config.org |  269 +++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 209 insertions(+), 60 deletions(-)

diff --git a/config.org b/config.org
index 8f1a680..ff5d0ba 100644
--- a/config.org
+++ b/config.org
@@ -1,8 +1,8 @@
 #+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
+Dependencies needed for Aspell, poppler PDF-tools, compilers and ghost-script provided by mingw64 in windows.
 #+BEGIN_SRC emacs-lisp
   (when (eq system-type 'windows-nt)
     (add-to-list 'exec-path "C:/msys64/usr/bin")
@@ -13,9 +13,14 @@
 
 * Aesthetic changes
 ** Emacs theme
-Zenburn theme is the default
+Theme switcher, using a cond allows loading of many preconfigured themes which can be switched between easily.
+Zenburn theme is my default.
 #+BEGIN_SRC emacs-lisp
   (setq emacs-theme 'zenburn)
+
+  (defun disable-all-themes ()
+      (dolist (i custom-enabled-themes)
+           (disable-theme i)))
 
   (cond ((eq emacs-theme 'zenburn)
          (use-package zenburn-theme
@@ -35,29 +40,68 @@
            (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 'jetbrains-darcula)
+         (use-package jetbrains-darcula-theme
+           :ensure t
+           :init
+           (disable-all-themes)
+           :config
+           (load-theme 'jetbrains-darcula t)))
         ((eq emacs-theme 'none)
-         (dolist (i custom-enabled-themes)
-           (disable-theme i))))
+         (disable-all-themes)))
 #+END_SRC
 
 ** 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
 
 ** Remove menu bar, toolbar, but keep scroll bar
+Make the emacs interface slightly nicer.
 #+BEGIN_SRC emacs-lisp
   (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
 ** Spellchecking
+Use aspell for spellchecking. 
+Auto-enable in latex and org as they're the main writing modes.
 #+BEGIN_SRC emacs-lisp
   (require 'ispell)
   (setq-default ispell-program-name "aspell")
@@ -66,10 +110,12 @@
   ;; (add-hook 'latex-mode-hook 'flyspell-buffer)
   (add-hook 'org-mode-hook 'flyspell-mode)
   ;; (add-hook 'org-mode-hook 'flyspell-buffer)
+  (diminish 'flyspell-mode)
+
 #+END_SRC
 
 ** Switch-window
-Helps to change windows easily when many are open at once
+Helps to change windows easily when many are open at once.
 #+BEGIN_SRC emacs-lisp
 (use-package switch-window
   :ensure t
@@ -85,6 +131,7 @@
 #+END_SRC
 
 ** Go to new window when opened
+Go to new window when its opened instead of staying with current one.
 #+BEGIN_SRC emacs-lisp
   (defun split-and-follow-horizontally ()
     (interactive)
@@ -102,6 +149,7 @@
 #+END_SRC
 
 ** PDF-tools
+Helpful pdf viewer.
 #+BEGIN_SRC emacs-lisp
   (use-package pdf-tools
 	:ensure t
@@ -110,7 +158,7 @@
 #+END_SRC
 
 ** COMMENT Writegood-mode
-Supposedly should provide insight to writing quality
+Supposedly should provide insight to writing quality.
 #+BEGIN_SRC emacs-lisp
   (use-package writegood-mode
     :ensure t
@@ -119,6 +167,7 @@
 
 * Helm and Projectile
 ** Helm core
+Helm aids the user interface for emacs. Adds visual and auto-complete feedback for emacs commands.
 #+BEGIN_SRC emacs-lisp
   (use-package helm-config
     :ensure helm
@@ -152,6 +201,9 @@
 #+END_SRC
 
 ** Projectile
+Projectile is project management framework for emacs.
+Helps in navigation and management of projects.
+Identifies project layout from git.
 *** Enable it
  #+BEGIN_SRC emacs-lisp
    (use-package projectile
@@ -166,11 +218,13 @@
  #+END_SRC
 
 *** Let it compile things
+Shortcut for compilation.
  #+BEGIN_SRC emacs-lisp
    (global-set-key (kbd "<f5>") 'projectile-compile-project)
  #+END_SRC
 
 *** Enable communication with helm
+Use helm to manage project.
 #+BEGIN_SRC emacs-lisp
   (use-package helm-projectile
     :ensure t
@@ -443,7 +497,7 @@
 ** eldoc
 Shows function arguments in echo area below mode line.
 #+BEGIN_SRC emacs-lisp
-  (diminish eldoc-mode)
+  (diminish 'eldoc-mode)
   (add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
   (add-hook 'lisp-interaction-mode-hook 'eldoc-mode)
   (add-hook 'ielm-mode-hook 'eldoc-mode)
@@ -623,6 +677,28 @@
   (defalias 'yes-or-no-p 'y-or-n-p)
 #+END_SRC
 
+** COMMENT Sublime-like minimap
+Get a minimap preview of the file on the side like sublime text.
+Want to make work but need to find a good way of doing so.
+#+BEGIN_SRC emacs-lisp
+  (use-package sublimity
+    :ensure t
+    :config
+    (require 'sublimity-scroll)
+    (setq sublimity-scroll-weight 4
+          sublimity-scroll-drift-length 3)
+    (require 'sublimity-map)
+    (setq sublimity-map-size 20
+          sublimity-map-scale 0.3)
+    (sublimity-map-set-delay nil)
+    (sublimity-mode 1))
+
+  (use-package minimap
+    :ensure t
+    :config
+    (minimap-mode))
+#+END_SRC
+
 * Mode line tweaks
 Diminish is used but is included in init.el such that it can be used throughout this document
 ** Spaceline
@@ -638,6 +714,21 @@
       (setq powerline-default-separator (quote arrow))
       (spaceline-spacemacs-theme)
       (spaceline-helm-mode))
+#+END_SRC
+
+*** Separator
+Slightly nicer separator.
+#+BEGIN_SRC emacs-lisp
+(setq powerline-default-separator nil)
+#+END_SRC
+
+** Nyan mode
+Use nyan cat as a reference for buffer progression.
+#+BEGIN_SRC emacs-lisp
+  (use-package nyan-mode
+    :ensure t
+    :config
+    (nyan-mode 1))
 #+END_SRC
 
 * Programming tweaks
@@ -687,6 +778,12 @@
     (setq company-minimum-prefix-length 3))
 #+END_SRC
 
+** Version control
+Settings for emacs' own version control system.
+*** Enable version control on the mode line
+#+BEGIN_SRC emacs-lisp
+  (vc-mode)
+#+END_SRC
 ** Magit
 Emacs git client.
 Pretty good and offers fairly decent features.
@@ -757,7 +854,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
@@ -897,13 +994,15 @@
     :ensure t
     :after company
     :config
-    (add-to-list 'company-backends 'company-math-symbols-unicode))
+    (add-to-list 'company-backends '(company-math-symbols-unicode company-math-symbols-latex
+                                     company-latex-commands))
+    (setq company-math-allow-latex-symbols-in-faces t))
 
   (use-package company-reftex
     :ensure t
     :after company
     :config
-    (add-to-list 'company-backends 'company-reftex))
+    (add-to-list 'company-backends 'company-reftex-citations))
 
   (use-package company-auctex
     :ensure t
@@ -928,7 +1027,7 @@
     (shell-command "unzip -o ~/.texcount/texcount.zip -d ~/.texcount")
     (add-to-list 'exec-path "~/.texcount/texcount.pl"))
 
-  (if (not(file-exists-p "~/.texcount/texcount.pl"))
+  (if (not(or (file-exists-p "~/.texcount/texcount.pl") (file-exists-p "/usr/bin/texcount")))
       (get-texcount-latest))
 
   (defun texcount ()
@@ -962,7 +1061,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
@@ -1099,6 +1199,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.
@@ -1142,6 +1248,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.
@@ -1180,31 +1294,31 @@
     (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.
 Copied and modified from the example configuration.
 #+BEGIN_SRC emacs-lisp
-    (use-package org-static-blog
-      :ensure t
-      :config
-      (setq org-static-blog-publish-title "Joel's Site")
-      (setq org-static-blog-publish-url "https://blog.joelg.cf/")
-      (setq org-static-blog-publish-directory "/backup/home/joel/Downloads/Chizi123.github.io/")
-      (setq org-static-blog-posts-directory "/backup/home/joel/Downloads/Chizi123.github.io/posts/")
-      (setq org-static-blog-drafts-directory "/backup/home/joel/Downloads/Chizi123.github.io/drafts/")
-      (setq org-static-blog-enable-tags t)
-      (setq org-export-with-toc nil)
-      (setq org-export-with-section-numbers nil)
+  (use-package org-static-blog
+    :ensure t
+    :config
+    (setq org-static-blog-publish-title "Joel's Site")
+    (setq org-static-blog-publish-url "https://blog.joelg.cf/")
+    (setq org-static-blog-publish-directory "/backup/home/joel/Downloads/Chizi123.github.io/")
+    (setq org-static-blog-posts-directory "/backup/home/joel/Downloads/Chizi123.github.io/posts/")
+    (setq org-static-blog-drafts-directory "/backup/home/joel/Downloads/Chizi123.github.io/drafts/")
+    (setq org-static-blog-enable-tags t)
+    (setq org-export-with-toc nil)
+    (setq org-export-with-section-numbers nil)
 
-      ;; This header is inserted into the <head> section of every page:
-      ;;   (you will need to create the style sheet at
-      ;;    ~/projects/blog/static/style.css
-      ;;    and the favicon at
-      ;;    ~/projects/blog/static/favicon.ico)
-      (setq org-static-blog-page-header
-      "<meta name=\"author\" content=\"Joel Grunbaum\">
+    ;; This header is inserted into the <head> section of every page:
+    ;;   (you will need to create the style sheet at
+    ;;    ~/projects/blog/static/style.css
+    ;;    and the favicon at
+    ;;    ~/projects/blog/static/favicon.ico)
+    (setq org-static-blog-page-header
+          "<meta name=\"author\" content=\"Joel Grunbaum\">
       <meta name=\"referrer\" content=\"no-referrer\">
       <link href= \"static/style.css\" rel=\"stylesheet\" type=\"text/css\" />
       <link rel=\"icon\" href=\"static/favicon.png\">
@@ -1217,10 +1331,10 @@
       </script>
       ")
 
-      ;; This preamble is inserted at the beginning of the <body> of every page:
-      ;;   This particular HTML creates a <div> with a simple linked headline
-      (setq org-static-blog-page-preamble
-      "<div class=\"header\">
+    ;; This preamble is inserted at the beginning of the <body> of every page:
+    ;;   This particular HTML creates a <div> with a simple linked headline
+    (setq org-static-blog-page-preamble
+          "<div class=\"header\">
         <a href=\"https://blog.joelg.cf\">Joel's Site - Personal site and constant work in progress</a>
         <div class=\"sitelinks\">
           <a href=\"https://blog.joelg.cf/about-me.html\">About Me</a> |
@@ -1229,30 +1343,26 @@
         </div>
       </div>")
 
-      ;; This postamble is inserted at the end of the <body> of every page:
-      ;;   This particular HTML creates a <div> with a link to the archive page
-      ;;   and a licensing stub.
-      (setq org-static-blog-page-postamble
-      "<div id=\"archive\">
+    ;; This postamble is inserted at the end of the <body> of every page:
+    ;;   This particular HTML creates a <div> with a link to the archive page
+    ;;   and a licensing stub.
+    (setq org-static-blog-page-postamble
+          "<div id=\"archive\">
         <a href=\"https://blog.joelg.cf/archive.html\">Other posts</a>
       </div>
       <br>
-      <script data-isso=\"//commento.joelg.cf/\"
-            src=\"//commento.joelg.cf/js/embed.min.js\"></script>
-      <section id=\"isso-thread\"></section>")
-      ;; <center><button id=\"disqus_button\" onclick=\"load_disqus()\">Load Disqus Comments</button></center>
-      ;; <div id=\"disqus_thread\"></div>
-      ;; <script type=\"text/javascript\">
-      ;;   function load_disqus() {
-      ;;       var dsq = document.createElement('script');
-      ;;       dsq.type = 'text/javascript';
-      ;;       dsq.async = true;
-      ;;       dsq.src = 'https://joelg-cf.disqus.com/embed.js';
-      ;;       (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
-      ;;       document.getElementById('disqus_button').style.visibility = 'hidden';
-      ;;   };
-      ;; </script>")
-  )
+      <center><button id=\"disqus_button\" onclick=\"load_disqus()\">Load Disqus Comments</button></center>
+    <div id=\"disqus_thread\"></div>
+    <script type=\"text/javascript\">
+      function load_disqus() {
+          var dsq = document.createElement('script');
+          dsq.type = 'text/javascript';
+          dsq.async = true;
+          dsq.src = 'https://joelg-cf.disqus.com/embed.js';
+          (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+          document.getElementById('disqus_button').style.visibility = 'hidden';
+      };
+    </script>"))
 #+END_SRC
 
 ** Sitemap addition
@@ -1285,3 +1395,42 @@
     :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

--
Gitblit v1.9.3