diff options
Diffstat (limited to '.doom.d/config.el')
-rw-r--r-- | .doom.d/config.el | 431 |
1 files changed, 0 insertions, 431 deletions
diff --git a/.doom.d/config.el b/.doom.d/config.el deleted file mode 100644 index 8588d774..00000000 --- a/.doom.d/config.el +++ /dev/null @@ -1,431 +0,0 @@ -;;; $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 "Roger Gonzalez" - user-mail-address "roger@rogs.me") - -;; Add custom packages -(add-to-list 'load-path "~/.doom.d/custom-packages") - -;; Load custom packages -(require 'screenshot) -(require 'ox-slack) -(require 'deferred) - -;; 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 "Mononoki Nerd Font" :size 14) -;; doom-variable-pitch-font (font-spec :family "sans") -;; doom-big-font (font-spec :family "Mononoki Nerd Font" :size 24)) -(setq doom-font (font-spec :family "MesloLGS NF" :size 14) - doom-variable-pitch-font (font-spec :family "sans") - doom-big-font (font-spec :family "MesloLGS NF" :size 24)) - -;; 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: -(after! doom-themes - (setq doom-themes-enable-bold t - doom-themes-enable-italic t)) -(custom-set-faces! - '(font-lock-comment-face :slant italic) - '(font-lock-keyword-face :slant italic)) -(setq doom-theme 'doom-badger) - -;; If you use `org' and don't want your org files in the default location below, -;; change `org-directory'. It must be set before org loads! -(setq org-directory "~/org/") - -;; 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 'relative) - - -;; 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. -;; HTTP Statuses for Helm -(defvar helm-httpstatus-source - '((name . "HTTP STATUS") - (candidates . (("100 Continue") ("101 Switching Protocols") - ("102 Processing") ("200 OK") - ("201 Created") ("202 Accepted") - ("203 Non-Authoritative Information") ("204 No Content") - ("205 Reset Content") ("206 Partial Content") - ("207 Multi-Status") ("208 Already Reported") - ("300 Multiple Choices") ("301 Moved Permanently") - ("302 Found") ("303 See Other") - ("304 Not Modified") ("305 Use Proxy") - ("307 Temporary Redirect") ("400 Bad Request") - ("401 Unauthorized") ("402 Payment Required") - ("403 Forbidden") ("404 Not Found") - ("405 Method Not Allowed") ("406 Not Acceptable") - ("407 Proxy Authentication Required") ("408 Request Timeout") - ("409 Conflict") ("410 Gone") - ("411 Length Required") ("412 Precondition Failed") - ("413 Request Entity Too Large") - ("414 Request-URI Too Large") - ("415 Unsupported Media Type") - ("416 Request Range Not Satisfiable") - ("417 Expectation Failed") ("418 I'm a teapot") - ("421 Misdirected Request") - ("422 Unprocessable Entity") ("423 Locked") - ("424 Failed Dependency") ("425 No code") - ("426 Upgrade Required") ("428 Precondition Required") - ("429 Too Many Requests") - ("431 Request Header Fields Too Large") - ("449 Retry with") ("500 Internal Server Error") - ("501 Not Implemented") ("502 Bad Gateway") - ("503 Service Unavailable") ("504 Gateway Timeout") - ("505 HTTP Version Not Supported") - ("506 Variant Also Negotiates") - ("507 Insufficient Storage") ("509 Bandwidth Limit Exceeded") - ("510 Not Extended") - ("511 Network Authentication Required"))) - (action . message))) - -(defun helm-httpstatus () - (interactive) - (helm-other-buffer '(helm-httpstatus-source) "*helm httpstatus*")) - -;; Org Mode -(after! org - ;; Include diary - (setq org-agenda-include-diary t) - ;; Logs - (setq org-log-state-notes-insert-after-drawers nil - org-log-into-drawer "LOGBOOK" - org-log-done 'time - org-log-repeat 'time - org-log-redeadline 'note - org-log-reschedule 'note) - ;; Keyword and faces - (setq-default org-todo-keywords - '((sequence "REPEAT(r)" "NEXT(n@/!)" "DELEGATED(e@/!)" "TODO(t@/!)" "WAITING(w@/!)" "SOMEDAY(s@/!)" "PROJ(p)" "|" "DONE(d@)" "CANCELLED(c@/!)" "FORWARDED(f@)"))) - (setq-default org-todo-keyword-faces - '( - ( "REPEAT" . (:foreground "white" :background "indigo" :weight bold)) - ( "NEXT" . (:foreground "red" :background "orange" :weight bold)) - ( "DELEGATED" . (:foreground "white" :background "blue" :weight bold)) - ( "TODO" . (:foreground "white" :background "violet" :weight bold)) - ( "WAITING" (:foreground "white" :background "#A9BE00" :weight bold)) - ( "SOMEDAY" . (:foreground "white" :background "#00807E" :weight bold)) - ( "PROJ" . (:foreground "white" :background "deeppink3" :weight bold)) - ( "DONE" . (:foreground "white" :background "forest green" :weight bold)) - ( "CANCELLED" . (:foreground "light gray" :slant italic)) - ( "FORWARDED" . (:foreground "light gray" :slant italic)) - )) - (setq org-fontify-done-headline t) - (setq org-fontify-todo-headline t) - ;; Priorities - ;; A: Do it now - ;; B: Decide when to do it - ;; C: Delegate it - ;; D: Just an idea - (setq org-highest-priority ?A) - (setq org-lowest-priority ?D) - (setq org-default-priority ?B) - (setq org-priority-faces '((?A . (:foreground "white" :background "dark red" :weight bold)) - (?B . (:foreground "white" :background "dark green" :weight bold)) - (?C . (:foreground "yellow")) - (?D . (:foreground "gray")))) - ;; Capture templates - (setq org-capture-templates - (quote - ( - ("G" "Define a goal" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/goal.org") :empty-lines-after 2) - ("R" "REPEAT entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/repeat.org") :empty-lines-before 2) - ("N" "NEXT entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/next.org") :empty-lines-before 2) - ("T" "TODO entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/todo.org") :empty-lines-before 2) - ("W" "WAITING entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/waiting.org") :empty-lines-before 2) - ("S" "SOMEDAY entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/someday.org") :empty-lines-before 2) - ("P" "PROJ entry" entry (file+headline "~/org/capture.org" "Capture") (file "~/org/templates/proj.org") :empty-lines-before 2) - ("B" "Book on the to-read-list" entry (file+headline "~/org/private.org" "Libros para leer") (file "~/org/templates/book.org") :empty-lines-after 2) - ("p" "Create a daily plan") - ("pP" "Daily plan private" plain (file+olp+datetree "~/org/plan-free.org") (file "~/org/templates/dailyplan.org") :immediate-finish t :jump-to-captured t) - ("pW" "Daily plan work" plain (file+olp+datetree "~/org/plan-work.org") (file "~/org/templates/dailyplan.org") :immediate-finish t :jump-to-captured t) - ("j" "Journal entry") - ("jP" "Journal entry private private" entry (file+olp+datetree "~/org/journal-private.org") "** %U - %^{Heading}") - ("jW" "Journal entry work " entry (file+olp+datetree "~/org/journal-work.org") "** %U - %^{Heading}") - ("d" "Create a deployment") - ("dF" "Deploy features" plain (file+olp+datetree "~/org/deploy-features.org") (file "~/org/templates/deployment.org") :immediate-finish t :jump-to-captured t) - ("dB" "Deploy bugs" plain (file+olp+datetree "~/org/deploy-bugs.org") (file "~/org/templates/deployment.org") :immediate-finish t :jump-to-captured t) - ))) - ;; Custom agenda views - (setq org-agenda-custom-commands - (quote - ( - ("A" . "Agendas") - ("AT" "Daily overview" - ((tags-todo "URGENT" - ((org-agenda-overriding-header "Urgent Tasks"))) - (tags-todo "RADAR" - ((org-agenda-overriding-header "On my radar"))) - (tags-todo "PHONE+TODO=\"NEXT\"" - ((org-agenda-overriding-header "Phone Calls"))) - (tags-todo "COMPANY" - ((org-agenda-overriding-header "Cuquitoni"))) - (tags-todo "SHOPPING" - ((org-agenda-overriding-header "Shopping"))) - (tags-todo "Depth=\"Deep\"/NEXT" - ((org-agenda-overriding-header "Next Actions requiring deep work"))) - (agenda "" - ((org-agenda-overriding-header "Today") - (org-agenda-span 1) - (org-agenda-start-day "1d") - (org-agenda-sorting-strategy - (quote - (time-up priority-down))))) - nil nil)) - ("AW" "Weekly overview" agenda "" - ((org-agenda-overriding-header "Weekly overview"))) - ("AM" "Monthly overview" agenda "" - ((org-agenda-overriding-header "Monthly overview")) - (org-agenda-span - (quote month)) - (org-deadline-warning-days 0) - (org-agenda-sorting-strategy - (quote - (time-up priority-down tag-up)))) - ("W" . "Weekly Review Helper") - ("Wn" "New tasks" tags "NEW" - ((org-agenda-overriding-header "NEW Tasks"))) - ("Wd" "Check DELEGATED tasks" todo "DELEGATED" - ((org-agenda-overriding-header "DELEGATED tasks"))) - ("Ww" "Check WAITING tasks" todo "WAITING" - ((org-agenda-overriding-header "WAITING tasks"))) - ("Ws" "Check SOMEDAY tasks" todo "SOMEDAY" - ((org-agenda-overriding-header "SOMEDAY tasks"))) - ("Wf" "Check finished tasks" todo "DONE|CANCELLED|FORWARDED" - ((org-agenda-overriding-header "Finished tasks"))) - ("WP" "Planing ToDos (unscheduled) only" todo "TODO|NEXT" - ((org-agenda-overriding-header "To plan") - (org-agenda-skip-function - (quote - (org-agenda-skip-entry-if - (quote scheduled) - (quote deadline))))))) - )) - ;; - ;; Enforce ordered tasks - (setq org-enforce-todo-dependencies t) - (setq org-enforce-todo-checkbox-dependencies t) - (setq org-track-ordered-property-with-tag t) - - ;; Org bullets - (require 'org-bullets) - (add-hook 'org-mode-hook (lambda () (org-bullets-mode 1))) - - ;; Org recur - (use-package org-recur - :hook ((org-mode . org-recur-mode) - (org-agenda-mode . org-recur-agenda-mode)) - :demand t - :config - (define-key org-recur-mode-map (kbd "C-c d") 'org-recur-finish) - - ;; Rebind the 'd' key in org-agenda (default: `org-agenda-day-view'). - (define-key org-recur-agenda-mode-map (kbd "C-c d") 'org-recur-finish) - (define-key org-recur-agenda-mode-map (kbd "C-c 0") 'org-recur-schedule-today) - - (setq org-recur-finish-done t - org-recur-finish-archive t)) - - ;; Truncate lines to 105 chars - ;; Why 105 chars? Because that's the max my screen can handle on vertical split - (add-hook 'org-mode-hook #'auto-fill-mode) - (setq-default fill-column 105) - - ;; Custom ORG functions - ;; Refresh org-agenda after rescheduling a task. - (defun org-agenda-refresh () - "Refresh all `org-agenda' buffers." - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when (derived-mode-p 'org-agenda-mode) - (org-agenda-maybe-redo))))) - - (defadvice org-schedule (after refresh-agenda activate) - "Refresh org-agenda." - (org-agenda-refresh)) - - (defun org-focus-private() "Set focus on private things." - (interactive) - (setq org-agenda-files '("~/org/private.org"))) - (defun org-focus-work() "Set focus on work things." - (interactive) - (setq org-agenda-files '("~/org/work.org"))) - (defun org-focus-all() "Set focus on all things." - (interactive) - (setq org-agenda-files '("~/org/"))) - - (defun my/org-add-ids-to-headlines-in-file () - "Add ID properties to all headlines in the current file which -do not already have one." - (interactive) - (org-map-entries 'org-id-get-create)) - (add-hook 'org-mode-hook - (lambda () - (add-hook 'before-save-hook - 'my/org-add-ids-to-headlines-in-file nil 'local))) - (defun my/copy-idlink-to-clipboard() "Copy an ID link with the -headline to killring, if no ID is there then create a new unique -ID. This function works only in org-mode or org-agenda buffers. - -The purpose of this function is to easily construct id:-links to -org-mode items. If its assigned to a key it saves you marking the -text and copying to the killring." - (interactive) - (when (eq major-mode 'org-agenda-mode) ;if we are in agenda mode we switch to orgmode - (org-agenda-show) - (org-agenda-goto)) - (when (eq major-mode 'org-mode) ; do this only in org-mode buffers - (setq mytmphead (nth 4 (org-heading-components))) - (setq mytmpid (funcall 'org-id-get-create)) - (setq mytmplink (format "[[id:%s][%s]]" mytmpid mytmphead)) - (kill-new mytmplink) - (message "Copied %s to killring (clipboard)" mytmplink) - )) - - (global-set-key (kbd "<f5>") 'my/copy-idlink-to-clipboard) - - (defun org-reset-checkbox-state-maybe () - "Reset all checkboxes in an entry if the `RESET_CHECK_BOXES' property is set" - (interactive "*") - (if (org-entry-get (point) "RESET_CHECK_BOXES") - (org-reset-checkbox-state-subtree))) - - (defun org-checklist () - (when (member org-state org-done-keywords) ;; org-state dynamically bound in org.el/org-todo - (org-reset-checkbox-state-maybe))) - - (add-hook 'org-after-todo-state-change-hook 'org-checklist) - - ;; Save all org buffers on each save - (add-hook 'auto-save-hook 'org-save-all-org-buffers) - (add-hook 'after-save-hook 'org-save-all-org-buffers)) - -;; My own menu -(map! :leader - (:prefix-map ("a" . "applications") - :desc "HTTP Status cheatsheet" "h" #'helm-httpstatus) - (:prefix-map ("ao" . "org") - :desc "Org focus work" "w" #'org-focus-work - :desc "Org focus private" "p" #'org-focus-private - :desc "Org focus all" "a" #'org-focus-all - )) - -;; Python - -(require 'auto-virtualenv) -(after! python - :init - (add-hook 'python-mode-hook 'auto-virtualenv-set-virtualenv) - (setq enable-local-variables :all)) - -(elpy-enable) -(after! elpy - (set-company-backend! 'elpy-mode - '(elpy-company-backend :with company-files company-yasnippet))) -(setq elpy-rpc-timeout 10) -(remove-hook 'elpy-modules 'elpy-module-flymake) - -(use-package flycheck - :config - (setq-default flycheck-disabled-checkers '(python-pylint))) - -;; LSP config -(after! lsp-mode - (setq lsp-diagnostic-package :none) - (setq lsp-headerline-breadcrumb-enable t) - (setq lsp-headerline-breadcrumb-icons-enable t)) - -(after! lsp-ui - (setq lsp-ui-doc-enable t)) - -;; (add-hook 'prog-mode-hook (lambda () (symbol-overlay-mode t))) - - -;; Create new spikes, saved for later -;; (defun certn/new-spike () -;; "Create a new org spike in ~/org/Lazer/Certn/." -;; (interactive) -;; (let ((name (read-string "Ticket: "))) -;; (expand-file-name (format "%s.org" name) "~/org/Lazer/Certn/Spikes"))) - - -;; Dashboard mode -(use-package dashboard - :init ;; tweak dashboard config before loading it - (setq dashboard-set-heading-icons t) - (setq dashboard-set-file-icons t) - (setq dashboard-center-content nil) ;; set to 't' for centered content - (setq dashboard-items '((recents . 5) - (bookmarks . 5) - (projects . 5))) - (setq dashboard-set-navigator t) - :config - (dashboard-setup-startup-hook) - (dashboard-modify-heading-icons '((recents . "file-text") - (bookmarks . "book")))) -(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))) -(setq doom-fallback-buffer-name "*dashboard*") - -(defun my/html2org-clipboard () - "Convert clipboard contents from HTML to Org and then paste (yank)." - (interactive) - (kill-new (shell-command-to-string "timeout 1 xclip -selection clipboard -o -t text/html | pandoc -f html -t json | pandoc -f json -t org --wrap=none")) - (yank) - (message "Pasted HTML in org")) -(define-key org-mode-map (kbd "<f4>") 'my/html2org-clipboard) - -;; Clipmon as emacs clipboard manager -(global-set-key (kbd "M-y") 'helm-show-kill-ring) -(add-to-list 'after-init-hook 'clipmon-mode-start) -(defadvice clipmon--on-clipboard-change (around stop-clipboard-parsing activate) (let ((interprogram-cut-function nil)) ad-do-it)) -(setq clipmon-timer-interval 1) - -;; Jenkins -(require 'butler) -(add-to-list 'butler-server-list - '(jenkins "prometeo-jenkins" - (server-address . "http://jenkins.prometeoapi") - (auth-file . "~/.authinfo.gpg"))) - -(defun my/jenkins-verify () - "Check if my current Jenkinsfile has the correct format" - (interactive) - (projectile-with-default-dir (projectile-acquire-root) - (message (shell-command-to-string "/usr/bin/python ~/.doom.d/scripts/check_jenkinsfile.py")))) - -(after! groovy-mode - (define-key groovy-mode-map (kbd "<f4>") 'my/jenkins-verify)) |