Compare commits

...

58 Commits

Author SHA1 Message Date
kj
6388d5c0bb Fix drag stuff not starting. 2025-06-10 21:17:29 -03:00
kj
cc1fb2a0c9 Only use defer t for now.
In another oportunity i will optimize this again.
2025-06-08 12:42:48 -03:00
kj
4fc380750e A few tweaks for corfu. 2025-06-03 12:12:15 -03:00
kj
564e6dbac5 Update evil bindings. 2025-05-26 13:41:08 -03:00
kj
2a1309ecaa Change defer times to decimals. 2025-05-26 13:40:35 -03:00
kj
d12c13c027 Update elpaca installer version. 2025-05-26 13:38:55 -03:00
kj
3c7ac83e3f Remove unused/unnecessary consult shortcuts. 2025-05-02 04:50:22 -03:00
kj
089b056916 Remove consult-project-extra in favor of project-find-file (native). 2025-05-02 04:49:19 -03:00
kj
c0a0bc347c Just execute exec-path-from-shell. 2025-05-01 13:47:22 -03:00
kj
f2faff5f3f Remove unnecesary lines. 2025-04-29 19:46:11 -03:00
kj
d497b12805 Improve a few the startup time. 2025-04-29 19:41:46 -03:00
kj
ed5f25fb4d Move gptel to his own ia init file. 2025-04-28 18:58:34 -03:00
kj
f48e200fe7 Enable which-key. 2025-04-28 14:34:03 -03:00
kj
668a2c3c91 Remove unused shortcuts. 2025-04-28 14:32:45 -03:00
kj
cb8a4dcd75 Reduce padding on vertico postframe. 2025-04-28 14:31:56 -03:00
kj
4749773a51 Add delay to corfu. 2025-04-28 14:30:44 -03:00
kj
d41a4ce7ee Add some visual tweaks to vertico-posframe. 2025-04-14 16:54:32 -03:00
kj
5185766542 Add vertico-postframe package. 2025-04-14 16:07:33 -03:00
kj
cf7b239bcb Change dashboard startup behavior. 2025-04-09 14:08:46 -03:00
kj
ad54b6e3c9 Disable hooks for visual tweaks on csv files.
It looks fine, but is not good for edit.
2025-03-28 13:55:44 -03:00
kj
cab913064f Set to use rust-ts-mode. 2025-03-26 17:20:13 -03:00
kj
c3aabfff88 Enable to open big files or files with long lines on so-long-mode. 2025-02-20 19:56:15 -03:00
kj
a0a1282aa2 Enable subword mode by default.
This will allow detecting words (or as words) inside camelCase,
snake_case, kebab-case, and PascalCase.

