;; 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)))) ;;;; Load my packages ;; Default theme (use-package zenburn-theme :config (load-theme 'zenburn 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")) ;; modeline ;; configure the default one (load "~/.emacs.d/elisp/modeline-setup.el") ;; then use doom-modeline (use-package all-the-icons) (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 dashboard :config (dashboard-setup-startup-hook)) ;; Reading (use-package nov :config (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 :straight t :config (save-place-mode 1)) ;; 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)) ;; Read Gopher and Gemini (use-package elpher) ;; Read feeds (use-package elfeed) ;; Write gemtext ;(use-package gemini-mode ; :straight t) ;; Interface with guix package manager (use-package guix) ;; Programming environment ;; We need colors in eshell (use-package xterm-color) ;; git (use-package magit) ;; code completion (use-package company :config (add-hook 'after-init-hook 'global-company-mode)) (use-package treemacs :config (global-set-key (kbd "") 'treemacs)) ;; language server (use-package lsp-mode) (use-package lsp-ui) (use-package lsp-treemacs) (use-package lsp-ivy) (use-package company-lsp) (use-package yasnippet :config (yas-global-mode 1)) (use-package dap-mode) ;; R ;(use-package ess ;:config ;(load "~/.emacs.d/elisp/ess-setup.el") ; ) ;; Javascript and React (use-package rjsx-mode :config (add-to-list 'auto-mode-alist '("\\.js\\'" . rjsx-mode))) ;; Typescript (use-package tide :disabled :config (load "~/.emacs.d/elisp/typescript.el")) (use-package typescript-mode :ensure t :init (define-derived-mode typescript-tsx-mode typescript-mode "tsx") :config (add-hook 'typescript-mode #'subword-mode) (add-to-list 'auto-mode-alist '("\\.tsx?\\'" . typescript-tsx-mode))) (use-package tree-sitter :straight t :hook ((typescript-mode . tree-sitter-hl-mode) (typescript-tsx-mode . tree-sitter-hl-mode))) (use-package tree-sitter-langs :straight t :after tree-sitter :config (tree-sitter-require 'tsx) (add-to-list 'tree-sitter-major-mode-language-alist '(typescript-tsx-mode . tsx))) ;; Geiser (use-package geiser) (use-package geiser-guile) ;; 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 :straight t ;; :demand t :after python :hook (python-mode . python-black-on-save-mode-enable-dwim)) ;; Ivy related stuff (use-package ivy) (use-package ivy-bibtex :straight t) (use-package counsel) (use-package swiper) (load "~/.emacs.d/elisp/ivy-setup.el") ;; 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))