Hacker News new | ask | show | jobs
by codeka 3452 days ago
> The first option I tried was an i3 based desktop. However whilst I wanted to like tiling window managers I decided it wasn’t for me.

It took me a week or so to get used to i3, but once I did I can't see myself ever going back. I've been using i3 at work and at home for about year now, and every time I get on my (Mac Book) laptop it's a frustrating experience: I feel like I spend more time trying to figure out how to get to the window I want that actually using it...

4 comments

Similarly, I've been using AwesomeWM for a few years. Going back to OS X is frustrating to me because it's so languorous and lacking control. On Arch/AwesomeWM, I can instantly flip to the space I want, but Mission Control forces me to walk through each space, insisting on animating the sequence and taking it's time to swap in the applications as I go along.
> but Mission Control forces me to walk through each space, insisting on animating the sequence and taking it's time to swap in the applications as I go along.

Alfred. Alt+Space by default (note you can also remove keybinds of Spotlight to make room for Alfred because I use Cmd+Space for Alfred and Alt+Space for iTerm2 fullscreen, running tmux via tmuxp).

EDIT: As joobus wrote above, I also recommend Amethyst. There's a small learning curve with the keybinds but that's it. Oh, I and I recommend Flux (remember you can temporarily put it off).

I'll plug TotalSpaces2 (https://totalspaces.binaryage.com/) here. If you're stuck with OS X for whatever reason, it's well worth the $12 to remove that god-damned animation that eats keystrokes for a full second longer than it takes my hands to start trying to interact with whatever's on the screen I'm switching to.
Try rebinding your shortcuts. These made OSX usable for me without resorting to a full blown tiling wm. It's not as fun as xmonad, but it speeds things up. There's a tweak for decreasing the animation time, I believe it's toggleable via in Prefrences.

Cmd-j/k for next/prev space, cmd-h/k for switching windows. Cmd-H/J/K/L for desktops 1-4. I spend most days in vim/screen anyway so it feels natural.

"Mission Control forces me to walk through each space"

Try swiping up instead. That'll give you a list of spaces to choose from. Certainly not as direct as your non-OS X WM but faster than stepping through each one.

Usually I'm not making the switch visually. On arch, I know what spaces each application is one and just switch to it instinctively. The visual search and movement to the trackpad ends up being slower and more annoying than a quick Super+3 or whatever it needs to be.
You can configure shortcuts to jump to a specific desktop on macOS.
You can set keyboard shortcuts for the specific spaces, specifically control + {1,2,3,4} for each space. In the keyboard section in system preferences, under "shortcuts" tab.
i3 is great, until you try to do something simple like change the time zone for your desktop clock or add some wallpaper. I switched from Linux to Mac because I was too well acquainted with making symlinks to /usr/share/ somewhere just to change my clock when I traveled, and then figuring out just how few processes I had to restart so it would take effect.

Unfortunately the Linux desktops were actually worse than the barebones window managers like i3: there was some sort of glibc bug that screwed up clock display on GNOME for at least a year. GNOME assumed glibc did it right, which was a reasonable assumption...but an incorrect one, but with i3 I could control this.

Now that I'm on Mac I look back in amazement at the time I spent on Linux learning ultimately useless stuff like why a bug in glibc would mess up my GNOME clock but not an i3 clock.

> i3 is great, until you try to do something simple like change the time zone for your desktop clock or add some wallpaper. I switched from Linux to Mac because I was too well acquainted with making symlinks to /usr/share/ somewhere just to change my clock when I traveled, and then figuring out just how few processes I had to restart so it would take effect.

Systemd makes using i3 so much easier. No more fiddling with consolekit and dbus just to get working external drives (logind solves the problem of local authentication), no more fiddling with symlinks to set time (timedatectl to the rescue).

> Unfortunately the Linux desktops were actually worse than the barebones window managers like i3: there was some sort of glibc bug that screwed up clock display on GNOME for at least a year. GNOME assumed glibc did it right, which was a reasonable assumption...but an incorrect one, but with i3 I could control this.

Gnome nowadays use timedatectl AFAIK to set time too. The last time I had a issue with setting date or time in Gnome was pre-systemd days.

While some people may not like systemd, I find tools like timedatectl, localectl and hostnamectl to be quite useful. They work much better than trying to write a shell script or parse something.

I quit desktop Linux right as systemd was taking hold. I used Debian but was thinking of switching to Arch for systemd alone. systemd is one of the best things to happen to Linux setups since X started configuring itself and since kernels got everything compiled in so you don't have to configure them. I do not understand the systemd hate. I think it's telling that the distributors--who actually have to do the work of maintaining init systems--have mostly switched to systemd while random vocal haters who do not have to keep the init system patched and working sit around and complain about systemd.
Most people hate systemd for the sake of hating something, or following the hate train. At least for me all my close encounters with it have been positive.
A lot of people don't like systemd because it heavily violates the unix principle of "do one thing and do it well". It replaces a lot of subsystems (eg: goodbye to all your old ways of looking at logs). Also, the primary developers have a poor attitude.

Systemd is relatively nice now, but the disdain for it wasn't just 'hate train'.

> Systemd is relatively nice now, but the disdain for it wasn't just 'hate train'.

No, it is mostly hate train. I only read one or two solid (technical) arguments against systemd. And no, no one of them is found in the regular systemd-hate sites.

> Also, the primary developers have a poor attitude.

