We're hiring!

We're actively seeking designers and developers for our all three of our locations.

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.

Ben Nash (10 Posts)

Software engineer in Detroit, MI.

This entry was posted in Developer Tools and tagged . Bookmark the permalink. Both comments and trackbacks are currently closed.

32 Comments

  1. Matthieu
    Posted October 26, 2013 at 4:01 pm

    How could you use Linux and not use Virtual Desktops ?!

    I have a dual screen with my laptop and a desktop screen.

    Usually I have one workspace full of terminals (desktop+laptop), an another one with my favorite IDE and another one with my browser + skype on screen of my laptop.

    I switch instantly between these workspaces with a keyboard shortcut.

    • Phaygo
      Posted October 29, 2013 at 9:51 pm

      I too fell victim (imho) to a dedicated desktop of terminals… Have you given Guake and Tmux a shot? Those two in combination have completely changed — for the better — the way that I work.

      I’m a terminal junkie, so I’ve also set my “fn” key to open Guake — one key and all of my terminals are front and center; another tap and they are all out of sight (but never out of mind!)

      • Ben Nash
        Posted October 31, 2013 at 8:30 pm

        I’ve used screen in the past, but not Guake or tmux. Sounds like they’re worth a shot.

  2. Ben Rousch
    Posted October 27, 2013 at 11:44 am

    A couple of things that keep me on Linux:

    1. Repositories
    The enormous size of the free software repositories, the ease of installing anything from them (apt), and how well free software works on Linux. On Windows, you get your software via an anemic GUI app store and shady shareware sites, and then click a dozen OK buttons while unchecking bundled browser toolbars to install. If you use open source software, it often looks out of place and doesn’t work as you expect on Windows, when a Windows port is even available. On Apple, you go through a slow GUI app store for some things, website downloads and shareware sites for some things, and cross your fingers as you use Fink/MacPorts/Homebrew without hosing your system (which I did 3 times on my 2 years of OSX usage). You have similar issues with open source software looking out of place and not working as you expect.

    2. Virtual Desktops
    Having used Linux for half a dozen years, I found OSX unusable until it got virtual desktops. Windows is still unusable (though I have found Virtuawin a pretty good solution). Virtual desktops are essential on small screens, like laptops where switching between four different contexts is a PITA without them.

    3. Desktop Choice
    I’ve used XFCE, LXDE, Gnome2, Gnome3, KDE2, KDE3, KDE4, and Icewm at various times over the last 12 years. With Linux, you have so many different options that you are bound to find one that fits the way you want to work, instead of changing the way you work to fit how your desktop wants you to.

    4. Open Source Development Tools
    Developing with typical open source tools like Python and Postgresql is a lot more difficult on Windows, and even on OSX where it’s supposed to Just Work it seems like every new OSX release breaks something in my development toolchain. I rarely have these kinds of problems on Linux, despite new OS release every 6 months.

    • Ben Nash
      Posted October 27, 2013 at 6:24 pm

      Linux has my favorite package management systems as well. My favorites are apt and pacman. I agree that Mac has an annoying number of installation mechanisms, and one of my least favorite things about using a Mac is needing to register and login to install developer tools.

      When it comes to desktop environments, I use Gnome2/Gnome Classic more than anything, but I’d like to get back into something lighter-weight. It’s so nice when I can cut out all the fancy animation and things can be super snappy (responsive) again.

  3. Ben Nash
    Posted October 27, 2013 at 6:07 pm

    @Matthieu I’ve always wanted to find a use for virtual desktops but have never been able to incorporate them into my workflow.

    I never thought of having a workspace full of just terminals. I often run commands based off of web documentation of some type and need to see my browser and terminal at the same time. In a lot of other cases, though, I’m only interacting with git or the filesystem through a terminal, so in those situations it might be helpful to have a separate workspace, maybe with different terminals cd’d to different directories.

  4. Hanlon Kitto
    Posted October 29, 2013 at 6:27 pm

    > except tiling window managers, whose windows cannot overlap at all

    No! Tiling window managers’ windows can overlap, this is known as “floating” windows.

    • Ben Nash
      Posted October 29, 2013 at 6:37 pm

      Interesting, but it seems like floating windows would make a floating window manger, not a tiling window manager, based on the Arch Linux wiki:
      https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers

      • Colin
        Posted October 29, 2013 at 8:37 pm

        The “float your window” functionality in a tiling window manager basically lets you pull a window out of the tiling layer and into a floating layer above it. In XMonad at least a window that you float can be moved around, resized, and stacked on top of other floating windows (which are all floating above your main tiling layer). There’s a “return to tile” keystroke that un-floats the window and re-tiles it according to your current layout.

  5. Posted October 29, 2013 at 6:44 pm

    Absolutely! I run linux on my laptop at home. I didn’t know you could semi-permanently set the z-location of your windows. I must have just peeked at that window setting and never bothered using it, but I can see myself using this feature more in the exact scenario you describe. Thanks for the write-up!

    • Ben Nash
      Posted October 29, 2013 at 6:49 pm

      Awesome, glad you liked it Fred!

  6. Posted October 29, 2013 at 6:54 pm

    You might find shading a window useful when combined with the “always on top” feature. I have middle-click-on-window-title associated with shading/unshading windows. Whenever I have a window set to be always on top and want to have a quick look at what’s behind it, I middle-click the window title.

    • Ben Nash
      Posted October 29, 2013 at 7:47 pm

      Never thought of that. If middle-click’s bound to shading, I could see that being handy with my browser as well.

  7. Posted October 29, 2013 at 7:12 pm

    You missed the quintessential feature.

    Lazy window resizing with the mouse.

    Hold alt and right click drag somewhere in a windows corner.

    • Ben Nash
      Posted October 29, 2013 at 7:44 pm

      Nice. That’s the sort of thing I love. In my environment, alt+left click does a lazy window move, which is handy too.

  8. Horst
    Posted October 29, 2013 at 7:34 pm

    Another nice feature of X: There are window managers that are fully keyboard-controllable like Ratpoison and Stumpwm.

    • Ben Nash
      Posted October 29, 2013 at 7:45 pm

      I gave Ratpoison a shot a while back but didn’t have enough time to get a good feel for it. Have you used either of those much?

  9. Mike F
    Posted October 29, 2013 at 8:07 pm

    A single large virtual desktop is the only thing that’s kept me sane over the years. I run on a laptop with two external monitors. My virtual desktop is 4×4 times the resolution of the combined resolution of the three. I generally keep my email and a mini-map pinned to the laptop’s screen while flipping around the virtual space on the larger monitors. Moving between desktop areas is much quicker than opening and closing windows when switching tasks. Need to move a window between areas? Just drag in the mini-map. If I need to go mobile, one click unpins the mail client and allows me to us the laptop display as my viewport onto the desktop.

    I’ve tried using multiple virtual desktops, but never found them as convenient.

    • Ben Nash
      Posted October 31, 2013 at 8:35 pm

      So does that mean you’re working with 4 virtual desktops for your external monitors or 16?

  10. Ernest
    Posted October 29, 2013 at 8:24 pm

    So you don’t use focus-follows-mouse mode? If you work with stacked windows, typically you want focus-follows-mouse. It allows you to give focus easily to windows that are not on top. I use focus-follows-mouse and have my window manager configured so that right-clicking on the title bar brings the window to the top, while middle-clicking pushes it to the bottom, and double-clicking, makes rolls it up. I never use the stay-on-top feature. Virtual desktops and mouse-based copy and paste are also 2 top features of X, in my opinion. These modern “trends” on desktop design seem to ignore completely how the Unix desktop works.

    • Ben Nash
      Posted October 31, 2013 at 8:38 pm

      I haven’t used focus-follows-mouse since I was forced to use CDE on Sun workstations. I didn’t know people actually still used the feature until I made this post. Looks like quite a few do.

  11. Posted October 30, 2013 at 9:27 am

    I love Linux as much as the next guy, but until there’s a reasonable replacement/option for Photoshop and office, any 0.5 seconds efficiency hack is negated by the fact that you must maintain two operating systems and reboot constantly. And yes, virtual machines like vmware suck, I can’t handle the tiny noticeable lag.

    • Phaygo
      Posted October 31, 2013 at 11:44 am

      I agree that the lack of Photoshop really sucks (a lot!), no question. GIMP just doesn’t make sense to me, no matter how hard I try to make the switch — I’m very n00b in my movements/tool usage within the application. I understand that GIMP is not a full PS replacement, but it has gotten me by 80%+ of the time.

      That said, I can’t agree with the MS Office statement. I used MS Office for many, many years and I too thought that there was no replacement; but how wrong I was — LibreOffice! I found that the problem wasn’t a lack of features (LibreOffice and MS Office are far more similar than one might think), the problem was muscle memory. Without thinking I could make 4 clicks, check a few boxes and boom, I had a perfectly formatted document with every header/footer detail I would need, plus a well formatted Table of Contents — I had done this so many times that I forgot what I was actually clicking on, but knew what the end result would be. It was this muscle/mouse memory that was the real learning curve for me; it had nothing to do with lack of features, but lack of comfort in finding those features. LibreOffice is very compatible with MS Office and as the only Linux user on my team, I have had zero problems passing .doc[x] files back and forth with teammates, leads, managers, and clients. Unless the person needs R/W access, I send it as a PDF anyways.

      I run Windows via KVM (displayed via Spice; def not via vnc) and there is absolutely no lag; it actually runs quite a bit better than my fellow [native] Windows users machines. I used VMWare exactly 4 times. I agree that it does have some lag, which is the exact reason why I have never gone back (those four times where all attempts at reducing/eliminating said lag.)

      Really, at the end of the day it’s all just personal preference anyhow.

    • Ben Nash
      Posted October 31, 2013 at 8:43 pm

      When it comes to applications, the bigger issues with Linux for me have been:
      - no way to develop iOS apps
      - lack of some teleconference software, like GoToMeeting

      When I don’t need either of those, I run Linux happily.

      It seems like Office isn’t the killer application/format it one was, and I just don’t need any high-end software like Photoshop or AutoCAD.

  12. Posted October 30, 2013 at 9:41 am

    I stay on Linux for a couple of reasons, but regarding the desktop manipulation/tools discussion you launched, the best reason for me is that all these options exist (and that’s why I don’t like Gnome3). I use KDE3 and KDE4, E17, and Windowmaker, and the options are endless. I love that. I happen to not use some of what you like, and I do use some things you don’t. I love it that many Linux desktops or just window managers give you so many options you can use what you like. And I also like it that if you don’t like one DE you can just choose another. Mac OS X has some great apps, but I dislike its desktop, click-to-raise, and limited feature set. If I wanted someone else to choose a limited set of features for me, I’d leave Linux. But I like tweaking and adjusting my environment, and Linux lets me do that.

    • Ben Nash
      Posted October 31, 2013 at 8:45 pm

      I agree. And it’s fun (and informative) to check out a new environment, even just temporarily.

  13. Power User?
    Posted October 30, 2013 at 11:30 pm

    For people who’d like to become power users, the mouse is an enemy (or frenemy). Solutions like tmux, mentioned above, are a must.

    I also find it very odd that a Linux user would tout slow, mouse based features as productivity boosters. If you really like these features, at least try to configure *some of them* to be activated through keyboard shortcuts.

    • Ben Nash
      Posted October 31, 2013 at 8:49 pm

      I definitely use the mouse. I’ve tried eliminating it with browser extensions like Vimperator, but that didn’t stick. If I’m working between a text editor and a terminal, I don’t have much need for a mouse. But once the browser comes into play (which it often does) I incorporate the mouse.

  14. Power User?
    Posted October 30, 2013 at 11:43 pm

    While I like the idea of a software repository, it still needs a lot of improvement.

    For one, some useful packages (even for people using dual boots and want to transition to Linux) won’t be available in official repos, thus making it a research effort to find, add and manage the sources list.

    Secondly, the interface to install software is just plain awful and does not really provide any advantage whatsoever for those who’re coming from other OSes. As a personal example, I wanted to install a web server (Apache) on my new Fedora 19 desktop. There is no easy way to find that package in the “Softwares” program! I felt that Ubuntu had a slightly better interface in Synaptic (in previous releases), leave alone Software Center. User friendliness, not just geek friendliness, does not get a lot of importance in Linux. If all users are told that they’d be better off using apt or yum from the terminal, Linux will continue to remain off the mainstream.

    • Ben Nash
      Posted October 31, 2013 at 8:58 pm

      Linux has got some rough edges for sure. And I don’t know if it’s ever going to be mainstream. Some people just want their machine to stay out of their way as much as possible, and others like me don’t mind experimenting with software and configurations, even if it makes things more complicated and less pretty.

  15. Phaygo
    Posted October 31, 2013 at 11:48 am

    I enjoyed the article, thank you. While not agreeing with every decision of yours (and who ever does), it has stirred up good comments/conversation (an incredibly difficult thing to do), which is equally or more valuable than the actual article.

    Well done, sir.

    • Ben Nash
      Posted October 31, 2013 at 8:59 pm

      Thanks, Phaygo. I was glad to see the post got some attention.