Linux Yak First (Part 2): DEs and Terminals

Kevin Hamer
4 min readJul 22, 2017

--

If you don’t have Linux installed and want tips on that, check Part 1. At this point, I’m going to assume you’re running Xfce — although conceptually most this stuff carries over.

Xfce, Gnome, KDE, Budgie and others are examples of desktop environments. All that really means is that they’re a collection of applications that work well together to cover most of the standard system stuff. For example, they all have an application that manages window placement. They all have file manager. They all have terminals.

  • Xfwm is Xfce’s window manager; that means it controls what window borders look like, how they work, desktops, and window placement.
  • Thunar is Xfce’s file manager — more or less the equivalent of Windows Explorer or OS X’s Finder.
  • Xfce-terminal is your terminal.

We can break down Xfce even further though, as it’s designed to tolerate having pieces swapped out. Some more examples:

  • xfce4-panel is the application that controls the bar across the top (and/or bottom) of the screen.
  • xfce4-notifyd handles notifications.
  • xfce4-power-manager handles power management.
  • xfce4-settingsd keeps track of your preferences and shares them with other applications.
  • xfce4-settings-manager is kind like a Control Panel.

If you’ve never used Linux seriously before, you may be wondering, what’s the point? Why would I ever care about replacing any of these things? Let me explain why.

The idea of swapping out default applications isn’t foreign; most of us have swapped out IE or Safari for Chrome or Firefox for years. On Windows you might have tried to switch to PowerShell or Git Bash. On OS X, perhaps iTerm2.

Even system level things get swapped pretty regularly. On Windows, you might have swapped in 7-zip to replace Windows default zip file handing. On OS X, you might have used Growl to manage notifications or Alfred instead of Spotlight.

With Windows and OS X, the more integrated the application the harder it is to swap. I remember messing around with Talisman and Lightstep — shell replacements for Windows Explorer — and it being a complete mess. Windows isn’t built for that. The core applications aren’t built to be swapped in and out.

Linux is. Let’s use terminal emulators (or just terminals) as an example.

For Windows, there’s three or four terminals you can use to replace the builtin Command Prompt app — MobaXterm, cmder, and ConEmu to name a few. The same is true for OS X (iTerm 2 and Terminal.app). Linux there’s easily 10–20 times as many. The mindset is different. If you’re trying to decide between Chrome and Firefox, you just run both and figure out which you like more. When there’s 10–20 options, you start thinking about what features you want in a terminal, and then filter down the list.

For example, I want a terminal that

  • Has reasonable, modern terminal features. It’s 2017, most terminals do this, but I’m not willing to sacrifice things like true color or font support just to save a bit of memory.
  • Configuration (including all of the current color theme) is stored in an easy to read configuration file. It makes it easy for me to backup my settings, try out different setups, and even automate switching color themes.
  • Easy to install.
  • As lightweight as it could be while meeting the above.

After a little research, I was able to knock it down to a short list of about 2–3 (LXTerminal, ROXTerm, LilyTerm), tried those out and settled on LilyTerm. It’s a better fit for what I need.

I can use this same process on every piece of my system. Besides LilyTerm,

  • I use i3 (a tiling window manager) because I was constantly trying to line up the edges of windows to use all the screen space I could and deal with windows being shuffled all over the place when I disconnected from my monitor to use just my laptop.
  • I use rg (a replacement for grep) instead of grep. rg looks for .gitignore files and automatically won’t return results from files being ignored. It’s also much faster than find or grep at just listing all the files in a folder, so I use it when searching on filenames.

The entire Linux ecosystem is built around keeping things modular. Linux distributions are often nothing more than taking a bigger distribution and swapping some pieces in and out. Because it’s been like this since the beginning, the ecosystem is rich with alternatives despite it’s tinier user base.

There’s no such thing as a long term, unhappy Linux user. We make our systems our own, remove irritations and develop a sense in pride in our systems. We choose how it works and looks, and ultimately, it doesn’t matter what it looks like, we’re happier for it.

--

--

Kevin Hamer
Kevin Hamer

Written by Kevin Hamer

Full-stack developer, principal front-end engineer, erratic author.

No responses yet