Files
samfelag/config/doom/config.el
2022-11-25 20:16:46 +01:00

153 lines
5.0 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; -*-
;; Place your private configuration here! Remember, you do not need to run 'doom
;; sync' after modifying this file!
;; 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" :size 15))
(setq doom-unicode-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))
;; 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)
;; -----------------------------------------------------------------------------
;; 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"))
;; -----------------------------------------------------------------------------
;; Org
;; -----------------------------------------------------------------------------
(setq org-directory "~/org/")
; (use-package org-roam
; :ensure t
; :init
; (setq org-roam-v2-ack t)
; :custom
; (org-roam-directory "~/org-roam")
; (org-roam-capture-templates
; '(("d" "default" plain "%?"
; :target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n")
; :unnarrowed t)
; ("m" "màquina" plain (file "~/org-roam/templates/maquina.org")
; :target (file "%<%Y%m%d%H%M%S>-${slug}.org")
; :unnarrowed t)
; ("s" "software" plain (file "~/org-roam/templates/software.org")
; :target (file "%<%Y%m%d%H%M%S>-${slug}.org")
; :unnarrowed t)))
; :config
; (org-roam-setup))
;
; (use-package! websocket
; :after org-roam)
;
; (use-package! org-roam-ui
; :after org-roam ;; or :after org
; ;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have
; ;; a hookable mode anymore, you're advised to pick something yourself
; ;; if you don't care about startup time, use
; ;; :hook (after-init . org-roam-ui-mode)
; :config
; (setq org-roam-ui-sync-theme t
; org-roam-ui-follow t
; org-roam-ui-update-on-save t
; org-roam-ui-open-on-start nil))
;; -----------------------------------------------------------------------------
;; 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]" "☑"))