Stand 28.10.2024
Aus dieser Datei wird meine Emacs Config erstellt.
Osx Stuff
Disable right Option Key so i can type stuff like "\" "[" "}"
(setq mac-option-key-is-meta t) (setq mac-right-option-modifier nil) (setq default-input-method "MacOSX")
Visual Stuff
(setq inhibit-startup-message t) (scroll-bar-mode -1) ; Disable visible scrollbar (tool-bar-mode -1) ; Disable the toolbar (tooltip-mode -1) ; Disable tooltips (set-fringe-mode 10) ; Give some breathing room (load-theme 'solarized-dark t) (menu-bar-mode -1) ; Disable the menu bar (set-face-attribute 'default nil :height 160) (column-number-mode) (global-display-line-numbers-mode t) (dolist (mode '(;;org-mode-hook term-mode-hook eshell-mode-hook)) (add-hook mode (lambda () (display-line-numbers-mode 0))))
All the Icons
(use-package all-the-icons :if (display-graphic-p) :commands all-the-icons-install-fonts :init (unless (find-font (font-spec :name "all-the-icons")) (all-the-icons-install-fonts t))) (use-package all-the-icons-dired :if (display-graphic-p) :hook (dired-mode . all-the-icons-dired-mode))
Use Escape to quit prompts
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
Package Managment
;; Initialize package sources (require 'package) (setq package-archives '(("melpa" . "https://melpa.org/packages/") ("org" . "https://orgmode.org/elpa/") ("elpa" . "https://elpa.gnu.org/packages/"))) (package-initialize) (unless package-archive-contents (package-refresh-contents)) ;; Initialize use-package on non-Linux platforms (unless (package-installed-p 'use-package) (package-install 'use-package)) (require 'use-package) (setq use-package-always-ensure t)
Keybindings
store & insert Link
Tools
Swiper
Volltextsuche
(use-package swiper)
Doom-modeline
Erweitert die Modeline unten im Screen, sah vorher doof aus und hat jetzt mehr Infos und Icons
(use-package doom-modeline :ensure t :init (doom-modeline-mode 1) :custom ((doom-modeline-height 15)))
Ivy
Autocomplete mit hübscherem UI für viele Modes, hier noch mit Vim artigen Shortcuts zum navigieren (erstmal auskommentiert)
(use-package ivy :diminish :bind (("C-s" . swiper) ;; :map ivy-minibuffer-map ;; ("TAB" . ivy-alt-done) ;; ("C-l" . ivy-alt-done) ;; ("C-j" . ivy-next-line) ;; ("C-k" . ivy-previous-line) ;; :map ivy-switch-buffer-map ;; ("C-k" . ivy-previous-line) ;; ("C-l" . ivy-done) ;; ("C-d" . ivy-switch-buffer-kill) ;; :map ivy-reverse-i-search-map ;; ("C-k" . ivy-previous-line) ;; ("C-d" . ivy-reverse-i-search-kill) ) :config (ivy-mode 1))
http server per shortcut
(use-package simple-httpd :ensure t)
(use-package rainbow-delimiters :hook (prog-mode . rainbow-delimiters-mode)) (use-package which-key :init (which-key-mode) :diminish which-key-mode :config (setq which-key-idle-delay 1)) (use-package counsel :bind (("M-x" . counsel-M-x) ("C-x b" . counsel-ibuffer) ("C-x C-f" . counsel-find-file) :map minibuffer-local-map ("C-r" . 'counsel-minibuffer-history) ) :config (setq ivy-initial-inputs-alist nil) ) (use-package ivy-rich :init (ivy-rich-mode 1)) ;; https://github.com/Wilfred/helpful/issues/339 (use-package helpful :custom (counsel-describe-function-function #'helpful-callable) (counsel-describe-variable-function #'helpful-variable) :bind ([remap describe-function] . counsel-describe-function) ([remap describe-command] . helpful-command) ([remap describe-variable] . counsel-describe-variable) ([remap describe-key] . helpful-key)) (toggle-frame-fullscreen)
Improve Org mode Visuals
(defun dw/org-mode-setup () (org-indent-mode) (variable-pitch-mode 1) (auto-fill-mode 0) (visual-line-mode 1) (setq evil-auto-indent nil)) (use-package org :hook (org-mode . dw/org-mode-setup) :config (setq org-ellipsis " ▾" org-hide-emphasis-markers t)) (use-package org-bullets :after org :hook (org-mode . org-bullets-mode) :custom (org-bullets-bullet-list '("◉" "○" "●" "○" "●" "○" "●"))) ;; Replace list hyphen with dot (font-lock-add-keywords 'org-mode '(("^ *\\([-]\\) " (0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•")))))) (dolist (face '((org-level-1 . 1.2) (org-level-2 . 1.1) (org-level-3 . 1.05) (org-level-4 . 1.0) (org-level-5 . 1.1) (org-level-6 . 1.1) (org-level-7 . 1.1) (org-level-8 . 1.1))) (set-face-attribute (car face) nil :weight 'regular :height (cdr face))) ;; Make sure org-indent face is available (require 'org-indent) ;; Ensure that anything that should be fixed-pitch in Org files appears that way (set-face-attribute 'org-block nil :foreground nil :inherit 'fixed-pitch) (set-face-attribute 'org-code nil :inherit '(shadow fixed-pitch)) (set-face-attribute 'org-indent nil :inherit '(org-hide fixed-pitch)) (set-face-attribute 'org-verbatim nil :inherit '(shadow fixed-pitch)) (set-face-attribute 'org-special-keyword nil :inherit '(font-lock-comment-face fixed-pitch)) (set-face-attribute 'org-meta-line nil :inherit '(font-lock-comment-face fixed-pitch)) (set-face-attribute 'org-checkbox nil :inherit 'fixed-pitch)
Org-babel-js
(require 'ob-js) (add-to-list 'org-babel-load-languages '(js . t)) (org-babel-do-load-languages 'org-babel-load-languages org-babel-load-languages) (add-to-list 'org-babel-tangle-lang-exts '("js" . "js"))
Typescript support in org files (but no syntax highlighting)
(require 'ob-typescript) (org-babel-do-load-languages 'org-babel-load-languages '((typescript . t) ))
Org files in json exportieren
(require 'ox-json)
Org Roam
(use-package org-roam :ensure t :init (setq org-roam-v2-ack t) :custom (org-roam-directory "~/org/RoamNotes") (org-roam-completion-everywhere t) (org-roam-dailies-capture-templates '(("d" "default" entry "* %<%I:%M %p>: %?" :if-new (file+head "%<%Y-%m-%d>.org" "#+title: %<%Y-%m-%d>\n")))) :bind (("C-c n l" . org-roam-buffer-toggle) ("C-c n f" . org-roam-node-find) ("C-c n i" . org-roam-node-insert) :map org-mode-map ("C-M-i" . completion-at-point) :map org-roam-dailies-map ("Y" . org-roam-dailies-capture-yesterday) ("T" . org-roam-dailies-capture-tomorrow)) :bind-keymap ("C-c n d" . org-roam-dailies-map) :config (require 'org-roam-dailies) ;; Ensure the keymap is available (org-roam-db-autosync-mode))