Configuració de doom

This commit is contained in:
marc
2021-11-22 12:51:04 +01:00
parent 57ee7f8a1c
commit 82ebb2785f
5 changed files with 706 additions and 0 deletions

214
.doom.d/config.el Normal file
View File

@@ -0,0 +1,214 @@
;;; $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")
;; Doom exposes five (optional) variables for controlling fonts in Doom. Here
;; are the three important ones:
;;
;; + `doom-font'
;; + `doom-variable-pitch-font'
;; + `doom-big-font' -- used for `doom-big-font-mode'; use this for
;; presentations or streaming.
;;
;; They all accept either a font-spec, font string ("Input Mono-12"), or xlfd
;; font string. You generally only need these two:
;; (setq doom-font (font-spec :family "monospace" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "sans" :size 13))
(setq doom-font (font-spec :family "Iosevka" :size 15))
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
(setq doom-theme 'doom-zenburn)
;; 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)
;; 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 "fish"))
;; -----------------------------------------------------------------------------
;; 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/")
(defun org-set-trello-mode ()
(let ((filename (buffer-file-name (current-buffer))))
(when (and filename (string= "trello" (file-name-extension filename)))
(org-trello-mode))))
(use-package org
:config
(add-to-list 'auto-mode-alist '("\\.trello$" . org-mode))
(add-hook! 'org-mode-hook 'org-set-trello-mode))
(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 org-trello
:config
;; (setq org-trello-current-prefix-keybinding "SPC r")
(defun org-trello-bindings ()
"Set the keybindings for org-trello mode"
(defun set-key (key fn)
(evil-define-key* 'normal org-trello-mode-map
(kbd (concat "SPC r" " " key)) fn))
(set-key "v" 'org-trello-version)
(set-key "i" 'org-trello-install-key-and-token)
(set-key "I" 'org-trello-install-board-metadata)
(set-key "c" 'org-trello-sync-card)
(set-key "s" 'org-trello-sync-buffer)
(set-key "a" 'org-trello-assign-me)
(set-key "d" 'org-trello-check-setup)
(set-key "D" 'org-trello-delete-setup)
(set-key "b" 'org-trello-create-board-and-install-metadata)
(set-key "k" 'org-trello-kill-entity)
(set-key "K" 'org-trello-kill-cards)
(set-key "a" 'org-trello-archive-card)
(set-key "A" 'org-trello-archive-cards)
(set-key "j" 'org-trello-jump-to-trello-card)
(set-key "J" 'org-trello-jump-to-trello-board)
(set-key "C" 'org-trello-add-card-comments)
(set-key "o" 'org-trello-show-card-comments)
(set-key "l" 'org-trello-show-card-labels)
(set-key "u" 'org-trello-update-board-metadata)
(set-key "h" 'org-trello-help-describing-bindings))
(add-hook! 'org-trello-mode-hook 'org-trello-bindings))
(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))
;; -----------------------------------------------------------------------------
;; Lilypond
;; -----------------------------------------------------------------------------
(load-library "lilypond-mode")
(add-to-list 'auto-mode-alist '("\\.ly$" . LilyPond-mode))
;; -----------------------------------------------------------------------------
;; Appearance - Prettify
;; -----------------------------------------------------------------------------
(load! "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]" ""))