confi-emacs-actual/configs/base.el

150 lines
5.4 KiB
EmacsLisp
Raw Normal View History

2022-03-30 01:21:13 +02:00
;;; base.el --- Configuración base de emacs
;; Author: kj <webmaster@outcontrol.net>
;; URL: https://git.kj2.me/kj/confi-emacs-actual
;;; Commentary:
;; Configuración base de Emacs, no incluye extensiones,
;; pero si el theme y los fonts.
;;; Code:
;; The default is 800 kilobytes. Measured in bytes.
(setq gc-cons-threshold (* 50 1024 1024))
(setq read-process-output-max (* 1024 1024))
2022-03-30 01:21:13 +02:00
;; Native compilation
(when (and (fboundp 'native-comp-available-p)
(native-comp-available-p))
(progn
(setq native-comp-async-report-warnings-errors nil)
(setq comp-deferred-compilation t)
(setq package-native-compile t)
))
2022-05-27 23:04:28 +02:00
;; Instalar straight.el (reemplpazando package.el)
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
2022-03-30 01:21:13 +02:00
;; Initialize package sources
2022-05-27 23:04:28 +02:00
;; (require 'package)
2022-03-30 01:21:13 +02:00
2022-05-27 23:04:28 +02:00
;; (setq package-archives '(("melpa" . "https://melpa.org/packages/")
;; ("org" . "https://orgmode.org/elpa/")
;; ("elpa" . "https://elpa.gnu.org/packages/")))
2022-03-30 01:21:13 +02:00
2022-05-27 23:04:28 +02:00
;; (package-initialize)
2022-03-30 01:21:13 +02:00
;; Actualizar repositorios si aún no esta actualizados
2022-05-27 23:04:28 +02:00
;; (unless package-archive-contents
;; (package-refresh-contents))
2022-03-30 01:21:13 +02:00
;; Instalar use-package si no está instalado
2022-05-27 23:04:28 +02:00
(straight-use-package 'use-package)
2022-03-30 01:21:13 +02:00
;; Theme
(use-package dracula-theme
2022-05-27 23:04:28 +02:00
:straight t
2022-03-30 01:21:13 +02:00
:config
(load-theme 'dracula t)
(set-face-attribute 'default nil :font "Fira Code Retina" :height 112) ; Font
2022-03-30 01:21:13 +02:00
)
;; Instalar use-package en caso de no tenerlo
2022-05-27 23:04:28 +02:00
;;(unless (package-installed-p 'use-package)
;; (package-install 'use-package))
2022-03-30 01:21:13 +02:00
(defconst private-dir (expand-file-name "private" user-emacs-directory))
(defconst temp-dir (format "%s/cache" private-dir)
"Hostname-based elisp temp directories.")
;; UTF-8 please
(set-charset-priority 'unicode)
(setq locale-coding-system 'utf-8) ; pretty
(set-terminal-coding-system 'utf-8) ; pretty
(set-keyboard-coding-system 'utf-8) ; pretty
(set-selection-coding-system 'utf-8) ; please
(prefer-coding-system 'utf-8) ; with sugar on top
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))
;; Emacs customizations
(menu-bar-mode 0) ; Quitar menús.
(tool-bar-mode 0) ; Quitar toolbar.
(scroll-bar-mode -1) ; Quitar scrollbar.
(tooltip-mode -1) ; Disable tooltips.
(global-display-line-numbers-mode) ; Mostar número de línea.
(show-paren-mode 1) ; Habilitar resaltado de brackets.
;;(cua-mode t) ; Usar CTRL+X, CTRL+C, CTRL+V y CTRL+Z para cortar, copiar, pegar y deshacer.
(setq-default
cursor-type 'bar ; Usar la barrita como cursor
cursor-in-non-selected-windows nil ; Desaparecer el cursor en frames no activos.
indent-tabs-mode nil ; Cambiar tabs por espacios.
2022-04-07 05:29:52 +02:00
inhibit-startup-message t ; Eliminar el mensaje de inicio.
2022-03-30 01:21:13 +02:00
)
(setq
custom-file (concat private-dir "/.custom.el") ; Cabiar la ruta del código que se genera al isntalar un theme o package
ac-ignore-case nil ; Desactivar el autocapitalizado.
ac-disable-faces nil ; Auto-complete hablitado incluso entre comillas (fuente: https://bit.ly/3a9wCB4).
global-hl-line-mode 1 ; Resaltar línea actual por defecto.
tags-revert-without-query 1 ; Recargar tags (ctags) sin pedir confirmación.
)
;; Backups enabled, use nil to disable
(setq
history-length 1000
backup-inhibited nil
make-backup-files nil
auto-save-default nil
auto-save-list-file-name (concat temp-dir "/autosave")
create-lockfiles nil
backup-directory-alist `((".*" . ,(concat temp-dir "/backup/")))
auto-save-file-name-transforms `((".*" ,(concat temp-dir "/auto-save-list/") t)))
;; Configuración cuando es un server
(defun setup-daemon ()
"Carga la configuración del modo daemon."
2022-03-30 01:21:13 +02:00
(message "Corriendo en modo daemon.")
2022-04-13 06:41:13 +02:00
(set-face-attribute 'default nil :font "Fira Code Retina" :height 112)
2022-03-30 01:21:13 +02:00
;; Set the fixed pitch face
;;(set-face-attribute 'fixed-pitch nil :font "Fira Code Retina")
;; Set the variable pitch face
;;(set-face-attribute 'variable-pitch nil :font "Cantarell" :weight 'regular)
;; Abrir primero el dashboard
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
;; Cerrar buffers al cerrar emacsclient
(add-hook 'delete-frame-functions
(lambda (frame)
(mapc 'kill-buffer (delq (get-buffer "*dashboard*") (buffer-list)))
))
)
2022-03-30 01:21:13 +02:00
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(with-selected-frame frame
(setup-daemon))))
(message "Corriendo en modo normal."))
2022-05-10 03:16:56 +02:00
;(add-hook 'window-setup-hook 'toggle-frame-maximized t)
2022-03-30 01:21:13 +02:00
(load custom-file)
(provide 'base)
;;; base.el ends here