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.