32 Comments

Why I Stick with the Linux Desktop

I run Linux at work and at home. Sometimes I need to switch to Windows or Mac for a time, and when I do, I always find myself missing something from my usual environment.

Favorite Linux Desktop Features

Here are a few Linux desktop features that I’ve come to rely on.

1. Fast Copy/Paste

Highlighting text in a Linux terminal.
Highlighting text in a Linux terminal.

Found on: All X window managers (and even non-graphical terminals with gpm installed).

Function: Highlight text you want to copy, and paste the text with middle-click.

This is the easiest way to copy and paste that I know of. When I need to run a bunch of shell commands that I’m looking at on a web page, I highlight the commands and then middle-click on my terminal. When I want to share a blog post link with someone, I triple-click the address bar to highlight the URL and then middle-click on my chat window. It’s faster than Ctrl-c/Ctrl-v, and it’s faster than highlighting and dragging the text.

Middle-clicking always pastes the most recently selected text. It also comes from a separate clipboard than the one that’s used by Ctrl-c/Ctrl-v, so multiple regions can be copied and pasted independently.

2. Raising/Lowering Windows

Setting a window to stay above other windows in GNOME (left) and KDE (right).
Raising a window above other windows in GNOME (left) and KDE (right).

Found on: All X window managers that I know of (except tiling window managers, whose windows cannot overlap at all). Possibly Mac and Windows with the help of third-party software.

Function: Force individual windows to stay above or below other windows.

Forcing a window to stay on top of other windows has been extremely helpful for me. I reference a lot of documentation online when coding, and I need to flip back and forth between the documentation that I’m reading and the code that I’m writing. To do this, I maximize my web browser and move my text editor to the lower-right-hand corner of the screen. Using GNOME, I set my editor window to be “Always on top.” This lets me navigate through documentation online without losing sight of my code.

Look closely: Firefox is active, but GVIM stays on top.
Look closely: Firefox is active, but GVIM stays on top.

Most of the time, the “on-top” window doesn’t get in the way of anything in the browser, since it’s off to the side. On the occasion when it does get in the way, I just toggle the “Always on top” option to be off again. All in all, this works much better for me than either cycling through overlapping windows or resizing the windows so they don’t overlap.

Other window managers offer more options than just “Always on top.” KDE allows you to choose “Keep Above Others” or “Keep Below Others.” I’ve never needed to keep a window below others, but I could see the value if you had, for example, a long-running process in a terminal that you just wanted to stay out of the way. And if you want even more control than that, IceWM has seven different layers for you to place a window into.

IceWM's many layer options.
IceWM’s many layer options.

3. Window List

Found on: Most X window managers, but dropped in GNOME 3.x. Windows.

Function: Just about everyone knows what this is: a panel showing all open windows (usually at the bottom or the top of the screen).

When I’ve got a lot of windows open, my window list makes it easy to access whichever one I need, just by clicking on it. If I’m working with only two or three windows at a time, I’ll just use Alt-Tab. But when I’ve got any more than that going on at once, I use my window list. Besides letting me activate, minimize, and close windows, it lets me rearrange them in the list by dragging and dropping. Most environments also let me scroll between all windows with the mouse wheel.

Many desktop environments don’t provide window lists. Mac gives you Mission Control instead, where you swipe to get a bird’s eye view of all open windows. GNOME 3.x has something very similar called Activities Overview that is activated by moving the mouse to the upper-left corner of the screen.

Although Mission Control-style features use pretty animations, I’ve always found them to be disruptive to my workflow. Sometimes I just want to remember what I already have open, and a window list lets me do that without having to touch anything.

Window list in GNOME 2.x
Window list in GNOME 2.x

4. Window Snapping

Found on: Most X window managers.

Function: Connect a window to screen boundaries and edges of other windows when moving a window.

Window snapping makes it easy to form an air-tight seal on your desktop.
Window snapping makes it easy to form an air-tight seal between window edges.

It can be a real pain to manually arrange windows on your desktop. If you’re not meticulous enough, you’ll be left with a combination of overlapping windows and gaps of unused space.

Window snapping takes care of this by making it easy to align windows with other parts of the screen. With this feature, you can drag a window smoothly across the desktop until it comes in contact with another window or an edge of the screen. Once it touches a boundary like this, it stops and requires a little extra oomph to get past, as if it were running into an invisible ridge.

Linux Desktop Features I’ve Never Gotten Into

1. Virtual Desktops

Found on: Most X window managers, Mac.

Virtual desktops, or workspaces, let you run one set of windows in one place and a completely different set of windows in another place. I always thought this would be useful for switching between different contexts, like work vs. personal, but I’ve rarely used it in practice.

Managing virtual desktops on GNOME 3.
Managing virtual desktops on GNOME 3.

2. Shading

Found on: KDE and a few other X window environments

Shading, or rolling up, a window hides everything but the window’s title bar. I find this feature interesting, but I find myself instead just minimizing any windows that are in the way.

"Rolled-up" game of Mines on LXDE.
“Rolled-up” game of Mines on LXDE.

Final thoughts

All the features I’ve talked about using have existed for at least 10 years, and some have been around for much longer. I find many of the new desktop trends interesting and attractive, but ultimately not helpful when it comes to personal productivity. I’m curious what others think.