cleanup emacs conf

This commit is contained in:
Marco Thomas
2022-05-24 00:12:30 +02:00
parent dffc83c77e
commit 7098826423
2 changed files with 28 additions and 228 deletions

View File

@@ -104,7 +104,7 @@ receiving input, which should help a little with scrolling performance.
** General
*** Super general
Some defaults, which i forget the reason of using it.
Some defaults, which i forget the reason of using them.
#+begin_src emacs-lisp
(setq make-backup-files nil
auto-mode-case-fold nil
@@ -116,12 +116,6 @@ Some defaults, which i forget the reason of using it.
fast-but-imprecise-scrolling t)
#+end_src
*** Auto revert
Automaticly revert =doc-view=-buffers when the file changes on disk.
#+BEGIN_SRC emacs-lisp
(add-hook 'doc-view-mode-hook 'auto-revert-mode)
#+END_SRC
*** Short yes/no
Answering /yes/ and /no/ to each question from Emacs can be tedious, a
single /y/ or /n/ will suffice.
@@ -159,7 +153,7 @@ Make ESC quit prompts.
(load bootstrap-file nil 'nomessage))
#+end_src
Inhibit package.el from loading, as we don't need it.
Inhibit =package.el= from loading, as we don't need it.
#+begin_src emacs-lisp
(setq package-enable-at-startup nil)
(straight-use-package 'use-package)
@@ -232,14 +226,13 @@ I mainly use these fonts:
+ =Noto JP= for japanese characters
#+begin_src emacs-lisp
(set-face-attribute 'default nil :font "SFMono Nerd Font" :height 110 :weight 'medium)
;; (set-face-attribute 'default nil :font "JuliaMono" :height 110 :weight 'medium)
(set-fontset-font t 'unicode "JuliaMono" nil 'prepend)
(set-fontset-font t 'unicode "Noto Color Emoji" nil 'prepend)
(set-fontset-font t 'unicode "Noto Sans Mono CJK JP" nil 'append)
#+end_src
*** Bars
I don't need ugly ass bars.
I don't need ugly bars.
#+begin_src emacs-lisp
(menu-bar-mode -1)
(tool-bar-mode -1)
@@ -288,8 +281,7 @@ Setting my beloved light theme with some icons.
doom-themes-enable-italic t
doom-solarized-light-padded-modeline nil)
(load-theme 'doom-solarized-light t)
(doom-themes-org-config)
(doom-themes-treemacs-config))
(doom-themes-org-config))
#+end_src
*** Modeline
@@ -310,17 +302,11 @@ Use =doom-modeline= as a bar... together with icons and nyan cat!
:straight t
:init
(nyan-mode)
;; (nyan-start-animation)
:config
(setq nyan-cat-face-number 4
nyan-minimum-window-width 120))
#+end_src
Show me the time!
#+begin_src emacs-lisp :tangle no
(display-time-mode)
#+end_src
*** Inline colors
Show me color codes as colors!
#+begin_src emacs-lisp
@@ -333,82 +319,10 @@ Show me color codes as colors!
#+end_src
*** Whitespaces and indentation
Show me those pesky trailing whitespaces... I hate them. Kill them.
Show me trailing white-spaces.
#+begin_src emacs-lisp
(global-whitespace-mode t)
(setq whitespace-style '(face trailing tabs tab-mark))
(add-hook 'before-save-hook 'whitespace-cleanup)
#+end_src
Show me indentation markers.
#+begin_src emacs-lisp :tangle no
(use-package highlight-indent-guides
:straight t
:config
(setq highlight-indent-guides-method 'character
highlight-indent-guides-responsive 'top)
:hook
(prog-mode . highlight-indent-guides-mode))
#+end_src
*** 80 column indicator
Show me a nice column indicator line.
#+begin_src emacs-lisp :tangle no
(use-package fill-column-indicator
:straight t
:defer 1
:diminish
(fci-mode)
:config
(setq fci-rule-width 1
fci-rule-column 80
fci-rule-color "#A6CC70")
:hook
(prog-mode . fci-mode)
(markdown-mode . fci-mode))
#+end_src
*** File bar
Sometimes I want to see all of my files.
#+begin_src emacs-lisp
(use-package treemacs
:straight t
:defer t
:config
(setq treemacs-follow-after-init t
treemacs-persist-file (expand-file-name ".cache/treemacs-persist" user-emacs-directory)
treemacs-width 50
treemacs-project-follow-cleanup t
treemacs-tag-follow-cleanup t
treemacs-expand-after-init nil
treemacs-recenter-after-file-follow t
treemacs-recenter-after-tag-follow t
treemacs-tag-follow-delay 1)
(treemacs-follow-mode t)
(treemacs-load-theme "doom-colors")
(dolist (face '(treemacs-root-face
treemacs-git-unmodified-face
treemacs-git-modified-face
treemacs-git-renamed-face
treemacs-git-ignored-face
treemacs-git-untracked-face
treemacs-git-added-face
treemacs-git-conflict-face
treemacs-directory-face
treemacs-directory-collapsed-face
treemacs-file-face
treemacs-tags-face))
(set-face-attribute face nil :family "JuliaMono" :height 80))
:bind
(:map global-map
("C-x t t" . treemacs)))
;; C-c C-p -> projectile
;; C-c C-w -> workspace
(use-package treemacs-evil
:after (treemacs evil)
:straight t)
#+end_src
*** ivy
@@ -436,7 +350,7 @@ Swiper - isearch with an overview, and more. Oh, man!
#+end_src
*** counsel
Spice up some of those old buffers.
Spice up some of those old mini buffers.
#+begin_src emacs-lisp
(use-package counsel
:straight t
@@ -458,7 +372,6 @@ Bootstrap =org-mode= together with keybindings.
:straight t
:general
(vim-leader-def 'normal 'global
"os" 'org-attach-screenshot
"oci" 'org-clock-in
"oco" 'org-clock-out
"ocd" 'org-clock-display
@@ -469,7 +382,7 @@ Bootstrap =org-mode= together with keybindings.
"odi" 'org-display-inline-images)
:hook
(org-mode . (lambda () (electric-indent-local-mode -1))) ;; dont make real spaces at the start of a line
(org-mode . org-indent-mode)) ;; add virtual spaces
(org-mode . org-indent-mode)) ;; add virtual spaces (only visual)
#+end_src
*** Misc
@@ -480,7 +393,7 @@ Bootstrap =org-mode= together with keybindings.
org-edit-src-content-indentation 0 ;; don't indent stupidly in org-edit-src-code
org-log-done nil ;; just mark DONE without a time stamp
org-log-repeat nil ;; don't set a time after marking sth DONE
org-descriptive-links t ;; Always show plain links
org-descriptive-links t ;; Always show links
)
#+end_src
@@ -491,15 +404,6 @@ Which =org-todo= keywords should be used and how they look.
org-todo-keyword-faces '(("TODO" . "#cc241d") ("PROGRESS" . "#a6cc70") ("REVIEW" . "#b16286") ("DONE" . "#abb0b6")))
#+end_src
*** org-capture
Set some capture templates, for quick notes.
#+begin_src emacs-lisp
(setq org-capture-templates
(quote (("w" "Work" entry (file "~/org/work.org") "* TODO %?\n" :empty-lines-before 1)
("u" "University" entry (file "~/org/uni.org") "* TODO %?\n" :empty-lines-before 1)
("p" "Personal" entry (file "~/org/personal.org") "* TODO %?\n" :empty-lines-before 1))))
#+end_src
*** org-babel
Executing code inline is just a breeze.
Firstly tho, they must be enabled here.
@@ -511,12 +415,6 @@ Also be *careful* with =haskell= recursion, it can lead to system crashes (at l
(C . t)
(dot . t)
(octave . t)))
(use-package sage-shell-mode
:straight t)
(use-package ob-sagemath
:straight t)
#+end_src
*** org-agenda
@@ -562,46 +460,12 @@ I need my =hjkl= :(
(setq org-ref-completion-library 'org-ref-ivy-cite))
#+end_src
*** org-screenshot
#+begin_src emacs-lisp :tangle no
(use-package org-attach-screenshot
:straight t
:config (setq ;org-attach-screenshot-command-line "gnome-screenshot -a -f %f"
org-attach-screenshot-auto-refresh "never"
org-attach-screenshot-insertfunction
(lambda (linkfilename)
(insert (concat
"#+caption:\n#+label: fig:"
(if
(string-match ".*\/\\(.*\\)\.png" linkfilename)
(match-string 1 linkfilename)
)
"\n#+attr_latex: :width 200"
"\n[[file:" linkfilename "]]\n\n")))))
#+end_src
*** org-alert
#+begin_src emacs-lisp
(use-package org-alert
:straight t
:config
(setq alert-default-style 'libnotify)
(defun org-alert--parse-entry ()
"Parse an entry from the org agenda and return a list of the heading and the scheduled/deadline time"
(let ((head (org-alert--strip-text-properties (org-get-heading t t t t)))
(body (org-alert--grab-subtree))
(todo (org-get-todo-state)))
(string-match org-alert-time-match-string body)
(list head (match-string 1 body) todo)))
(defun org-alert--dispatch ()
(let* ((entry (org-alert--parse-entry))
(head (car entry))
(time (cadr entry))
(todo (cadr (cdr entry))))
(if time
(when (and (string= todo "TODO") (org-alert--check-time time))
(alert (concat time ": " head) :title org-alert-notification-title))
(alert head :title org-alert-notification-title))))
(org-alert-enable))
#+end_src
@@ -639,14 +503,6 @@ Use the above fix and disable creating of =.tex= files.
(add-to-list 'org-latex-logfiles-extensions "bbl"))
#+end_src
Show math equations inline!
#+begin_src emacs-lisp :tangle no
(use-package org-fragtog
:straight t
:hook
(org-mode . org-fragtog-mode))
#+end_src
Use graphivz to draw graphs.
#+begin_src emacs-lisp
(use-package graphviz-dot-mode
@@ -693,7 +549,7 @@ Use some magic heuristics for indentation.
#+end_src
*** Auto pairs
Auto matching pairs are reaaaaally nice.
Auto matching pairs is nice.
#+begin_src emacs-lisp
(use-package electric-pair
:config
@@ -722,10 +578,6 @@ Auto matching pairs are reaaaaally nice.
"gp" 'magit-push
"gs" 'magit-status
"gu" 'magit-pull))
(use-package treemacs-magit
:after (treemacs magit)
:straight t)
#+end_src
*** Highlight todo's
@@ -750,16 +602,6 @@ Sometimes, a big red TODO is more intimidating than one with normal text color.
("UNUSED" . hl-todo-UNUSED))))
#+end_src
*** iedit
Easily rename occurrences, even without =lsp-rename=
#+begin_src emacs-lisp
(use-package iedit
:straight t
:general
(vim-leader-def 'normal 'global
"r" 'iedit-mode))
#+end_src
*** Code style
#+begin_src emacs-lisp
(setq ; c-default-style "bsd"
@@ -768,8 +610,8 @@ Easily rename occurrences, even without =lsp-rename=
#+end_src
** Code completion
*** completion
** Code suggestions
*** company
First of all, we need a backend for our completion and analysis.
#+begin_src emacs-lisp
(use-package company
@@ -835,7 +677,7 @@ We also need the actual snippets.
#+end_src
** LSP and projects
** LSP and language specific settings
*** lsp-mode
=lsp-mode= is feature-richer than =eglot=, so I'm using this one.
#+begin_src emacs-lisp
@@ -849,15 +691,10 @@ We also need the actual snippets.
(setq lsp-auto-guess-root t
lsp-idle-delay 1
lsp-enable-file-watchers nil
lsp-headerline-breadcrumb-icons-enable nil)
:hook
(rust-mode . lsp)
(python-mode . lsp)
(haskell-mode . lsp)
(c-mode . lsp)
(c++-mode . lsp))
lsp-headerline-breadcrumb-icons-enable nil))
#+end_src
Code Lens can show error inline.
#+begin_src emacs-lisp
(use-package lsp-ui
:straight t
@@ -880,17 +717,7 @@ In order for =lsp-mode= to work, it needs to compile code on the =fly=.
:bind(:map lsp-mode-map ("C-l g a" . lsp-ivy-workspace-symbol)))
#+end_src
*** projects
#+begin_src emacs-lisp
(use-package projectile
:straight t
:after lsp
:config
(setq projectile-completion-system 'ivy)
(projectile-mode +1))
#+end_src
*** language server configurations
*** language configurations
**** rust
Basic =rust-mode= with some fancy characters.
#+begin_src emacs-lisp
@@ -925,13 +752,10 @@ are required.
(use-package lsp-haskell
:straight t
:after lsp
:hook
(haskell-mode . lsp)
(haskell-literate-mode . lsp))
:after lsp)
#+end_src
*** octave
**** octave
#+begin_src emacs-lisp
(use-package octave-mode
:mode ("\\.m\\'" . octave-mode)
@@ -1032,29 +856,3 @@ Who needs LaTeX when you can have the power of unicode?
(append math-symbol-list-superscripts
math-symbol-list-subscripts)))
#+end_src
** PDF
*** pdf-tools
Built-in DocView isn't too nice to use.
=pdf-tools= offers smoother scrolling and a nicer search.
=isearch-forward-regexp= replaces =swiper= in this mode, as =swiper= would regexp in the PDF source.
Keybinds:
+ =C-s=: search, just as in =swiper=
+ =C-s= (again): forward search
+ =C-r=: backward search
#+begin_src emacs-lisp
(use-package pdf-tools
:straight t
:config
(define-key pdf-view-mode-map [remap swiper] 'isearch-forward-regexp)
(define-key pdf-view-mode-map [remap evil-ex] 'pdf-view-goto-page)
(setq-default pdf-view-display-size 'fit-page)
(setq pdf-view-resize-factor 1.1)
:hook
(pdf-misc-minor-mode . auto-revert-mode))
;; load necessary things, when a PDF gets opened
(pdf-tools-install)
#+end_src

View File

@@ -4,13 +4,15 @@
#+OPTIONS: toc:t
#+LATEX_HEADER: \date{\today}
% emacs config might also add packages
#+LATEX_HEADER: \usepackage{a4wide}
#+LATEX_HEADER: \usepackage{mathtools}
#+LATEX_HEADER: \usepackage{amsthm}
#+LATEX_HEADER: \usepackage{amssymb}
#+LATEX_HEADER: \usepackage{amsmath}
#+LATEX_HEADER: \usepackage{amsfonts}
#+LATEX_HEADER: \usepackage[utf8]{inputenc}
% #+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage[T1]{fontenc}
#+LATEX_HEADER: \usepackage[ngerman]{babel}
#+LATEX_HEADER: \usepackage{hyphenat}
@@ -46,31 +48,31 @@
% definition
#+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{definition}{Definition}[section]
#+LATEX_HEADER: \tcolorboxenvironment{definition}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{definition}{before skip=10pt,after skip=10pt}
% example
#+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{ex}{Beispiel}[section]
#+LATEX_HEADER: \tcolorboxenvironment{ex}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{ex}{before skip=10pt,after skip=10pt}
% theorem
#+LATEX_HEADER: \newtheorem{theorem}{Satz}[section]
#+LATEX_HEADER: \tcolorboxenvironment{theorem}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{theorem}{before skip=10pt,after skip=10pt}
% algorithm
#+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{algo}{Algorithmus}[section]
#+LATEX_HEADER: \tcolorboxenvironment{algo}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{algo}{before skip=10pt,after skip=10pt}
% remark
#+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem*{remark}{Bemerkung}
#+LATEX_HEADER: \tcolorboxenvironment{remark}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{remark}{before skip=10pt,after skip=10pt}
% proof
#+LATEX_HEADER: \tcolorboxenvironment{proof}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{proof}{before skip=10pt,after skip=10pt}
%%% code blocks
#+latex_header: \usepackage{minted}
#+latex_header: \usemintedstyle{friendly}
#+LATEX_HEADER: \tcolorboxenvironment{minted}{blanker,before skip=10pt,after skip=10pt}
#+LATEX_HEADER: \tcolorboxenvironment{minted}{before skip=10pt,after skip=10pt}