150 lines
4.9 KiB
EmacsLisp
150 lines
4.9 KiB
EmacsLisp
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
|
||
|
||
;; Some functionality uses this to identify you, e.g. GPG configuration, email
|
||
;; clients, file templates and snippets.
|
||
(setq user-full-name "Marc Sastre Rienitz"
|
||
user-mail-address "marc@sastre.cat")
|
||
|
||
;; This determines the style of line numbers in effect. If set to `nil', line
|
||
;; numbers are disabled. For relative line numbers, set this to `relative'.
|
||
(setq display-line-numbers-type t)
|
||
|
||
;; Fonts
|
||
(setq doom-font (font-spec :family "Iosevka Nerd Font" :size 18))
|
||
(setq doom-symbol-font (font-spec :family "Iosevka Nerd Font" :size 18))
|
||
|
||
;; Themeing
|
||
;; (use-package base16-theme
|
||
;; :init (add-to-list 'custom-theme-load-path "~/.config/doom/themes")
|
||
;; :ensure t
|
||
;; :config
|
||
;; (load-theme 'base16-samfelag t))
|
||
(after! doom-themes
|
||
(load-theme 'doom-nano-dark t))
|
||
|
||
(use-package! doom-nano-modeline
|
||
:config
|
||
(doom-nano-modeline-mode 1)
|
||
(global-hide-mode-line-mode 1))
|
||
|
||
;; Here are some additional functions/macros that could help you configure Doom:
|
||
;;
|
||
;; - `load!' for loading external *.el files relative to this one
|
||
;; - `use-package!' for configuring packages
|
||
;; - `after!' for running code after a package has loaded
|
||
;; - `add-load-path!' for adding directories to the `load-path', relative to
|
||
;; this file. Emacs searches the `load-path' when you load packages with
|
||
;; `require' or `use-package'.
|
||
;; - `map!' for binding new keys
|
||
;;
|
||
;; To get information about any of these functions/macros, move the cursor over
|
||
;; the highlighted symbol at press 'K' (non-evil users must press 'C-c c k').
|
||
;; This will open documentation for it, including demos of how they are used.
|
||
;;
|
||
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
|
||
;; they are implemented.
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
|
||
(setq-default tab-width 4)
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Projectile
|
||
;; -----------------------------------------------------------------------------
|
||
(use-package projectile
|
||
:config
|
||
(setq projectile-project-search-path '("~/projects")))
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; vterm
|
||
;; -----------------------------------------------------------------------------
|
||
(use-package vterm
|
||
:config
|
||
(setq vterm-shell "zsh"))
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; elisp
|
||
;; -----------------------------------------------------------------------------
|
||
(use-package parinfer
|
||
:defer t)
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; LSP
|
||
;; -----------------------------------------------------------------------------
|
||
;; (use-package lsp-mode
|
||
;; :init
|
||
;; :hook (;;
|
||
;; (clojure-mode . lsp-deferred)
|
||
;; (python-mode . lsp-deferred)
|
||
;; ;; if you want which-key integration
|
||
;; (lsp-mode . lsp-enable-which-key-integration))
|
||
;; :commands (lsp lsp-deferred))
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Python
|
||
;; -----------------------------------------------------------------------------
|
||
(defun my-python-mode-hook ()
|
||
"Do everything I need when entering python mode"
|
||
(setq fill-column 120)
|
||
(add-hook! 'before-save-hook :local #'py-autopep8-buffer #'py-isort-buffer)
|
||
;; accept underscore as part of a word
|
||
(superword-mode 1)
|
||
(modify-syntax-entry ?_ "w" python-mode-syntax-table))
|
||
|
||
(add-hook 'python-mode-hook 'my-python-mode-hook)
|
||
|
||
(use-package py-autopep8
|
||
:config
|
||
(setq py-autopep8-options '("--max-line-length=120")))
|
||
|
||
(use-package pipenv
|
||
:config
|
||
(setq pipenv-with-projectile t)
|
||
(setenv "PIPENV_MAX_DEPTH" "10"))
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Web (HTML + CSS)
|
||
;; -----------------------------------------------------------------------------
|
||
;; (use-package! lsp-tailwindcss)
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Org
|
||
;; -----------------------------------------------------------------------------
|
||
(setq org-directory "~/org")
|
||
(setq org-agenda-files (directory-files-recursively "~/org/agenda" "\\.org$"))
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Agenix
|
||
;; -----------------------------------------------------------------------------
|
||
(load! "modules/agenix.el")
|
||
(setq agenix-age-program "age")
|
||
(setq agenix-agenix-program "agenix")
|
||
|
||
|
||
;; -----------------------------------------------------------------------------
|
||
;; Appearance - Prettify
|
||
;; -----------------------------------------------------------------------------
|
||
(load! "modules/prettify-utils.el")
|
||
|
||
(pretty-hook python-mode
|
||
("def" " ")
|
||
("class" "𝙘")
|
||
("None" "∅")
|
||
("lambda" "λ")
|
||
("not in" "∉")
|
||
("in" "∈"))
|
||
|
||
|
||
|
||
(pretty-hook emacs-lisp-mode)
|
||
;; ("defun" "𝙛")
|
||
|
||
;; (pretty-hook org-mode
|
||
;; ("[ ]" "☐")
|
||
;; ("[X]" "☑"))
|