Note: Without this, kebab-case and snake_case don't have problems, but
I mention all nomenclatures as a group.
2025-02-17 21:54:20 -03:00
kj
8e6fb27ec8 Update elpaca. 2025-02-17 21:43:17 -03:00
kj
32078154c9 Disable php-mode in favor of php-ts-mode. 2025-02-17 21:42:52 -03:00
kj
eac4af5029 Remove scrollbar on daemon mode (emacsclient). 2025-02-16 10:37:47 -03:00
kj
f199adb367 Improve agenda/items load on dashboard. 2025-02-08 16:43:40 -03:00
kj
4051c11dad Ignore intelephense license files. 2025-02-08 16:25:25 -03:00
kj
6be143756c Move eglot hooks for js and ts to eglot file. 2025-02-08 06:29:52 -03:00
kj
cfef8c9a4a Add typescript base config. 2025-02-07 17:40:49 -03:00
kj
fb5e2c8455 Set default shell. 2025-02-02 02:25:53 -03:00
kj
5ebecc1d4b Add new treesit parser: jsdoc and phpdoc. 2024-11-27 19:05:11 -04:00
kj
64d60088cb Add exec-path-from-shell package. 2024-11-27 19:04:54 -04:00
kj
dce274d8ff Remove unnecesary line. 2024-11-27 19:04:37 -04:00
KJ
8133266734 Update elpaca boostrap code. 2024-11-25 13:23:46 -04:00
KJ
147949285e Add transient package as magit requirement.
The build-in version do not fit with magit requeriment.
2024-11-25 13:21:41 -04:00
KJ
9417dcf830 Add docker-compose-mode. 2024-11-15 09:28:12 -04:00
KJ
447b80428b Set intelephense lsp to php-mode. 2024-09-30 08:15:05 -04:00
KJ
95d9746fbf Set mhtml-mode for sintax highlight on html org-src blocks. 2024-09-24 13:35:10 -04:00
KJ
135671b5b9 Disable electric pair. 2024-09-24 13:34:38 -04:00
KJ
45029768b9 Improve lang php config. 2024-09-24 13:33:47 -04:00
KJ
9876be8389 Reconfigure gptel models. 2024-09-21 12:41:05 -04:00
KJ
9553b240d8 Disable corfu mode on speed-type an add afew more books. 2024-09-13 20:37:07 -04:00
KJ
297416d1ce Corfu quit when starts a new word. 2024-09-13 03:34:56 -04:00
KJ
4148fff8a1 Change escape binding. 2024-09-13 00:26:00 -04:00
KJ
39862a753d Use emacs state instead insert. 2024-09-12 23:37:59 -04:00
KJ
85ad5c15b3 Add one more shortcut for expand region. 2024-09-12 23:18:22 -04:00
KJ
c3a2df6bef Ignore case in competition and configure competition-overrides. 2024-09-12 23:00:01 -04:00
KJ
4ceabc679a Remove competition overrides. 2024-09-12 22:54:24 -04:00
KJ
4733bb46ac Change a bit the orderless config. 2024-09-12 22:51:24 -04:00
KJ
c97b3a974e Change to use isearch by default and consult-line with C-S-s. 2024-09-12 22:16:06 -04:00
KJ
9b1bd93ceb Remove unused shortcuts. 2024-09-12 22:15:43 -04:00
KJ
21185e0438 Simplify most used keybindings. 2024-09-12 20:29:15 -04:00
KJ
3f618a44e7 Ensure evil initial state for magit and vtrem modes. 2024-09-11 08:48:07 -04:00
KJ
e99e71a6a5 Use emacs state when starts git-timemachine. 2024-09-11 08:47:38 -04:00
KJ
adc3d07d35 Set git commit initial state to emacs instead normal (evil). 2024-09-10 14:13:37 -04:00
KJ
2178a2e7cb Remove shortcut for C-r on evil mode. 2024-09-10 14:12:59 -04:00
KJ
c39574582f change shortcut for consult-ripgrep. 2024-09-10 14:08:16 -04:00
16 changed files with 200 additions and 147 deletions

1
.gitignore vendored
View File

@ -33,3 +33,4 @@ workspace/
/eshell/
/.emacs.desktop
/.tutor/
/intelephense/

46
configs/init-ai.el Normal file
View File

