87 comments

[ 3.0 ms ] story [ 137 ms ] thread
Nice. Not all that compelling because the bigger problems for Linux as a daily driver aren't covered (for me anyway) but highlights some features I did not previously know where fairly ubiquitous across window managers.
Out of curiosity, what sort of issues do you have using Linux as a 'daily driver'? I ask because I've been running Linux-only on a daily basis since '99, and (obviously) haven't had any major issues to cause me to change that decision.
Not the OP, but my Canon MP550 printer is not recognized out of the box in Ubuntu. Never had any other issue.
My experiences . . .

Things like setting up dual monitors used to be such a major pain (for me) or hardware support like for a bluetooth dongle.

I had some problem with an intel chipset that kept crashing a laptop in 2005. I tried debian and suse varieties with no luck.

I have a newer laptop with #! that works well now but I can't do things like VPN into my job because the software needs windows or mac. Basically this laptop collects dust unless I want to do use linux specific software which is rare.

> Things like setting up dual monitors used to be such a major pain (for me) or hardware support like for a bluetooth dongle.

Dual monitors have got much easier over the last 3 or 4 years, at least on ATI. No clue about nVidia. .. and Intel graphics have always been rock solid on Linux.

Before I got my 30" screen, I had 3x 19" spread over 3 different ATI cards. It worked like a charm once I allowed Ubuntu to auto-install the ATI proprietary drivers.

> I had some problem with an intel chipset that kept crashing a laptop in 2005. I tried debian and suse varieties with no luck.

Ugh .. That sucks.. Not sure that would have had a (reasonable) workaround :)

> but I can't do things like VPN into my job because the software needs windows or mac.

Another, that sucks. I've had no problems with OpenVPN, Cisco IPSec, Cisco AnyConnect, Juniper NetworkConnect and probably a few others on Linux.. But I'm sure there's still hundreds of pieces of VPN software that don't have linux versions (or re-implementations)

---

