diff --git a/private_dot_config/doom/config.el b/private_dot_config/doom/config.el index 9d14517..ab40d56 100644 --- a/private_dot_config/doom/config.el +++ b/private_dot_config/doom/config.el @@ -563,3 +563,72 @@ ;;why my agenda break haa? (setq org-element-use-cache nil) ;; (add-hook 'darkman-after-mode-changed-hook #'toggle-theme) +(use-package! ellama + :ensure t + :bind ("SPC e" . ellama) + ;; send last message in chat buffer with C-c C-c + :hook (org-ctrl-c-ctrl-c-final . ellama-chat-send-last-message) + :init + ;; setup key bindings + ;; (setopt ellama-keymap-prefix "C-c e") + ;; language you want ellama to translate to + (setopt ellama-language "English") + ;; could be llm-openai for example + (require 'llm-ollama) + (setopt ellama-provider + (make-llm-ollama + ;; this model should be pulled to use it + ;; value should be the same as you print in terminal during pull + :chat-model "qwen2.5-coder" + :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 "qwen2.5-coder:3b" + :embedding-model "nomic-embed-text" + :default-chat-non-standard-params '(("num_ctx" . 32768)))) + ;; Predefined llm providers for interactive switching. + ;; You shouldn't add ollama providers here - it can be selected interactively + ;; without it. It is just example. + ;; Naming new sessions with llm + (setopt ellama-naming-provider + (make-llm-ollama + :chat-model "llama3:8b-instruct-q8_0" + :embedding-model "nomic-embed-text" + :default-chat-non-standard-params '(("stop" . ("\n"))))) + (setopt ellama-naming-scheme 'ellama-generate-name-by-llm) + ;; Translation llm provider + (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)))) + (setopt ellama-extraction-provider (make-llm-ollama + :chat-model "qwen2.5-coder:7b-instruct-q8_0" + :embedding-model "nomic-embed-text" + :default-chat-non-standard-params + '(("num_ctx" . 32768)))) + ;; customize display buffer behaviour + ;; see ~(info "(elisp) Buffer Display Action Functions")~ + (setopt ellama-chat-display-action-function #'display-buffer-full-frame) + (setopt ellama-instant-display-action-function #'display-buffer-at-bottom) + :config + ;; show ellama context in header line in all buffers + (ellama-context-header-line-global-mode +1) + ;; show ellama session id in header line in all buffers + (ellama-session-header-line-global-mode +1) + ;; handle scrolling events + (advice-add 'pixel-scroll-precision :before #'ellama-disable-scroll) + (advice-add 'end-of-buffer :after #'ellama-enable-scroll)) + +;; (after! ellama +;; (map! :leader +;; :nv "e" #' +;; ) +;; ) diff --git a/private_dot_config/doom/packages.el b/private_dot_config/doom/packages.el index 61bf7dd..c67cb3a 100644 --- a/private_dot_config/doom/packages.el +++ b/private_dot_config/doom/packages.el @@ -74,3 +74,4 @@ ;(unpin! t) (package! package-lint :pin "21edc6d0d0eadd2d0a537f422fb9b7b8a3ae6991") (package! auctex :pin "86b2397abdc20a638e5751251026727bc6282022") +(package! ellama) diff --git a/private_dot_config/i3/window_rules.conf b/private_dot_config/i3/window_rules.conf index 5991376..4dfa5b0 100644 --- a/private_dot_config/i3/window_rules.conf +++ b/private_dot_config/i3/window_rules.conf @@ -1,17 +1,17 @@ #Workspaces to monitors -workspace $Terminal output primary DP-0 DP-2 HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $Browsers output HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 -workspace $Code output primary DP-0 DP-2 HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $IRC output HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 -workspace $Media output primary DP-0 DP-2 HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $Reading output HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 -workspace $Youtube output primary HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 DP-0 DP-2 -workspace $Steam output HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 -workspace $Vm output primary DP-0 DP-2 HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $Notes output DP-0 DP-2 primary HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $Game output primary DP-0 DP-2 HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 -workspace $Mail output HDMI-0 HDMI-3 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 +workspace $Terminal output primary DP-0 DP-2 HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $Browsers output HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 +workspace $Code output primary DP-0 DP-2 HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $IRC output HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 +workspace $Media output primary DP-0 DP-2 HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $Reading output HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 +workspace $Youtube output primary HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 DP-0 DP-2 +workspace $Steam output HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 +workspace $Vm output primary DP-0 DP-2 HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $Notes output DP-0 DP-2 primary HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $Game output primary DP-0 DP-2 HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 +workspace $Mail output HDMI-0 HDMI-2 HDMI-4 DP-3 DVI-D-0 DVI-I-1 primary DP-0 DP-2 #Window Rules # floating_minimum_size 150 x 100