235 lines
5.2 KiB
EmacsLisp
235 lines
5.2 KiB
EmacsLisp
;; 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))
|
|
|
|
;; documentation via dash docsets
|
|
(use-package dash-docs
|
|
:config
|
|
(progn
|
|
(setq dash-docs-browser-func 'eww)
|
|
(setq dash-docs-enable-debugging nil)))
|
|
|
|
(use-package treemacs
|
|
:config
|
|
(global-set-key (kbd "<f3>") '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)
|
|
(use-package counsel-dash
|
|
:after (counsel))
|
|
(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))
|