diff options
Diffstat (limited to '2025/info')
| -rw-r--r-- | 2025/info/gnus-after.md | 456 | ||||
| -rw-r--r-- | 2025/info/gnus-before.md | 20 |
2 files changed, 475 insertions, 1 deletions
diff --git a/2025/info/gnus-after.md b/2025/info/gnus-after.md index f36b6ba8..bb76010d 100644 --- a/2025/info/gnus-after.md +++ b/2025/info/gnus-after.md @@ -1,6 +1,462 @@ <!-- Automatically generated by emacsconf-publish-after-page --> +<div class="transcript transcript-mainVideo"><a name="gnus-mainVideo-transcript"></a><h1>Transcript</h1> + + +<div class="transcript-heading">[[!template new="1" text="""Introduction""" start="00:00:02.620" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Hello, my name is Amin Bandali,""" start="00:00:02.620" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and today I'd like to talk about""" start="00:00:04.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""reading and writing emails in GNU Emacs""" start="00:00:06.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""using Gnus specifically.""" start="00:00:08.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Gnus has had this sort of reputation""" start="00:00:14.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of being difficult to approach and configure.""" start="00:00:16.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""That's understandable""" start="00:00:20.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""because it has many, many options""" start="00:00:23.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and major and minor modes""" start="00:00:26.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that interact in different ways with each other.""" start="00:00:27.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And it also doesn't help that Gnus started originally""" start="00:00:30.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as a newsreader""" start="00:00:35.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""rather than a mail client.""" start="00:00:36.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So a lot of the terminology that it uses""" start="00:00:38.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is also rooted in that,""" start="00:00:40.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in reading and writing news.""" start="00:00:42.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But nevertheless, with this video and talk,""" start="00:00:45.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I hope to provide a sort""" start="00:00:48.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of very quick introduction""" start="00:00:52.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of starting to use Gnus""" start="00:00:55.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to read and write email and send it.""" start="00:00:57.540" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We will use Gnus' IMAP support,""" start="00:01:00.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""mainly because a lot of people""" start="00:01:02.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""these days have email accounts""" start="00:01:06.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with mail service providers""" start="00:01:08.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that support IMAP,""" start="00:01:10.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is an open standard.""" start="00:01:12.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So it's widely available and supported""" start="00:01:14.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""across many different providers""" start="00:01:17.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as well as mail clients or mail user agents as well.""" start="00:01:19.720" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Demo""" start="00:01:25.240" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Okay, so let's just jump straight right in.""" start="00:01:25.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I will enter this demo directory that I created""" start="00:01:30.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for the purposes of this demonstration""" start="00:01:34.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and change my home directory to this one""" start="00:01:36.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so that we can safely experiment with Gnus here.""" start="00:01:41.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""For this presentation, I've written up""" start="00:01:49.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a quick initialization file or init file""" start="00:01:53.980" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that I will share afterwards as well""" start="00:01:56.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to get us going with Gnus.""" start="00:01:59.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""There's not much to it at the moment.""" start="00:02:01.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Just set up the package archives and""" start="00:02:04.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""install the keycast package""" start="00:02:07.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for showing the key presses in the mode line.""" start="00:02:09.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, that's about it.""" start="00:02:14.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And I'll also define""" start="00:02:15.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a little like inline function +emacs.d""" start="00:02:16.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that allows me to conveniently write""" start="00:02:20.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and have it expanded""" start="00:02:24.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""or refer to files and directories, rather,""" start="00:02:26.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""paths that we could expand,""" start="00:02:29.301" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""inside my Emacs configuration directory.""" start="00:02:30.901" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I also have this eval-last-sexp""" start="00:02:32.834" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""bound to a global key,""" start="00:02:37.501" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so that I will be able to easily""" start="00:02:41.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""use it for this talk.""" start="00:02:43.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Okay, let's jump right in.""" start="00:02:47.520" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Don't panic""" start="00:02:49.960" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""First things first, don't panic.""" start="00:02:49.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And that's actually also the name""" start="00:02:52.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of the very first node""" start="00:02:55.268" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in the Gnus manual when you open it.""" start="00:02:58.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And it's actually nice.""" start="00:03:01.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I definitely, definitely recommend""" start="00:03:02.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that you look through""" start="00:03:04.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""at least the very first couple of chapters of this,""" start="00:03:07.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""skim through it, and later on refer to it""" start="00:03:10.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""whenever you find something confusing""" start="00:03:14.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""or don't understand it.""" start="00:03:16.134" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But yeah, we'll start""" start="00:03:19.500" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with these two paragraphs here.""" start="00:03:21.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So again, a Gnus installation""" start="00:03:22.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is basically just a list of one or more servers""" start="00:03:23.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and the subscribed groups from those servers""" start="00:03:28.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and articles in those groups.""" start="00:03:30.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""You can already kind of see""" start="00:03:32.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""where that influence of a newsreader comes in.""" start="00:03:34.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But yeah, basically what it's saying is that,""" start="00:03:39.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""you know, we have one or more servers.""" start="00:03:41.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can think of them as email servers.""" start="00:03:43.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Groups can be like, we can think""" start="00:03:47.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of them as folders or directories.""" start="00:03:49.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And yeah, articles,""" start="00:03:52.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""those would be like our email messages.""" start="00:03:55.240" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Configuring servers""" start="00:03:58.560" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""With Gnus, we can add""" start="00:03:58.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and configure servers mainly using two variables.""" start="00:03:59.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""One of them is the gnus-select-method""" start="00:04:06.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and the other is gnus-secondary-select-methods.""" start="00:04:07.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""The first one predates the second one""" start="00:04:11.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and I generally don't recommend using it, because""" start="00:04:15.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""first of all, it can only point""" start="00:04:17.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to one server, and that server,""" start="00:04:22.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""because it's the primary,""" start="00:04:26.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""then Gnus won't add a prefix to its groups,""" start="00:04:27.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so later on, as you get into""" start="00:04:32.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""more advanced features of Gnus""" start="00:04:34.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and, for example, want to write rules""" start="00:04:36.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to modify your message composition""" start="00:04:38.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in a way for certain groups, or file mail,""" start="00:04:42.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""automatically classify mail,""" start="00:04:47.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""this distinction can become""" start="00:04:48.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""confusing and annoying.""" start="00:04:51.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""My recommendation is to always and only use""" start="00:04:53.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""the gnus-secondary-select-methods.""" start="00:04:57.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, so let's do that here.""" start="00:05:01.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I'm gonna uncomment this portion.""" start="00:05:07.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So here, I set the primary select method to nil,""" start="00:05:10.300" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and the second one, I define an nnimap server""" start="00:05:16.420" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of the nnimap backend.""" start="00:05:24.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I give it the name ec25gnus.""" start="00:05:30.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""What I want it to do is to""" start="00:05:32.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""connect to my mail server,""" start="00:05:35.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is at this address,""" start="00:05:37.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and fetch emails from it over TLS with this username.""" start="00:05:41.080" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text=""".authinfo""" start="00:05:46.240" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""And then the passwords or the credentials,""" start="00:05:46.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""you can put them in the .authinfo file.""" start="00:05:50.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Normally, you would want to, for example,""" start="00:05:56.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""encrypt this file with your GPG key.""" start="00:05:58.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But for this demonstration, I haven't.""" start="00:06:03.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So yeah, the format is the keyword "machine"""" start="00:06:06.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""followed by the name of your Gnus server or account,""" start="00:06:10.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""followed by the word "login",""" start="00:06:15.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""then your login username,""" start="00:06:17.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and then the password, which here it's not shown.""" start="00:06:19.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah.""" start="00:06:23.960" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Configuration""" start="00:06:26.600" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""But before we actually set this,""" start="00:06:26.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I'll just show you that if we like start Gnus""" start="00:06:28.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with M-x gnus,""" start="00:06:31.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""initially, it will just show""" start="00:06:33.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""an error like this.""" start="00:06:36.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Even if we continue, it's empty.""" start="00:06:37.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""There's not much because Gnus doesn't know""" start="00:06:40.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""where to fetch these emails from.""" start="00:06:43.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And that's what we will configure.""" start="00:06:47.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Excuse me.""" start="00:06:52.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, so just for convenience,""" start="00:06:55.860" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we can bind Gnus to,""" start="00:06:57.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for example, C-c g, as I've done here.""" start="00:06:59.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""You will want to set your name""" start="00:07:00.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and email address, like so.""" start="00:07:04.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Here we tell Emacs""" start="00:07:05.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that we are going to be using Gnus for reading email,""" start="00:07:09.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""because Emacs comes""" start="00:07:11.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with other email clients as well,""" start="00:07:12.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""such as Rmail, and in fact, defaults to Rmail,""" start="00:07:14.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so this way, we tell it to use Gnus.""" start="00:07:18.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""By default, Gnus puts its newsrc file and other files,""" start="00:07:24.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I believe it still scatters them""" start="00:07:31.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in a few different directories""" start="00:07:34.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in your home directory,""" start="00:07:35.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so it's a little bit messy.""" start="00:07:36.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So what I prefer to do is to just put it""" start="00:07:37.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""all under the Gnus directory""" start="00:07:40.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""inside of my Emacs configuration, as I do here.""" start="00:07:42.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, and then here we just tell Gnus""" start="00:07:47.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to, like, don't try to bother""" start="00:07:50.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with a generic newsrc file""" start="00:07:53.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that would be shared""" start="00:07:55.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with other news readers.""" start="00:07:57.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Just want to use it for email.""" start="00:07:58.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And yeah, so we just tell Gnus""" start="00:07:59.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to keep all of its data""" start="00:08:01.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""inside a dedicated .newsrc.eld""" start="00:08:03.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""(for Emacs Lisp data) file instead.""" start="00:08:08.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And we can also have Gnus not prompt us""" start="00:08:12.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""when we want to exit with q.""" start="00:08:15.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Anyway, so let's go ahead and evaluate this.""" start="00:08:19.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So this has been set,""" start="00:08:23.400" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Starting Gnus""" start="00:08:25.720" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""so if we type M-x gnus again, or hit C-c g,""" start="00:08:25.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""now we're faced with an empty buffer,""" start="00:08:32.268" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and it says no news is good news,""" start="00:08:35.700" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and that's actually""" start="00:08:37.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""one of the characteristics of Gnus""" start="00:08:38.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is that by default it tries""" start="00:08:40.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to like sort of declutter""" start="00:08:44.780" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and show us a little less possible""" start="00:08:47.620" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in the group buffer,""" start="00:08:49.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""meaning that if you don't have""" start="00:08:50.820" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""any groups with unread or marked""" start="00:08:53.260" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""or, like, starred messages, it will not show them.""" start="00:08:55.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""To actually see all of our groups or folders,""" start="00:09:00.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we hit shift L or capital L,""" start="00:09:03.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and we see that we have an inbox here,""" start="00:09:08.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as expected. So we enter the inbox,""" start="00:09:12.420" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and we see that there is an article there""" start="00:09:14.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and it's already been marked as read.""" start="00:09:17.460" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But if we mark it as unread""" start="00:09:20.780" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and exit and enter Gnus again,""" start="00:09:22.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""this is what we would see.""" start="00:09:25.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We would see that our group""" start="00:09:27.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and then we enter it, we see our mail here.""" start="00:09:28.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, and this is our very first email""" start="00:09:34.100" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that we read in GNU Emacs here, inside Gnus.""" start="00:09:36.160" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Always showing groups""" start="00:09:40.080" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""It might be useful to have Gnus always show""" start="00:09:40.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""certain groups or folders""" start="00:09:43.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""even if they don't have""" start="00:09:46.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""anything unread or marked inside of them.""" start="00:09:48.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""The way we can do that is""" start="00:09:52.340" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""by setting this variable""" start="00:09:56.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""gnus-permanently-visible-groups""" start="00:09:57.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to a regular expression""" start="00:10:01.340" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that describes the name of these groups.""" start="00:10:03.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So if we launch Gnus again,""" start="00:10:09.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""this time, we see that that group is visible,""" start="00:10:11.540" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""even though there's no unread messages in it.""" start="00:10:14.760" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Reading messages""" start="00:10:19.900" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""When we enter a group or folder,""" start="00:10:19.900" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we will see a list of all of our messages.""" start="00:10:24.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Here, we only have one.""" start="00:10:26.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can press M-u or Alt-u""" start="00:10:27.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to mark something as unread.""" start="00:10:31.940" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""You can press d to mark it as read.""" start="00:10:34.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""If you press just u,""" start="00:10:38.540" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""it'll tick the article,""" start="00:10:40.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is kind of the equivalent""" start="00:10:41.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of marking the message or email""" start="00:10:44.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as starred in other email clients""" start="00:10:47.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""such as Thunderbird.""" start="00:10:50.540" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We see that when there are groups""" start="00:10:55.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that have starred or ticked messages""" start="00:11:00.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""inside of them,""" start="00:11:03.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Gnus will mark them""" start="00:11:04.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with this little star here, or asterisk.""" start="00:11:05.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""This talk is just barely""" start="00:11:16.020" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""scratching the surface.""" start="00:11:17.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Let's see how far...""" start="00:11:19.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""How am I doing with the time?""" start="00:11:21.081" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Okay, 11 minutes already.""" start="00:11:22.760" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Debugging IMAP""" start="00:11:30.120" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Just a couple of helpful things here,""" start="00:11:30.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""like this nnimap-record-commands variable.""" start="00:11:32.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""It's useful when you want to debug""" start="00:11:36.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""your IMAP setup with Gnus.""" start="00:11:38.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""If you set it to anything non-nil,""" start="00:11:40.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""it will log the commands that it runs""" start="00:11:42.860" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to a special `\*imap log\*` buffer.""" start="00:11:46.700" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And here I just set it""" start="00:11:49.540" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to this init-file-debug variable,""" start="00:11:50.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is set to non-nil""" start="00:11:52.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""whenever you launch Emacs""" start="00:11:55.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with the --debug-init switch,""" start="00:11:56.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so that's pretty helpful.""" start="00:11:59.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""You want to also set your sent folder,""" start="00:12:02.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""basically, where Gnus will save""" start="00:12:05.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a copy of the message that you just sent.""" start="00:12:07.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Normally, I think the convention these days is,""" start="00:12:09.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a lot of you know servers and clients""" start="00:12:12.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""use a dedicated sent folder,""" start="00:12:16.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""but with Gnus, I just prefer to use INBOX itself.""" start="00:12:18.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Mainly because then I will have""" start="00:12:24.340" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""threading working for free,""" start="00:12:27.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so I can read the entire thread""" start="00:12:28.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of an email chain there in one place.""" start="00:12:31.940" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Of course, we don't have to keep""" start="00:12:34.300" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""the messages in there forever.""" start="00:12:35.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And in fact, Gnus has facilities,""" start="00:12:38.900" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""both manual and automated,""" start="00:12:42.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for expiring emails into""" start="00:12:43.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""different locations or different folders.""" start="00:12:46.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah. So let's move on here.""" start="00:12:52.680" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Topics""" start="00:12:55.160" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Topics are another nice feature of Gnus.""" start="00:12:55.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So this is useful""" start="00:13:02.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for creating some topics""" start="00:13:03.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and then classifying or grouping""" start="00:13:05.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""your directories there.""" start="00:13:08.460" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So we will see the use""" start="00:13:10.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of this in a moment,""" start="00:13:11.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""where, let's say, I want to add""" start="00:13:13.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a second account to Gnus.""" start="00:13:17.020" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""This one I'm going to call ec25work.""" start="00:13:20.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Let's pretend that""" start="00:13:23.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""this is my work email.""" start="00:13:24.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So if we open Gnus now,""" start="00:13:29.860" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we see that our work INBOX""" start="00:13:32.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""also shows up here.""" start="00:13:37.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And because we enabled topic mode,""" start="00:13:37.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we see that we have""" start="00:13:41.300" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""these sort of buttons""" start="00:13:42.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""like Gnus and misc here.""" start="00:13:43.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And we can, I believe,""" start="00:13:44.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""create a topic with capital T n.""" start="00:13:46.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can call it personal, this one.""" start="00:13:49.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Let's create another one, work.""" start="00:13:52.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And then what we can do is go""" start="00:13:56.940" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""over the directory that we want,""" start="00:13:59.580" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for example, this one,""" start="00:14:02.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""hit capital T m to move it""" start="00:14:04.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to the personal topic,""" start="00:14:08.220" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and this work one,""" start="00:14:11.900" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""move it to the work topic.""" start="00:14:13.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So we can nicely classify""" start="00:14:15.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and group our groups folders here,""" start="00:14:17.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is especially useful""" start="00:14:23.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""when you have hundreds of them.""" start="00:14:24.720" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Customizing message display""" start="00:14:25.560" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Anyhow, we can customize""" start="00:14:25.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""different aspects of message display.""" start="00:14:29.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Like for example,""" start="00:14:35.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we can this way customize""" start="00:14:35.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and change the order of""" start="00:14:38.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which headers we want to see and where.""" start="00:14:39.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So if I launch Gnus""" start="00:14:41.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and go back to this email here,""" start="00:14:45.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""these are the headers that we see at the top.""" start="00:14:48.460" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Excuse me.""" start="00:14:52.140" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And with Gnus we can always""" start="00:14:52.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can have it show all the headers""" start="00:14:55.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""by pressing t to toggle the headers.""" start="00:14:57.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Here we can see all the nitty-gritty""" start="00:15:02.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and all of the headers in the message""" start="00:15:04.580" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and we can toggle it back with t again.""" start="00:15:06.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can modify and customize the sorting""" start="00:15:12.220" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""with dedicated sorting functions.""" start="00:15:16.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""It comes with a number of them""" start="00:15:20.020" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""out of the box""" start="00:15:21.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""but we can define them as well.""" start="00:15:21.600" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Sending emails""" start="00:15:24.320" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""Now to send emails. Let's see.""" start="00:15:24.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We will be using message,""" start="00:15:29.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and that's what Gnus itself uses.""" start="00:15:31.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So I will set things up here.""" start="00:15:34.940" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Let's see.""" start="00:15:38.580" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Okay, so first of all,""" start="00:15:42.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we want to have Gnus mark""" start="00:15:44.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""the messages that we write to others""" start="00:15:46.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as read automatically,""" start="00:15:48.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so this option does that.""" start="00:15:49.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And then we define posting styles this way""" start="00:15:51.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""using the prefix, the name""" start="00:15:58.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of the IMAP server.""" start="00:16:01.620" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And this is how we can tell it to use""" start="00:16:04.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""what email address for the From [header]""" start="00:16:06.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and which SMTP server to send it with.""" start="00:16:09.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, and then gcc is where Gnus will save""" start="00:16:14.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""the copy of the messages that we write.""" start="00:16:17.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So if we go ahead and launch Gnus again.""" start="00:16:20.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can go into our personal email here,""" start="00:16:24.140" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""hit m to compose a new message.""" start="00:16:26.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can prepare an email to,""" start="00:16:28.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""let's say, our work address.""" start="00:16:33.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Hello from EmacsConf 2025 Gnus talk.""" start="00:16:35.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Hello, this is just a test. :)""" start="00:16:42.420" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, and we hit send.""" start="00:16:47.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""The sending will be done""" start="00:16:55.740" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""using Emacs's built-in SMTP libraries.""" start="00:16:56.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Sometimes it can take a moment.""" start="00:17:03.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Okay, that's it. It's done.""" start="00:17:05.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So if we go back out""" start="00:17:07.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and if we hit g to get new news,""" start="00:17:09.260" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""we should be able to see our new email there""" start="00:17:11.560" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""in the other account that we just sent it to.""" start="00:17:15.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So we can come here, open it,""" start="00:17:17.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and there we go.""" start="00:17:22.361" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Plans""" start="00:17:26.660" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""There is a lot to configure in Gnus,""" start="00:17:26.660" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and we're just barely scratching the surface,""" start="00:17:29.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and unfortunately I don't have the time""" start="00:17:31.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to explain all of these""" start="00:17:34.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""but I do plan on doing""" start="00:17:35.000" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""a much longer running series,""" start="00:17:36.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""whether it's text or videos,""" start="00:17:38.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""showing how to configure""" start="00:17:41.500" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and use a lot of these different aspects of Gnus.""" start="00:17:42.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""But yeah, here, near the end, just a couple of...""" start="00:17:45.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""quick things. I find it's nice to have message""" start="00:17:49.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""prompt us for [confirmation]""" start="00:17:54.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""that we do want to send a message.""" start="00:17:56.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Actually, when it does that, I take""" start="00:17:59.200" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""another look over my email""" start="00:18:01.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to make sure I don't have any typos.""" start="00:18:02.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""It's generally a good idea to wrap your messages""" start="00:18:07.060" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""around 70 or 72 characters.""" start="00:18:09.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We do that here.""" start="00:18:14.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""We can tell Gnus to forward messages""" start="00:18:16.620" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""as a proper MIME part,""" start="00:18:19.160" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""instead of some half-broken way.""" start="00:18:22.600" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""This customization, the sendmail function,""" start="00:18:27.060" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is how we tell Gnus with message""" start="00:18:30.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to use the SMTP library to sending the email,""" start="00:18:34.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and these two variables are useful for""" start="00:18:38.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""omitting our own email address""" start="00:18:42.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""when we want to send someone,""" start="00:18:45.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""like when we hit r, to reply to someone.""" start="00:18:47.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""if we configure these variables,""" start="00:18:50.180" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""then Gnus won't add""" start="00:18:51.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""our own address to the To or Cc,""" start="00:18:52.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is pretty useful.""" start="00:18:56.060" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I also find it helpful""" start="00:18:58.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to unbind C-c C-s.""" start="00:18:59.920" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""That's another key""" start="00:19:03.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for sending the message [in addition to C-c C-c].""" start="00:19:04.975" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And because C-c C-d,""" start="00:19:06.320" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""which is very close to it on the QWERTY layout,""" start="00:19:09.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is useful for saving a draft""" start="00:19:13.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and then coming back to it,""" start="00:19:15.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I don't want to accidentally hit C-c C-s,""" start="00:19:16.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and send the message prematurely.""" start="00:19:20.080" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""So I unbind it.""" start="00:19:22.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Yeah, anyway, that's about it.""" start="00:19:25.980" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""Wrapping up""" start="00:19:27.960" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""That's a kind of very quick tour""" start="00:19:27.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and introduction of setting up Gnus.""" start="00:19:31.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Here, we just configured a remote IMAP server,""" start="00:19:37.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""but we can also, of course,""" start="00:19:40.720" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""set up a local IMAP server such as Dovecot""" start="00:19:43.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and point Gnus to there,""" start="00:19:46.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and use programs like OfflineIMAP, I believe,""" start="00:19:48.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""or the mbsync program from isync package""" start="00:19:52.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""or isync project to synchronize our messages""" start="00:19:57.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""to local mail directories""" start="00:20:02.940" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and then point Gnus to it.""" start="00:20:04.480" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""The reason we might want to use that""" start="00:20:06.280" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is to always have a copy of our messages at hand""" start="00:20:08.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so we can use offline.""" start="00:20:11.720" video="mainVideo-gnus" id="subtitle"]] + +<div class="transcript-heading">[[!template new="1" text="""nnimap""" start="00:20:12.760" video="mainVideo-gnus" id="subtitle"]]</div>[[!template text="""And why use nnimap specifically?""" start="00:20:12.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""As of now, the Maildir backend included with Gnus""" start="00:20:17.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is very inefficient,""" start="00:20:27.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""especially when dealing with""" start="00:20:29.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""tens or hundreds of thousands of messages""" start="00:20:31.400" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""like some of us are.""" start="00:20:33.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""It just takes an eternity to try""" start="00:20:36.660" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and index them and get going.""" start="00:20:38.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""In that case, what I recommend doing""" start="00:20:43.260" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""is instead of interfacing directly with Maildir,""" start="00:20:44.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""for Gnus, just install and run""" start="00:20:47.800" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Dovecot, a local IMAP server,""" start="00:20:52.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and point Gnus to that.""" start="00:20:54.360" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""I plan on writing tutorials or doing videos""" start="00:20:59.820" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""about these other aspects""" start="00:21:02.960" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""of configuring Gnus after the conference.""" start="00:21:06.640" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""That's about it for me,""" start="00:21:10.520" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""so I hope you find this helpful.""" start="00:21:11.440" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""If you have any questions,""" start="00:21:14.120" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""please feel free to email me""" start="00:21:16.680" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""at bandali@gnu.org or @kelar.org.""" start="00:21:18.240" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""You can take a look at my personal website""" start="00:21:23.760" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""where I plan on posting""" start="00:21:25.880" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""other Emacs and Gnus materials.""" start="00:21:26.840" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""And yeah, thank you for watching""" start="00:21:31.060" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""and I hope you enjoy the rest of the conference.""" start="00:21:33.040" video="mainVideo-gnus" id="subtitle"]] +[[!template text="""Take care.""" start="00:21:35.160" video="mainVideo-gnus" id="subtitle"]] + +</div> + +Captioner: sachac + Questions or comments? Please e-mail [bandali@gnu.org](mailto:bandali@gnu.org?subject=Comment%20for%20EmacsConf%202023%20gnus%3A%20Reading%20and%20writing%20emails%20in%20GNU%20Emacs%20with%20Gnus) diff --git a/2025/info/gnus-before.md b/2025/info/gnus-before.md index 1267f806..90c91a11 100644 --- a/2025/info/gnus-before.md +++ b/2025/info/gnus-before.md @@ -8,12 +8,30 @@ The following image shows where the talk is in the schedule for Sat 2025-12-06. Format: 22-min talk ; Q&A: BigBlueButton conference room <https://media.emacsconf.org/2025/current/bbb-gnus.html> Etherpad: <https://pad.emacsconf.org/2025-gnus> Etherpad: <https://pad.emacsconf.org/2025-gnus> Discuss on IRC: [#emacsconf-gen](https://chat.emacsconf.org/?join=emacsconf,emacsconf-gen) -Status: Ready to stream +Status: Now playing on the conference livestream <div>Times in different time zones:</div><div class="times" start="2025-12-06T15:50:00Z" end="2025-12-06T16:15:00Z"><div class="conf-time">Saturday, Dec 6 2025, ~10:50 AM - 11:15 AM EST (US/Eastern)</div><div class="others"><div>which is the same as:</div>Saturday, Dec 6 2025, ~9:50 AM - 10:15 AM CST (US/Central)<br />Saturday, Dec 6 2025, ~8:50 AM - 9:15 AM MST (US/Mountain)<br />Saturday, Dec 6 2025, ~7:50 AM - 8:15 AM PST (US/Pacific)<br />Saturday, Dec 6 2025, ~3:50 PM - 4:15 PM UTC <br />Saturday, Dec 6 2025, ~4:50 PM - 5:15 PM CET (Europe/Paris)<br />Saturday, Dec 6 2025, ~5:50 PM - 6:15 PM EET (Europe/Athens)<br />Saturday, Dec 6 2025, ~9:20 PM - 9:45 PM IST (Asia/Kolkata)<br />Saturday, Dec 6 2025, ~11:50 PM - 12:15 AM +08 (Asia/Singapore)<br />Sunday, Dec 7 2025, ~12:50 AM - 1:15 AM JST (Asia/Tokyo)</div></div><div><strong><a href="/2025/watch/gen/">Find out how to watch and participate</a></strong></div> +<div class="vid mainVideo"><video controls preload="none" id="mainVideo-gnus"><source src="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.webm" />captions="""<track label="English" kind="captions" srclang="en" src="/2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt" default />"""<track kind="chapters" label="Chapters" src="/2025/captions/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main--chapters.vtt" /><p><em>Your browser does not support the video tag. Please download the video instead.</em></p></video>[[!template id="chapters" vidid="mainVideo-gnus" data=""" +00:02.620 Introduction +01:25.240 Demo +02:49.960 Don't panic +03:58.560 Configuring servers +05:46.240 .authinfo +06:26.600 Configuration +08:25.720 Starting Gnus +09:40.080 Always showing groups +10:19.900 Reading messages +11:30.120 Debugging IMAP +12:55.160 Topics +14:25.560 Customizing message display +15:24.320 Sending emails +17:26.660 Plans +19:27.960 Wrapping up +20:12.760 nnimap +"""]]<div></div>Duration: 21:37 minutes<div class="files resources"><ul><li><a href="https://pad.emacsconf.org/2025-gnus">Open Etherpad</a></li><li><a href="https://media.emacsconf.org/2025/current/bbb-gnus.html">Open public Q&A</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--intro.vtt">Download --intro.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--intro.webm">Download --intro.webm</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main--chapters.vtt">Download --main--chapters.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.opus">Download --main.opus (19MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.png">Download --main.png</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.vtt">Download --main.vtt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--main.webm">Download --main.webm (60MB)</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--split.txt">Download --split.txt</a></li><li><a href="https://media.emacsconf.org/2025/emacsconf-2025-gnus--reading-and-writing-emails-in-gnu-emacs-with-gnus--amin-bandali--split.vtt">Download --split.vtt</a></li><li><a href="https://youtu.be/0Pu8oqdsSig">View on Youtube</a></li></ul></div></div> # Description <!-- End of emacsconf-publish-before-page -->
\ No newline at end of file |