Sadly - 99.9% (plucked from thin air) of Linux issues are due to proprietary software/drivers/etc. Of these, a good majority are easily replaceable with cross platform solutions. Pity :(

My experience with nvidia is that it's just as easy as Windows these days. There's even a gui app that was probably inspired by Windows' monitor config.
This is most of the case for me but unfortunately our company isn't going to rewrite internal systems just for me ;-)
For me personally it's image editing software. I need to be able to collaborate easily with graphic designers and manage my personal photography. Adobe's tools are the industry standard and what I need to collaborate with others.

That's the single thing holding me back. If I could have photoshop and lightroom on linux I'd switch in a heartbeat. Until then OS X will probably remain my main desktop.

I know the feeling. I run Photoshop and Illustrator in VirtualBox but it would be such a great feeling to launch them right from dmenu one day.
I'm not a heavy GIMP user but it imports/exports PSD pretty well, right? I was a heavy Photoshop user from 1.x to 3.x and all the basic features are there ;-) Color curves, hue-saturation, feathered selections, 99% of what you need to get shit done is the same as Photoshop. Granted, digital art is not my day job. So I don't know what newfangled tools Photoshop has now. I hate layers in GIMP as much as I hated them in Photoshop, I'm oldschool ;-)
For window lists I usually use scroll + click (openbox) if I need to view the complete list before making a selection, alt + tab otherwise.
What I enjoy the most on my Linux desktop is how it handles installing/upgrading software. It's just easy, and it works. When I'm on Windows I can't stand the google-download-execute-untick boxes-next-next cycles. This post is more about UI features though.
Agreed. pacman -Syu is a godsend. Of course that's just the face of a great package manager and packaging. In many ways on Arch you could make the argument that it just works.
It does not get any better than pacman for sure, but I'm pretty happy with apt-get update && apt-get upgrade :)
The best package manager on Linux I've ever used is Sorcery, although pacman is a close second.

I'm still partial to the *BSD way of ports, however.

Source-based distributions have their advantages but for me the biggest disadvantage is the wasting of my time.
You should try out "chocolatey" on windows. It enough people adopt it, more packages will get on to it.
It looks good. But to me, until Microsoft does something about it, it's not really gonna take off. I thought Microsoft Installer would be it, but obviously it's not :/
It's way too nice to Apple to call their piss-poor Spaces "Virtual Desktops". Call me when I can finally arrange them how I want (i.e. 2 rows, 2 columns) and not have them in line, which is stupid and inefficient. I'd also like a call when Apple finally implements maximize for windows.

And don't get me wrong, I am a Mac user, just a highly frustrated one when I see people praising them as the second coming of the prophet even though a lot of extremely useful features are just missing because some dude at Cupertino decided that Mac users didn't need them.

PS: Negative post, I know, but it feels good.

Agreed. Spaces circa 10.6 was so much better than the crap we have now. But it seems like Apple is at least fixing their regressions for the first time since 10.7.
It was indeed, but the usage was much lower. At least people use that feature now.
It's best to just have keyboard shortcuts for each space (Control 1-4) rather than move left to right. Even if you are moving in a 2x2 virtual screen you usually still have the inefficient diagonal case.
You're absolutel right about that. I should have mentioned that I mostly use 3 virtual desktops (browser in the first one, vim in the second and some messaging app on the third) so I do arrows for 99% of my moving anyway.
You should try TotalSpaces. I can't speak for it, but it appears to replace the functionality lost from 10.6.

For me Spaces in 10.5 and 10.6 is as good as any *nix WM and better than several due to the linear wrapping behavior (on a 2x2 grid any workspace is accessible via directional key from any other.)

They're not "stupid" and "piss-poor". Linear desktops are a huge usability win for a multitude of reasons:

* It's spatially an easier mental model.

* This mental model is consistent with iOS multitasking and iOS home screen.

* It allows for simple gestures to switch between desktops.

* In western society, we read from left to right. New is to the right. Fullscreen a new desktops are added to the right.

* This also sets up a linear "Forward/back" model similar to web pages.

* You can easily add ONE desktop on the fly. No need to make it a grid for no reason.

* The biggest reason: Spaces and expose are unified into Mission Control. One action to see EVERYTHING. This is a huge plus, as people don't have to check two different locations for a window. A grid of desktops wouldn't fit up above in mission control.

* There's nothing below the dock and there's nothing above the menubar. Simple mental model.

Regarding "maximize for windows":

* It's a "fit window to content" button. A window shouldn't take up more space than is necessary in a multi-tasking environment. Regardless, there is a fullscreen mode and windows also remember their position and dimensions if you drag them.

> * It's spatially an easier mental model.

This is the only point that really matters, and I think it's false. A square grid is a far easier mental model for me. Remembering if something else is above|below|to the left|to the right of where I am is way easier to remember and visualize than how many slots to the right or left something is.

I have four virtual desktops mapped to WinKey+{a,s,z,x}. I've used this scheme for so long that the keys are hardwired in my brain and I can switch desktops without even thinking about it. In particular, I don't care if the window manager organizes the desktops in a matrix or linearly, since I don't need a visual representation.

As an aside, my biggest gripe with Ubuntu is that they hard code the Win key to something else, which breaks my desktop switching habits.

That's actually pretty cool. I'll use some variation of that using hjkl :)
+1 for Virtual Desktops and key mappings for each.

I do 3x3, mapped to <ctr>+<alt>+[1-9] on the keypad.