I think the community have a worse attitude them the core developers, however this is mostly anectodal observation.

> eg: goodbye to all your old ways of looking at logs

systemd enable syslog.service

Here you go, all your old logs in the place you expect them.

> I only read one or two solid (technical) arguments against systemd. And no, no one of them is found in the regular systemd-hate sites.

There's an invisible pink unicorn who knows the winners of every horse race, but only I can see and hear her. Of course, I'm not going to tell you the winners; that's my secret!

Did you get onto the systemd stuff late? I got in midway along and found a few things that were iffy. One of the definite problems was the core developers' disdain for other people's use cases - even Torvalds said he was ambivalent about systemd itself, but the developers were pretty user-hostile and that was a problem.

> Here you go, all your old logs in the place you expect them.

Cool. In the same vein, do we have centralised logging in systemd yet? Or do we still have to run another syslog tool to ship them? Last I looked half a year ago, the consensus was still "ship them through rsyslog/syslog-ng", so you still have to run your old syslog in parallel. Only the IPU knows why they would make a new journaling system for a primarily-server OS, and keep kicking the "centralisation" can down the road.

Yes, the anti-syslog commentary went too far, but there were a lot of problems with it, especially before it had been battle-hardened. But whether or not you do or don't like systemd, you'd be crazy to say that it fits in with that unix principle I mentioned above.

The fact that your machines haven't personally been broken doesn't mean its a good or a bad design
This. It boggles the mind how much time one can waste solving admin, busy-work type issues on Linux, specially when trying to use a GUI. I mean wifi, Bluetooth, retina class resolution issues, drivers for multiple devices not being available... unless one is using Linux to learn and understand it as a server of some type I can't fathom using it as a replacement for Mac OS.
> unless one is using Linux to learn and understand it as a server of some type I can't fathom using it as a replacement for Mac OS.

Perhaps some of us value our freedom?

Perhaps some of us find that it helps to develop on the same platform on which we deploy?

Perhaps some of us find that we don't, actually, spend all that much time on 'admin, busy-work type issues,' having decided on good, solid distros which fit our use cases (Debian works for me, others prefer RedHat)?

At the end of the day, though, it really is about freedom for me. You complain that you must tweak your system; I value that I can tweak mine.

What you consider "busy-work admin issues", many people consider tier-1 features.

For instance, take sloppy focus. On my Linux machines, I can type in one window while interacting with another, and I use that ability fairly often. On my Mac, I have to spend time resizing and rearranging windows because I have to click a window to type there, and clicking raises it to the foreground, obscuring my other windows. Does the amount of time I spend managing windows outweigh the configuration time for the Linux box? I doubt it. But the end result is that my Linux machine feels like I built it exactly to spec. I value the fact that my OS, window manager, etc. do exactly what I want them to do in the same way that many people value the trackpad. I'm absolutely as annoyed and frustrated by the fact that the maximize/fullscreen button on my OS X windows moves my window to Space N+1 instead of keeping it where it is where a quick Cmd-Tab would bring a background window quickly back on top of the still-visible fullscreen window than I am that the trackpad on my Arch Linux box is less reliable at interpreting a gesture.

I'm assuming if you want someone else to ensure everything works for you without hassle then logically you would by a machine with linux preinstalled with a long term support release and then wait until a month after the next lts release to update after everyone else works out the kinks in the new release.

You know kinda like you do with apple machines.

i don't know, i've been running archlinux on my mbp and the only busy work i did was installing wifi drivers (which i did using cower and it was quite easy).

everything i have worked out of the box. and, as a plus, android usb tethering works a lot better on linux than on osx (thanks to networkmanager)

I'm on a Mac but at this point I could probably take it or leave it. Most of my life is shell + Firefox + Emacs + IntelliJ, and those all run basically the same regardless of OS.

If anything, my plan would be to move more of my life into Emacs so that I'm even less exposed to stupid ideas from my OS/laptop vendor.

I have been using i3 on a netbook for the last two days and I can definitely see how it would be lovely. But then again, Linux has changed a lot since I was into it seriously and I'm sure I will experience pain if I have to do anything substantial to tweak it, like symlink timezone files.

Yeah, I found I needed to set up some keyboard shortcuts for controlling mute/volume levels, but other than that it's been pretty set-and-forget (timezones not being a problem on a desktop).

The time I spent setting those things up has been more than made up for over the last year as I've spent less time managing windows and more time just doing work.

I've had good luck in the past with XFCE (in Xubuntu & OpenBSD) together with XMonad for this use case. Even now, where I don't use any of the panels and whatnot, I will occasionally fire up an XFCE control panel to do whatever it is that needs doing.
How could you not figure out how to do this? You can very well use gui configuration utilities + i3.
Check out Amethyst https://github.com/ianyh/Amethyst for Mac. I use i3 at home, and when I first started using OSX at work it drove me nuts until I found Amethyst.
A colleague turned me on to KWM (https://github.com/koekeishiya/kwm). If forced to use a Mac again, I'll probably use that. Amethyst never quite worked right for me, and I found myself restarting Amethyst all the time to un-break something.

Also, KWM has focus follows mouse.

Ditto for me with StumpWM. Whenever I have to use a machine without a tiling WM I feel like I've taken a trip back in time — back to an unpleasant and archaic part of time. Having to mouse over to windows feels like having to turn a hand-crank to navigate.