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 ** General
*** Super 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 #+begin_src emacs-lisp
(setq make-backup-files nil (setq make-backup-files nil
auto-mode-case-fold 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) fast-but-imprecise-scrolling t)
#+end_src #+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 *** Short yes/no
Answering /yes/ and /no/ to each question from Emacs can be tedious, a Answering /yes/ and /no/ to each question from Emacs can be tedious, a
single /y/ or /n/ will suffice. single /y/ or /n/ will suffice.
@@ -159,7 +153,7 @@ Make ESC quit prompts.
(load bootstrap-file nil 'nomessage)) (load bootstrap-file nil 'nomessage))
#+end_src #+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 #+begin_src emacs-lisp
(setq package-enable-at-startup nil) (setq package-enable-at-startup nil)
(straight-use-package 'use-package) (straight-use-package 'use-package)
@@ -232,14 +226,13 @@ I mainly use these fonts:
+ =Noto JP= for japanese characters + =Noto JP= for japanese characters
#+begin_src emacs-lisp #+begin_src emacs-lisp
(set-face-attribute 'default nil :font "SFMono Nerd Font" :height 110 :weight 'medium) (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 "JuliaMono" nil 'prepend)
(set-fontset-font t 'unicode "Noto Color Emoji" nil 'prepend) (set-fontset-font t 'unicode "Noto Color Emoji" nil 'prepend)
(set-fontset-font t 'unicode "Noto Sans Mono CJK JP" nil 'append) (set-fontset-font t 'unicode "Noto Sans Mono CJK JP" nil 'append)
#+end_src #+end_src
*** Bars *** Bars
I don't need ugly ass bars. I don't need ugly bars.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(menu-bar-mode -1) (menu-bar-mode -1)
(tool-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-themes-enable-italic t
doom-solarized-light-padded-modeline nil) doom-solarized-light-padded-modeline nil)
(load-theme 'doom-solarized-light t) (load-theme 'doom-solarized-light t)
(doom-themes-org-config) (doom-themes-org-config))
(doom-themes-treemacs-config))
#+end_src #+end_src
*** Modeline *** Modeline
@@ -310,17 +302,11 @@ Use =doom-modeline= as a bar... together with icons and nyan cat!
:straight t :straight t
:init :init
(nyan-mode) (nyan-mode)
;; (nyan-start-animation)
:config :config
(setq nyan-cat-face-number 4 (setq nyan-cat-face-number 4
nyan-minimum-window-width 120)) nyan-minimum-window-width 120))
#+end_src #+end_src
Show me the time!
#+begin_src emacs-lisp :tangle no
(display-time-mode)
#+end_src
*** Inline colors *** Inline colors
Show me color codes as colors! Show me color codes as colors!
#+begin_src emacs-lisp #+begin_src emacs-lisp
@@ -333,82 +319,10 @@ Show me color codes as colors!
#+end_src #+end_src
*** Whitespaces and indentation *** Whitespaces and indentation
Show me those pesky trailing whitespaces... I hate them. Kill them. Show me trailing white-spaces.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(global-whitespace-mode t) (global-whitespace-mode t)
(setq whitespace-style '(face trailing tabs tab-mark)) (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 #+end_src
*** ivy *** ivy
@@ -436,7 +350,7 @@ Swiper - isearch with an overview, and more. Oh, man!
#+end_src #+end_src
*** counsel *** counsel
Spice up some of those old buffers. Spice up some of those old mini buffers.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package counsel (use-package counsel
:straight t :straight t
@@ -458,7 +372,6 @@ Bootstrap =org-mode= together with keybindings.
:straight t :straight t
:general :general
(vim-leader-def 'normal 'global (vim-leader-def 'normal 'global
"os" 'org-attach-screenshot
"oci" 'org-clock-in "oci" 'org-clock-in
"oco" 'org-clock-out "oco" 'org-clock-out
"ocd" 'org-clock-display "ocd" 'org-clock-display
@@ -468,8 +381,8 @@ Bootstrap =org-mode= together with keybindings.
"oti" 'org-toggle-inline-images "oti" 'org-toggle-inline-images
"odi" 'org-display-inline-images) "odi" 'org-display-inline-images)
:hook :hook
(org-mode . (lambda () (electric-indent-local-mode -1))) ;; dont make real spaces at the start of a line (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 #+end_src
*** Misc *** 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-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-done nil ;; just mark DONE without a time stamp
org-log-repeat nil ;; don't set a time after marking sth DONE 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 #+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"))) org-todo-keyword-faces '(("TODO" . "#cc241d") ("PROGRESS" . "#a6cc70") ("REVIEW" . "#b16286") ("DONE" . "#abb0b6")))
#+end_src #+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 *** org-babel
Executing code inline is just a breeze. Executing code inline is just a breeze.
Firstly tho, they must be enabled here. 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) (C . t)
(dot . t) (dot . t)
(octave . t))) (octave . t)))
(use-package sage-shell-mode
:straight t)
(use-package ob-sagemath
:straight t)
#+end_src #+end_src
*** org-agenda *** org-agenda
@@ -562,46 +460,12 @@ I need my =hjkl= :(
(setq org-ref-completion-library 'org-ref-ivy-cite)) (setq org-ref-completion-library 'org-ref-ivy-cite))
#+end_src #+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 *** org-alert
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package org-alert (use-package org-alert
:straight t :straight t
:config :config
(setq alert-default-style 'libnotify) (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)) (org-alert-enable))
#+end_src #+end_src
@@ -639,14 +503,6 @@ Use the above fix and disable creating of =.tex= files.
(add-to-list 'org-latex-logfiles-extensions "bbl")) (add-to-list 'org-latex-logfiles-extensions "bbl"))
#+end_src #+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. Use graphivz to draw graphs.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package graphviz-dot-mode (use-package graphviz-dot-mode
@@ -693,7 +549,7 @@ Use some magic heuristics for indentation.
#+end_src #+end_src
*** Auto pairs *** Auto pairs
Auto matching pairs are reaaaaally nice. Auto matching pairs is nice.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package electric-pair (use-package electric-pair
:config :config
@@ -722,10 +578,6 @@ Auto matching pairs are reaaaaally nice.
"gp" 'magit-push "gp" 'magit-push
"gs" 'magit-status "gs" 'magit-status
"gu" 'magit-pull)) "gu" 'magit-pull))
(use-package treemacs-magit
:after (treemacs magit)
:straight t)
#+end_src #+end_src
*** Highlight todo's *** 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)))) ("UNUSED" . hl-todo-UNUSED))))
#+end_src #+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 *** Code style
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq ; c-default-style "bsd" (setq ; c-default-style "bsd"
@@ -768,8 +610,8 @@ Easily rename occurrences, even without =lsp-rename=
#+end_src #+end_src
** Code completion ** Code suggestions
*** completion *** company
First of all, we need a backend for our completion and analysis. First of all, we need a backend for our completion and analysis.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package company (use-package company
@@ -835,7 +677,7 @@ We also need the actual snippets.
#+end_src #+end_src
** LSP and projects ** LSP and language specific settings
*** lsp-mode *** lsp-mode
=lsp-mode= is feature-richer than =eglot=, so I'm using this one. =lsp-mode= is feature-richer than =eglot=, so I'm using this one.
#+begin_src emacs-lisp #+begin_src emacs-lisp
@@ -849,15 +691,10 @@ We also need the actual snippets.
(setq lsp-auto-guess-root t (setq lsp-auto-guess-root t
lsp-idle-delay 1 lsp-idle-delay 1
lsp-enable-file-watchers nil lsp-enable-file-watchers nil
lsp-headerline-breadcrumb-icons-enable nil) lsp-headerline-breadcrumb-icons-enable nil))
:hook
(rust-mode . lsp)
(python-mode . lsp)
(haskell-mode . lsp)
(c-mode . lsp)
(c++-mode . lsp))
#+end_src #+end_src
Code Lens can show error inline.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package lsp-ui (use-package lsp-ui
:straight t :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))) :bind(:map lsp-mode-map ("C-l g a" . lsp-ivy-workspace-symbol)))
#+end_src #+end_src
*** projects *** language configurations
#+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
**** rust **** rust
Basic =rust-mode= with some fancy characters. Basic =rust-mode= with some fancy characters.
#+begin_src emacs-lisp #+begin_src emacs-lisp
@@ -925,13 +752,10 @@ are required.
(use-package lsp-haskell (use-package lsp-haskell
:straight t :straight t
:after lsp :after lsp)
:hook
(haskell-mode . lsp)
(haskell-literate-mode . lsp))
#+end_src #+end_src
*** octave **** octave
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package octave-mode (use-package octave-mode
:mode ("\\.m\\'" . 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 (append math-symbol-list-superscripts
math-symbol-list-subscripts))) math-symbol-list-subscripts)))
#+end_src #+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 #+OPTIONS: toc:t
#+LATEX_HEADER: \date{\today} #+LATEX_HEADER: \date{\today}
% emacs config might also add packages
#+LATEX_HEADER: \usepackage{a4wide} #+LATEX_HEADER: \usepackage{a4wide}
#+LATEX_HEADER: \usepackage{mathtools} #+LATEX_HEADER: \usepackage{mathtools}
#+LATEX_HEADER: \usepackage{amsthm} #+LATEX_HEADER: \usepackage{amsthm}
#+LATEX_HEADER: \usepackage{amssymb} #+LATEX_HEADER: \usepackage{amssymb}
#+LATEX_HEADER: \usepackage{amsmath} #+LATEX_HEADER: \usepackage{amsmath}
#+LATEX_HEADER: \usepackage{amsfonts} #+LATEX_HEADER: \usepackage{amsfonts}
#+LATEX_HEADER: \usepackage[utf8]{inputenc} % #+LATEX_HEADER: \usepackage[utf8]{inputenc}
#+LATEX_HEADER: \usepackage[T1]{fontenc} #+LATEX_HEADER: \usepackage[T1]{fontenc}
#+LATEX_HEADER: \usepackage[ngerman]{babel} #+LATEX_HEADER: \usepackage[ngerman]{babel}
#+LATEX_HEADER: \usepackage{hyphenat} #+LATEX_HEADER: \usepackage{hyphenat}
@@ -46,31 +48,31 @@
% definition % definition
#+LATEX_HEADER: \theoremstyle{definition} #+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{definition}{Definition}[section] #+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 % example
#+LATEX_HEADER: \theoremstyle{definition} #+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{ex}{Beispiel}[section] #+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 % theorem
#+LATEX_HEADER: \newtheorem{theorem}{Satz}[section] #+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 % algorithm
#+LATEX_HEADER: \theoremstyle{definition} #+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem{algo}{Algorithmus}[section] #+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 % remark
#+LATEX_HEADER: \theoremstyle{definition} #+LATEX_HEADER: \theoremstyle{definition}
#+LATEX_HEADER: \newtheorem*{remark}{Bemerkung} #+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 % proof
#+LATEX_HEADER: \tcolorboxenvironment{proof}{blanker,before skip=10pt,after skip=10pt} #+LATEX_HEADER: \tcolorboxenvironment{proof}{before skip=10pt,after skip=10pt}
%%% code blocks %%% code blocks
#+latex_header: \usepackage{minted} #+latex_header: \usepackage{minted}
#+latex_header: \usemintedstyle{friendly} #+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}