Xmonad

All posts tagged Xmonad

I am a hardcore GNU/Linux (Linux) user and a fan of tiling windows managers such as xmonad. I have been running Linux as a desktop OS since 2004, first starting with LinuxPPC in 1999. While I have used many different distros, Gentoo remains my favorite, followed by Debian, Arch, Mint, Ubuntu, and Slackware. I really enjoyed Slackware when I ran it on the old Pentium I had in the trunk of my Impala, but that was a long time ago. Ubuntu has always been easy to get running, but hard for me to keep stable, Mint ran amazing when I last used it, but Debian and Arch became two of my go to distros.

Gentoo, requiring one to compile from code using the emerge command, I’ve usually kept for my more powerful and newer computers. The exception has been Gentoo on my Odroid U3 and Lenovo S10 Netbooks, both were surprisingly smooth to compile to X. Gentoo has been my main desktop due to it’s overall stability and powerful update capabilities with emerge. I custom build all my Gentoo systems, crafting the make.conf and various portage configuration files for the main purpose of the system. My average Gentoo system will run for over 200 days without a reboot, but I don’t know for fact how long they’re run as power outages or major upgrades have required reboots.

In addition to building stable systems, I customize my interfaces to my exact usage and needs. I prefer a clean interface, minimal clutter, lots of keyboard shortcuts, customized status icons and windows, and having windows in their exact places. In the past I would install Windowmaker or XFCE, but xmonad has become my favorite. I’ve run KDE, Gnome, Mate, Openbox, IceWM, etc, but until xmonad, I would always witch back to XFCE.

My personal desktop is a triple head intel core2quad with 16gb of ram, a nvidia 8800GTS and 295GTX video cards. In most OSes and window managers windows often pop open on the wrong screen, then repositioning them exactly as I would like became an excessive exercise for my right wrist. In 2013, prior to my move to South Florida, I started running xmonad alongside XFCE, and fell in love.

Due to the move to SoFla, not having a permanent room for nearly six months, some minor hardware failures ,and a new hard drive, I didn’t  reconfigure my xmonad install, plus I was using Macs at my new job. My Linux desktop became a hackintosh for a couple of years before I restored my Linux OS. Macintosh is next preferred OS after Linux, so I was okay with running a Hackintosh. I also had Gentoo running on my Lenovo Y510P hacking laptop, so I wasn’t without my Linux fix. Part way through 2015 I felt it was time to put my desktop back on Linux, so I recovered my Gentoo install and used XFCE for a while.

Fast forward to spring 2017. During March I avoided computers, except for work and necessary research. Come April I’m back on my Gentoo desktop, itching to reinstall xmonad and recover my old configuration, so I did.

Gentoo made the xmonad install quick and easy, but my old config file had mistakes in it that I never noticed in 2013. Xmonad has what are called layouts, basically grids for how you want the screen you are using to be laid out. A proper laytout can ever define where in the grid certain application windows should display and at what size. You update your layouts in a configuration file, maybe important layout definition files, then recompile and relaunch xmonad to load the new layouts. I would update my layouts in the config file, recompile successfully, but I would cycle through the same four default layouts.

I eventually discovered typos in the config file, plus mine was using older syntax, not taking advantage of updates to the syntax. I started picking my old configuration apart, rewriting pieces into a new configuration file following current standards. This worked, my xmonad config now switched between many layouts that I had never seen before. Suddenly computer stress lessened, these layouts were perfect for me.

I have a full screen layout, one that does split screen, another that I use to accordion multiple terminal windows into my portrait display, and circular layout that puts the main window in the center, and even a full screen that has tabs to let me switch which window is full screened.

Now that I have base layouts that I love loading, I can start working on app specific layouts. These are used primarily for things such as positioning your IM buddy list on a specific screen in a specific location, with the specified size. My plan is to have one layout for my cryptocurrency wallets, another for my IDE, one for my media player, status monitoring apps, etc.

It will take some time to get this all setup, plus there are other tasks to accomplish. I probably won’t finish these customizations for months, they’re a low priority now that the base layouts are working.  One has to balance their tasks and house repairs are top of my list, followed by bus and fleet repairs, and normal life. It feels good to have my Linux GUI set back up the way it should be. This may sound odd, but a customized OS simplifies and reduces stress in my life.