@ -0,0 +1,46 @@
;;; init-ai.el --- Configuración de inteligencias artificales -*- lexical-binding: t -*-
;; Author: kj <webmaster@outcontrol.net>
;; URL: https://git.kj2.me/kj/confi-emacs-actual
;;; Commentary:
;; Esta configuración para Inteligencia artifical en emacs, principalmente para el uso de chats.
;;; Code:
;; Cliente LLM (ollama, chatgpt, gemini, etc.)
(use-package gptel
:defer t
:config
;; (setq gptel-model 'gemma3:4b
;; gptel-backend (gptel-make-ollama "Ollama"
;; :host "localhost:11434"
;; :stream t
;; :models '("mistral:latest"
;; "deepseek-r1:1.5b"
;; "deepcoder"
;; "dolphin-llama3:latest"
;; "gemma3:4b"
;; "llava:latest"))
gptel-default-mode 'org-mode
gptel-prompt-prefix-alist
'((markdown-mode . "# ")
(org-mode . "* ")
(text-mode . "# "))
gptel-directives
'((default . "Eres un LLM que vive dentro de Emacs. Responde de manera concisa.")
(programming . "Eres un LLM y un programador profesional cuidadoso. Provee el código y solo el código como output sin ningún texto adicional, prompt o nota.")
(programming_tutor . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y realiza sugerencias concisas en español para mejorarlo.")
(programming_explainer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español de manera concisa, su funcionamiento.")
(programming_describer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español su funcionamiento línea a línea.")
(writing . "Eres un LLM y un asistente de escritura. Responde de manera concisa.")
(grammarly . "You are a large language model and professional philologist. Improve grammar and spelling.")
(chat . "Eres un LLM y un compañero de conversación. Responde de manera concisa.")
(traductor . "Eres un traductor profesional. Traduce a español tomando en cuenta los posibles tecnicismos y nombres que no deberían traducirse.")
)
)
)
(provide 'init-ai)
;;; init-ai.el ends here

View File

@ -20,12 +20,12 @@
))
;; Instalar elpaca.el (reemplpazando package.el)
(defvar elpaca-installer-version 0.7)
(defvar elpaca-installer-version 0.11)
(defvar elpaca-directory (expand-file-name "elpaca/" user-emacs-directory))
(defvar elpaca-builds-directory (expand-file-name "builds/" elpaca-directory))
(defvar elpaca-repos-directory (expand-file-name "repos/" elpaca-directory))
(defvar elpaca-order '(elpaca :repo "https://github.com/progfolio/elpaca.git"
:ref nil
:ref nil :depth 1 :inherit ignore
:files (:defaults "elpaca-test.el" (:exclude "extensions"))
:build (:not elpaca--activate-package)))
(let* ((repo (expand-file-name "elpaca/" elpaca-repos-directory))
@ -37,16 +37,18 @@
(make-directory repo t)
(when (< emacs-major-version 28) (require 'subr-x))
(condition-case-unless-debug err
(if-let ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (call-process "git" nil buffer t "clone"
(plist-get order :repo) repo)))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(if-let* ((buffer (pop-to-buffer-same-window "*elpaca-bootstrap*"))
((zerop (apply #'call-process `("git" nil ,buffer t "clone"
,@(when-let* ((depth (plist-get order :depth)))
(list (format "--depth=%d" depth) "--no-single-branch"))
,(plist-get order :repo) ,repo))))
((zerop (call-process "git" nil buffer t "checkout"
(or (plist-get order :ref) "--"))))
(emacs (concat invocation-directory invocation-name))
((zerop (call-process emacs nil buffer nil "-Q" "-L" "." "--batch"
"--eval" "(byte-recompile-directory \".\" 0 'force)")))
((require 'elpaca))
((elpaca-generate-autoloads "elpaca" repo)))
(progn (message "%s" (buffer-string)) (kill-buffer buffer))
(error "%s" (with-current-buffer buffer (buffer-string))))
((error) (warn "%s" err) (delete-directory repo 'recursive))))
@ -86,7 +88,9 @@
)
(tooltip-mode -1) ; Disable tooltips.
(global-display-line-numbers-mode) ; Mostar número de línea.
(global-so-long-mode 1) ; Abrir archivos grandes o con líneas largas en el modo so-long por defecto.
(show-paren-mode 1) ; Habilitar resaltado de brackets.
(global-subword-mode 1) ; Habilitar subpalabras (detectar palabras dentro de un camelCase y Pascal case.)
(pending-delete-mode t) ; Cuando selecciono un texto y escribo, el texto se borra (emacs por defecto solo escribe donde está el cursor).
;; (global-hl-line-mode) ; Resaltar línea actual por defecto.
(setq use-short-answers t) ; Usar respuesta cortas (y/n) en lugar de las largas (yes/no)
@ -123,11 +127,7 @@
"Carga la configuración del modo daemon."
(message "Corriendo en modo daemon.")
(set-face-attribute 'default nil :font "Fira Code Retina" :height 112)
;; Abrir primero el dashboard
(setq initial-buffer-choice (lambda ()
(get-buffer "*dashboard*")
(dashboard-refresh-buffer)))
(scroll-bar-mode -1)
;; Cerrar buffers al cerrar emacsclient
;; (add-hook 'delete-frame-functions

View File

@ -19,19 +19,20 @@
:defer t
:ensure (:files (:defaults "extensions/*")
:includes (corfu-info corfu-history))
:hook ((elpaca-after-init . global-corfu-mode)
(corfu-mode . corfu-popupinfo-mode))
:hook ((corfu-mode . corfu-popupinfo-mode))
:bind (:map corfu-map
("<tab>" . corfu-quit)
("<tab>" . corfu-quit)
("<escape>" . corfu-quit)
("<SPC>" . corfu-insert-separator))
("<SPC>" . corfu-insert-separator))
:custom
(corfu-auto t)
:config
(global-corfu-mode)
(setq corfu-popupinfo-delay 0
;; corfu-auto-delay 0.5
corfu-auto-delay 1
corfu-auto-prefix 1
corfu-cycle t
corfu-quit-at-boundary t
corfu-preview-current nil
corfu-quit-no-match t)
(when (< emacs-major-version 29)
@ -45,9 +46,25 @@
;; Cambia la forma de mostrar y buscar sugerencias (afecta a corfu, pero también a otros como vertico).
(use-package orderless
:defer t
:init
(setq completion-styles '(flex orderless basic)
completion-category-overrides '((file (styles partial-completion)))))
:after corfu
:custom
(completion-styles '(orderless)) ; Use orderless
(completion-category-defaults nil) ; I want to be in control!
(setq completion-ignore-case t)
(completion-category-overrides '((file (styles basic partial-completion orderless))))
(orderless-matching-styles
'(orderless-literal
orderless-prefixes
orderless-initialism
orderless-regexp
orderless-flex ; Basically fuzzy finding
;; orderless-strict-leading-initialism
;; orderless-strict-initialism
;; orderless-strict-full-initialism
;; orderless-without-literal ; Recommended for dispatches instead
))
)
;; Set de funciones de para las sugerencias de corfu.
(use-package cape

View File

@ -34,12 +34,16 @@
:ensure nil
:hook ((css-mode . eglot-ensure)
(html-mode . eglot-ensure)
(php-mode . eglot-ensure)
(php-ts-mode . eglot-ensure)
(js-mode . eglot-ensure)
(tsx-ts-mode . eglot-ensure)
(typescript-ts-mode . eglot-ensure)
(rust-mode . eglot-ensure)
(sh-mode . eglot-ensure))
:config
(setq eglot-sync-connect 0)
(add-to-list 'eglot-server-programs '(php-ts-mode . ("intelephense" "--stdio")))
(add-to-list 'eglot-server-programs '(php-mode . ("intelephense" "--stdio")))
)
;; Mejorar la velocidad de eglot (un binario en rust )
@ -57,6 +61,7 @@
;; Emmet (mientras veo como hacer funcionar emmet-ls)
(use-package emmet-mode
:defer t
:after eglot
:hook
((html-mode . emmet-mode)
(web-mode . emmet-mode))

View File

@ -14,7 +14,8 @@
;;; Code:
(use-package evil
:defer t
:hook (elpaca-after-init . evil-mode)
:hook ((elpaca-after-init . evil-mode)
(git-timemachine-mode . evil-emacs-state))
:init
(setq evil-want-keybinding nil)
;; Habilitar atajos de de tecla de emacs en insert state
@ -29,7 +30,7 @@
(evil-set-undo-system 'undo-redo)
;; Arreglar el problemita con corfu-quit y el cambio de modos
(evil-define-key 'insert 'global (kbd "<escape>") '(lambda ()
(evil-define-key 'emacs 'global (kbd "<escape>") '(lambda ()
"Call `corfu-quit' and then return to Normal State."
(interactive)
(call-interactively 'corfu-quit)
@ -39,7 +40,7 @@
;; Cambiar a mode emacs con escape
;; (evil-define-key 'emacs 'global (kbd "<escape>") 'evil-normal-state)
;; Cambiar Insert state por emacs state.
;; (defalias 'evil-insert-state 'evil-emacs-state)
(defalias 'evil-insert-state 'evil-emacs-state)
;; Variales locales (todos los estados o solo los estados de VIM)
(setq all-states '(normal insert visual replace operator motion emacs))
@ -52,8 +53,7 @@
;; Cambiar C-z a deshacer
(evil-define-key all-states 'global (kbd "C-z") 'undo)
;; Cambiar C-r a ripgrep y U hasta hacer redo
(evil-define-key vim-states 'global (kbd "C-r") 'consult-ripgrep)
;; Cambiar U para hacer redo
(evil-define-key 'normal 'global (kbd "U") 'undo-redo)
(evil-define-key 'normal 'global (kbd "C-S-z") 'undo-redo)
(evil-define-key 'normal 'global (kbd "M-.") 'xref-find-definitions)
@ -101,13 +101,14 @@
(evil-define-key 'normal 'global (kbd "<leader>mw") 'web-mode)
;; Otros atajos
(evil-define-key 'motion 'global (kbd "<leader>xb") 'consult-buffer) ;; Cambiar de buffer
(evil-define-key 'motion 'global (kbd "<leader>xp") 'consult-project-extra-find) ;; Archivos del proyecto (o abrir proyecto si no hay alguno)
(evil-define-key 'motion 'global (kbd "<leader>b") 'switch-to-buffer) ;; Cambiar de buffer
(evil-define-key 'motion 'global (kbd "<leader>p") 'project-find-file) ;; Archivos del proyecto (o abrir proyecto si no hay alguno)
(evil-define-key 'motion 'global (kbd "<leader>cp") 'project-switch-project) ;; Cambiar proyecto
(evil-define-key 'motion 'global (kbd "<leader>xf") 'find-file) ;; Abrir archivo
(evil-define-key 'motion 'global (kbd "<leader>f") 'find-file) ;; Abrir archivo
(evil-define-key 'motion 'global (kbd "<leader>xr") 'consult-recent-file) ;; Lista de archivos recientes
(evil-define-key 'motion 'global (kbd "<leader>rg") 'consult-ripgrep) ;; Búsqueda rápida con ripgrep
(evil-define-key 'motion 'global (kbd "<leader>gi") 'imenu) ;; imenu
(evil-define-key 'motion 'global (kbd "<leader>gg") 'goto-line) ;; Ir a la línea.
;; Iniciar en normal state solo en modos específicos
(setq evil-default-state 'emacs) ;; Modo por defecto en emacs
@ -118,9 +119,9 @@
(evil-set-initial-state 'fundamental-mode 'normal)
(evil-set-initial-state 'dashboard-mode 'normal)
(evil-set-initial-state 'dired 'normal)
;; (evil-set-initial-state 'vterm-mode 'emacs)
;; (evil-set-initial-state 'magit-mode 'emacs)
;; (evil-set-initial-state 'git-commit-mode 'emacs)
(evil-set-initial-state 'vterm-mode 'emacs)
(evil-set-initial-state 'magit-mode 'emacs)
(evil-set-initial-state 'git-commit-mode 'emacs)
)
;; Funciones y atajos de teclas especiales para evil cuando estamo en org-mode.

View File

@ -30,11 +30,11 @@
;; Reemplazo para counsel
(use-package consult
:defer t
:bind (;; C-c bindings in `mode-specific-map'
("C-s" . consult-line)
("C-r" . consult-ripgrep)
("C-S-s" . isearch-forward)
("C-S-r" . isearch-backward)
:bind (("C-x p" . project-find-file)
("C-S-s" . consult-line)
("C-c r g" . consult-ripgrep)
("C-S-r" . consult-ripgrep)
;; ("C-S-s" . isearch-forward)
("M-m" . consult-mode-command)
("C-c h" . consult-history)
("C-c k" . consult-kmacro)
@ -44,30 +44,21 @@
([remap recentf-open-files] . consult-recent-file)
;; C-x bindings in `ctl-x-map'
("C-x M-." . consult-complex-command) ;; orig. repeat-complex-command
("C-x b" . consult-buffer) ;; orig. switch-to-buffer
("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
("C-c p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
("C-c p p" . project-switch-project) ;; orig. project-switch-to-buffer
("C-c p p" . project-switch-project)
;; Consult search
("C-c p f" . consult-find) ;; Búsqueda de archivos en todo el projecto incluso en carpetas
("C-c p l" . consult-line-multi) ;; Búsqueda en todos los buffers del projecto abiertos
;; Custom M-# bindings for fast register access
("C-'" . consult-register-load)
("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
("M-¡" . consult-register)
;; Other custom bindings
("M-y" . consult-yank-pop) ;; orig. yank-pop
("M-y" . consult-yank-pop) ;; orig. yank-pop
;; M-g bindings in `goto-map'
("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
("M-g g" . consult-goto-line) ;; orig. goto-line
("M-g M-g" . consult-goto-line) ;; orig. goto-line
("M-g o" . consult-outline) ;; Alternative: consult-org-heading
("M-g m" . consult-mark)
("M-g k" . consult-global-mark)
("M-g i" . consult-imenu)
("M-g I" . consult-imenu-multi)
@ -75,14 +66,13 @@
:map minibuffer-local-map
("<escape>" . minibuffer-keyboard-quit) ;; Cacelar minibuffer con escape (más rápido que C-g)
("C-<return>" . newline) ;; Insertar nueva línea estando en el minibufer (Mas rápido que C-q C-j)
("C-s" . (lambda ()
("C-S-s" . (lambda ()
"Insert the current symbol."
(interactive)
(insert (save-excursion
(set-buffer (window-buffer (minibuffer-selected-window)))
(or (thing-at-point 'symbol t) ""))))) ;; Al presionar por segunda ves C-s busca el símbolo actual.
("M-s" . consult-history) ;; orig. historial de búsqueda
("M-r" . consult-history)) ;; orig. historual de búsqueda
)
;; Enable automatic preview at point in the *Completions* buffer. This is
;; relevant when you use the default completion UI.
@ -130,14 +120,6 @@
:defer t
:hook (ibuffer-mode . nerd-icons-ibuffer-mode))
;; Integración entre consult y project
(use-package consult-project-extra
:defer t
:ensure t
:bind
(("C-x p" . consult-project-extra-find)
("C-c p o" . consult-project-extra-find-other-window)))
;; Descripciones en el minibufer
(use-package marginalia
:defer t
@ -154,5 +136,16 @@
:bind ("C-c t" . consult-todo)
:defer t)
;; Mover el minibufer de vertico al centro de la pantalla.
(use-package vertico-posframe
:after vertico
:config
(vertico-posframe-mode 1)
(setq vertico-posframe-border-width 1)
(setq vertico-posframe-parameters
'((left-fringe . 8)
(right-fringe . 8)))
)
(provide 'init-minibuffer)
;;; init-minibuffer.el ends here

View File

@ -25,6 +25,9 @@
(visual-line-mode 1)
(visual-fill-column-mode 1)
;; Configuracin para Systanx Highlight en porg-blocks
(add-to-list 'org-src-lang-modes (cons "html" 'mhtml))
;; Configuración de fonts
;; (set-face-attribute (car face) nil :font "Cantarell" :weight 'regular :height (cdr face))
@ -103,8 +106,6 @@
(use-package org
:defer t
:ensure nil
:bind (("C-c a" . org-agenda)
("C-c c" . org-capture))
:hook
(org-mode . kj/org-hook)
:config

View File

@ -22,7 +22,7 @@
;; Intercamiar buffers de lugar
(use-package buffer-move
:defer t
:defer 2
:bind (("M-S-<up>" . buf-move-up)
("M-S-<down>" . buf-move-down)
("M-S-<left>" . buf-move-left)
@ -37,13 +37,14 @@
;; Seleccionar por regiones (similar a mark-sexp, pero toma en cuenta hacia atrás del cursor también)
(use-package expand-region
:defer t
:bind ("C-+" . er/expand-region))
:bind (("C-+" . er/expand-region)
("C-=" . er/expand-region)))
;; Major mode para archivos CSV
(use-package csv-mode
:defer t
:hook ((csv-mode . csv-align-mode)
(csv-mode . csv-header-line))
;; :hook ((csv-mode . csv-align-mode)
;; (csv-mode . csv-header-line))
)
;; Visor de documentos de emacs (soporta de todo: epub, pdf, odt, docx, cbz, etc.)
@ -57,17 +58,6 @@
;; Un bonito y sencillo panel de inicio
(use-package dashboard
:defer t
:init
(dashboard-setup-startup-hook)
:hook
(dashboard-after-initialize . (lambda ()
"Refrescamos el dashboard con la agenda luego de cargar todo"
(setq dashboard-items '(
;; (recents . 10)
(agenda . 10)
))
(dashboard-refresh-buffer)
))
:config
(setq dashboard-set-file-icons t
dashboard-set-heading-icons t
@ -76,18 +66,20 @@
dashboard-agenda-time-string-format "%Y-%m-%d %H:%M")
(setq dashboard-startup-banner
(expand-file-name "duck.svg" user-emacs-directory))
(setq dashboard-items '())
(setq dashboard-items '(
;; (recents . 10)
(agenda . 10)
))
)
;; Coloca en emacs la documentacón distribuída por devdocs.io
(use-package devdocs
:defer t)
:defer 2)
;; Sidebar a la derecha con los archivos
(use-package dired-sidebar
:defer t
:hook (dired-mode . hl-line-mode)
:ensure t
:bind ([f9] . dired-sidebar-toggle-sidebar)
:commands (dired-sidebar-toggle-sidebar)
:config
@ -98,10 +90,10 @@
;; La línea bonita esa de abajo
(use-package doom-modeline
:defer t
:after emacs
:ensure t
:hook (elpaca-after-init . doom-modeline-mode)
:config
(doom-modeline-mode)
(setq doom-modeline-project-detection 'auto
doom-modeline-buffer-file-name-style 'relative-from-project
doom-modeline-major-mode-color-icon t
@ -109,9 +101,12 @@
doom-modeline-indent-info nil
doom-modeline-persp-name t))
;; Modo para edición de arc docker compose
(use-package docker-compose-mode
:defer t)
;; Modo para la edición de archivos Dockerfile (y building desde emacs)
(use-package dockerfile-mode
:ensure t
:defer t
:config
;; Suelo tener podman siempre en lugar de docker, así que lo definimos como el comando a usar
@ -119,47 +114,23 @@
;; Mover líneas o regiones
(use-package drag-stuff
:defer t
:hook
(elpaca-after-init . drag-stuff-global-mode)
:defer 1
:config
(drag-stuff-global-mode)
(drag-stuff-define-keys))
;; Emparejamiento automático de comillas, paréntesis, corchetes y llaves
(use-package electric-pair
:defer t
:ensure nil
:hook (elpaca-after-init . electric-pair-mode)
:config
(setq electric-pair-delete-adjacent-pairs nil))
;; (use-package electric-pair
;; :defer t
;; :ensure nil
;; :config
;; (electric-pair-mode)
;; (setq electric-pair-delete-adjacent-pairs nil))
;; Cliente LLM (ollama, chatgpt, gemini, etc.)
(use-package gptel
:defer t
;; Cargar las variables de entorno desde la configuración del usuario
(use-package exec-path-from-shell
:config
(setq gptel-model "dolphin-llama3:latest"
gptel-backend (gptel-make-ollama "Ollama"
:host "localhost:11434"
:stream t
:models '("mistral:latest" "dolphin-llama3:latest" "llama3:latest" "llava:latest"))
gptel-default-mode 'org-mode
gptel-prompt-prefix-alist
'((markdown-mode . "# ")
(org-mode . "* ")
(text-mode . "# "))
gptel-directives
'((default . "Eres un LLM que vive dentro de Emacs. Responde de manera concisa.")
(programming . "Eres un LLM y un programador profesional cuidadoso. Provee el código y solo el código como output sin ningún texto adicional, prompt o nota.")
(programming_tutor . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y realiza sugerencias concisas en español para mejorarlo.")
(programming_explainer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español de manera concisa, su funcionamiento.")
(programming_describer . "Eres un LLM y un programador profesional cuidadoso. Revisa el siguiente código y explica en español su funcionamiento línea a línea.")
(writing . "Eres un LLM y un asistente de escritura. Responde de manera concisa.")
(grammarly . "You are a large language model and professional philologist. Improve grammar and spelling.")
(chat . "Eres un LLM y un compañero de conversación. Responde de manera concisa.")
(traductor . "Eres un traductor de libros de informática profesional. Traduce a español tomando en cuenta los posibles tecnicismos que no deberían traducirse.")
)
)
)
(exec-path-from-shell-initialize))
;; Resalta los escapes de secuencia
(use-package highlight-escape-sequences
@ -223,6 +194,7 @@
;; Multiple vterm
(use-package multi-vterm
:defer t
:after vterm
:bind* (("<f5>" . multi-vterm-dedicated-toggle)
("C-x tt" . multi-vterm-dedicated-toggle)
("C-x tf" . multi-vterm)
@ -238,6 +210,7 @@
;; Usar nerd-icons en dired
(use-package nerd-icons-dired
:defer t
:after nerd-icons
:hook (dired-mode . nerd-icons-dired-mode))
;; Modo para leer archivos de configuración de nginx
@ -321,8 +294,8 @@
;; Mejorando el scroll
(use-package smooth-scrolling
:defer t
:hook (elpaca-after-init . smooth-scrolling-mode)
:config
(smooth-scrolling-mode 1)
(setq mouse-wheel-scroll-amount
'(8 ((shift) . 1) ((control) . nil))) ; Cambia el scroll a 8 líneas a la vez, 1 cuando se preciona SHIFT y saltos de página cuando presionas CTRL
(setq mouse-wheel-progressive-speed nil) ; Deshabilita la velocidad progresiva del scroll (mientras más scroll haces, mas rápido va)
@ -352,13 +325,14 @@
:defer t
:hook
(speed-type-mode . (lambda ()
(corfu-mode 0)
(display-line-numbers-mode 0)
(visual-line-mode 1)
(visual-fill-column-mode 1)))
:diminish
:config
(setq speed-type-gb-book-list '(66867 66866 66591 57303)
speed-type-min-chars 500
(setq speed-type-gb-book-list '(66867 66866 66591 57303 15725 24536)
speed-type-min-chars 300
speed-type-max-chars 600))
;; Tree-sitter :)
@ -377,16 +351,20 @@
(html . ("https://github.com/tree-sitter/tree-sitter-html"))
(java . ("https://github.com/tree-sitter/tree-sitter-java"))
(javascript . ("https://github.com/tree-sitter/tree-sitter-javascript"))
(jsdoc . ("https://github.com/tree-sitter/tree-sitter-jsdoc"))
(json . ("https://github.com/tree-sitter/tree-sitter-json"))
(julia . ("https://github.com/tree-sitter/tree-sitter-julia"))
(lua . ("https://github.com/Azganoth/tree-sitter-lua"))
(make . ("https://github.com/alemuller/tree-sitter-make"))
(python . ("https://github.com/tree-sitter/tree-sitter-python"))
(php . ("https://github.com/tree-sitter/tree-sitter-php" "master" "php/src"))
(phpdoc . ("https://github.com/claytonrcarter/tree-sitter-phpdoc"))
(ruby . ("https://github.com/tree-sitter/tree-sitter-ruby"))
(rust . ("https://github.com/tree-sitter/tree-sitter-rust"))
(sql . ("https://github.com/m-novikov/tree-sitter-sql"))
(toml . ("https://github.com/tree-sitter/tree-sitter-toml"))
(tsx . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src"))
(typescript . ("https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src"))
(zig . ("https://github.com/GrayJack/tree-sitter-zig"))))
(defun nf/treesit-install-all-languages ()
"Install all languages specified by `treesit-language-source-alist'."
@ -399,7 +377,6 @@
;; Terminal
(use-package vterm
:ensure t
:defer t
:config
(setq tramp-histfile-override nil) ;; Dejamos que se use el history por defecto del servidor remoto
@ -409,20 +386,28 @@
("podman" "/bin/bash"))) ;; Tanto docker como podman usarán bash cuado se contecte mediante tramp
)
;; Cuando iniicias un atajo de teclas te muestra las posibilidades
;; Cuando inicias un atajo de teclas te muestra las posibilidades
(use-package which-key
:defer t
:hook (elpaca-after-init . which-key-mode))
:config
(which-key-mode))
;; Muestra which-key en un frame en el centro en lugar de abajo
(use-package which-key-posframe
:after which-key
:config
(which-key-posframe-mode))
;; Restaurar el estado de los frames
(use-package winner
:ensure nil
:defer t
:hook (elpaca-after-init . winner-mode))
:config
(winner-mode))
;; Emacs Start Up Profiler
(use-package esup
:defer t)
;; (use-package esup
;; :defer t)
(provide 'init-packages)
;;; init-packages.el ends here

View File

@ -13,23 +13,19 @@
;; Theme dracula (https://draculatheme.com/) // aún lo tengo en l config porque a Ney le gusta
(use-package dracula-theme
:ensure t
:defer t)
;; El theme más cercano a adwaita dark que he encontrado
(use-package adwaita-dark-theme
:ensure t
:defer t)
;; Themes modus, vienen integrado en emacs en master (~v30)
(use-package modus-themes
:ensure t
:defer t)
;; Themes ef
(use-package ef-themes
:defer t
:ensure t)
:defer t)
;; Prendemos el theme que elijamos
(add-hook 'elpaca-after-init-hook #'(lambda() (load-theme 'ef-dream t)))

View File

@ -26,9 +26,8 @@
;; Git Gutter - Marca a la izq. si una linea ha sido agregada, editada o eliminada desde el último commit.
(use-package git-gutter
:defer t
:hook
(elpaca-after-init . global-git-gutter-mode)
:config
(global-git-gutter-mode 1)
(defhydra hydra-git-gutter (:hint nil)
"
^Navigation^ | ^Actions^ | ^Others^
@ -47,7 +46,6 @@
;; Visitar rápidamente viejas versiones de un archivo rápidamente
(use-package git-timemachine
:ensure t
:defer t)
;; Generador automatizado de archivos de licencia
@ -61,7 +59,6 @@
;; Todolist en magit de todos los archivos del projecto.
(use-package magit-todos
:defer t
:after magit
:config (magit-todos-mode 1))
;; Modo para resolución de confictos
@ -99,6 +96,9 @@ _p_rev _u_pper _=_: upper/lower _r_esolve
("q" nil "cancel" :color blue))
)
(use-package transient
:defer t)
;; Mostrar el último commit que modificó la linea actual
(use-package vc-msg
:defer t

View File

@ -14,8 +14,9 @@
:ensure nil
:mode
("\\.js$" . js-mode)
:hook
(js-mode . eglot-ensure)
:init
(add-to-list 'auto-mode-alist '("\\.tsx\\'" . tsx-ts-mode))
(add-to-list 'auto-mode-alist '("\\.ts\\'" . typescript-ts-mode))
:config
(setq js-indent-level 2))

View File

@ -12,13 +12,14 @@
(use-package php-ts-mode
:defer t
:mode "\\.php\\'"
;; :init
;; (add-to-list 'auto-mode-alist '("\\.php\\'" . php-ts-mode))
;; :after php-mode
:ensure nil)
;; Requerido por org-mode para el Syntax Highlight
(use-package php-mode
:defer t
:hook (php-mode . php-ts-mode)
:ensure t)
;; (use-package php-mode
;; :defer t
;; :ensure t)
(use-package php-doc-block
:after php-ts-mode

View File

@ -12,6 +12,8 @@
(use-package rust-mode
:defer t
:ensure t
:init
(setq rust-mode-treesitter-derive t)
:config
(setq rust-format-on-save t))

View File

@ -39,6 +39,9 @@
;; Permitir solo la búsqueda de archivos a cargar en la config en case sensitive.
(setq auto-mode-case-fold nil)
;; Definimos que la shell por defecto será bash
(setq shell-file-name "/bin/bash")
;; Personalizaciones (Tedrían que ir en init-base, pero por optimización, las pongo acá)
(push '(menu-bar-lines . 0) default-frame-alist) ; Quitar menús.
(push '(tool-bar-lines . 0) default-frame-alist) ; Quitar toolbar.

View File

@ -18,6 +18,7 @@
(require 'init-theme)
(require 'init-packages)
(require 'init-functions)
(require 'init-ai)
(require 'init-vc)
(require 'init-org)
(require 'init-eglot)