Why I Stick with the Linux Desktop
spin.atomicobject.com
spin.atomicobject.com
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.
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.
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.
I especially love this on chrome, where you can just paste it into the 'new tab' button.
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.
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.)
Now if only I had something like virtual desktops for my real-life desk…
openbox + tint2 + pytyle2 (they work well together IMO)
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.
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.)
* 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.
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.
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.
I do 3x3, mapped to <ctr>+<alt>+[1-9] on the keypad.
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).
- 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
I'm still partial to the *BSD way of ports, however.
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.
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. :-)
(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.)
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!"
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.
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.
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.
Sure it does.
http://www.greenend.org.uk/rjk/sshfwd/tunnel-putty-keepalive...
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.
http://blogs.adobe.com/penguinswf/files/penguinswf/linuxaudi...
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.
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 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-...
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.
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.
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 :(
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.
Have only run Linux on the desktop ever since. I'm 27.
Also, didn't know about #2 (setting window z-positions). Going to play with that later!