update elpaca, replace erc with rcirc

This commit is contained in:
Peter Tillemans 2024-11-18 11:26:22 +01:00
parent eb2557255f
commit 4a32ca2d37
2 changed files with 108 additions and 20 deletions

View file

@ -7,8 +7,8 @@
;;
;; it is possible there are more so probably the most recent one is the one to use.
(setq elpaca-core-date "20240727")
(defvar elpaca-installer-version 0.7)
(setq elpaca-core-date "20241111")
(defvar elpaca-installer-version 0.8)
(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))
@ -25,9 +25,9 @@
(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*"))
(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)))
,@(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"

120
init.org
View file

@ -699,29 +699,37 @@ whether to put it under writing, comms or programming as it is equally
#+BEGIN_SRC emacs-lisp
(use-package llm
:ensure t
:commands (llm-chat llm-ask-about llm-ask-line llm-ask-selection)
)
:commands (llm-chat llm-ask-about llm-ask-line llm-ask-selection))
#+END_SRC
#+BEGIN_SRC emacs-lisp
(use-package llm-openai
:ensure nil
:commands (make-llm-openai)
:after llm)
;; enable LLM access with ellama
:requires llm
:commands (make-llm-openai))
#+END_SRC
#+BEGIN_SRC emacs-lisp
(use-package ellama
:ensure t
:requires (llm llm-openai)
:commands (ellama-chat ellama-ask-about ellama-ask-line ellama-ask-selection)
:custom
(ellama-language "English")
(ellama-keymap-prefix "<leader>a")
(ellama-provider
(make-llm-openai
:key (auth-source-pass-get 'secret "snamellit/openai-api-key")
:chat-model "gpt-4o"
))
(make-llm-openai
:key (auth-source-pass-get 'secret "snamellit/openai-api-key")
:chat-model "gpt-4o"
))
(ellama-sessions-directory (expand-file-name "~/Nextcloud/ellama-sessions"))
:config
(report-time-since-load "Ellama is available"))
:bind-keymap
("C-c e" . ellama-command-map))
#+END_SRC
#+RESULTS:
: [nil 26420 49222 463525 nil elpaca-process-queues nil nil 237000 nil]
It seems the *gpt-4o* model provides better responses. I should
investigate local models more.
@ -1322,7 +1330,7 @@ Here is a snapshot of the keybindings dd <2024-07-30 Tue>.
#+BEGIN_SRC emacs-lisp
;; configure support for google calendar
(use-package org-gcal
:ensure t
;; :ensure t
:custom
(org-gcal-client-id (auth-source-pass-get 'secret "snamellit/org-gcal-client"))
(org-gcal-client-secret (auth-source-pass-get "id" "snamellit/org-gcal-client"))
@ -1846,8 +1854,10 @@ see also [[https://www.masteringemacs.org/article/how-to-get-started-tree-sitter
#+BEGIN_SRC emacs-lisp
;; Lisp support
(use-package package-lint-flymake) ;; needed before activating lisp-interaction-mode-hook
(use-package paredit
:ensure nil
:after package-lint-flymake
:commands (enable-paredit-mode)
:init
(dolist (mode '(emacs-lisp-mode-hook
@ -1885,6 +1895,18 @@ no arguments. In Emacs 23.2 and newer, it takes one argument."
"Git commit 222b791")
#+END_SRC
**** Rainbow Parentheses
#+BEGIN_SRC emacs-lisp
(use-package rainbow-delimiters
:ensure t
:commands (rainbow-delimiters-mode)
:hook
(prog-mode . rainbow-delimiters-mode))
#+END_SRC
#+RESULTS:
: [nil 26418 38138 672360 nil elpaca-process-queues nil nil 82000 nil]
**** Enable Geiser Mode in Scheme Mode
@ -1909,6 +1931,42 @@ Configure Geiser and Scheme
#+RESULTS:
| evil-paredit-mode | geiser-mode | enable-paredit-mode | aggressive-indent-mode | geiser-mode--maybe-activate |
**** Allow saving of an SBCL images
When trying to call `(save-lisp-and-die #p"somefile")` , sbcl will
throw an error that it cannot comply when multiple threads are active.
For each project using this you need to define some helper function to
stop the repl threads before saving the image like the following:
#+BEGIN_SRC emacs-lisp :tangle no
(defun sbcl-save-sly-and-die ()
"Save a sbcl image, even when running from inside Sly.
This function should only be used in the *inferior-buffer* buffer,
inside emacs."
(mapcar #'(lambda (x)
(slynk::close-connection
x nil nil))
slynk::*connections*)
(dolist (thread (remove
(slynk-backend::current-thread)
(slynk-backend::all-threads)))
(slynk-backend::kill-thread thread))
(sleep 1)
(sb-ext:save-lisp-and-die #P"~/your-main-program.exe"
:toplevel #'your-main-function-here
:executable t
:compression t))
#+END_SRC
This function has to be called in the *sly-inferior-lisp*
#+BEGIN_SRC emacs-lisp :tangle no
;; in *sly-inferior-lisp* buffer
(sbcl-save-sly-and-die)
#+END_SRC
*** Terraform Support
#+BEGIN_SRC emacs-lisp
;; configure terraform support
@ -2124,7 +2182,7 @@ the moment.
** ERC configuration
Set up ERC, an IRC client for Emacs, to automatically join specific channels and log in:
#+BEGIN_SRC emacs-lisp
#+BEGIN_SRC emacs-lisp :tangle no
(use-package erc
:ensure t
:defer 5
@ -2158,7 +2216,7 @@ reconnects after suspend, and sometimes it even works, but mostly I
run this function again to reconnect, which will update the buffers
with the rooms I joined.
#+BEGIN_SRC emacs-lisp
#+BEGIN_SRC emacs-lisp :tangle no
(defun snam-erc ()
"Login to znc bouncer and join rooms."
(interactive)
@ -2187,7 +2245,10 @@ fail. I dunno, there is something fishy here...
I like to have my IRC channels on workspace 5 in *i3*.
#+BEGIN_SRC emacs-lisp
This is no longer useful : I seldom use i3, but it is useful for
inspiration
#+BEGIN_SRC emacs-lisp :tangle no
(defun my-erc ()
"Create new frame and move to ws5 and launch erc."
(interactive)
@ -2208,6 +2269,33 @@ I like to have my IRC channels on workspace 5 in *i3*.
: my-erc
** rcirc configuration
#+BEGIN_SRC emacs-lisp
(use-package rcirc
:config
(setopt rcirc-server-alist
(let ((data (auth-source-pass-parse-entry "snamellit/znc")))
`((,(auth-source-pass--get-attr "server" data)
:port ,(auth-source-pass--get-attr "port" data)
:encryption tls
:server-alias "znc"
:nick ,(auth-source-pass--get-attr "nick" data)
:user-name ,(concat (auth-source-pass--get-attr "user" data) "@" (system-name))
:password ,(auth-source-pass--get-attr 'secret data)
:channels '("#emacs" "#erc" "#spritely" "#guix" "#systemcrafters" "#systemcrafters-guix" "#systemcrafters-emacs")))))
(setopt rcirc-reconnect-delay 15)
(setopt rcirc-dim-nicks '("Marvin2"))
(setopt rcirc-bright-nicks '("daviwil" "benoitj" "Fade" "trev" "shom" "alternateved" "dthompson"))
(rcirc-track-minor-mode))
#+END_SRC
#+RESULTS:
: t
** Elfeed configuration
Configures Elfeed, an RSS feed reader for Emacs:
#+BEGIN_SRC emacs-lisp