From d070a7b257cf0c42efe058bc520a585fb166f46d Mon Sep 17 00:00:00 2001
From: Chizi123 <joelgrun@gmail.com>
Date: Sun, 06 Jan 2019 07:32:04 +0000
Subject: [PATCH] Moved config from init.el to config.org

---
 tramp                                 |   28 +
 .gitignore                            |   13 
 snippets/org-mode/source-code-expand  |    8 
 snippets/org-mode/elisp-expand        |    8 
 init.el                               |  521 +++++++++++-------------
 config.org                            |  674 ++++++++++++++++++++++++++++++++
 snippets/org-mode/source-code-expand~ |    7 
 7 files changed, 972 insertions(+), 287 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0675f36
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+*~
+config.el
+elpa/*
+eshell/*
+semanticdb/*
+url/*
+srecode-map.el
+.last-package-update-day
+ede-projects.el
+network-security.data
+projectile-bookmarks.eld
+projectile.cache
+recentf
diff --git a/config.org b/config.org
new file mode 100644
index 0000000..5aa556b
--- /dev/null
+++ b/config.org
@@ -0,0 +1,674 @@
+#+TITLE: My Emacs configuration
+* Windows dependencies
+Dependencies needed for Aspell, poppler PDF-tools, compilers and ghost-script provided by mingw64
+#+BEGIN_SRC emacs-lisp
+  (when (eq system-type 'windows-nt)
+    (add-to-list 'exec-path "C:/msys64/usr/bin")
+    (add-to-list 'exec-path "C:/msys64/mingw64/bin")
+    (add-to-list 'exec-path "c:/Program Files/Racket")
+    (setenv "PATH" (mapconcat #'identity exec-path path-separator)))
+#+END_SRC
+
+* Aesthetic changes
+** Zenburn theme
+#+BEGIN_SRC emacs-lisp
+  (use-package zenburn-theme
+    :ensure t
+    :config
+    (load-theme 'zenburn t))
+#+END_SRC
+** Default font
+#+BEGIN_SRC emacs-lisp
+(set-default-font "DejaVu Sans Mono-10")
+#+END_SRC
+* Writing requirements
+** Spellchecking
+#+BEGIN_SRC emacs-lisp
+  (require 'ispell)
+  (setq-default ispell-program-name "aspell")
+  (add-hook 'latex-mode-hook 'flyspell-mode)
+  (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
+Helps to change windows easily when many are open at once
+#+BEGIN_SRC emacs-lisp
+(use-package switch-window
+  :ensure t
+  :config
+    (setq switch-window-input-style 'minibuffer)
+    (setq switch-window-increase 4)
+    (setq switch-window-threshold 2)
+    (setq switch-window-shortcut-style 'qwerty)
+    (setq switch-window-qwerty-shortcuts
+        '("a" "s" "d" "f" "j" "k" "l" "i" "o"))
+  :bind
+    ([remap other-window] . switch-window))
+#+END_SRC
+** Go to new window when opened
+#+BEGIN_SRC emacs-lisp
+  (defun split-and-follow-horizontally ()
+    (interactive)
+    (split-window-below)
+    (balance-windows)
+    (other-window 1))
+  (global-set-key (kbd "C-x 2") 'split-and-follow-horizontally)
+
+  (defun split-and-follow-vertically ()
+    (interactive)
+    (split-window-right)
+    (balance-windows)
+    (other-window 1))
+  (global-set-key (kbd "C-x 3") 'split-and-follow-vertically)
+#+END_SRC
+** PDF-tools
+#+BEGIN_SRC emacs-lisp
+(use-package pdf-tools
+  :ensure t
+  :config
+  (pdf-tools-install))
+
+#+END_SRC
+* Helm and projectile
+** Helm core
+#+BEGIN_SRC emacs-lisp
+(use-package helm-config
+  :ensure helm
+  :bind (("M-x" . helm-M-x)
+	 ("C-x C-f" . helm-find-files)
+	 ("M-y" . helm-show-kill-ring)
+	 ("C-x b" . helm-mini)
+	 ("C-c h o" . helm-occur))
+  :config
+  (setq helm-M-x-fuzzy-match t)
+  (setq helm-buffers-fuzzy-matching t
+	helm-recentf-fuzzy-match    t)
+  (setq helm-split-window-in-side-p           t ; open helm buffer inside current window, not occupy whole other window
+	helm-move-to-line-cycle-in-source     t ; move to end or beginning of source when reaching top or bottom of source.
+	helm-ff-search-library-in-sexp        t ; search for library in `require' and `declare-function' sexp.
+	helm-scroll-amount                    8 ; scroll 8 lines other window using M-<next>/M-<prior>
+	helm-ff-file-name-history-use-recentf t
+	helm-echo-input-in-header-line t)
+  (defun spacemacs//helm-hide-minibuffer-maybe ()
+    "Hide minibuffer in Helm session if we use the header line as input field."
+    (when (with-helm-buffer helm-echo-input-in-header-line)
+      (let ((ov (make-overlay (point-min) (point-max) nil nil t)))
+	(overlay-put ov 'window (selected-window))
+	(overlay-put ov 'face
+                     (let ((bg-color (face-background 'default nil)))
+                       `(:background ,bg-color :foreground ,bg-color)))
+	(setq-local cursor-type nil))))
+  (add-hook 'helm-minibuffer-set-up-hook
+            'spacemacs//helm-hide-minibuffer-maybe)
+  (helm-mode 1))
+#+END_SRC
+** Projectile
+*** Enable it
+ #+BEGIN_SRC emacs-lisp
+   (use-package projectile
+     :ensure t
+     :bind ("C-c p" . projectile-command-map)
+     :config
+     (projectile-global-mode)
+     (setq projectile-completion-system 'helm)
+     (setq projectile-indexing-method 'alien))
+ #+END_SRC
+*** Let it compile things
+ #+BEGIN_SRC emacs-lisp
+   (global-set-key (kbd "<f5>") 'projectile-compile-project)
+ #+END_SRC
+*** Enable communication with helm
+#+BEGIN_SRC emacs-lisp
+(use-package helm-projectile
+  :ensure t
+  :config
+  (helm-projectile-on))
+#+END_SRC
+* Small tweaks
+** Remove startup screen
+#+BEGIN_SRC emacs-lisp
+(setq inhibit-startup-message t)
+#+END_SRC
+** Disable bell
+Bloody bell dings every time you hit a key too much
+#+BEGIN_SRC emacs-lisp
+(setq ring-bell-function 'ignore)
+#+END_SRC
+** Pretty symbols
+Why not? They make it look nice
+#+BEGIN_SRC emacs-lisp
+  (when window-system
+    (use-package pretty-mode
+      :ensure t
+      :diminish t
+      :config
+      (global-pretty-mode)))
+#+END_SRC
+** find file other window
+Lets it accept more than one file. Works recursively.
+#+BEGIN_SRC emacs-lisp
+(defadvice find-file-other-window (around find-files activate)
+  (if (listp filename)
+      (loop for f in filename do (find-file-other-window f wildcards))
+    ad-do-it))
+#+END_SRC
+** Which key
+Helps to explain keybindings if you get lost
+#+BEGIN_SRC emacs-lisp
+  (use-package which-key
+    :ensure t
+    :diminish which-key-mode
+    :config
+    (which-key-mode))
+#+END_SRC
+** Go to this file
+#+BEGIN_SRC emacs-lisp
+(defun config-visit ()
+  (interactive)
+  (find-file "~/.emacs.d/config.org"))
+(global-set-key (kbd "C-c e d") 'config-visit)
+#+END_SRC
+** Reload configuration
+#+BEGIN_SRC emacs-lisp
+(defun config-reload ()
+  "Reloads ~/.emacs.d/config.org at run time"
+  (interactive)
+  (org-babel-load-file (expand-file-name "~/.emacs.d/config.org")))
+(global-set-key (kbd "C-c e r") 'config-reload)
+#+END_SRC
+** Smartparens
+Matches brackets automatically
+#+BEGIN_SRC emacs-lisp
+(use-package smartparens
+  :ensure t
+  :diminish smartparens-mode
+  :config
+  (progn
+    (require 'smartparens-config)
+    (smartparens-global-mode 1)))
+#+END_SRC
+** Rainbow
+Its a little gimmicky but its still cool
+#+BEGIN_SRC emacs-lisp
+  (use-package rainbow-mode
+    :ensure t
+    :init
+    (add-hook 'prog-mode-hook 'rainbow-mode))
+#+END_SRC
+** Rainbow delimiters
+A bit more useful than above.
+Colours the brackets so that they stand out more.
+#+BEGIN_SRC emacs-lisp
+  (use-package rainbow-delimiters
+    :ensure t
+    :init
+      (add-hook 'prog-mode-hook #'rainbow-delimiters-mode))
+#+END_SRC
+** clean-aindent-mode
+Removes unnecessary white space
+#+BEGIN_SRC emacs-lisp
+(use-package clean-aindent-mode
+  :ensure t
+  :hook prog-mode)
+#+END_SRC
+Shows trailing white space
+#+BEGIN_SRC emacs-lisp
+(add-hook 'prog-mode-hook (lambda () (interactive) (setq show-trailing-whitespace 1)))
+#+END_SRC
+** whitespace mode
+Reveals whitespace characters
+#+BEGIN_SRC emacs-lisp
+(global-set-key (kbd "C-c w") 'whitespace-mode)
+(add-hook 'diff-mode-hook (lambda ()
+                            (setq-local whitespace-style
+                                        '(face
+                                          tabs
+                                          tab-mark
+                                          spaces
+                                          space-mark
+                                          trailing
+                                          indentation::space
+                                          indentation::tab
+                                          newline
+                                          newline-mark))
+                            (whitespace-mode 1)))
+
+#+END_SRC
+** eldoc
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
+  (add-hook 'lisp-interaction-mode-hook 'eldoc-mode)
+  (add-hook 'ielm-mode-hook 'eldoc-mode)
+#+END_SRC
+** key-freq
+collects interesting statistics
+#+BEGIN_SRC emacs-lisp
+(use-package keyfreq
+  :ensure t
+  :config
+  (keyfreq-mode 1)
+  (keyfreq-autosave-mode 1))
+#+END_SRC
+** undo-tree
+A more advanced undo mechanism
+#+BEGIN_SRC emacs-lisp
+(use-package undo-tree
+  :ensure t
+  :config
+  (global-undo-tree-mode))
+#+END_SRC
+** volatile highlights
+Colour the material just copied
+#+BEGIN_SRC emacs-lisp
+(use-package volatile-highlights
+  :ensure t
+  :config
+  (volatile-highlights-mode t))
+#+END_SRC
+** Workgroups
+Open the pages when you quit
+#+BEGIN_SRC emacs-lisp
+(use-package workgroups2
+  :ensure t
+  :config
+  (workgroups-mode 1))
+#+END_SRC
+** ibuffer
+#+BEGIN_SRC emacs-lisp
+(global-set-key (kbd "C-x C-b") 'ibuffer)
+(setq ibuffer-use-other-window t)
+#+END_SRC
+** hippie expand
+#+BEGIN_SRC emacs-lisp
+(global-set-key (kbd "M-/") 'hippie-expand) ;; replace dabbrev-expand
+(setq
+ hippie-expand-try-functions-list
+ '(try-expand-dabbrev ;; Try to expand word "dynamically", searching the current buffer.
+   try-expand-dabbrev-all-buffers ;; Try to expand word "dynamically", searching all other buffers.
+   try-expand-dabbrev-from-kill ;; Try to expand word "dynamically", searching the kill ring.
+   try-complete-file-name-partially ;; Try to complete text as a file name, as many characters as unique.
+   try-complete-file-name ;; Try to complete text as a file name.
+   try-expand-all-abbrevs ;; Try to expand word before point according to all abbrev tables.
+   try-expand-list ;; Try to complete the current line to an entire line in the buffer.
+   try-expand-line ;; Try to complete the current line to an entire line in the buffer.
+   try-complete-lisp-symbol-partially ;; Try to complete as an Emacs Lisp symbol, as many characters as unique.
+   try-complete-lisp-symbol) ;; Try to complete word as an Emacs Lisp symbol.
+ )
+#+END_SRC
+** Highlight line
+#+BEGIN_SRC emacs-lisp
+(global-hl-line-mode)
+#+END_SRC
+** Line numbers
+#+BEGIN_SRC emacs-lisp
+(add-hook 'prog-mode-hook 'linum-mode)
+#+END_SRC
+
+** Garbage collection
+starts garbage collection every 100MB
+#+BEGIN_SRC emacs-lisp
+(setq gc-cons-threshold 100000000)
+#+END_SRC
+
+** Kill ring
+Changes the kill ring size to 5000.
+#+BEGIN_SRC emacs-lisp
+  (setq global-mark-ring-max 5000
+	mark-ring-max 5000
+	mode-require-final-newline t
+	kill-ring-max 5000
+	kill-whole-line t)
+#+END_SRC
+** Coding style
+#+BEGIN_SRC emacs-lisp
+(setq c-default-style "linux")
+#+END_SRC
+
+** Coding system
+#+BEGIN_SRC emacs-lisp
+(set-terminal-coding-system 'utf-8)
+(set-keyboard-coding-system 'utf-8)
+(set-language-environment "UTF-8")
+(prefer-coding-system 'utf-8)
+(setq-default indent-tabs-mode t)
+(delete-selection-mode)
+(global-set-key (kbd "RET") 'newline-and-indent)
+#+END_SRC
+** Move to beginning of line ignoring whitespace
+Move point back to indentation of beginning of line.
+
+Move point to the first non-whitespace character on this line.
+If point is already there, move to the beginning of the line.
+Effectively toggle between the first non-whitespace character and
+the beginning of the line.
+
+If ARG is not nil or 1, move forward ARG - 1 lines first. If
+point reaches the beginning or end of the buffer, stop there.
+#+BEGIN_SRC emacs-lisp
+(defun prelude-move-beginning-of-line (arg)
+  (interactive "^p")
+  (setq arg (or arg 1))
+
+  ;; Move lines first
+  (when (/= arg 1)
+    (let ((line-move-visual nil))
+      (forward-line (1- arg))))
+
+  (let ((orig-point (point)))
+    (back-to-indentation)
+    (when (= orig-point (point))
+      (move-beginning-of-line 1))))
+
+(global-set-key (kbd "C-a") 'prelude-move-beginning-of-line)
+#+END_SRC
+** Indent region or buffer
+#+BEGIN_SRC emacs-lisp
+(defun indent-region-or-buffer ()
+  "Indent a region if selected, otherwise the whole buffer."
+  (interactive)
+  (unless (member major-mode prelude-indent-sensitive-modes)
+    (save-excursion
+      (if (region-active-p)
+          (progn
+            (indent-region (region-beginning) (region-end))
+            (message "Indented selected region."))
+        (progn
+          (indent-buffer)
+          (message "Indented buffer.")))
+      (whitespace-cleanup))))
+
+(global-set-key (kbd "C-c i") 'indent-region-or-buffer)
+#+END_SRC
+** Tramp
+#+BEGIN_SRC emacs-lisp
+  (when (eq system-type 'windows-nt)
+    (setq tramp-default-method "plink"))
+  (setq password-cache-expiry nil)
+#+END_SRC
+
+* Mode line tweaks
+Diminish is used but is included in init.el such that it can be used throughout this document
+** Spaceline
+A little easier to read than the default emacs mode line
+#+BEGIN_SRC emacs-lisp
+  (use-package spaceline
+    :ensure t
+    :config
+    (require 'spaceline-config)
+    (setq spaceline-buffer-encoding-abbrev-p t)
+    (setq spaceline-line-column-p t)
+    (setq spaceline-line-p t)
+    (setq powerline-default-separator (quote arrow))
+    (spaceline-spacemacs-theme))
+#+END_SRC
+** No separator
+#+BEGIN_SRC emacs-lisp
+(setq powerline-default-seperator nil)
+#+END_SRC
+* Programming tweaks
+** Yasnippet
+#+BEGIN_SRC emacs-lisp
+  (use-package yasnippet
+    :ensure t
+    :diminish yas-minor-mode
+    :config
+    (use-package yasnippet-snippets
+      :ensure t)
+    (yas-reload-all))
+#+END_SRC
+** flycheck
+#+BEGIN_SRC emacs-lisp
+(use-package flycheck
+  :ensure t)
+#+END_SRC
+*** flycheck-pos-tip
+#+BEGIN_SRC emacs-lisp
+(use-package flycheck-pos-tip
+  :ensure t
+  :after flycheck
+  :config
+  (flycheck-pos-tip-mode))
+#+END_SRC
+** Company
+Company is auto-complete for emacs
+#+BEGIN_SRC emacs-lisp
+  (use-package company
+    :ensure t
+    :hook (prog-mode)
+    :config
+    (setq company-idle-delay 0)
+    (setq company-minimum-prefix-length 3))
+#+END_SRC
+** Language specific configs
+*** C/C++
+**** yasnippet
+#+BEGIN_SRC emacs-lisp
+(add-hook 'c++-mode-hook 'yas-minor-mode)
+(add-hook 'c-mode-hook 'yas-minor-mode)
+#+END_SRC
+**** flycheck clang
+#+BEGIN_SRC emacs-lisp
+(use-package flycheck-clang-analyzer
+  :ensure t
+  :config
+  (with-eval-after-load 'flycheck
+    (require 'flycheck-clang-analyzer)
+     (flycheck-clang-analyzer-setup)))
+#+END_SRC
+**** company
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'c-mode-common-hook
+	    (lambda ()
+	      (define-key c-mode-base-map  [(tab)] 'company-complete))))
+
+    (use-package company-c-headers
+	:ensure t
+	:after company
+	:config
+	(add-hook 'c++-mode-hook 'company-mode)
+	(add-hook 'c-mode-hook 'company-mode))
+
+    (use-package company-irony
+      :ensure t
+      :config
+      (add-to-list company-backends '((company-c-headers
+				       company-dabbrev-code
+				       company-irony))))
+
+    (use-package irony
+      :ensure t
+      :config
+      (add-hook 'c++-mode-hook 'irony-mode)
+      (add-hook 'c-mode-hook 'irony-mode)
+      (add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options))
+#+END_SRC
+*** emacs-lisp
+**** eldoc
+#+BEGIN_SRC emacs-lisp
+(add-hook 'emacs-lisp-mode-hook 'eldoc-mode)
+#+END_SRC
+**** yasnippet
+#+BEGIN_SRC emacs-lisp
+(add-hook 'emacs-lisp-mode-hook 'yas-minor-mode)
+#+END_SRC
+**** company
+#+BEGIN_SRC emacs-lisp
+(add-hook 'emacs-lisp-mode-hook 'company-mode)
+
+(use-package slime
+  :ensure t
+  :config
+  (setq inferior-lisp-program "/usr/bin/sbcl")
+  (setq slime-contribs '(slime-fancy)))
+
+(use-package slime-company
+  :ensure t
+  :init
+    (require 'company)
+    (slime-setup '(slime-fancy slime-company)))
+#+END_SRC
+*** x86
+**** x86-lookup
+#+BEGIN_SRC emacs-lisp
+(use-package x86-lookup
+  :ensure t
+  :init
+  (setq x86-lookup-pdf "D:/Coding/x86-instructions.pdf")
+  :bind ("C-h x" . x86-lookup))
+#+END_SRC
+*** Latex
+**** AucTex
+#+BEGIN_SRC emacs-lisp
+(use-package tex
+  :ensure auctex
+  :config
+  (setq TeX-auto-save t)
+  (setq TeX-parse-self t)
+  (setq doc-view-ghostscript-program "c:/msys64/mingw64/bin/gswin32c.exe")
+  (setq preview-gs-command "c:/msys64/mingw64/bin/gs.exe"))
+#+END_SRC
+**** Company
+#+BEGIN_SRC emacs-lisp
+  (use-package company-math
+    :ensure t
+    :after company
+    :config
+    (add-to-list 'company-backends 'company-math-symbols-unicode))
+#+END_SRC
+**** Preview pane
+#+BEGIN_SRC emacs-lisp
+(use-package latex-preview-pane
+  :ensure t
+  :config
+  (latex-preview-pane-enable))
+#+END_SRC
+*** PlantUML
+#+BEGIN_SRC emacs-lisp
+(use-package plantuml-mode
+  :ensure t
+  :init
+  (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar"))
+#+END_SRC
+** Magit
+#+BEGIN_SRC emacs-lisp
+(use-package magit
+  :ensure t
+  :commands magit-get-top-dir
+  :bind ("C-x g" . magit-status)
+  :init
+  (progn
+    ;; make magit status go full-screen but remember previous window
+    ;; settings
+    ;; from: http://whattheemacsd.com/setup-magit.el-01.html
+    (defadvice magit-status (around magit-fullscreen activate)
+      (window-configuration-to-register :magit-fullscreen)
+      ad-do-it
+      (delete-other-windows))
+
+    ;; Close popup when committing - this stops the commit window
+    ;; hanging around
+    ;; From: http://git.io/rPBE0Q
+    (defadvice git-commit-commit (after delete-window activate)
+      (delete-window))
+
+    (defadvice git-commit-abort (after delete-window activate)
+      (delete-window))
+
+  :config
+  (progn
+    ;; restore previously hidden windows
+    (defadvice magit-quit-window (around magit-restore-screen activate)
+      (let ((current-mode major-mode))
+        ad-do-it
+        ;; we only want to jump to register when the last seen buffer
+        ;; was a magit-status buffer.
+        (when (eq 'magit-status-mode current-mode)
+          (jump-to-register :magit-fullscreen)))))
+
+  ;; magit settings
+  (setq
+   ;; don't put "origin-" in front of new branch names by default
+   magit-default-tracking-name-function 'magit-default-tracking-name-branch-only
+   ;; open magit status in same window as current buffer
+   magit-status-buffer-switch-function 'switch-to-buffer
+   ;; highlight word/letter changes in hunk diffs
+   magit-diff-refine-hunk t
+   ;; ask me if I want to include a revision when rewriting
+   magit-rewrite-inclusive 'ask
+   ;; ask me to save buffers
+   magit-save-some-buffers t
+   ;; pop the process buffer if we're taking a while to complete
+   magit-process-popup-time 10
+   ;; ask me if I want a tracking upstream
+   magit-set-upstream-on-push 'askifnotset
+   )))
+#+END_SRC
+** CEDET
+*** semantic
+#+BEGIN_SRC emacs-lisp
+(use-package semantic
+  :config
+  (global-semanticdb-minor-mode 1)
+  (global-semantic-idle-scheduler-mode 1)
+  (global-semantic-idle-summary-mode 1)
+  (semantic-mode 1))
+#+END_SRC
+*** EDE
+#+BEGIN_SRC emacs-lisp
+(use-package ede
+  :config
+  (global-ede-mode t))
+#+END_SRC
+*** gdb-many-windows
+#+BEGIN_SRC emacs-lisp
+(setq
+ ;; use gdb-many-windows by default
+ gdb-many-windows t
+
+ ;; Non-nil means display source file containing the main routine at startup
+ gdb-show-main t)
+#+END_SRC
+*** Semantic refactor
+#+BEGIN_SRC emacs-lisp
+(use-package srefactor
+  :ensure t
+  :bind (("M-RET o" . 'srefactor-lisp-one-line)
+	 ("M-RET m" . 'srefactor-lisp-format-sexp)
+	 ("M-RET d" . 'srefactor-lisp-format-defun)
+	 ("M-RET b" . 'srefactor-lisp-format-buffer)
+	 :map c-mode-base-map
+	      ("M-RET" . 'srefactor-refactor-at-point)
+	      :map c++-mode-map
+	      ("M-RET" . 'srefactor-refactor-at-point)))
+#+END_SRC
+* Org mode
+** Up to date org
+#+BEGIN_SRC emacs-lisp
+    (use-package org
+      :ensure t
+      :pin org)
+#+END_SRC
+** Small tweaks
+#+BEGIN_SRC emacs-lisp
+(setq org-src-fontify-natively t)
+(setq org-src-tab-acts-natively t)
+(setq org-confirm-babel-evaluate nil)
+(setq org-export-with-smart-quotes t)
+(setq org-src-window-setup 'current-window)
+(add-hook 'org-mode-hook 'org-indent-mode)
+#+END_SRC
+** Line wrapping
+#+BEGIN_SRC emacs-lisp
+  (add-hook 'org-mode-hook
+	      '(lambda ()
+		 (visual-line-mode 1)))
+#+END_SRC
+** org-bullets
+#+BEGIN_SRC emacs-lisp
+(use-package org-bullets
+  :ensure t
+  :config
+    (add-hook 'org-mode-hook (lambda () (org-bullets-mode))))
+#+END_SRC
diff --git a/init.el b/init.el
index 925ffd9..0e592d3 100644
--- a/init.el
+++ b/init.el
@@ -1,51 +1,31 @@
-(setq inhibit-startup-message t)
-
-;; set paths for executable
-;; use mingw64 for aspell, poppler (pdf-tools), gcc, ghostscript
-(add-to-list 'exec-path "C:/msys64/usr/bin")
-(add-to-list 'exec-path "C:/msys64/mingw64/bin")
-(add-to-list 'exec-path "c:/Program Files/Racket")
-(setenv "PATH" (mapconcat #'identity exec-path path-separator))
-
 ;; adding modules to load path
-(add-to-list 'load-path "~/.emacs.d/custom/")
-(add-to-list 'load-path "~/.emacs.d/elpa/")
+;; (add-to-list 'load-path "~/.emacs.d/custom/")
+;; (add-to-list 'load-path "~/.emacs.d/elpa/")
 
 ;; load your modules
-(require 'setup-applications)
-(require 'setup-communication)
-(require 'setup-convenience)
-(require 'setup-data)
-(require 'setup-development)
-(require 'setup-editing)
-(require 'setup-environment)
-(require 'setup-external)
-(require 'setup-faces)
-(require 'setup-files)
-(require 'setup-help)
-(require 'setup-programming)
-(require 'setup-text)
-(require 'setup-local)
-
-;; set default font
-(set-default-font "DejaVu Sans Mono-10")
-
-;; setting up aspell
-(require 'ispell)
-(setq-default ispell-program-name "aspell")
-(add-hook 'latex-mode-hook 'flyspell-mode)
-(add-hook 'latex-mode-hook 'flyspell-buffer)
-(add-hook 'org-mode-hook 'flyspell-mode)
-(add-hook 'org-mode-hook 'flyspell-buffer)
+;; (require 'setup-applications)
+;; (require 'setup-communication)
+;; (require 'setup-convenience)
+;; (require 'setup-data)
+;; (require 'setup-development)
+;; (require 'setup-editing)
+;; (require 'setup-environment)
+;; (require 'setup-external)
+;; (require 'setup-faces)
+;; (require 'setup-files)
+;; (require 'setup-help)
+;; (require 'setup-programming)
+;; (require 'setup-text)
+;; (require 'setup-local)
 
 ;; Repos
 (require 'package)
-(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/"))
-(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/"))
-(add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/"))
+(setq package-archives '(("gnu"   . "http://elpa.gnu.org/packages/")
+			 ("melpa" . "https://melpa.org/packages/")
+			 ("org"   . "https://orgmode.org/elpa/")))
+(package-initialize)
 
 ;; use-package
-(package-initialize)
 (unless (package-installed-p 'use-package)
   (package-refresh-contents)
   (package-install 'use-package))
@@ -61,286 +41,257 @@
   (setq auto-package-update-hide-results t)
   (auto-package-update-maybe))
 
-;; zenburn theme
-(use-package zenburn-theme
-  :ensure t
-  :config
-  (load-theme 'zenburn t))
+;; diminish
+(use-package diminish
+  :ensure t)
 
-;; helm
-(use-package helm-config
-  :ensure helm
-  :bind (("M-x" . helm-M-x)
-	 ("C-x C-f" . helm-find-files)
-	 ("M-y" . helm-show-kill-ring)
-	 ("C-x b" . helm-mini)
-	 ("C-c h o" . helm-occur))
-  :config
-  (setq helm-M-x-fuzzy-match t)
-  (setq helm-buffers-fuzzy-matching t
-	helm-recentf-fuzzy-match    t)
-  (setq helm-split-window-in-side-p           t ; open helm buffer inside current window, not occupy whole other window
-	helm-move-to-line-cycle-in-source     t ; move to end or beginning of source when reaching top or bottom of source.
-	helm-ff-search-library-in-sexp        t ; search for library in `require' and `declare-function' sexp.
-	helm-scroll-amount                    8 ; scroll 8 lines other window using M-<next>/M-<prior>
-	helm-ff-file-name-history-use-recentf t
-	helm-echo-input-in-header-line t)
-  (defun spacemacs//helm-hide-minibuffer-maybe ()
-    "Hide minibuffer in Helm session if we use the header line as input field."
-    (when (with-helm-buffer helm-echo-input-in-header-line)
-      (let ((ov (make-overlay (point-min) (point-max) nil nil t)))
-	(overlay-put ov 'window (selected-window))
-	(overlay-put ov 'face
-                     (let ((bg-color (face-background 'default nil)))
-                       `(:background ,bg-color :foreground ,bg-color)))
-	(setq-local cursor-type nil))))
-  (add-hook 'helm-minibuffer-set-up-hook
-            'spacemacs//helm-hide-minibuffer-maybe)
-  (helm-mode 1))
+;; redirect to org config file
+(when (file-readable-p "~/.emacs.d/config.org")
+  (org-babel-load-file "~/.emacs.d/config.org"))
 
 ;; CEDET
-(use-package semantic
-  :config
-  (global-semanticdb-minor-mode 1)
-  (global-semantic-idle-scheduler-mode 1)
-  (global-semantic-idle-summary-mode 1)
-  (semantic-mode 1))
+;; (use-package semantic
+;;   :config
+;;   (global-semanticdb-minor-mode 1)
+;;   (global-semantic-idle-scheduler-mode 1)
+;;   (global-semantic-idle-summary-mode 1)
+;;   (semantic-mode 1))
 
-(use-package ede
-  :config
-  (global-ede-mode t))
+;; (use-package ede
+;;   :config
+;;   (global-ede-mode t))
 
+;; (setq
+;;  ;; use gdb-many-windows by default
+;;  gdb-many-windows t
 
-(setq
- ;; use gdb-many-windows by default
- gdb-many-windows t
+;;  ;; Non-nil means display source file containing the main routine at startup
+;;  gdb-show-main t)
 
- ;; Non-nil means display source file containing the main routine at startup
- gdb-show-main t)
+;; ;; undo-tree
+;; (use-package undo-tree
+;;   :ensure t
+;;   :config
+;;   (global-undo-tree-mode))
 
-;; undo-tree
-(use-package undo-tree
-  :ensure t
-  :config
-  (global-undo-tree-mode))
+;; ;; volatile highlights
+;; (use-package volatile-highlights
+;;   :ensure t
+;;   :config
+;;   (volatile-highlights-mode t))
 
-;; volatile highlights
-(use-package volatile-highlights
-  :ensure t
-  :config
-  (volatile-highlights-mode t))
+;; ;; yasnippet
+;; (use-package yasnippet
+;;   :ensure t
+;;   :config
+;;   (yas-global-mode 1))
 
-;; yasnippet
-(use-package yasnippet
-  :ensure t
-  :config
-  (yas-global-mode 1))
+;; ;; ggtags
+;; (use-package ggtags
+;;   :ensure t
+;;   :config
+;;   (add-hook 'c-mode-common-hook
+;;             (lambda
+;; 	      (when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
+;; 		(ggtags-mode 1)))))
 
-;; ggtags
-(use-package ggtags
-  :ensure t
-  :config
-  (add-hook 'c-mode-common-hook
-            (lambda
-	      (when (derived-mode-p 'c-mode 'c++-mode 'java-mode)
-		(ggtags-mode 1)))))
+;; ;; workgroups2
+;; (use-package workgroups2
+;;   :ensure t
+;;   :config
+;;   (workgroups-mode 1))
 
-;; workgroups2
-(use-package workgroups2
-  :ensure t
-  :config
-  (workgroups-mode 1))
+;; ;; smartparens
+;; (use-package smartparens
+;;   :ensure t
+;;   :diminish smartparens-mode
+;;   :config
+;;   (progn
+;;     (require 'smartparens-config)
+;;     (smartparens-global-mode 1)))
 
-;; smartparens
-(use-package smartparens
-  :ensure t
-  :diminish smartparens-mode
-  :config
-  (progn
-    (require 'smartparens-config)
-    (smartparens-global-mode 1)))
+;; ;; clean-aindent-mode
+;; (use-package clean-aindent-mode
+;;   :ensure t
+;;   :hook prog-mode)
 
-;; clean-aindent-mode
-(use-package clean-aindent-mode
-  :ensure t
-  :hook prog-mode)
+;; ;; company config
+;; (use-package company
+;;   :ensure t
+;;   :init (global-company-mode)
+;;   :config
+;;   (add-hook 'c-mode-common-hook
+;; 	    (lambda ()
+;; 	      (define-key c-mode-base-map  [(tab)] 'company-complete))))
 
-;; company config
-(use-package company
-  :ensure t
-  :init (global-company-mode)
-  :config
-  (add-hook 'c-mode-common-hook
-	    (lambda ()
-	      (define-key c-mode-base-map  [(tab)] 'company-complete))))
+;; (use-package company-c-headers
+;;   :ensure t
+;;   :after company
+;;   :config
+;;   (add-to-list 'company-backends 'company-c-headers))
 
-(use-package company-c-headers
-  :ensure t
-  :after company
-  :config
-  (add-to-list 'company-backends 'company-c-headers))
+;; (use-package company-math
+;;   :ensure t
+;;   :after company
+;;   :config
+;;   (add-to-list 'company-backends 'company-math-symbols-unicode))
 
-(use-package company-math
-  :ensure t
-  :after company
-  :config
-  (add-to-list 'company-backends 'company-math-symbols-unicode))
+;; ;; projectile config
+;; (use-package projectile
+;;   :ensure t
+;;   :bind (("C-c p" . projectile-command-map))
+;;   :config
+;;   (projectile-global-mode)
+;;   (setq projectile-completion-system 'helm)
+;;   (setq projectile-indexing-method 'alien))
 
-;; projectile config
-(use-package projectile
-  :ensure t
-  :bind (("C-c p" . projectile-command-map))
-  :config
-  (projectile-global-mode)
-  (setq projectile-completion-system 'helm)
-  (setq projectile-indexing-method 'alien))
+;; ;; magit config
+;; (use-package magit
+;;   :ensure t
+;;   :commands magit-get-top-dir
+;;   :bind ("C-x g" . magit-status)
+;;   :init
+;;   (progn
+;;     ;; make magit status go full-screen but remember previous window
+;;     ;; settings
+;;     ;; from: http://whattheemacsd.com/setup-magit.el-01.html
+;;     (defadvice magit-status (around magit-fullscreen activate)
+;;       (window-configuration-to-register :magit-fullscreen)
+;;       ad-do-it
+;;       (delete-other-windows))
 
-(use-package helm-projectile
-  :ensure t
-  :config
-  (helm-projectile-on))
+;;     ;; Close popup when commiting - this stops the commit window
+;;     ;; hanging around
+;;     ;; From: http://git.io/rPBE0Q
+;;     (defadvice git-commit-commit (after delete-window activate)
+;;       (delete-window))
 
-;; magit config
-(use-package magit
-  :ensure t
-  :commands magit-get-top-dir
-  :bind ("C-x g" . magit-status)
-  :init
-  (progn
-    ;; make magit status go full-screen but remember previous window
-    ;; settings
-    ;; from: http://whattheemacsd.com/setup-magit.el-01.html
-    (defadvice magit-status (around magit-fullscreen activate)
-      (window-configuration-to-register :magit-fullscreen)
-      ad-do-it
-      (delete-other-windows))
+;;     (defadvice git-commit-abort (after delete-window activate)
+;;       (delete-window))
 
-    ;; Close popup when commiting - this stops the commit window
-    ;; hanging around
-    ;; From: http://git.io/rPBE0Q
-    (defadvice git-commit-commit (after delete-window activate)
-      (delete-window))
+;;   :config
+;;   (progn
+;;     ;; restore previously hidden windows
+;;     (defadvice magit-quit-window (around magit-restore-screen activate)
+;;       (let ((current-mode major-mode))
+;;         ad-do-it
+;;         ;; we only want to jump to register when the last seen buffer
+;;         ;; was a magit-status buffer.
+;;         (when (eq 'magit-status-mode current-mode)
+;;           (jump-to-register :magit-fullscreen)))))
 
-    (defadvice git-commit-abort (after delete-window activate)
-      (delete-window))
+;;   ;; magit settings
+;;   (setq
+;;    ;; don't put "origin-" in front of new branch names by default
+;;    magit-default-tracking-name-function 'magit-default-tracking-name-branch-only
+;;    ;; open magit status in same window as current buffer
+;;    magit-status-buffer-switch-function 'switch-to-buffer
+;;    ;; highlight word/letter changes in hunk diffs
+;;    magit-diff-refine-hunk t
+;;    ;; ask me if I want to include a revision when rewriting
+;;    magit-rewrite-inclusive 'ask
+;;    ;; ask me to save buffers
+;;    magit-save-some-buffers t
+;;    ;; pop the process buffer if we're taking a while to complete
+;;    magit-process-popup-time 10
+;;    ;; ask me if I want a tracking upstream
+;;    magit-set-upstream-on-push 'askifnotset
+;;    )))
 
-  :config
-  (progn
-    ;; restore previously hidden windows
-    (defadvice magit-quit-window (around magit-restore-screen activate)
-      (let ((current-mode major-mode))
-        ad-do-it
-        ;; we only want to jump to register when the last seen buffer
-        ;; was a magit-status buffer.
-        (when (eq 'magit-status-mode current-mode)
-          (jump-to-register :magit-fullscreen)))))
+;; ;; flycheck
+;; (use-package flycheck
+;;   :ensure t
+;;   :init (global-flycheck-mode))
 
-  ;; magit settings
-  (setq
-   ;; don't put "origin-" in front of new branch names by default
-   magit-default-tracking-name-function 'magit-default-tracking-name-branch-only
-   ;; open magit status in same window as current buffer
-   magit-status-buffer-switch-function 'switch-to-buffer
-   ;; highlight word/letter changes in hunk diffs
-   magit-diff-refine-hunk t
-   ;; ask me if I want to include a revision when rewriting
-   magit-rewrite-inclusive 'ask
-   ;; ask me to save buffers
-   magit-save-some-buffers t
-   ;; pop the process buffer if we're taking a while to complete
-   magit-process-popup-time 10
-   ;; ask me if I want a tracking upstream
-   magit-set-upstream-on-push 'askifnotset
-   )))
+;; (use-package flycheck-pos-tip
+;;   :ensure t
+;;   :after flycheck
+;;   :config
+;;   (flycheck-pos-tip-mode))
 
-;; flycheck
-(use-package flycheck
-  :ensure t
-  :init (global-flycheck-mode))
+;; (use-package flycheck-clang-analyzer
+;;   :ensure t
+;;   :after flycheck
+;;   :config
+;;   (flycheck-clang-analyzer-setup))
 
-(use-package flycheck-pos-tip
-  :ensure t
-  :after flycheck
-  :config
-  (flycheck-pos-tip-mode))
+;; ;; nyan mode
+;; (use-package nyan-mode
+;;   :if window-system
+;;   :ensure t
+;;   :config
+;;   (nyan-mode))
 
-(use-package flycheck-clang-analyzer
-  :ensure t
-  :after flycheck
-  :config
-  (flycheck-clang-analyzer-setup))
+;; ;; semantic refactor
+;; (use-package srefactor
+;;   :ensure t
+;;   :bind (("M-RET o" . 'srefactor-lisp-one-line)
+;; 	 ("M-RET m" . 'srefactor-lisp-format-sexp)
+;; 	 ("M-RET d" . 'srefactor-lisp-format-defun)
+;; 	 ("M-RET b" . 'srefactor-lisp-format-buffer)
+;; 	 :map c-mode-base-map
+;; 	      ("M-RET" . 'srefactor-refactor-at-point)
+;; 	      :map c++-mode-map
+;; 	      ("M-RET" . 'srefactor-refactor-at-point)))
 
-;; nyan mode
-(use-package nyan-mode
-  :if window-system
-  :ensure t
-  :config
-  (nyan-mode))
+;; ;; which-key
+;; (use-package which-key
+;;   :ensure t
+;;   :config
+;;   (which-key-mode)
+;;   (which-key-setup-side-window-bottom))
 
-;; semantic refactor
-(use-package srefactor
-  :ensure t
-  :bind (("M-RET o" . 'srefactor-lisp-one-line)
-	 ("M-RET m" . 'srefactor-lisp-format-sexp)
-	 ("M-RET d" . 'srefactor-lisp-format-defun)
-	 ("M-RET b" . 'srefactor-lisp-format-buffer)
-	 :map c-mode-base-map
-	      ("M-RET" . 'srefactor-refactor-at-point)
-	      :map c++-mode-map
-	      ("M-RET" . 'srefactor-refactor-at-point)))
+;; ;; x86 lookup
+;; (use-package x86-lookup
+;;   :ensure t
+;;   :init
+;;   (setq x86-lookup-pdf "D:/Coding/x86-instructions.pdf")
+;;   :bind ("C-h x" . x86-lookup))
 
-;; which-key
-(use-package which-key
-  :ensure t
-  :config
-  (which-key-mode)
-  (which-key-setup-side-window-bottom))
+;; ;; org-bullets
+;; (use-package org-bullets
+;;   :ensure t
+;;   :config
+;;   (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
 
-;; x86 lookup
-(use-package x86-lookup
-  :ensure t
-  :init
-  (setq x86-lookup-pdf "D:/Coding/x86-instructions.pdf")
-  :bind ("C-h x" . x86-lookup))
+;; ;; pdf-tools
+;; (use-package pdf-tools
+;;   :ensure t
+;;   :config
+;;   (pdf-tools-install))
 
-;; org-bullets
-(use-package org-bullets
-  :ensure t
-  :config
-  (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))))
+;; ;; org
+;; (use-package org
+;;   :ensure t
+;;   :config
+;;   (setq org-src-tab-acts-natively t))
 
-;; pdf-tools
-(use-package pdf-tools
-  :ensure t
-  :config
-  (pdf-tools-install))
+;; ;; tex/AUCTex
+;; (use-package tex
+;;   :ensure auctex
+;;   :config
+;;   (setq TeX-auto-save t)
+;;   (setq TeX-parse-self t)
+;;   (setq doc-view-ghostscript-program "c:/msys64/mingw64/bin/gswin32c.exe")
+;;   (setq preview-gs-command "c:/msys64/mingw64/bin/gs.exe"))
 
-;; org
-(use-package org
-  :ensure t
-  :config
-  (setq org-src-tab-acts-natively t))
+;; ;; latex-preview-pane
+;; (use-package latex-preview-pane
+;;   :ensure t
+;;   :config
+;;   (latex-preview-pane-enable))
 
-;; tex/AUCTex
-(use-package tex
-  :ensure auctex
-  :config
-  (setq TeX-auto-save t)
-  (setq TeX-parse-self t)
-  (setq doc-view-ghostscript-program "c:/msys64/mingw64/bin/gswin32c.exe")
-  (setq preview-gs-command "c:/msys64/mingw64/bin/gs.exe"))
+;; ;; plantuml
+;; (use-package plantuml-mode
+;;   :ensure t
+;;   :init
+;;   (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar"))
 
-;; latex-preview-pane
-(use-package latex-preview-pane
-  :ensure t
-  :config
-  (latex-preview-pane-enable))
-
-;; plantuml
-(use-package plantuml-mode
-  :ensure t
-  :init
-  (setq plantuml-jar-path "c:/ProgramData/chocolatey/lib/plantuml/tools/plantuml.jar"))
+;; (use-package keyfreq
+;;   :ensure t
+;;   :config
+;;   (keyfreq-mode 1)
+;;   (keyfreq-autosave-mode 1))
 
 (custom-set-variables
  ;; custom-set-variables was added by Custom.
@@ -350,7 +301,7 @@
  '(ede-project-directories (quote ("c:/Users/joelg/.emacs.d")))
  '(package-selected-packages
    (quote
-    (zenburn-theme yasnippet x86-lookup workgroups2 which-key volatile-highlights use-package undo-tree srefactor smartparens racket-mode popwin plantuml-mode pdf-tools org-bullets org nyan-mode magit latex-preview-pane helm-projectile ggtags flycheck-pos-tip flycheck-clang-analyzer company-math company-c-headers clean-aindent-mode auto-package-update auctex))))
+    (diminish keyfreq zenburn-theme yasnippet x86-lookup workgroups2 which-key volatile-highlights use-package undo-tree srefactor smartparens racket-mode popwin plantuml-mode pdf-tools org-bullets org nyan-mode magit latex-preview-pane helm-projectile ggtags flycheck-pos-tip flycheck-clang-analyzer company-math company-c-headers clean-aindent-mode auto-package-update auctex))))
 (custom-set-faces
  ;; custom-set-faces was added by Custom.
  ;; If you edit it by hand, you could mess it up, so be careful.
diff --git a/snippets/org-mode/elisp-expand b/snippets/org-mode/elisp-expand
new file mode 100644
index 0000000..be59a0c
--- /dev/null
+++ b/snippets/org-mode/elisp-expand
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# name: Org emacs-lisp code expand
+# key: <el
+# group: code snippets
+# --
+#+BEGIN_SRC emacs-lisp
+$0
+#+END_SRC
diff --git a/snippets/org-mode/source-code-expand b/snippets/org-mode/source-code-expand
new file mode 100644
index 0000000..2687526
--- /dev/null
+++ b/snippets/org-mode/source-code-expand
@@ -0,0 +1,8 @@
+# -*- mode: snippet -*-
+# name: Source code expand
+# key: <s
+# group: code snippets
+# --
+#+BEGIN_SRC $0
+#+END_SRC
+
diff --git a/snippets/org-mode/source-code-expand~ b/snippets/org-mode/source-code-expand~
new file mode 100644
index 0000000..3911f70
--- /dev/null
+++ b/snippets/org-mode/source-code-expand~
@@ -0,0 +1,7 @@
+# -*- mode: snippet -*-
+# name: Org source code expand
+# key: <s
+# group: code snippets
+#+BEGIN_SRC $0
+#+END_SRC
+# --
diff --git a/tramp b/tramp
index 7741e5f..c036dad 100644
--- a/tramp
+++ b/tramp
@@ -1,4 +1,4 @@
-;; -*- emacs-lisp -*- <18/11/18 19:54:13 c:/Users/joelg/.emacs.d/tramp>
+;; -*- emacs-lisp -*- <19/01/05 16:28:26 c:/Users/joelg/.emacs.d/tramp>
 ;; Tramp connection history.  Don't change this file.
 ;; You can delete it, forcing Tramp to reapply the checks.
 
@@ -24,4 +24,28 @@
   ("uid-integer" 1000)
   ("tmpdir" "/plink:joel@192.168.1.113:/tmp")
   ("touch-t" t)
-  ("touch" "\\touch")))
+  ("touch" "\\touch"))
+ ((tramp-file-name "pscp" nil nil "joel" nil nil nil)
+  nil)
+ ((tramp-file-name "pscp" "joel" nil "192.168.1.113" nil nil nil)
+  ("uname" "Linux 4.18.0-11-generic")
+  ("locale" "LC_ALL=en_US.utf8")
+  ("test" "test")
+  ("remote-path"
+   ("/bin" "/usr/bin" "/sbin" "/usr/sbin" "/usr/local/bin" "/usr/local/sbin"))
+  ("remote-shell" "/bin/sh")
+  ("~" "/home/joel")
+  ("file-exists" "test -e")
+  ("stat" "env QUOTING_STYLE=locale \\stat")
+  ("id" "/usr/bin/id")
+  ("gid-integer" 1000)
+  ("gid-string" "joel")
+  ("perl-file-spec" t)
+  ("perl-cwd-realpath" t)
+  ("perl" "\\perl")
+  ("tmpdir" "/pscp:joel@192.168.1.113:/tmp")
+  ("uid-integer" 1000)
+  ("readlink" "\\readlink")
+  ("case-insensitive" nil)
+  ("ls" "/bin/ls --color=never")
+  ("ls-quoting-style" t)))

--
Gitblit v1.9.3