xmpp:lisp@conference.a3.pm?joinxmpp:emacs@conference.conversations.im?joinA Jabber package for Emacs is available: https://codeberg.org/emacs-jabber/emacs-jabber
(use-package jabber
:defer t
:bind
(("C-x j c" . jabber-connect)
("C-x j d" . jabber-disconnect))
:init
(setq jabber-activity-mode nil)
(setq jabber-account-list '(("marcus.kammer@mailbox.org")))
:custom
(jabber-muc-decorate-presence-patterns
'(("enters the room" . nil)
("has entered the room" . nil)
("joined the room" . nil)
("has left the chatroom" . nil)))
(jabber-muc-autojoin
'("lisp@conference.a3.pm"
"emacs@conference.conversations.im"))
(jabber-muc-default-nicknames
'(("lisp@conference.a3.pm" . "marcus")
("emacs@conference.conversations.im" . "marcus"))))
Emacs includes the irc client ERC:
ERC is a powerful, modular, and extensible IRC client for Emacs.
For more information, visit the ERC page at
https://www.gnu.org/software/emacs/erc.html.
(defun mk/start-erc (nick)
(interactive "sTell me your nick please: ")
(let ((erc-sasl-mechanism 'external)
(cert (expand-file-name (format "~/.irssi/certs/%s.pem" nick))))
(unless (file-exists-p cert)
(message (format "There is no cert: %s available." cert)))
(erc-tls :server "irc.libera.chat"
:port 6697
:nick nick
:full-name "Marcus Kammer"
:client-certificate `(,cert ,cert))))
(use-package erc
:defer t
:custom
(erc-track-exclude '("#emacs"))
(erc-track-exclude-types '("JOIN" "NICK" "QUIT" "MODE" "AWAY"))
(erc-hide-list '("JOIN" "NICK" "QUIT" "MODE" "AWAY"))
(erc-track-exclude-server-buffer t)
(erc-fill-column 80)
(erc-fill-function 'erc-fill-static)
(erc-fill-static-center 20)
(erc-prompt-for-nickserv-password nil)
(erc-track-shorten-start 8)
(erc-auto-query 'bury)
(erc-network-hide-list '(("libera.chat" "JOIN" "PART" "QUIT")))
(erc-rename-buffers t)
(erc-interpret-mirc-color t)
(erc-kill-buffer-on-part t)
(erc-kill-queries-on-quit t)
(erc-kill-server-buffer-on-quit t)
(erc-autojoin-channels-alist '(("libera.chat" "#lispcafe" "#emacs" "#commonlisp")))
(erc-modules
'(autojoin ; Set away status automatically
button ; Join channels automatically
completion ; Complete nicknames and commands (programmable)
fill ; Wrap long lines
irccontrols ; Highlight or remove IRC control characters
match ; Highlight pals, fools, and other keywords
menu ; Display a menu in ERC buffers
netsplit ; Detect netsplits
noncommands ; Don’t display non-IRC commands after evaluation
readonly ; Make displayed lines read-only
ring ; Enable an input history
services ; Identify to Nickserv (IRC Services) automatically
smiley ; Convert smileys to pretty icons
stamp ; Add timestamps to messages
truncate ; Truncate buffers to a certain size
)))