WEBVTT
00:00:01.880 --> 00:00:02.380
That's how I came into this.
00:00:10.120 --> 00:00:10.480
Finally, the next big thing was starting
00:00:16.100 --> 00:00:16.600
2005, I went fully Linux and then for Mac OS,
00:00:19.540 --> 00:00:20.040
and I switched to vanilla self-compiled
00:00:25.279 --> 00:00:25.779
versions of Emacs. So what do I want to show?
00:00:30.540 --> 00:00:30.920
Couple of time ago in the development list
00:00:34.540 --> 00:00:34.760
there was a short exchange about the nil and
00:00:38.400 --> 00:00:38.900
the flood button, flood button button styles,
00:00:42.480 --> 00:00:42.700
saying that it was equivalent and they are
00:00:45.480 --> 00:00:45.980
not. So instead of starting a Flame Wars,
00:00:49.220 --> 00:00:49.720
I thought it was better to go and publicize
00:00:54.520 --> 00:00:55.020
the goodies you get with Flood Button.
00:00:57.260 --> 00:00:57.440
And this is what I'm going to be showing you
00:01:00.140 --> 00:01:00.640
practically. Why Flood Button?
00:01:06.020 --> 00:01:06.500
2005, more or less, I came across DOOM Emacs,
00:01:07.660 --> 00:01:08.160
which was nice. And I,
00:01:12.180 --> 00:01:12.600
especially I liked the DOOM mode line,
00:01:13.740 --> 00:01:14.040
which was, I think it is,
00:01:15.560 --> 00:01:16.060
it is, and it was cool at that time.
00:01:20.280 --> 00:01:20.500
I was using other themes and it was not that
00:01:23.760 --> 00:01:24.020
easy to adapt for these other themes and even
00:01:26.080 --> 00:01:26.280
less when you are in an environment with
00:01:30.060 --> 00:01:30.560
dynamic themes like mine because I tend to
00:01:36.500 --> 00:01:36.680
adapt the theme to the light conditions in my
00:01:40.520 --> 00:01:40.760
working place. So what I did at the end was
00:01:44.540 --> 00:01:44.820
coming up with a style for faces called flood
00:01:49.020 --> 00:01:49.140
button for boxes, called flood button as a
00:01:52.640 --> 00:01:53.140
simple way to get modern looking buttons and
00:01:59.160 --> 00:01:59.380
bars. So flood button is a face style for
00:02:02.380 --> 00:02:02.740
boxes within buttons that automatically sets
00:02:05.240 --> 00:02:05.440
the border color to the background of the
00:02:08.440 --> 00:02:08.880
face, as opposed to nil,
00:02:10.440 --> 00:02:10.940
which uses the foreground.
00:02:14.380 --> 00:02:14.880
And this produces a very doom mode line-ish
00:02:18.400 --> 00:02:18.640
look and feel. And if you want to know where
00:02:21.580 --> 00:02:21.780
I use it, basically for the mode line and I'm
00:02:24.720 --> 00:02:25.200
using tab line for a long time now.
00:02:28.480 --> 00:02:28.680
So for the mode line and for tab line to
00:02:35.080 --> 00:02:35.280
organize my windows. And since an image is
00:02:37.160 --> 00:02:37.660
worth more than a thousand words,
00:02:40.860 --> 00:02:41.160
I'm just going to stop this and start sharing
00:02:44.120 --> 00:02:44.360
a small Emacs environment I have ready for
00:02:47.020 --> 00:02:47.220
this talk where I'm going to show you a flat
00:02:50.220 --> 00:02:50.720
button in real life. So if you hold with me,
00:02:56.100 --> 00:02:56.600
I'm going to share a window.
00:02:58.840 --> 00:02:59.340
It's going to be this 1.
00:03:01.386 --> 00:03:01.430
Share and share. Here we are.
00:03:01.780 --> 00:03:02.280
And share. Here we are.
00:03:08.040 --> 00:03:08.540
So this is an Emacs which is recent,
00:03:13.460 --> 00:03:13.740
reasonably recent. Nothing especially it was
00:03:14.900 --> 00:03:15.400
compiled, it's Emacs 30.
00:03:18.480 --> 00:03:18.780
And I think what I have here is something
00:03:19.900 --> 00:03:20.400
that I compiled last weekend.
00:03:24.940 --> 00:03:25.140
I was tempted to use something compiled this
00:03:28.080 --> 00:03:28.580
morning, but I saw a patch by Ellie regarding
00:03:30.640 --> 00:03:31.140
something in the faces and I didn't want to
00:03:34.160 --> 00:03:34.440
live a too risky life here,
00:03:36.220 --> 00:03:36.720
so I'm going to use this.
00:03:40.740 --> 00:03:41.240
I'm not starting the ZMAC from the normal
00:03:44.160 --> 00:03:44.660
Emacs directory. I have my own,
00:03:49.440 --> 00:03:49.840
I have a special customization directory for
00:03:51.560 --> 00:03:52.060
Emacs, and this is this 1.
00:03:57.760 --> 00:03:58.100
And here what I have is basically an early
00:04:01.880 --> 00:04:02.220
init and an init. So the early init,
00:04:03.680 --> 00:04:03.900
which is quite stupid as you see,
00:04:07.800 --> 00:04:08.300
the only thing that it does is getting rid of
00:04:10.640 --> 00:04:10.800
most of the things that I'm not going to be
00:04:12.740 --> 00:04:13.240
using here. So I have no toolbar,
00:04:15.700 --> 00:04:16.200
no scroll bar, no tool tips.
00:04:20.560 --> 00:04:20.760
I don't like global highlighting my line art,
00:04:21.720 --> 00:04:22.040
so I'm not using that.
00:04:22.800 --> 00:04:23.300
I'm not using dialogues.
00:04:25.560 --> 00:04:26.060
And to start up easier,
00:04:29.440 --> 00:04:29.940
I don't inhibit, I don't use any startups
00:04:34.540 --> 00:04:35.020
screen. So just to make sure that everything
00:04:41.360 --> 00:04:41.860
is correct, that everything is as I want,
00:04:44.840 --> 00:04:45.340
just to show you my Emacs.
00:04:49.240 --> 00:04:49.740
As you see the Emacs 30,
00:04:53.900 --> 00:04:54.100
which was built on the 26th of November which
00:04:55.520 --> 00:04:56.020
was not very long ago.
00:04:57.880 --> 00:04:58.380
And now here comes the real magic.
00:05:00.540 --> 00:05:01.040
My init and my init file.
00:05:04.020 --> 00:05:04.520
Maybe I go to my init file here.
00:05:11.880 --> 00:05:12.040
What I have is just a variable saying that I
00:05:15.880 --> 00:05:16.380
want an extra 8 pixels for my mode line.
00:05:18.240 --> 00:05:18.740
And I have 2 functions.
00:05:23.800 --> 00:05:24.300
1 is modifying the mode line,
00:05:25.920 --> 00:05:26.420
both the active and the inactive,
00:05:32.180 --> 00:05:32.680
using the nil style with this line width of 8
00:05:36.380 --> 00:05:36.600
pixels and to compare with it what I have
00:05:39.140 --> 00:05:39.640
here is another function which will customize
00:05:42.400 --> 00:05:42.780
the face for mode line and instead of using
00:05:44.960 --> 00:05:45.460
nil I'm using here flat button.
00:05:49.440 --> 00:05:49.940
So this is my all the magic that I need.
00:05:53.240 --> 00:05:53.500
I'm going to copy that and I'm going to go to
00:05:57.340 --> 00:05:57.520
the scratch buffer which is always the best
00:05:58.780 --> 00:05:59.280
way of checking these things.
00:06:05.660 --> 00:06:06.100
When I normally work with themes,
00:06:09.320 --> 00:06:09.520
what I do is if I want to further modify the
00:06:13.620 --> 00:06:14.120
themes, I add an advice to load a theme after
00:06:17.800 --> 00:06:18.040
the theme is loaded. In this first case,
00:06:21.280 --> 00:06:21.540
what I'm going to be doing is adding the nil
00:06:22.680 --> 00:06:23.180
sign so that you can see it.
00:06:30.240 --> 00:06:30.740
And once this is done,
00:06:33.000 --> 00:06:33.500
I'm going to load 1 of the Modo Soprandi
00:06:42.600 --> 00:06:43.100
themes, the tinted 1. Here we are.
00:06:56.400 --> 00:06:56.900
And as you can see, when I loaded the theme,
00:07:01.880 --> 00:07:02.160
what I see here is my mode line with the
00:07:05.320 --> 00:07:05.580
x-ray pixels using since I'm using the nil
00:07:09.520 --> 00:07:09.720
style it's using the background color and
00:07:12.620 --> 00:07:13.120
this gives you this thick black line there
00:07:17.080 --> 00:07:17.240
furthermore if you have the inactive line you
00:07:20.660 --> 00:07:21.040
see that it is grayed out so it's always
00:07:22.800 --> 00:07:23.300
using the foreground color.
00:07:33.300 --> 00:07:33.480
So now what I'm going to do is to load the
00:07:35.200 --> 00:07:35.700
models we have any which is the dark theme
00:07:40.080 --> 00:07:40.400
and this case what you see is the love deal
00:07:43.220 --> 00:07:43.720
the lines always using the foreground color
00:07:49.200 --> 00:07:49.700
use the Give you an extra 8 pixels of a white
00:07:53.000 --> 00:07:53.500
color here, which is not what we really want.
00:07:58.900 --> 00:07:59.240
At least not what I wanted to have.
00:08:01.560 --> 00:08:02.060
So what I'm going to do now is I'm going to
00:08:08.940 --> 00:08:09.440
remove this advice and add the flat style
00:08:12.800 --> 00:08:13.260
thing, flat style function,
00:08:15.480 --> 00:08:15.920
so that we're going to do the same.
00:08:18.380 --> 00:08:18.540
But now when I load the themes I'm going to
00:08:20.760 --> 00:08:21.040
have a flat button style for the mode line
00:08:21.880 --> 00:08:22.380
and you'll see the difference.
00:08:29.480 --> 00:08:29.980
So if I now load Modo Software Andy theme,
00:08:35.380 --> 00:08:35.640
tint it, what I get here is as you see I get
00:08:40.520 --> 00:08:40.760
a solid mode line which is a bit more which
00:08:49.240 --> 00:08:49.400
is wider than the normal mode line And if I
00:08:53.140 --> 00:08:53.480
go to the dark theme, I am going to see,
00:08:55.440 --> 00:08:55.920
you're going to see that now the theme
00:08:59.860 --> 00:09:00.360
changes and I have a mode line which is,
00:09:02.700 --> 00:09:03.080
if not the doom mode line,
00:09:08.260 --> 00:09:08.760
quite close to the Doom mode line.
00:09:11.200 --> 00:09:11.700
Where do I use this? Personally,
00:09:15.280 --> 00:09:15.580
I use it for the mode line and for the tab
00:09:18.960 --> 00:09:19.460
line, as I've said. And it gives me this
00:09:27.040 --> 00:09:27.340
clean themes with thicker mode line and tab
00:09:33.620 --> 00:09:34.120
lines which at least in my personal feeling
00:09:40.160 --> 00:09:40.660
look quite modern. And this will be my
00:09:43.820 --> 00:09:44.200
demonstration. So I'm going to stop sharing
00:09:46.820 --> 00:09:46.960
the screen and I'm going to try and see if
00:09:49.400 --> 00:09:49.900
there's anything on the on the chat.
00:09:57.040 --> 00:09:57.360
And I just wanted to know if there are any
00:10:01.240 --> 00:10:01.740
questions. Thank you Pedro.
00:10:05.000 --> 00:10:05.180
Yeah We are now into the Q&A portion of the
00:10:06.420 --> 00:10:06.920
talk. So if folks have questions,
00:10:10.080 --> 00:10:10.240
please post them on IRC or on the pad and
00:10:11.040 --> 00:10:11.540
we'll take them up here.
00:10:25.400 --> 00:10:25.900
Okay, I see a question here saying,
00:10:28.520 --> 00:10:28.860
do you plan to upstream the style into
00:10:32.580 --> 00:10:32.900
core-remix? It's part of core-remix since
00:10:35.800 --> 00:10:36.300
Emacs 29, so you have it.
00:10:49.060 --> 00:10:49.540
How difficult to...I mean,
00:10:54.320 --> 00:10:54.620
you already have the flat button style in
00:10:57.660 --> 00:10:57.940
Core Remax. And you've seen that the main
00:11:00.740 --> 00:11:00.980
thing is, if you want to have a thing like
00:11:06.660 --> 00:11:06.940
that, you just have to customize the face.
00:11:10.920 --> 00:11:11.420
I don't think it's too difficult to do.
00:11:13.380 --> 00:11:13.880
It's adding the style that you want.
00:11:17.360 --> 00:11:17.860
So if you want to see it again,
00:11:20.860 --> 00:11:21.160
I'm going to go and share the screen once
00:11:23.980 --> 00:11:24.160
again and show you the only thing that you
00:11:31.740 --> 00:11:32.240
really need to do. And control X 1,
00:11:34.680 --> 00:11:35.180
control X buffer to init.
00:11:41.040 --> 00:11:41.320
So this is what you would have to do to get
00:11:48.880 --> 00:11:49.020
your mode line or mode line inactive with a
00:11:52.360 --> 00:11:52.660
flat button style. So what you do is you get
00:11:56.120 --> 00:11:56.280
your face like this, the face that you want
00:11:59.640 --> 00:12:00.060
to modify. You say that you inherit from the
00:12:02.920 --> 00:12:03.200
original face and what you do is that you add
00:12:06.820 --> 00:12:07.000
a box with the line width that you want and
00:12:08.040 --> 00:12:08.540
the style plug button.
00:12:10.900 --> 00:12:11.400
I don't think it's too difficult to do.
00:12:23.100 --> 00:12:23.600
How much work was involved in implementing
00:12:27.360 --> 00:12:27.780
this style? It is not 1 of the biggest
00:12:28.940 --> 00:12:29.440
patches you have in Emacs.
00:12:32.260 --> 00:12:32.640
It was my first patch,
00:12:34.500 --> 00:12:34.960
so it was like 20 liners.
00:12:40.280 --> 00:12:40.780
It's not too much. Yes,
00:12:44.540 --> 00:12:45.040
I am going to go and...
00:12:54.733 --> 00:12:54.800
Oops. SKB and... There you are.
00:12:58.660 --> 00:12:58.900
And there you are. I've checked it for copy
00:13:05.440 --> 00:13:05.580
and paste. Of course, then what you have to
00:13:09.440 --> 00:13:09.760
do is to add an advice and add this thing
00:13:16.680 --> 00:13:16.980
after the add this code after the well after
00:13:17.760 --> 00:13:18.260
you've loaded the theme.
00:13:22.420 --> 00:13:22.920
It says, ModeLine and ModeLineInactive.
00:13:27.400 --> 00:13:27.720
I'm also using it for TabLine and
00:13:29.820 --> 00:13:30.060
TabLineInactive and all this kind of things.
00:13:30.060 --> 00:13:30.560
Thanks.
00:14:00.660 --> 00:14:01.160
Thanks. Any other questions?
00:14:35.020 --> 00:14:35.520
Reactions? Thank you. Thank you.
00:15:04.160 --> 00:15:04.340
Okay, I think we still have about 6 or 7 more
00:15:05.840 --> 00:15:06.220
minutes of live Q&A on stream,
00:15:07.400 --> 00:15:07.900
so if folks have any more questions,
00:15:09.940 --> 00:15:10.440
please do feel free to post them on the pad.
00:15:30.060 --> 00:15:30.560
Silence. Silence. Silence.
00:16:02.280 --> 00:16:02.780
Well, do you teach eMAX to any of your
00:16:04.700 --> 00:16:05.200
university students? As such,
00:16:08.080 --> 00:16:08.580
there's no course that we teach,
00:16:12.800 --> 00:16:13.300
but in tutorships and in tutoring sessions,
00:16:15.460 --> 00:16:15.800
when we do practical things,
00:16:21.100 --> 00:16:21.300
and I do a lot, I tend to use Emacs for all
00:16:24.480 --> 00:16:24.960
the tasks so that the students get involved
00:16:28.220 --> 00:16:28.380
in it. I also have a small introduction to
00:16:29.640 --> 00:16:30.110
Emacs that I share with my students.
00:16:33.400 --> 00:16:33.900
So So every year I have 2 or 3 new adepts.
00:17:43.900 --> 00:17:44.400
We have a question on IRC.
00:17:46.920 --> 00:17:47.080
Someone asking can you please show what the
00:17:53.160 --> 00:17:53.660
tab line looks like? Just a second.
00:17:56.880 --> 00:17:57.380
This would be like this.
00:18:03.096 --> 00:18:03.193
For that I'm going to use my regular Emacs.
00:18:06.220 --> 00:18:06.560
Just my my regular emacs so just let me fire
00:18:09.220 --> 00:18:09.720
it up. Sure.
00:18:23.540 --> 00:18:24.040
And
00:18:39.760 --> 00:18:40.120
That's my current situation with the tab
00:18:42.660 --> 00:18:43.140
line. I do have a couple of functions.
00:18:44.680 --> 00:18:45.180
So this is 1 of the things that I use.
00:18:51.500 --> 00:18:51.600
As you see, both the tab line here and the
00:18:57.040 --> 00:18:57.340
mode line change. And the other thing is I
00:19:00.520 --> 00:19:01.020
can, this is for some situations,
00:19:03.600 --> 00:19:03.940
not currently because it's just later,
00:19:06.420 --> 00:19:06.680
it's a bit too dark. But this is for light
00:19:10.260 --> 00:19:10.760
days. I have like 3 or 4 themes that I can
00:19:15.020 --> 00:19:15.140
switch to these are the themes that I
00:19:18.120 --> 00:19:18.620
normally use This is how the tab line looks.
00:19:22.660 --> 00:19:23.160
This is how the tab line here looks with the
00:19:28.280 --> 00:19:28.780
with a flat button style.
00:19:35.640 --> 00:19:36.140
Looks great, Thank you for sharing.
00:19:37.200 --> 00:19:37.700
You're welcome.
00:19:50.720 --> 00:19:51.220
Okay, I think we have 2 or 3 more minutes.
00:19:53.600 --> 00:19:54.100
So if folks, if you have any final questions
00:19:55.480 --> 00:19:55.980
for Pedro, please post them in.
00:20:37.360 --> 00:20:37.860
Okay. Okay.
00:20:54.260 --> 00:20:54.760
Okay.
00:21:34.540 --> 00:21:34.700
No further questions. Yeah,
00:21:36.380 --> 00:21:36.880
it seems we don't have any further questions.
00:21:39.100 --> 00:21:39.480
Just another audience member also thanking
00:21:44.060 --> 00:21:44.200
you on the chat. So with that,
00:21:45.320 --> 00:21:45.480
I'll say Thank you very much,
00:21:47.080 --> 00:21:47.580
Pedro, for your great talk and for the Q&A,
00:21:50.220 --> 00:21:50.320
for your work and for helping spreading the
00:21:52.360 --> 00:21:52.860
joy of Emacs. Okay, thanks.
00:21:56.140 --> 00:21:56.640
Thank you. Bye-bye. It was a nice experience
00:21:59.200 --> 00:21:59.700
here. Very nice tool. Cheers.
00:22:01.640 --> 00:22:01.920
Awesome. Take care. Bye.
00:22:02.720 --> 00:22:03.220
Bye. Bye.