emacs_config/init.el
2024-12-27 21:03:11 -05:00

178 lines
5.3 KiB
EmacsLisp

(tool-bar-mode -1)
(scroll-bar-mode -1)
(menu-bar-mode -1)
(set-fringe-mode 0)
(setq ring-bell-function 'ignore)
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
(require 'use-package)
(require 'org-tempo)
(set-frame-parameter nil 'alpha-background 80)
(add-to-list 'default-frame-alist '(alpha-background . 80))
(use-package magit :ensure t)
(use-package direnv :ensure t)
(use-package docker :ensure t)
(use-package elpher :ensure t)
(use-package rust-mode :ensure t)
(use-package nerd-icons :ensure t)
(use-package gemini-mode :ensure t)
(use-package system-packages :ensure t)
(use-package latex-preview-pane :ensure t)
(use-package eglot)
(use-package which-key
:ensure t
:config
(which-key-mode))
(use-package elfeed
:ensure t
:bind (("C-c r" . elfeed)))
(use-package elfeed-org
:ensure t
:init
(elfeed-org)
:config
(setq rmh-elfeed-org-files (list "~/.config/emacs/elfeed.org")))
(add-hook 'elfeed-new-entry-hook
(elfeed-make-tagger :feed-url "youtube\\.com"
:add '(video youtube)))
(use-package elfeed-dashboard
:ensure t
:config
(setq elfeed-dashboard-file "~/.config/emacs/elfeed-dashboard.org")
(advice-add 'elfeed-search-quit-window :after #'elfeed-dashboard-update-links))
(use-package emojify
:ensure t
:hook (after-init . global-emojify-mode))
(use-package dashboard
:ensure t
:config
(setq initial-buffer-choice (lambda () (get-buffer-create "*dashboard*"))))
(use-package org-roam
:ensure t
:init
(setq org-roam-v2-ack t)
:custom
(org-roam-directory (file-truename "~/Notes"))
:bind (("C-c n l" . org-roam-buffer-toggle)
("C-c n f" . org-roam-node-find)
("C-c n i" . org-roam-node-insert)))
(org-roam-db-autosync-mode)
(use-package ellama
:bind ("C-c e" . ellama-transient-main-menu)
:init
(setopt ellama-language "Esperonto")
(require 'llm-ollama)
(setopt ellama-provider
(make-llm-ollama
:chat-model "llama3.2"
:embedding-model "nomic-embed-text"
:default-chat-non-standard-params '(("num_ctx" . 8192))))
(setopt ellama-summarization-provider
(make-llm-ollama
:chat-model "qwen2.5:3b"
:embedding-model "nomic-embed-text"
:default-chat-non-standard-params '(("num_ctx" . 32768))))
(setopt ellama-coding-provider
(make-llm-ollama
:chat-model "llama3.2"
:embedding-model "nomic-embed-text"
:default-chat-non-standard-params '(("num_ctx" . 32768))))
(setopt ellama-providers
'(("granite-moe" . (make-llm-ollama :chat-model "granite3-moe:3b"))
("llama3.2" . (make-llm-ollama :chat-model "llama3.2"))
("llama2" . (make-llm-ollama :chat-model "llama2-uncensored"))
("qwen2.5" . (make-llm-ollama :chat-model "qwen2.5:3b"))
("gemma2" . (make-llm-ollama :chat-model "gemma2:2b"))
("codegemma" . (make-llm-ollama :chat-model "codegemma:2b"))
))
(setopt ellama-naming-provider
(make-llm-ollama
:chat-model "gemma2:2b"))
(setopt ellama-naming-scheme 'ellama-generate-name-by-llm)
(setopt ellama-translation-provider
(make-llm-ollama
:chat-model "qwen2.5:3b"
:embedding-model "nomic-embed-text"
:default-chat-non-standard-params
'(("num_ctx" . 32768)))))
(setq org-return-follows-link t)
(setf (cdr (assoc 'file org-link-frame-setup)) 'find-file)
(global-activity-watch-mode)
(setq dashboard-display-icons-p t) ; display icons on both GUI and terminal
(setq dashboard-icon-type 'nerd-icons) ; use `nerd-icons' package
(setq dashboard-center-content t)
(setq dashboard-vertically-center-content t)
(setq dashboard-items '((recents . 5)
(bookmarks . 5)
(projects . 5)
))
(latex-preview-pane-enable)
(setq-default indent-tabs-mode)
(defun mode-line-render (left right)
(let* ((available-width (- (window-width) (length left) )))
(format (format "%%s %%%ds" available-width) left right)))
(setq-default mode-line-format
'((:eval
(mode-line-render
(format-mode-line (list
(propertize "" 'face `(:inherit mode-line-buffer-id)
'help-echo "Mode(s) menu"
'mouse-face 'mode-line-highlight
'local-map mode-line-major-mode-keymap)
" %b "
(if (and buffer-file-name (buffer-modified-p))
(propertize "(modified)" 'face `(:inherit face-faded)))))
(format-mode-line
(propertize "%4l:%2c " 'face `(:inherit face-faded)))))))
(setq-default line-spacing 1)
(set-default 'cursor-type '(bar . 1))
(blink-cursor-mode 0)
(setq-default header-line-format mode-line-format)
(setq-default mode-line-format'(""))
(set-face-attribute 'header-line nil
:underline (face-foreground 'default)
:background (face-background 'default)
:box nil)
(set-face-attribute 'mode-line nil
:underline (face-foreground 'default)
:overline nil
:box nil
:foreground (face-background 'default)
:background (face-background 'default))
(dashboard-setup-startup-hook)