WEBVTT

00:00.000 --> 00:29.000
Hello everyone, so yeah my name is Robin. I worked with Hat, but I'm not getting paid for this so this isn't a project that I maintain since 2021.

00:29.000 --> 00:40.000
For just my personal enjoyment and so I will try.

00:40.000 --> 00:54.000
I got that slide was present last year and a lot of people are asking me how do you pronounce that name exactly.

00:54.000 --> 01:07.000
So we have a bunch of different choices which you can select the Spanish one that happens.

01:07.000 --> 01:18.000
The Spanish one is new. I just figured out yesterday, so it's a F with the tongue. It's not easy to say but

01:18.000 --> 01:32.000
actually it was an acronym at the region but this was completely lost in time probably not really important.

01:32.000 --> 01:42.000
So what exactly is that so it's an email client that you can run into a terminal or terminal emulator.

01:42.000 --> 01:52.000
It supports a variety or I should say maybe all of the back ends and outgoing protocols.

01:52.000 --> 02:02.000
The one of the original things is that compared to Mod or Alpine or Pine, you can actually have multiple tabs and switch from tab to tab.

02:02.000 --> 02:12.000
Without suspending or email you're currently composing which is the case with Mod for example.

02:12.000 --> 02:20.000
But other than that it's a great deal of innovation. It's a basic TUI interface.

02:20.000 --> 02:47.000
So the plan today is to give you an overview of how you can get started and then a quick peek of how you can tweak your preferences and maybe we can get into more details about what would you like if you're already using it would really like to do in the future with it.

02:48.000 --> 02:54.000
So one of the things that's specific to arc is that when you first install it, just run it.

02:54.000 --> 03:06.000
It will present you to a welcome screen, ask you your name, email address, try to figure out automatically what is your eye map and centipy servers.

03:06.000 --> 03:22.000
And if it fails you will have to do that manually and you can use that new account wizard to add new accounts even after you have the first one you can add others.

03:22.000 --> 03:39.000
And then for advanced configuration for the accounts you will need to edit the text file. So it's pretty basic and as I will show you you have help you can just read the help in line in the client without going out.

03:39.000 --> 04:08.000
So this is just a quick example with JMAP. So I do have my DNS zone which is properly configured to expose the required SRV entries so that it can figure out automatically that it needs to reach api.fastmail.com even though my email is at jerry.cc.

04:08.000 --> 04:21.000
So that's basic DNS SRV discovery. There are more advanced auto configs mechanisms which disappear.

04:21.000 --> 04:34.000
There are more advanced auto config the mechanism which I do not arc doesn't support yet, but at some point maybe we could do something about that.

04:34.000 --> 04:47.000
So if you ever get lost you can read the manual pages inside the client. Can you still hear me on the back?

04:47.000 --> 05:03.000
So there's a built-in command help whatever and you have automatic completion so it's pretty easy to access. You can also display the contextual key bindings depending on where you are.

05:03.000 --> 05:13.000
If you press question mark people pop a screen and say if you press that it corresponds to that blah blah blah command.

05:13.000 --> 05:28.000
So for example this is so issued you just help and then you have the completion and it will actually run the man command.

05:28.000 --> 05:36.000
You run the man command and it will open a new tab with man running.

05:36.000 --> 05:47.000
That's confusing. Anyway. So then it's just man with your own page or your own man configuration.

05:47.000 --> 06:01.000
However you want it. Let's move to that. So all the configuration is located in a single file.

06:01.000 --> 06:30.000
Except for the account details. You have a arc.conf which is contains every settings which are related to UI layout, compose options, the message viewer options, part filters and all that things I will explain later and recently what we added is a reload command that you can.

06:31.000 --> 06:46.000
Help. It helps not restarting the program is just reloading the UI live. The only thing that's done is a separate file is the coloring which is called style sets in arc.

06:46.000 --> 07:11.000
It's done a separate file but that's the only thing which is separate. So one of the originalities of that client is that you can use go templates pretty much everywhere where you can use them to compose new messages but you can also use them in commands in the command prompt.

07:11.000 --> 07:29.000
And you can use them to determine how your message list is rendered. So how many columns you want, what's the alignment, whatever. And then it's free you can do four loops the go template language is pretty extensive.

07:29.000 --> 07:45.000
So this is a quick example of what you can do. Of course, many people have done crazy things which I will not have time to present here but you can also so.

07:45.000 --> 08:11.000
You can tune with stuff everywhere you can have folders specific settings or account specific settings and there's the style set name here which is actually you can switch that to another one so it's like a color thing in your terminal which you can have something for arc thing.

