Compare commits

..

No commits in common. "0f8ec7b7392f8ce7d8bd9c4c0664e3ef1e15815e" and "f5a3b731fffbd6cfdd70a1ccf860392bb24571e2" have entirely different histories.

View File

@ -639,13 +639,6 @@
#+end_src
* Linux
#+begin_src emacs-lisp
(setq x-meta-keysym 'super)
(setq x-super-keysym 'meta)
#+end_src
* Modes
Here are a list of modes that I prefer enable by default.
@ -1209,7 +1202,9 @@
(use-package mu4e
:ensure nil
:if (and (file-exists-p "~/Maildir")
(seq-every-p 'executable-find '("mbsync" "msmtp" "mu")))
(executable-find "mbsync")
(executable-find "msmtp")
(executable-find "mu"))
:bind (:map custom-bindings-map ("C-x m" . mu4e))
:config
@ -1219,6 +1214,7 @@
(setq mu4e-change-filenames-when-moving t)
(setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a"))
(setq mu4e-maildir "~/Maildir")
(setq mu4e-use-fancy-chars t)
(setq mu4e-drafts-folder "/uio/Drafts")
(setq mu4e-sent-folder "/uio/Sent Items")
@ -1228,19 +1224,6 @@
'(("/uio/Inbox" . ?i)
("/uio/Sent Items" . ?s)))
(let* ((inspera-noise " AND NOT maildir:\"/uio/Inspera varsling\"")
(devilry-noise " AND NOT maildir:/uio/Devilry")
(general-noise " AND NOT maildir:\"/uio/Junk Email\"")
(noise-filter (concat inspera-noise devilry-noise general-noise)))
(setq mu4e-bookmarks
`(( :name "Unread messages" :key ?u
:query ,(concat "flag:unread" noise-filter))
( :name "Today's messages" :key ?t
:query ,(concat "date:today..now" noise-filter) )
( :name "Last 7 days" :key ?w
:query ,(concat "date:7d..now" noise-filter)))))
(setq sendmail-program (executable-find "msmtp"))
(setq send-mail-function 'smtpmail-send-it)
(setq message-sendmail-f-is-evil t)
@ -1249,6 +1232,34 @@
(setq message-kill-buffer-on-exit t))
#+end_src
** Email with org mode
The package org-msg allows me to compose emails with Org mode. That means I
easily can add headings, tables, source code, etc. It is really neat.
#+begin_src emacs-lisp
;; Org mode to send and reply to email in HTML
(use-package org-msg
:after (org mu4e)
:config
(add-to-list 'mu4e-compose-pre-hook 'org-msg-mode)
(setq org-msg-enforce-css (concat user-emacs-directory "email-style.css")
org-msg-options "html-postamble:nil toc:nil num:nil author:nil email:nil"
org-msg-default-alternatives '((new . (text html))
(reply-to-html . (text html))
(reply-to-text . (text)))
org-msg-signature "
,#+begin_signature
,#+begin_export html
- Lars
,#+end_export
,#+end_signature\n"))
#+end_src
* LLM
The ChatGPT client [[https://github.com/karthink/gptel][gptel]] needs an API key from the OpenAI API. This key can
@ -1782,20 +1793,26 @@
developer. You can install the Common Lisp slime counterpart using
[[http://www.quicklisp.org/beta/][Quicklisp]], creating a helper that can be loaded.
We can specify what Common Lisp program Slime should use (I use SBCL).
We can specify what Common Lisp program Slime should use (I use SBCL). More
sensible =loop= indentation is borrowed from [[https://github.com/simenheg][simenheg]].
#+begin_src emacs-lisp
;; Superior Lisp Interaction Mode for Emacs
(use-package slime
:disabled
:defer t
:bind (:map slime-repl-mode-map ("C-l" . slime-repl-clear-buffer))
:hook (common-lisp-mode . activate-slime-helper)
:config
(when (file-exists-p "~/.quicklisp/slime-helper.el")
(load (expand-file-name "~/.quicklisp/slime-helper.el")))
(setq inferior-lisp-program "sbcl")
(setq slime-contribs '(slime-fancy slime-repl))
(setq slime-repl-history-size 1000)
(add-hook 'slime-repl-mode-hook
(lambda ()
(local-set-key (kbd "C-l") 'slime-repl-clear-buffer))))
(setq lisp-loop-forms-indentation 6
lisp-simple-loop-indentation 2
lisp-loop-keyword-indentation 6))
#+end_src
@ -1920,14 +1937,6 @@
#+end_src
** Elm
#+begin_src emacs-lisp
(use-package elm-mode)
#+end_src
** Maude
Use =---= for comments in Maude.