diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..1d46208
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "elegant-emacs"]
+ path = elegant-emacs
+ url = https://github.com/rougier/elegant-emacs.git
diff --git a/README.org b/README.org
index 100fdb0..12e1596 100644
--- a/README.org
+++ b/README.org
@@ -10,11 +10,6 @@ Remove all those UI elements. They do not look good and waste space.
(fringe-mode -1)
#+END_SRC
-Make the frame a bit larger
-#+BEGIN_SRC emacs-lisp
- (when window-system (set-frame-size (selected-frame) 180 60))
-#+END_SRC
-
* Set up package repositories
** Require package support
State that we will need package support and define a macro for adding package repos to the archives
@@ -136,55 +131,20 @@ And it should be accessible with a quick keystroke:
(insert-file-contents filePath)
(buffer-string)))
#+END_SRC
+** Load all files in a directory
+#+BEGIN_SRC emacs-lisp
+ (defun load-directory (dir)
+ (let ((load-it (lambda (f)
+ (load-file (concat (file-name-as-directory dir) f)))
+ ))
+ (mapc load-it (directory-files dir nil "\\.el$"))))
+#+END_SRC
* Theming
-** Main Theme
-Theme source: [[https://gitlab.com/protesilaos/modus-themes][Modus Operandi]]
+Load font from file. See [[https://github.com/rougier/elegant-emacs]] for more.
#+BEGIN_SRC emacs-lisp
- (use-package modus-operandi-theme)
+ (load "~/.emacs.d/elegant-emacs/elegant-emacs-common.el")
+ (load "~/.emacs.d/elegant-emacs/elegant-emacs-light-theme.el")
#+END_SRC
-** Modeline
-#+BEGIN_SRC emacs-lisp
- (use-package moody
- :config
- (setq x-underline-at-descent-line t)
- (moody-replace-mode-line-buffer-identification)
- (moody-replace-vc-mode))
-#+END_SRC
-
-#+BEGIN_SRC emacs-lisp
- (use-package minions
- :config (minions-mode 1))
-#+END_SRC
-** Font
-Set up the fonts that should be used by emacs.
-#+BEGIN_SRC emacs-lisp
- (set-face-attribute 'default nil
- :family "Hack"
- :height 110
- :weight 'normal
- :width 'normal)
- (custom-theme-set-faces
- 'user
- '(variable-pitch ((t (:family "Source Sans Pro" :height 1.0 :weight light))))
- '(fixed-pitch ((t ( :family "Hack" :slant normal :weight normal :height 1.0 :width normal)))))
-#+END_SRC
-
-This sets different fonts for special blocks in org-mode. So that when ~variable-pitch~ mode is active code block are not broken.
-#+BEGIN_SRC emacs-lisp
- (custom-theme-set-faces
- 'user
- '(org-block ((t (:inherit fixed-pitch))))
- '(org-document-info-keyword ((t (:inherit (shadow fixed-pitch)))))
- '(org-link ((t (:foreground "royal blue" :underline t))))
- '(org-meta-line ((t (:inherit (font-lock-comment-face fixed-pitch)))))
- '(org-property-value ((t (:inherit fixed-pitch))) t)
- '(org-special-keyword ((t (:inherit (font-lock-comment-face fixed-pitch)))))
- '(org-tag ((t (:inherit (shadow fixed-pitch) :weight bold :height 0.8))))
- '(org-verbatim ((t (:inherit (shadow fixed-pitch)))))
- '(org-table ((t (:inherit (shadow fixed-pitch)))))
- '(org-indent ((t (:inherit (org-hide fixed-pitch))))))
-#+END_SRC
-
* Ivy
Use Ivy to make minibuf promts better. Adds the ability to sort and filter.
** Use Ivy
@@ -374,6 +334,7 @@ The most important parts are configuring key bindings to quickly access the file
org-hide-leading-stars nil
org-link-file-path-type 'relative
org-image-actual-width nil ; with this image sizes can be set per image, with an attribute
+ org-display-inline-images t
)
(setcar (nthcdr 4 org-emphasis-regexp-components) 4)
@@ -451,42 +412,42 @@ To use it type ~M-x toggle-org-custom-inline-style~ into an org-mode buffer.
When exporting to HTML emacs will ask which css theme to use.
#+BEGIN_SRC emacs-lisp
- (defun org-html-inline-style ()
- (interactive)
- (let ((hook 'org-export-before-parsing-hook)
- (fun 'set-org-html-style))
- (if (memq fun (eval hook))
- (progn
- (remove-hook hook fun 'buffer-local)
- (message "Removed %s from %s" (symbol-name fun) (symbol-name hook)))
- (add-hook hook fun nil 'buffer-local)
- (message "Added %s to %s" (symbol-name fun) (symbol-name hook)))))
+ (defun org-html-inline-style ()
+ (interactive)
+ (let ((hook 'org-export-before-parsing-hook)
+ (fun 'set-org-html-style))
+ (if (memq fun (eval hook))
+ (progn
+ (remove-hook hook fun 'buffer-local)
+ (message "Removed %s from %s" (symbol-name fun) (symbol-name hook)))
+ (add-hook hook fun nil 'buffer-local)
+ (message "Added %s to %s" (symbol-name fun) (symbol-name hook)))))
- (defun org-theme ()
- (interactive)
- (let* ((cssdir org-theme-css-dir)
- (css-choices (directory-files cssdir nil ".css$"))
- (css (completing-read "theme: " css-choices nil t)))
- (concat cssdir css)))
+ (defun org-theme ()
+ (interactive)
+ (let* ((cssdir org-theme-css-dir)
+ (css-choices (directory-files cssdir nil ".css$"))
+ (css (completing-read "theme: " css-choices nil t)))
+ (concat cssdir css)))
- (defun set-org-html-style (&optional backend)
- (interactive)
- (when (or (null backend) (eq backend 'html))
- (let ((f (or (and (boundp 'org-theme-css) org-theme-css) (org-theme))))
- (if (file-exists-p f)
- (progn
- (set (make-local-variable 'org-theme-css) f)
- (set (make-local-variable 'org-html-head)
- (with-temp-buffer
- (insert "\n")
- (buffer-string)))
- (set (make-local-variable 'org-html-head-include-default-style)
- nil)
- (message "Set custom style from %s" f))
- (message "Custom header file %s doesnt exist")))))
+ (defun set-org-html-style (&optional backend)
+ (interactive)
+ (when (or (null backend) (eq backend 'html))
+ (let ((f (or (and (boundp 'org-theme-css) org-theme-css) (org-theme))))
+ (if (file-exists-p f)
+ (progn
+ (set (make-local-variable 'org-theme-css) f)
+ (set (make-local-variable 'org-html-head)
+ (with-temp-buffer
+ (insert "\n")
+ (buffer-string)))
+ (set (make-local-variable 'org-html-head-include-default-style)
+ nil)
+ (message "Set custom style from %s" f))
+ (message "Custom header file %s doesnt exist")))))
#+END_SRC
** Prettier Timestamps in Exports
@@ -561,19 +522,6 @@ Using ~ox-hugo~ a directory of org files can autmatically be extported to markdo
[[https://ox-hugo.scripter.co/][Documentation]]
-* Deft
-Deft package for very nice searching anf file creating.
-#+BEGIN_SRC emacs-lisp
- (use-package deft
- :bind ("" . deft)
- :commands (deft)
- :config (setq deft-recursive t
- deft-extensions '("org")
- deft-default-extension "org"))
-#+END_SRC
-
-Note that the ~deft-directory~ variable has to be set before using
-
* Treemacs
Treemacs makes navigating folders and files much easier. This is the default config from [[https://github.com/Alexander-Miller/treemacs][the offical repository]] as a base, with slight modifications to suite my config.
@@ -646,13 +594,6 @@ Treemacs makes navigating folders and files much easier. This is the default con
:after treemacs magit
:ensure t)
#+END_SRC
-
-** Start with open tree
-Show the tree on emacs startup
-#+BEGIN_SRC emacs-lisp
- (add-hook 'emacs-startup-hook 'treemacs)
-#+END_SRC
-
* Elfeed
[[https://github.com/skeeto/elfeed][Elfeed]] is an RSS reader for emacs.
#+BEGIN_SRC emacs-lisp
@@ -677,18 +618,6 @@ elfeed can be extended with various hooks for ease of used
:remove 'unread))
#+END_SRC
-* Programming
-** Nim
-These are settings and packages used for programming [[https://nim-lang.org/][nim]] in emacs
-#+BEGIN_SRC emacs-lisp
- (use-package nim-mode)
-#+END_SRC
-
-And an extra package to provide flycheck infos for nim
-Source: [[https://github.com/ALSchwalm/flycheck-nim][Github]]
-#+BEGIN_SRC emacs-lisp
- (use-package flycheck-nim)
-#+END_SRC
* Additional Package Imports
** All The Icons
We want to have some nice looking icons
@@ -729,20 +658,6 @@ Quick bind to ~C-c u ~ to duplicate the current line
:bind (("C-c u" . duplicate-thing)))
#+END_SRC
-** Guide Key
-Use this to get some help with key bindings
-#+BEGIN_SRC emacs-lisp
- (use-package guide-key
- :diminish guide-key-mode
- :config
- (guide-key-mode t)
- (setq guide-key/guide-key-sequence '("C-x v" ;; version control
- "C-c a" ;; my mode-specific bindings
- "C-c l" ;; line-jumping
- "C-c o"
- )))
-#+END_SRC
-
** ACE Window
Small package to quickly switch tiled windows.
Use ~M-p~ to quickly switch.
@@ -756,15 +671,6 @@ HTML Exporter for org-mode
(use-package htmlize)
#+END_SRC
-** which-key
-This package provides a minor mode that shows a list of possible keys in the minibuffer.
-After a second of inactivity the minibuffer will expand and show possible completions for the started command.
-#+BEGIN_SRC emacs-lisp
- (use-package which-key
- :config
- (which-key-mode t))
-#+END_SRC
-
** Autocompletion
#+BEGIN_SRC emacs-lisp
(use-package company
@@ -772,13 +678,6 @@ After a second of inactivity the minibuffer will expand and show possible comple
(global-company-mode))
#+END_SRC
-** Transpose Frame
-With the transpose-frame package windows can be rearanged in a frame without the need to close and reopen them.
-#+BEGIN_SRC emacs-lisp
- (use-package transpose-frame
- :bind ("M-t" . transpose-frame))
-#+END_SRC
-
** vterm
[[https://github.com/akermu/emacs-libvterm][vterm]] is a superiour alternative to the integrated eshell, shell or term modes.
The packages only works on linux and reuqires that emacs is compiled with module support (the ~module-file-suffix~ variable will be filled).
@@ -878,7 +777,7 @@ Changed: No more CUA, ~C-c~ is used in to many places that are broken by cua-mod
#+END_SRC
* Hooks
-** Remove trailing whitespace on file close
+** Remove trailing whitespace on file close
#+BEGIN_SRC emacs-lisp
(add-hook 'before-save-hook 'delete-trailing-whitespace)
#+END_SRC
diff --git a/elegant-emacs b/elegant-emacs
new file mode 160000
index 0000000..8c6c9a3
--- /dev/null
+++ b/elegant-emacs
@@ -0,0 +1 @@
+Subproject commit 8c6c9a3a758c5d4989c9fd8da0db9fb0ce917123
diff --git a/example.personal.el b/example.personal.el
deleted file mode 100644
index daecce6..0000000
--- a/example.personal.el
+++ /dev/null
@@ -1,5 +0,0 @@
-(setq
- user-full-name "" ; it's me
- deft-directory "" ; deft will start seraching here
- link-dump "" ; The link dump
- )