;; set default font (when (member "Fantasque Sans Mono" (font-family-list)) (set-face-attribute 'default nil :font "Fantasque Sans Mono-16")) ;; Always use slant for italic, not underline '(italic ((t (:slant italic)))) ;; Save point (save-place-mode 1) ;; Set column width to 88 characters (setq-default fill-column 88) ;;;; Load my packages ;; Default theme ;; (use-package zenburn-theme ;; :demand t ;; :config ;; (load-theme 'zenburn t)) (load-theme 'modus-operandi-tinted t) ;; Eshell ;; (use-package eshell ;; :after eshell-mode ;; :init ;; (load "~/.emacs.d/elisp/eshell-setup.el")) ;; Org (use-package org :config (load "~/.emacs.d/elisp/org-setup.el")) (use-package org-ref) ;; (use-package org-roam ;; :disabled ;; :config ;; (load "~/.emacs.d/elisp/org-roam-setup.el")) ;; Writing (use-package writeroom-mode) ;; modeline ;; configure the default one (load "~/.emacs.d/elisp/modeline-setup.el") ;; then use doom-modeline ;; (use-package doom-modeline ;; :config ;; (progn ;; (setq doom-modeline-buffer-encoding nil) ;; (setq doom-modeline-height 15) ;; (when (member "Fantasque Sans Mono" (font-family-list)) ;; (set-face-attribute 'mode-line nil :font "Fantasque Sans Mono-14") ;; (set-face-attribute 'mode-line-inactive nil :font "Fantasque Sans Mono-13"))) ;; :hook ;; (after-init . doom-modeline-mode)) ;; (use-package doom-modeline ;; :ensure t ;; :init (doom-modeline-mode 1)) (use-package all-the-icons) (use-package dashboard :demand t :config (dashboard-setup-startup-hook)) ;; Reading (use-package nov :config (setq nov-text-width t) (setq visual-fill-column-center-text t) (add-hook 'nov-mode-hook 'visual-line-mode) (add-hook 'nov-mode-hook 'visual-fill-column-mode) (add-hook 'nov-mode-hook 'writeroom-mode) (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))) (use-package pdf-tools :config (progn (pdf-tools-install) (setq pdf-view-midnight-colors '("#DCDCCC" . "#3F3F3F")))) (use-package saveplace-pdf-view) ;; ;; Mail reader ;; (use-package mu4e ;; :disabled ;; :config ;; (load "~/.emacs.d/elisp/mu4e-setup.el")) ;; ;; mail notification in modeline ;; (use-package mu4e-alert ;; :disabled ;; :after mu4e ;; :init ;; (setq mu4e-alert-interesting-mail-query "flag:unread maildir:/posteo/INBOX") ;; :hook ;; (after-init . mu4e-alert-enable-mode-line-display)) ;; Matrix (use-package ement) ;; Read Gopher and Gemini (use-package elpher) ;; Read feeds (use-package elfeed) ;; Programming environment ;; We need colors in eshell (use-package xterm-color) ;; git (use-package magit :demand t) ;; ;; code completion (use-package company :demand t :config (add-hook 'after-init-hook 'global-company-mode)) ;; documentation via dash docsets (use-package dash-docs :config (progn (setq dash-docs-browser-func 'eww) (setq dash-docs-enable-debugging nil))) (use-package tomlparse) ;; TODO I'm only using demand so is set from the start (use-package treemacs :demand t :config (global-set-key (kbd "") 'treemacs)) ;; Javascript and React (use-package rjsx-mode :config (add-to-list 'auto-mode-alist '("\\.js\\'" . rjsx-mode))) ;; Common Lisp (use-package slime :disabled :config (load "~/.emacs.d/elisp/slime-setup.el")) (use-package sly) ;; Clojure (use-package cider) ;; Rust (use-package rust-mode :config (load "~/.emacs.d/elisp/rust-setup.el")) ;; Haskell (use-package haskell-mode) ;; Racket (use-package racket-mode) ;; Python (use-package pyvenv :init (setenv "WORKON_HOME" "~/.cache/pypoetry/virtualenvs")) (use-package python-black :after python :hook (python-mode . python-black-on-save-mode-enable-dwim)) (use-package pydoc) (use-package pet :config (add-hook 'python-base-mode-hook 'pet-mode -10)) ;; Ivy related stuff (use-package ivy) (use-package ivy-bibtex) (use-package counsel) (use-package swiper) (use-package counsel-dash :after (counsel)) (load "~/.emacs.d/elisp/ivy-setup.el") ;; View logs (use-package log4j-mode) (use-package eglot :straight (:type built-in) :ensure t :defer t :hook ((python-base-mode . eglot-ensure)) ;:config ;(setq-default eglot-workspace-configuration ; '((pylsp ; (plugins ; (pycodestyle (enabled . nil)) ; (pyflakes (enabled . nil)) ; (flake8 (enabled . t)) ; (black (enabled . t)) ; )))) ) ;; TRAMP (load "~/.emacs.d/elisp/tramp-setup.el") (load "~/.emacs.d/elisp/outline-keymap.el") (load "~/.emacs.d/elisp/bibtex-setup.el") (load "~/.emacs.d/elisp/keypad.el") ;; from https://www.anghyflawn.net/blog/2014/emacs-give-a-doi-get-a-bibtex-entry/ (defun get-bibtex-from-doi (doi) "Get a BibTeX entry from the DOI" (interactive "MDOI: ") (let ((url-mime-accept-string "text/bibliography;style=bibtex")) (with-current-buffer (url-retrieve-synchronously (format "http://dx.doi.org/%s" (replace-regexp-in-string "http://dx.doi.org/" "" doi))) (switch-to-buffer (current-buffer)) (goto-char (point-max)) (setq bibtex-entry (buffer-substring (string-match "@" (buffer-string)) (point))) (kill-buffer (current-buffer)))) (insert (decode-coding-string bibtex-entry 'utf-8)) (bibtex-fill-entry))