Episode: 3735 Title: HPR3735: i3 Tiling Window Manager Source: https://hub.hackerpublicradio.org/ccdn.php?filename=/eps/hpr3735/hpr3735.mp3 Transcribed: 2025-10-25 04:47:51 --- This is Hacker Public Radio Episode 3,735 for Friday the 25th of November 2022. Today's show is entitled, I Three Tilling Window Manager. It is part of the series Lightweight Apps. It is hosted by Archer 72 and is about 16 minutes long. It carries a clean flag. The summary is, I Three Tilling Window Manager with a bonus KD Plasma Integration. Hello this is Archer 72 and in this episode I talk about my favorite Tiling Window Manager I3. First of all, what is a Tiling Window Manager? From Wikipedia and computing, a Tiling Window Manager is a Window Manager with an organization of the screen onto mutually non-overlapping frames, as opposed to more common approach used by stacking Window Manager, managers of coordinate-based stacking of overlapping objects, windows that tries to freely emulate the desktop metaphor. All this may not be for everybody, it suits my style because you might say I'm a little particular about having overlapping windows. Even at work I tend to not like things overlapping in the windows environment. I have been using I3 for a couple years at least and before this I tried out X-Monead, which is written, configured, and extensible in Haskell. Customer layout algorithms, key bindings, and other extensions may be written by the user in the configuration files. Layouts are applied dynamically in different layouts, may be used on each workspace. X and Arama is supported allowing windows to be tiled in several physical screens. On Wikipedia, X and Arama is an extension to the X window system that enables X applications and Window Manager to use two or more physical displays as one large virtual display. Developed under the name Panoramics by Madeleine T. Asmus of the Digital Equipment Corporation, Unix X server engineering group, the softwares contributed to the open group for X11 release, 6.4, and renames in Arama. It was then incorporated into the X-Free 86, 4.0 release in 1998, and Solaris 7, and the Solaris 7 release. According to the server project, LeadRob Lembrey, the name was inspired by the Sitter-Rama widescreen theatre process. Quote, we were frustrated by having big alpha machines with multiple displays and being unable to move applications from one to another. It was developed as much out of frustration as out of competitive advantage. Some other window managers from the Archwicky include Awesome, VSPWM, EXWM, Herbs left WM, Notion, Q-Tile, Rat Poison, Settle, and WMFS2. From the Archwicky, I-3 is a dynamic, tiling window manager inspired by WMIL that is primarily targeted at developers and advanced users. The start stated goals for I-3 include clear documentation, proper multi-monitor support, a tree structure for windows, and different modes like INVIM. So let's talk about multi-monitor support since it just came up. It's not something I normally use, but since it was in the documentation, I thought about trying it out using X-Rander. Here are two ways to find out the properties of your HDMI monitor. First one is X-Rander-Q, pipe, grip, HDMI, and that will give you just the monitor name and whether or not it's disconnected and what position it is between you and the laptop. The next use is X-Rander-Q, pipe, grip, HDMI. The dash dash prop flag gives you the supported modes, for example, BGA, DVID, and HDMI. Plug this into a bash grip that if you select one for the multi-monitor, then it sends a command of X-Rander-Q, dash dash output, HDMI, dash A, dash zero, dash dash auto, dash dash left of EDP. And the EDP is derived from the command X-Rander-Q, dash dash list monitors. And to go back to a single monitor, just run the bash grip again and press two to turn the external monitor off. Now we can go into the config files. There are actually two config files. One is tilde slash dot config slash i3 slash config. The second file is for the status bar and is located in slash Etsy slash i3status.conf. The first thing in this configuration file that you're greeted with is a common out section saying this file has been auto generated by i3-config dash wizard. It will not be overridden so edit as you like. You do change your keyboard layout sometime, delete this file and rerun i3-config dash wizard. Please see and then it gives a URL to or a complete reference. After this I set up several programs to start with i3 and the commands for this start with EXEC. The first thing I want to start is a compositor. And it is started with the line EXEC dash dash no dash start up dash id space pycom space dash dash damon. And I start k2e connect with EXEC slash user slash bin slash k2e connect dash indicator. And last I start the fiber messenger with EXEC space qt underscore scale underscore factor equals 1.5 space slash opt slash fiber slash fiber without the cue scale factor since my eyes are not as good and the writing is quite small that gets it to something that's more readable and this can be done with any qt type apps. Next I have two mod keys set up which is how you perform actions in i3. The first is set space dollar sign mod space mod 4 and that's the meta key sometimes known as the windows key and I have a second modifier for the alt key. It is set with set space dollar sign mod 1 space capital mod 1. The modifier is used with one or two key combinations for example to jump between my notes window and the audio window I hit the meta key and j and then same key to jump back. Another example of the modifier key is to open a web browser to go online with Firefox I press mod o which is the meta key o or for opera mod plus shift plus o. You can also assign a program to a workspace for example a sign space square bracket class equals Firefox and square bracket space 2 puts Firefox when I open it with that key combination I mentioned into the workspace 2 and I usually put my mod client for email over a 9 so I assigned class I have to use a different terminal rocks term space 9 and that puts it over in the workspace 9 and for my regular terminal I am using good no terminal so you put by and sim space dollar sign mod plus return EXEC space no terminal and that so that when I press the meta or modifier key and the return key that I get a terminal by default a new window is side by side and to modify that you hit the meta key v and the next window that opens is stacked vertically and so if I hit the modifier and enter say another terminal then I get an equally spaced vertically stacked set of terminals and my next example I will jump back to workspace 1 and I can use the mod j to jump I have it in several configurations of horizontal and vertically spaced terminals and j will jump horizontally between them and then if I have two stacked ones then I can use the mod k and jump down to the next window in line I'm looking back through my notes and realized you might want to have a background so I use fa which is fox trot echo hotel and you use EXEC underscore always space fa space dash dash bg dash fill tell us slash pictures slash wallpapers and the name of the wall paper you want to use then the mod key shift in our reloads the configuration and sets up that wallpaper another useful command kills the focused window and that's fine sim space dollar sign mod plus shift plus q space kill next you might want to take screenshots of your new desktop so I use image magic and the command is bind sim dash dash release space shift plus print space exec space import space pictures slash screenshots and then I have the date formatted so it automatically formats the date and time done of the seconds dot png and I have something similar for capturing the entire screen which is bind sim dash dash release space print space exec space import dash went space dash window space root space pictures slash screenshots and the date code the last part of this config file is to start ibar to display a workspace bar plus the system information i status finds out if available and it is called out by bar space open curly bracket space status underscore command space i3 status space close curly brackets so now in etc slash i3 status dot com is the configuration file for the status bar and it starts out as in a commented section this is i3 status configuration file c man i3 status for documentation is important that this file is edited as u tf eight the next several lines to find which order you want things to appear on the bar from left to right such as memory disk the wireless connection the volume battery status cpu load and time zone local the next section defines displayed information and i'll do the one it reads volume space master space open curly bracket space device space equals space and in quotation marks pulse colon zero space close curly bracket so that's it for the config files with one exception there was a problem that i ran into when i was just using i3 and mumble i would hit record when i want to do a session with somebody else and then it wouldn't record for 30 seconds so i found out that i could run actually kde plasma and i3 at the same time so i got the best of both worlds and i added that to my configuration file so i can still do key bannings for i3 but i also have access to the menu to search for new programs that i might look to check out or for other any other reason i need to access the menu i added a separate i3 with kde plasma configuration file in the show notes that's it and thank you for listening leave comments below and feel free to record a show of your own and bye you have been listening to hacker public radio at hacker public radio does work today's show was contributed by a hbr listener like yourself if you ever thought of recording podcast and click on our contribute link to find out how easy it really is hosting for hbr has been kindly provided by an honesthost.com the internet archive and our sings.net unless otherwise stated today's show is released on our creative commons attribution 4.0 international license