08:11.000 --> 08:27.000
So this is what it looks like so it's basically key value you have whatever thing that you want to color or put in bold or italic or underline or whatever and then you equals something on the right.

08:27.000 --> 08:43.000
And you can have pretty complex stuff like if you want to have messages which have something in the subject to be displayed in bold magenta you can do that.

08:43.000 --> 09:12.000
So I have yeah so oh still dark so yeah so it's a mild rising example you could so I think people have done the rasta theme which is more involved so here you can see the patch arc is in blue which so that's a specific style set line which says I want that the messages which have patch in capitals.

09:13.000 --> 09:32.000
Color differently so here you have an overview of the message viewer and I think so this is a HTML email which is viewed into web browser.

09:32.000 --> 09:50.000
I actually aren't doing anything it just runs whatever thing that understand HTML and a new thing which I cannot present here because it doesn't display images.

09:50.000 --> 10:02.000
You can actually if you have attachments or parts images you can display them using six cells or kt image protocol.

10:02.000 --> 10:09.000
So it's actually real images in the native resolution so it's kind of nice.

10:09.000 --> 10:19.000
So one thing which we briefly talked about is that when you read an email so for example.

10:19.000 --> 10:30.000
If you read plain text usually you will not need that much styling or maybe just the quotes you want the quotes to be blue or green or whatever color you like.

10:30.000 --> 10:42.000
But when you do patch contribution or patch review using your email client it's pretty nice to be able to read the patches with this coloring.

10:43.000 --> 10:55.000
Or if whatever styling you want like you could use git delta to completely mangle the patches and display side by side this or however you like that so.

10:56.000 --> 11:08.000
You can also use that to transform non text parts into something you can actually read like calendar invitations or v cards or.

11:08.000 --> 11:20.000
And for example before we had six cell supports in arc the only way you could see images is that you would transform them into us key something.

11:20.000 --> 11:37.000
So this is the example I have here with cat EMG where you actually pipe whatever png or jpeg image and it will transform that into a pixel mess with big blocks everywhere.

11:38.000 --> 11:41.000
So now this isn't needed anymore.

11:41.000 --> 11:44.000
It's just to give you an example but.

11:44.000 --> 11:55.000
So another interesting example is the text hml so we have a built in script which is it just runs web browser.

11:55.000 --> 12:06.000
So double you 3m and it gets pipe the raw hml source in standard input and then you can actually interact with it.

12:06.000 --> 12:17.000
So you can if you if you want you can follow links directly without opening firefox or so maybe just not for everyone but.

12:17.000 --> 12:27.000
I can help you you can even enable in line images into hml email which is looks weird.

12:27.000 --> 12:29.000
Yes,

12:30.000 --> 12:39.000
So the question is does it run javascript I don't think so baby don't know w2m that well.

12:39.000 --> 12:46.000
But you can actually the default is sandboxed so it doesn't have any network access.

12:46.000 --> 12:53.000
I'm sure there are other terminal based web browsers where you could have.

12:53.000 --> 13:03.000
So one thing is keep binding so it's.

13:03.000 --> 13:05.000
Pretty straightforward.

13:05.000 --> 13:19.000
You can just you have a bunch of different contexts like message viewer message list the composer and composer review screen and you can map some key frequencies like control something or.

13:19.000 --> 13:28.000
Vg blah blah blah whatever and it will map that to a key stroke sequence to can.

13:28.000 --> 13:46.000
Chain commands like that which I don't become on right now but you can have pretty long example so this is one of the examples you could have is control p and it will run menu blah blah and then enter and it will actually pop a.

13:47.000 --> 14:00.000
Small by log where you list all your folders of that account and you can just fuzzy type whatever name presenter and go switch to that folder.

14:00.000 --> 14:16.000
For example is that as I mentioned earlier you can use go templates and you could have some specific binding to compose a message to like recompose a message to the same recipients but without.

14:16.000 --> 14:31.000
Replaying or forwarding the message so you could reuse whatever so here I'm using the two header which you could use whatever header you want.

14:31.000 --> 14:34.000
I think I'm yeah.

14:35.000 --> 14:48.000
So we recently released zero dot twenty dot one the dot one is if you can have it it's good.

14:48.000 --> 15:01.000
I know that some for example dbn doesn't allow vandering dependencies so zero dot the dot one version has a fixed but in a dependency.

15:01.000 --> 15:07.000
So we cannot really update the dbn package because it's not accepted of stream yet anyway.

