 So I'm EmRick, I'm a software engineer and a contributor to i3, especially i3 side tools that come with the window manager. So i3 is a tidying window manager. Let me begin with a quick poll. So who's using i3 already? Quite amazing. We love you guys. Who's using a similar window tidying window manager? Yeah, quite some. You should switch to i3. So what's a window manager? Well, you know it, but I should say that it's the software that controls the placement and appearance of the windows that you opened. What's a tidying window manager? It's a window manager that is in non-enveloping frames that gives you full control on how you open the windows and with no waste of space because of the full screen by default and the arrangement of the windows that is fit for the full screen and with a clean and predictable organization. Basically, that's what we want to avoid. A window nightmare, right? And this is what I want. This is kind of an unfair comparison because there is some more window open but you get the idea. Before I do a little demo of i3, I want to show you guys that you already use i3. You probably know how it works. Some i3 facts. The first thing is it started out as a successor of WM2. Maybe some of you know. It's written from scratch in C. It uses XCB as an API for X server. One of its core principles is only accepting well-readable and well-documented code. Another core principle, the most important to me, is don't be bloated, don't be fancy. This is important because it can trigger some passionate disconscience on GitHub because people want their PR or their feature request to be accepted and sometimes they're not. I understand the frustration behind that. But it's a good principle because you know that when you upgrade i3, it's going to remain the same. It's going to remain the core i3 we like. How do you install it? Well, you install the package. You have this first screen that... When is the first time you generate your configuration? It's a basic configuration that comes with all the default bindings. It asks you for the mod key that you want to use. The mod key is a very important fact about i3. It's going to give you the shortcut you're going to use to control i3. Usually, you want to use the window key because anyway in i3 it's just useless. You log out and select i3 as your window manager. That's cool because I'm already using i3 so I can already show you how it works. Anyway, I'm just going to start this little tool that will give you a feedback on the keys I'm typing. So let's say I want to open a terminal. I'm going to use a mod key plus D. It's opening the D menu on the top of the screen that gives you a nice interface to start the binaries that are in your path. So let's say I want to start a terminal. I use Terminator. I split the screen in half. Let's say now I want to open another terminal. That's cool because i3 is aimed at developers so the terminals are the window you open the most, I suppose. So you just open with mod key plus Enter. So you see it nicely split the screen but now it's a bit overloaded. I'm going to close one terminal and I'm going to toggle between the horizontal and vertical splitting and open a new terminal and now it opens on the bottom right of the screen. So let's say now I'm following a tutorial on Firefox so I want to move that terminal on the bottom of the screen. So I just use the mod key shift and down arrow and I balance the terminal on the bottom of the screen. I can now use mod plus R to trigger the resize mode. You can see the little feedback on the bottom left of the screen that tells you that you are in the resizing binding mode and using the arrow key you can resize the terminal. Now another interesting concept is the workspaces. So let's say that you've written a lot of code and you want to throw that terminal into a new workspace. So you just press mod key shift and two and then it throws the terminal in workspace two. So I'm back on full screen with Firefox and I got a new workspace that is open. It's here. Well, I shouldn't use the mouse. That's the main point, right? Mod key and the numbers. So you can navigate between the workspaces. How cool. There is another mode as well. So let's say I open three terminal but I don't like the splitting mode. I prefer the tab mode. There is a tab mode that is just triggered like that and so you can navigate between the different tabs using the same shortcuts as if it was in split mode. There is a stack mode as well which is very similar. Anyway, I never use them. I don't know about you but I just use the split mode and use the workspaces. Let me get back to the presentation. So how do I lock the screen then? Well, there is a little tool that is called i3 lock. You just launch it like that and it locks the screen. You unlock the screen. You're going to see my wonderful password there. So you just use i3 lock and bind a shortcut to it if you want. I don't really like the VI-like navigation keys. I prefer to bind it to some other features. So mod plus L is locking for me. So a little bit more advanced usage. So what if you want to customize i3 status output? So first I'm going to show you where is i3 status because I didn't show you. This is the status bar that comes out of the box with i3 and it's displayed at the bottom of the screen. So I'm going to show you in the terminal how it looks like. Let's go. What if you want to display your own output? So you pick the wrapper that comes out of the box with i3 status. You do what you want with that. So let's say for me, I live in Paris. I want to display the status of the metro. I want to display that. It's usually red here. So what I do is edit the configuration, go to the status and put the wrapper there after the i3 status. So I reload i3 using mod shift and R. And there you go. You got these status of the subway. So yeah, that is static for the demo, but there is code that works if you want to try it out. Okay. Another thing, you want maybe to customize the naming of your workspaces. So once again, I've prefilled all the details because you know demos. So I reload the configuration there. And now, well, nothing happened. That's normal because the new binding for mod plus one is that one. So I'm going to throw Firefox to the new workspace. And yeah, that's so cool. Another interesting feature is configuration mode. So I've shown you already the resize mode. That triggers a new binding for you to define. That's what I've used for controlling the volume. So let me show you an output of i3 status first. So the volume is displayed here. It's displayed as well on the bottom right. So let's say I want to mute the volume. I've got this configuration mode configured already. And I've bound zero to mute and unmute. And you can control the volume with these two keys. So this is how you do that. So that's very simple. That's one of the nice features of i3 is that the configuration file contains all the default bindings that you can modify. And you can do some advanced configuration very easily. Taking screenshots, yeah. So you cannot do that by default with i3. So you have to install a used scratch, for instance. I've bound mod plus p, mod shift plus p to take screenshots. So let me just show you that it's not fake. I'm going to the folder in which the screenshots are taken. So I just do mod plus p and I've got a nice screenshot of what I've just done. Change the background. So useful. Install fe and you modify your configuration to display this very nice picture of the Yosemite natural park. And then, yeah, you've got this background. That's amazing, right? So as a summary of this presentation, it's a powerful but simple tool. It's highly customizable and it allows you to really nicely open a lot of windows and control without a lot of efforts and resizing how these windows are displayed and organized between them. It's an active community, so why don't you join? If you know how to code in C, you are very welcome to fix bugs and to propose new features. So that's it for my presentation. I may be too early. Thank you very much.