Fair enough. It sounds like you use a more specific named mental model, rather than a visual one. When I used a 2x2 virtual desktop grid (I don't use virtual desktops at all anymore), I has loosely defined roles for each desktop, but it was fairly dynamic. I used the visual model, as in "Where did I throw that terminal window? I think it's right below me."
About all those nice bullet points: That's cool, but I'd like to be able to use a grid layout. I'm not looking for an argument or a lesson about the awesomeness of the Apple Way™. I just see people trying to accomodate their 9 Spaces and moving tediously from 9 to 1 and back, while pondering the "huge usability win" that is the linear desktop layout and that's when it hits me: "It'd be nice to have the option of using a grid layout, Linux has that, it's pretty nice".

Then I mention maximize and you tell me "it's not maximize, it's fit to content". Then again, that's all nice and dandy but if I wanted "fit to content" I guess I'd be already be satisfied and I wouldn't be complaining about it now, would I? Same for fullscreen, I'm sure you actually do understand the difference between maximize and fullscreen. I don't want fullscreen, I want maximize, a feature Mac OS X does not offer (except for a few apps like Terminal.app, which makes it not only an idiotic choice, but also inconsistent across the OS).

If you're evaluating an Apple product based on how many options it gives you, or how it might bend to your individual desire, you're gonna have a bad time. Apple is opinionated, and there are usability benefits to be gained from that. Mission control would not work with a grid.
That's exactly why I haven't been able to bring myself to buy nice Apple hardware: there are too many things where I say, "I want it," and the answer is "You shouldn't." With my LXDE desktop, I can make it act however I want, and I'm pleased and productive, even though I shouldn't be.
Did you try Amethyst: https://github.com/ianyh/Amethyst ? It's Tiling WM modeled after xmonad for OSX. Among other things it brings better keyboard support to spaces. I have keyboard shortcut for "move to n-th space", "move focused window to n-th/left/right space". And since you mentioned maximizing - since it's modeled after xmonad (tiling WM) every window is maximized when opened (or splitted with current focused windows, depening on your layout).
You might want to look into BetterTouchTool (http://www.boastr.de/). It gives you the ability to map keys to full screen maximize, left and right split, and a plethora of other options.
Personally, I have no real love for the "desktop" paradigm. Give me Xorg, Evilwm, and some Xterms.

  Virtual desktops ....
  I always thought this would be useful for switching 
  between different contexts, like work vs. personal, 
  but I’ve rarely used it in practice.
I'm a virtual desktop addict. If I may, I'd like to share how I use mine, so that you might perhaps find them more useful in your own work. I have dual monitors, and four virtual desktops (in XFCE, but that doesn't matter).

Originally, I used only two workspaces (email/reading, development), and this has evolved a bit over time into 4. What I like about using virtual desktops is that I have a spatial mental model of where each thing is, which helps me ensure I don't mix up dev/production, and helps me avoid alt-tabbing to find what I want. I make extensive use of my window manager's ability to maximize on the left or right half of a screen. (This would probably not work well for me with a single monitor, unless it were a large one.)

1: E-mail/calendar on the left monitor, automated build system output on the right. This is for things that are semi-important but which I don't want to regularly have interrupting me.

2: Web browser with the app I currently am developing, and my console window on the left monitor, full-screen IDE (PyCharm) on the right. (I also put emacs or a terminal on the right as well when writing extensively in those.) This workspace is where I spend more than 80% of my time.

3: Github on the right screen, for pull requests, code review, issue tracking. I use this for a context-switch from developing code to reviewing it. I'll also use this workspace when babysitting a code release, to help ensure that I don't mix up local stuff with remote stuff.

4: music player. I stream music, so I rarely need to look at this except to change channels.

I'm exactly the same way, with emacs occupying one, remote ssh's another, a browser another one, root windows elsewhere, xchat in its own, and so on. I now have 10 of them.
1L: Chrome 1R: urxvt (stickied) + inspector + xchat

2L: Emacs 2R: speedbar + urxvt(stickied)

3L: Pgadmin 3R: urxvt(stickied) + pgadmin view/ query window

4: nice n clean

A friend came in today and was talking about how much he liked the brand new, amazing "pin" feature in win 8. I laughed when he described sticky windows and vdesktops.

edit: Fluxbox here tho, not lxde or xfce.

Things I miss on OSX do include third-button paste from the highlight buffer and, of course, the superior virtual desktops (though OSX had them until Apple decided to cancel 'em), and the window list in the top bar.

But none of those is as important as focus-follows-mouse. I really miss ffm.

On the other hand, I like having working power management and long battery life. And I like never spending a day figuring out driver regressions.

> third-button paste from the highlight buffer

I especially love this on chrome, where you can just paste it into the 'new tab' button.

The single biggest thing I miss when I use OS X is alt+click to move windows.
Since I switched to a window tiler, I never need to move windows unless I'm doing something complex in GIMP. I'm using pytyle2 (you can probably find something better) and mostly all I use is alt-c to rotate the windows, alt-h for "higher" and alt-l for "lower" and that's it. Now I rarely, rarely ever resize or click-drag a window.

This works so well I totally stopped using window decoration. Having the extra pixels on my laptop is nice! Install the "Classic Compact" add-on for Firefox to free up even more pixels.

I've always loved tiling WMs on big screens, since it's a really efficient way to use all of that screen real estate. i3 really comes into its own on my multimonitor desktop setup. I've just never felt any real gain on anything smaller than 17". On my 13" macbook air, however, I find that as soon as I split the screen 50-50 neither window really has enough space to be comfortable. (I've tried using Amethyst[1], but that's all)

[1]: https://github.com/ianyh/Amethyst

That's true. My next laptop will be bigger! For now I have good eyes to see the 7px fonts. And it was some real work to remove all the window decorations, editing config files to get a slim profile on everything. Usually I have my code on one side and a browser on the other side. When it gets tight I have 3 options: 1. zoom out the browser (not always an option for detail work) 2. flip the important activity to the bigger window 3. use the higher/lower hotkeys to give one side or the other more/less room. Typically I do not like to write code in the left panel because then my eyes are way off to the side. Took me years to get to this point with Linux but I feel very productive now when I sit down to work. I had to ditch Fedora/Gnome, figure out Crunchbang, pytyle2 was a pain to install, etc. But it was all worth it, at least in my opinion ;-)
I used to navigate workspaces spatially too, but then I increased to three monitors and the traditional workspace model broke down big time. Namely, switching to a different workspace switched whatever was displayed on all of my monitors. I couldn't easily compose groups of windows onto my displays.

The solution (for me) was to throw out a spatial representation of workspaces and adopt a more dynamic approach. Instead of being fixed to a set of N workspaces in a particular geometry, I switched to having a fluid list of named workspaces. What makes this work particularly well on multiple monitors is that each workspace can be viewed on any monitor. So for example, with three monitors, I have three workspaces visible at any point in time. And yes, I can flip the workspace on one monitor to the other monitor.

This ends up being great for my work flow, since I can maintain my work area for any particular project without cluttering up the rest of my desktop. For example, when I'm working on the window manager that implements this functionality, I might have a workspace called "wingo" for code. And when I want to switch back to working on the X client library for Go, I go to my workspace "xgb" and it has me right where I left off.

And of course, I have workspaces like "browser", "mail", "irc", etc. I have some temporary workspaces too, which are used for scratch work.

Any workspace can be removed. And I can add a new workspace with any name at any time.

If you're interested, this is all implemented in my hybrid stacking/tiling window manager: https://github.com/BurntSushi/wingo

(Similar features exist in i3 and xmonad, but both are emphatically tiling window managers.)

I wish I was so systematic, but Virtual Desktops still are vital for my workflow. I have 2 Monitors and a 3x3 grid. Usually I start Sublime in the center desktop, terminator occupies the second screen, so I an easily split my terminal if necessary. If I need to look something up, I'll start my browser on an adjacent desktop, and probably a terminal next to it if necessary (most if the time it will run IRC). When I want to try something out where I need some space or just work on something different, I'll go to one of the spare desktops. Yeah, I tend to forget about terminals sometimes and then I have a cluttered desktop somewhere, but there is usually a free desktop left somewhere. (Yes, at that point I'm sometimes getting lost, looking for the proper terminal. But that's when I decide it's time to close all terminals I'm not using right now.) And if I feel like taking a break, I just go to a free desktop and play a game.

Now if only I had something like virtual desktops for my real-life desk…

I tried two monitors but didn't see any benefit. You can only look at one monitor at a time. I find ctrl-alt-arrow easier than straining neck, etc. Also with two monitors, to get right in front of either one you'll need a swivel chair, right? Either that or you sit in the middle and then you're never looking straight ahead which is the natural thing to do. Unless you're a duck, then you could see both monitors at the same time ;-) At least for me, eye-strain is a big factor. Two screens or a too-large screen is too much looking around. Anyway, that's just my preference. When I see devs with two screens I always wonder if they're really more productive or if it's more an "image" thing, to look more busy/nerdy/important? Haha.
i find i use virtual desktops a lot when using a tiling window manager; otherwise i just have one desktop per monitor and move between windows using the xfce/gnome taskbar instead.
At one point had 8 virtual desktops all labled by activity. Then I had a time tracker that triggered on each. So if I was doing dev work for Client A the billable hours would be tracked automatically. Client B. Marketing. Etc. Problem was the time tracker didn't really work. Also over time I realized it was too much trouble to separate activities like that. Now I just use two virtual desktops. The 1st one gets full fast, the 2nd one rarely gets full. So I never need a 3rd desktop. I have the same setup on desktop and laptop.

openbox + tint2 + pytyle2 (they work well together IMO)

The middle click paste really hit home for me. I recently started working at a mostly Apple Big Co. And the middle click paste is sorely missed. Maybe I can find some equivalent but I always just took it for granted.
This is in no way a bashing of Linux. I love linux, I use it daily, but it's the desktop that I have issues with..

I've used Linux as a Desktop exclusively from 1999 to circa 2008. When I finally gave up. I think it was Ubuntu releasing buggy PulseAudio which broke the sound for me that was the last straw.

I still use Linux as a desktop occasionally but I just don't have the patience to deal with the weird quirks anymore. And there were plenty of quirks over the years.

I never understood why Linux went with Windows inspired ctr-c and ctr-v. For me especially since I do most of my work in a terminal window it was always counter intuitive. Shift-Ins is problematic on laptop keyboards and even on full size keyboards it requires both hands.

Each year (or so it seems) Bryan Lunduke does a "Why Linux Sucks <year>"(http://www.youtube.com/watch?v=pSxX8a_TC7I) and I love it.

Audio is one of those things they've never figured out. There's a good "truth in graphs" about that:

http://blogs.adobe.com/penguinswf/files/penguinswf/linuxaudi...

For Ubuntu it's been figured out for years. I use Google Voice, play music, do audio in multiple accounts, it all just works.
Those are all very basic functions. Let me know when I can produce Pro level audio work on a Linux machine without hiccups.
JACK is the sound system of choice for that. For everything else plain ALSA works just fine.
FYI you can use ctrl + shift + c / ctrl + shift + v to copy / paste text in your terminal.
When I saw that millisecond-faster copy/paste was item #1 I kinda lost interest in the rest of the article.
I'm such a noob. I learned way too many things from this post.
I've been using Arch Linux for a little more than two years, and it's probably one of the best decisions I've made in my life. Once you get used to the terminal, you will never want to touch a Windows computer (unfortunately). I have i3wm (tiling wm) + (rxvt + tmux + vim) + luakit (browser with vim keybindings), and some other stuff, and my productivity went straight up. Of course you might not want to go to that extreme, especially if you are not used to the terminal, but it's worth giving it a try.
I'd have to agree with your decisions. I'm on Slack, but almost the same setup: i3, tmux, urxvt, vim. The setup is unstoppable. I've found that I no longer need quick launch links (just define/use shortcuts for whatever you need). Switching desktops is really fast and easy (you don't drown in ridiculous animations just by switching to the "browser" desktop), and floating/hidden windows make opening a quick shell really simple. Doing everything via keyboard saves so much time...however I do come from the vim world, so I may be biased =]. On top of all that, i3's config is really, really easy.

Admittedly, I haven't used any other tiling window managers. I did a bunch of research after deciding to try one out, landed on i3, and haven't really looked back. Would definitely recommend it to an efficiency-minded person.

Also the simplicity of i3 is beautiful. Combine its minimal interface with a few shell windows with opacity=.85 and you've got an incredible looking desktop that's easy to navigate, responsive, and efficient. Even my not-very-tech-savvy girlfriend saw me working in it and said "Wow, that's pretty!"

I've tried some other tiling wm's, and i3wm is the one I've liked the most. It just has the right balance. dwm is pretty nice, too, but didn't like it as much. I'm glad to hear some other people enjoying a similar configuration of his linux :D. The only problem I've found is when I go to public places; people just look too much. They are not used to such a lightweight and non-windows/non-mac system.
Great choice. I use almost the same setup (on Slackware) except with uzbl as my browser (again a WebKit-based browser with vi keybindings) and dwm, although I alternate between WMs and DEs a lot.

The Unix way in general just feels so much more natural. There are alternative WMs and DEs for Windows too, though. I haven't tried any.

I'm aware of some hacking you can do to make tiling wm's work on Windows, but if you really need to go to that point, then just go to linux, unless you have important apps than only work on Win. I've tried to learn uzbl. I actually installed it around a month ago, but really need to spend some time with it. I might change the config so it's similar to luakit. The only issue with luakit is it sometimes hangs, and I doubt it's lack of good hardware in my computer. How are you liking uzbl? Do you recommend giving it a try? I don't think it's going to be that different from luakit.

The first tiling wm I used was dwm. I can't really remember why I moved to i3. I think the config was way easier (I changed a lot of things, I must admit, and the fact I didn't have to compile it probably was the reason), but I remember seeing really beautiful screens on the archlinux forum. Maybe I will give it a try again, although I'm pretty have already with i3.

I love the linux desktop, especially Gnome2. For me it's a godsend.

I make heavy use of workspaces (got 6 of them atm), very handy to organise work/tasks, even on dual monitor setups. It's very easy to move applications on another workspace or monitor, even without the use of a mouse.

"Always on top" and "Always on the visible workspace" are great features that I use even right now (mplayer running in my upper-right corner while I type this).

I use a distro based on RHEL6 that's super stable and don't have to put up with annoyances like rolling-release specific breakages and so on.

All my laptop's hardware is well supported and just works.

Firefox, Thunderbird and Libreoffice are excellent applications that more than meet my requirements. Virt-manager & kvm rock and Gnome-terminal is pretty damn awesome.

I use Windows rarely and it feels like having my hands tied at the back.

I know it's not for everyone, but for me, it has been the decade of the linux dextop. :-)

Chromium, Thunderbird and Apache Openoffice for me ... but otherwise I could have written the rest of your post! :D

(Yes, the newer versions of Openoffice are actually really good, and their UI is really comfy for someone coming in from MS Office on Windows/Mac.)

I also run Linux on my laptop at home. Window snapping and auto tiling is a must-have nowadays.

Also, didn't know about #2 (setting window z-positions). Going to play with that later!

It would be nice if pasting with the middle click ignored the newline character.

I use always-on-top.exe[1] on windows

One feature I would really like is the ability to lock a window to a region of the screen and allow other windows to be snapped around it.

Firstly you should be able to snap a window into the four corners by pushing the mouse into the corner for x seconds. (like ctrl+alt+numpad 1, 3, 7, 9)

If you had a window locked to the right side of the screen you could still snap another window to 50% of what's left. And if you manually re sized it to be small be able to snap another window to be 50% of the screen space that is left after two windows have been locked.

If this is possible please let me know.

1: http://www.labnol.org/software/tutorials/keep-window-always-...

- Package management

- Everything can be done via CL in case of emergency

- Switch terminals via F1, F2, F3... if the GUI terminal (F7) messes up

- Use whatever window manager I want with no hassle

- Most distros recognize hw and install drivers automatically (versus needing a rescue disk to install Windows)

- Develop apps locally using exact same environment used on server

- No worries about losing support for my hw (try installing Windows 8 or the latest OSX on an old machine)

- Option to show WiFi password (why the f can't you do this in windows?)

- Fingers crossed for more Steam games coming soon

As a Linux user, what I miss most when I use Windows is focus-follows-mouse.
This is by far the most important productivity improvement for me. I only have to move my mouse to where I want to type, and that is it.
For me, also related to focus is the amazing, best feature ever of having two windows open and write on one and, scroll on another without losing the focus from where I'm writing :)
I've been using Linux "on the desktop" since '96. I stuck with it because, it's Unix. It's not BSD pretending to be Windows. It's not Android, running around with a Java dress on, pretending to be something it's not.

X11 sucks and so does Unix. But they suck less than every other system out there. I can make X11 act however I want it to act. It can act like Windows, or it can act in some new way that was not blessed by the high priests, Apple, Microsoft, and Google.

If I want my system to do something, Unix provides the toolset. It's an amazing ecosystem for learning, exploration, and creation. If you know a bit about Perl, Python, or Bash then you can pretty much make data do what you want. A file is not just an opaque blackbox, requiring a single expensive proprietary application to interact with it. Fitting together disparate tools in a way that was never envisioned by the authors of said tools is not a "hack." It's just good design.

a)Tiling window managers are another nicety that is under represented on windows and osx.

b) In the past when I wasnt using tiling window managers - devilspie was really nice since it allowed me to specify where different windows would popup, allowing me to step away from physically arranging windows.

