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.
For just my personal enjoyment and so I will try.
I got that slide was present last year and a lot of people are asking me how do you pronounce that name exactly.
So we have a bunch of different choices which you can select the Spanish one that happens.
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
actually it was an acronym at the region but this was completely lost in time probably not really important.
So what exactly is that so it's an email client that you can run into a terminal or terminal emulator.
It supports a variety or I should say maybe all of the back ends and outgoing protocols.
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.
Without suspending or email you're currently composing which is the case with Mod for example.
But other than that it's a great deal of innovation. It's a basic TUI interface.
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.
So one of the things that's specific to arc is that when you first install it, just run it.
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.
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.
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.
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.
So that's basic DNS SRV discovery. There are more advanced auto configs mechanisms which disappear.
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.
So if you ever get lost you can read the manual pages inside the client. Can you still hear me on the back?
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.
If you press question mark people pop a screen and say if you press that it corresponds to that blah blah blah command.
So for example this is so issued you just help and then you have the completion and it will actually run the man command.
You run the man command and it will open a new tab with man running.
That's confusing. Anyway. So then it's just man with your own page or your own man configuration.
However you want it. Let's move to that. So all the configuration is located in a single file.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
You can actually if you have attachments or parts images you can display them using six cells or kt image protocol.
So it's actually real images in the native resolution so it's kind of nice.
So one thing which we briefly talked about is that when you read an email so for example.
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.
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.
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.
You can also use that to transform non text parts into something you can actually read like calendar invitations or v cards or.
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.
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.
So now this isn't needed anymore.
It's just to give you an example but.
So another interesting example is the text hml so we have a built in script which is it just runs web browser.
So double you 3m and it gets pipe the raw hml source in standard input and then you can actually interact with it.
So you can if you if you want you can follow links directly without opening firefox or so maybe just not for everyone but.
I can help you you can even enable in line images into hml email which is looks weird.
Yes,
So the question is does it run javascript I don't think so baby don't know w2m that well.
But you can actually the default is sandboxed so it doesn't have any network access.
I'm sure there are other terminal based web browsers where you could have.
So one thing is keep binding so it's.
Pretty straightforward.
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.
Vg blah blah blah whatever and it will map that to a key stroke sequence to can.
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.
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.
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.
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.
I think I'm yeah.
So we recently released zero dot twenty dot one the dot one is if you can have it it's good.
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.
So we cannot really update the dbn package because it's not accepted of stream yet anyway.
So you should check out from source it's safer and then if you trust your distribution that's okay as well.
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.
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.
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.
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.
And then when you get back online everything gets chewed out.
So it's not an easy thing to do but I think I will try this year.
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.
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.
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.
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.
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.
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.
Stayed it up.
Thank you so much.
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.
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.
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.
But if we have a local cash we could do something unified whatever your back in this.
So I don't know if we would need to change the current syntax I don't mind changing it.
Yes for filtering there is already a standout syntax.
Oh so the idea was to reuse sieve maybe why not I don't know if it's convenient to type probably not.
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.
Come on flags like dash f dash c dash something.
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.
Yeah.
I'm sorry can you.
Tica no I don't know that I'm sorry.
So the question is Apache Tica is a tool or framework that you can type whatever binary and it would convert it to text.
So I haven't tried that but probably you can use it as a filter for PDF or different things.
Yeah so the question is how the threading algorithm is implemented so we have a bunch of options.
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.
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.
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.
Thank you everyone.