15:07.000 --> 15:17.000
So you should check out from source it's safer and then if you trust your distribution that's okay as well.

15:17.000 --> 15:37.000
So as I said I maintain that on my personal time but I use that every day and I use it mainly with J map and I map but I know there's a lot of choices.

15:37.000 --> 15:58.000
I would be interested in knowing how people are using that and if there are not missing some features or maybe some discomfort from migrating from a different email client to arc or something that you had before and you miss.

15:58.000 --> 16:12.000
And these are the ideas I had for the future so the one of the first thing is I would like to make it possible to completely go offline.

16:12.000 --> 16:23.000
Continue to read the email if you have them in cash you could tag them say ideally this one move that whatever folder compose a message send it.

16:23.000 --> 16:28.000
And then when you get back online everything gets chewed out.

16:28.000 --> 16:36.000
So it's not an easy thing to do but I think I will try this year.

16:36.000 --> 16:56.000
The training commands is a weird one so since arc is completely async when you type run something like archive blah something it will give you back control immediately and you will queue the command in the background.

16:56.000 --> 17:05.000
So if you're running with I map it may take one second for the server to respond say oh I finally move your message.

17:05.000 --> 17:20.000
But you don't want to block the user while it's running so the problem is that if you want to do read like flag the message as seen and then you want to archive it.

17:20.000 --> 17:35.000
You could have timing problems if the archive finishes before or whatever so it would need some way to mark I want to wait until the previous command has finished before doing the next one.

17:36.000 --> 17:58.000
Yeah and then about threading so we have basic not like threading where you have a complex tree of messages if you reply to one in the middle if you start a new subtree we don't have flat conversations like in Gmail or other clients.

17:58.000 --> 18:14.000
I don't know if people are interested in that if they are maybe you could give us a shout out and also so if you have any things that you would like to have in art which are not present yet please.

18:15.000 --> 18:18.000
Stayed it up.

18:18.000 --> 18:28.000
Thank you so much.

18:28.000 --> 18:30.000
Thank you so much.

18:59.000 --> 19:22.000
So the question is email filtering and searching isn't very convenient and some people who don't use not much or other like email extensions they would like to have a more comfortable and natural filtering capability built in.

19:22.000 --> 19:42.000
Yes of course we would like so so this is part of making art better with disconnected offline where we would store partial indexes locally and then we could do because if you do if you rely on the distant IMAP server.

19:43.000 --> 19:55.000
You cannot search or emails you don't have yet so you rely on the remote email server if it is IMAP it's restricted to a bunch of specific.

19:55.000 --> 20:10.000
But if we have a local cash we could do something unified whatever your back in this.

20:10.000 --> 20:26.000
So I don't know if we would need to change the current syntax I don't mind changing it.

20:26.000 --> 20:32.000
Yes for filtering there is already a standout syntax.

20:32.000 --> 20:46.000
Oh so the idea was to reuse sieve maybe why not I don't know if it's convenient to type probably not.

20:47.000 --> 21:14.000
Yeah yeah but maybe something more like Google like you just from calling me or from Mike and it will automatically detect that you're talking about the from header and it will filter you know fuzzy find something or I think something more intuitive than looking up.

21:14.000 --> 21:20.000
Come on flags like dash f dash c dash something.

21:20.000 --> 21:38.000
So actually now we have when you have the interactive command completion you will have a description of each flag and we'll say what that flag is for which is good because before you would get a list of flags and then thanks.

21:38.000 --> 21:45.000
Yeah.

21:45.000 --> 21:52.000
I'm sorry can you.

21:52.000 --> 22:03.000
Tica no I don't know that I'm sorry.

22:03.000 --> 22:15.000
So the question is Apache Tica is a tool or framework that you can type whatever binary and it would convert it to text.

22:15.000 --> 22:27.000
So I haven't tried that but probably you can use it as a filter for PDF or different things.

22:27.000 --> 22:45.000
Yeah so the question is how the threading algorithm is implemented so we have a bunch of options.

22:45.000 --> 23:04.000
So by default it will try to use server side or remote side threading so if you have I map thread extension will ask the server return a bunch of threads and if you don't it will fall back to doing the threads locally.

23:04.000 --> 23:15.000
So it's imperfect because you need to fetch all the emails to have a complete thread it doesn't work with messages which are in different mailboxes.

23:15.000 --> 23:32.000
And this is something which is not easy to implement because we would need to preemptively and eagerly fetch messages from all made boxes and build a complete cache locally which is unrealistic.

23:32.000 --> 23:39.000
Thank you everyone.