c) Be able to remove features you dont like / use. I currently have my system boot into a dwm session with a minimal set of services started at bootup. Most visual experiences / fonts are all configured via config scripts. Which means that I just need to scp two directories on any new machine and turns into the same flavor visually and behaviorally that I am used to. It is relaxing being able to upgrade machines / move to new machines knowing down to the pixel what environment and keyboard shortcuts you are going to get.

All of these are nice, and contribute to my enjoyment of Linux.

But, there's one thing that always makes me reboot from Windows into Linux (if I was gaming or watching Netflix; I usually run Linux): Having to do any work involving the command line, whether local work such as development, or remote work such as building and deploying packages or website updates.

PuTTY isn't a bad ssh client...but, it's not the same as always having a bunch of gnome terminals open in tabs and being able to "ssh myserver" or "vim myprogram" or whatever I need to do. The mental friction of having to click through menus to open a new ssh session for every server I need to work on (I've usually got two servers open when working: staging and production; and I've often got three or for sessions per server). Sure, I could use screen or tmux, but I can't remember the key combinations. And with gnome terminal tabs I don't have to. Worse, PuTTY doesn't seem to support the keepalive functions that OpenSSH does. I can keep my ssh sessions open all damned day under Linux. Under Windows, if I walk away for lunch or a nap, I have to relog everything when I get back.

