What is i3wm?

In a way, we’re heading down a rabbit hole that leads into the past, but it probably also leads right into the future at the same time. Some ideas are so good that they never leave. The command line interface (CLI) is one of those.

The i3 window manager is one of those ideas that capitalizes on other great ideas. It’s a tiling window manager that exploits the power of the CLI in order to get your work done. It gets the desktop out of your way. It gets the mouse out of your way. It has a learning curve, like all things CLI, but the payoffs keep getting larger and larger as time goes on and your skillls improve.

UNIX Legacy

This legacy is full of more great ideas that have stood the test of time. These ideas came from a time when the CRT (Cathode Ray Tube) was a brand new thing. There were no mice. The CLI was all there was, and it was amazing (Hey, you didn’t have to throw manual switches anymore, mostly). Magnetic tape was new, although there might have been some paper tapes lying around.

Keyboards had the letter keys, an escape key, and a control key. There might have been a function key or a special key somewhere. The only number keys were along the top. They keyboard layout was extremely simple. The first terminals were basically electric typewriters (teletype) that were connected by wire to mainframe computers. Here’s a basic history. You can also see the original keyboard layout here in this article about the VI editor.

Amazingly, people got their work done without a mouse or a graphical interface. This was around the summer of 1977 when Bill Joy started writing Vi. Ken Thompson had already written UNIX using a line editor (probably similar to Ex, called Em), so adding a full-screen visual mode to Ex.

The Early PCs

It wasn’t until the mid-eighties that the term personal computers came into usage. These were small machines about the size of a larger ATX box of today. But monitors were monochromatic, and keyboards were only of the large variety. The PCs had 8-bit processors and a floppy disk (360 kilobytes) and perhaps something like 32 kilobytes of RAM. The first hard disk I remember had 10 Megabytes of disk space. They cost perhaps $3000 but could easily cost far more with peripherals.

There were much smaller machines available that were priced as “toys” for children, such as the Commodore Vic 20 and 64. There were several of these brands available, and the average person could actually afford one of these. My first PC was a Commodore 64 I bought used for $200. I bought the extra disk drive and used a small television as a monitor. The CPU was actually contained inside the keyboard! You connected your monitor and disk drive to the keyboard.

Try comparing this situation with the first computing experience of today’s youth, and it is very different. People today cannot remember a time when there was not a graphical interface and a mouse. They grew up thinking that a computer thought in pictures! They conceptualize the filesystem like a filing cabinet. This is a significant departure from how people of my generation grew up thinking about computer filesystems.

The Early Operating Systems

UNIX was well established at this time, in several varieties from several vendors, but it was available only for larger machines, not really for personal computers yet. For personal computers of the IBM style, there was Microsoft DOS, and also CP/M for similar machines with Motorola z80 cpu’s. The “toy” computers had their own proprietary OSes, which were popular but only ran on those “toy” PCs. MS-DOS was what people used mostly. Apple’s first Macintosh came out in 1984, but it was too expensive for my pocketbook. That was the first graphical interface I actually could see on desktops. And then there was Windows from Microsoft. It mostly sucked. But the Mac was all you could compare it to, and at least if you had an IBM-compatible, you could probably afford Windows.

The Apple II was what I wrote my first programs on. But my university owned the hardware. There were computer labs where row after row of Apple II’s were lined up, and you could go in, insert your 5.25inch floppy disk, and go to work on your Pascal program. But I couldn’t afford even an Apple II, let alone a Macintosh.

I wanted to buy a KayPro, running CP/M. I thought this would be a great machine for writing and programming. But once I saw someone playing a game on the Commodore, and then I saw how many games were available for it, I bought the C-64. In hindsight, I think it was the better decision.

Once you got a hold of an IBM-compatible, though, you were pretty much resigned to run MS-DOS. And that was where I began to dislike Microsoft. I used OS/2 whenever I could. But it was too little too late. When I first installed Slackware 3.0 in 1996, that was it. Linux had landed in my world, and it’s been here with me ever since.

What is a Window Manager?

In the early days of Linux, there were no graphical installers. You didn’t insert a DVD or USB stick and boot from it into a live desktop. You usually booted from floppy disks into a command line. From there you started formatting disk partitions or slices and putting together mount points for your system. It took a long time before saw a mouse cursor on your screen, if ever. But the program you ran was XFree86 in those days, and then you could run a window manager on top of that. Fvwm was a popular one then. And it handled drawing your windows and providing you with one or more virtual desktops. There was usually some kind of bar or something you could launch a terminal with. But even then, you did most of your work at a terminal inside a desktop “workspace”.

It wasn’t until quite a bit later that Gnome and KDE appeared as Desktop Environments. And you needed a fairly beefy computer to run those environments, since they required more resources than a window manager.

So using a window manager again is like Old Home Week for me. And of course, using the terminal has always felt like home.

A Tiling Window Manager?

I never used to like tiling window managers, because they covered up your desktop wallpaper. You couldn’t see your cool Star Trek of Star Wars photo, because it was all covered up by your tiled windows. But in those days, you couldn’t really turn on opacity either. So I didn’t get it. But now that graphical environments are everywhere, and the mouse has become more of a burden than a boon, I’m re-discovering what a desktop is like without being so dependent on a mouse.

And I love it. It’s like driving a standard transmission again. It’s satisfying. It’s like a dude ranch or riding horses or something. It makes me feel like a man. It’s a good feeling. Like I have complete control over my desktop. It’s daunting, needing to control everything at that microscopic level, but it’s also nice.

If I don’t feel like handling all that complexity, I can just run Cinnamon or something, and just get my work done. But when I run i3, it’s an adventure. It’s like rediscovering Linux again. It makes me feel like a kid again.