Files
samfelag/config/doom/config.el
2024-12-08 19:03:42 +01:00

150 lines
4.9 KiB
EmacsLisp
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
;;; $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 15))
(setq doom-symbol-font (font-spec :family "Iosevka Nerd Font" :size 15))
;; 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]" "☑"))