Not having them in tabs, and not being able to manage windows under Windows in any reasonable fashion is also frustrating. It's an exercise in frustration finding the right terminal (there will always be two or three with the same label, unless I explicitly make an effort to change it; with tabs I can put them in the order I always use and know exactly where everything is without reading; windows get moved around all the time).

Lack of middle mouse button paste was always a nuisance until I got an awful HP Envy 15 lappy without a middle mouse button...it has the Mac style single mouse button with click areas, which never work right, in Windows or Linux--I often get a right click when I wanted left and vice versa...I've had to retrain myself to use three finger click, which is error prone and I end up getting a double paste....basically I'm realizing that I've been living in misery ever since I got this awful laptop. I need to order a bloody mouse, so I can stop punishing myself with this clickforsaken thing.

Actually, there's a ton of things that are coming to mind now that are just an awful nuisance. Lack of a good command line is the biggest. I use locate and find all the time; the analogs on Windows are a joke. grep! sed/awk/perl for munging things quickly! cygwin is a second class citizen and I'm always trying to figure out where I need to go to do what I need; the paths are so weird and long. That can be said of Mac OS X, as well, to some degree...while it has an actual UNIX underneath, it still has all the clunky Mac baggage that makes it ornery.

The thing that keeps me on Linux (mostly), is the ability to use alt+drag (I actually re-bind this to Win+drag) to move and resize windows without having to move my mouse to the title bar, or to the thin edges of the windows.

I can just use alt+left drag to move my window, a large target, anywhere I want it to, and likewise to resize it.

It's really annoying for me when I have to use a Windows VM (for example), and not be able to do this.

If you use VMware Player (and/or presumably Workstation) in "Unity" mode, you can alt-left drag to move and resize the virtualized-Windows-windows. Sometimes it gets a little wonky, but it works great 95% of the time.
I'm constantly missing this when I work on an OS X machine. Somehow, I end up with the window titles offscreen and just get momentarily stumped when I want to move it again.
When I was about ten years old, virtual desktops were the most proximate cause of my switch to Unix (addiction to using Solaris-based UltraSPARC workstations in the university lab nearby). I just thought they were so cool.

Have only run Linux on the desktop ever since. I'm 27.

beware of hidden characters in commands while pasting them in terminal from random sites.
beware of hidden characters in commands while pasting them in terminal from random sites.
I use Awesome as my WM of choice on both my laptop and on my workstation. It just works, and I can get stuff done _fast_.

Besides tiling windows as the major win, I really love the plethora of virtual desktops. I use these with ease. I have a triple monitor setup on my workstation, and have at least 3 virtual desktops in use on each monitor, and sometimes using 5-6 on each when really digging into work.

Middle-click is a must have on a GNU/Linux system also. I've seen people bitch about it on laptops, saying it should be removed, but Mac OS X, and Microsoft Windows don't take full advantage of it. Pasting with middle-click is an epic win for the GNU/Linux desktop, IMO.

The largest win, however, is proper package management with Debian. This alone keeps me using GNU/Linux on the desktop, and it's nice to see Apple following suit with their App Store. Cloud package management is vastly superior to "hunt and download".

I stick with GNU/Linux (Desktop or not) because it is the most widespread OS designed and maintained by hackers for hackers. Enough said.