8 ms·
I used to be all in on Apple. On macOS I had a little program called Magnet to snap windows to sides and corners, and on my iPad (with external keyboard) I SSH’
by stfwn 6y ago
I used to be all in on Apple. On macOS I had a little program called Magnet to snap windows to sides and corners, and on my iPad (with external keyboard) I SSH’d into a VPS to write and run code there. I used Alfred and had all kinds of workflows in there. I thought it was great.
But then during my AI studies I wanted some beefier hardware, which was just not affordable for me within Apple’s ecosystem, plus they only used AMD graphics cards. I built a desktop computer that outperformed the top of the line Mac Pro for a fraction of the cost and turned it into a Hackintosh. Two weeks later Mojave came out, and Apple never approved any Nvidia drivers from then on.
My eyes opened to Linux and i3 in particular, which looked like Magnet taken to the extreme. What had taken me hours to install and configure on macOS (GPU-acceleration for PyTorch, for example) just worked with one package install on Linux. All my expensive apps were replaced with simple and free, much more configurable alternatives. At first I spent a day or two getting things just right. Since then not much has changed because not much needed changing, which I really like.
Now I look at macOS and iOS and cringe how locked down it all is. Users are very creative in their workarounds to make it work, but it is ultimately quite silly that you need to use special URL schemes and workflows to open a text file across different apps.
Thanks, i3!
- pimeys 6y agoAlmost like reading my story... I used to be all in on Apple, using their iMac G4 and later on the Intel iMacs at home, but needed a beefier machine. So when I started in a new job, instead of getting a macBook, I asked the company IT to build me a workstation (and been asking for it from the companies I worked for after that). Installed Arch Linux and i3 to it, and never looked back. Did run Linux and i3 in the macs I owned for a while, until I built myself a home desktop and replaced my laptop with a ThinkPad, all running Arch Linux and either i3 or sway as a window manager. This is the end game for me. Emacs, Alacritty and Firefox with a rolling release distribution. The same configuration with even the same wallpaper for the past 10 years that follows me from Gitlab. Thanks, i3 and sway!
- francis-io 6y agoThis is kind of my story too. I stick with ubuntu LTS just for an added level of confidence things are compatible, but Arch might be a good idea to look into. The arch packages are a big plus. Do you find many compatibility issues?
- nhumrich 6y agoI have found that a lot of people _think_ Ubuntu is safe/stable. But because the Linux kernel is a little behind, it usually isn't. I have had way more stability and compatibility with arch because everything is always up to date.
- da_big_ghey 6y agoYeah this always gets overlooked for some reason. Other distros I periodically hit issues with something out-of-date; on Arch, I almost never do. And on the rare occasion that I do, installing the `-git` package from the AUR fixes it.
- folkrav 6y agoI've had the exact same amount of major issues using either stable or rolling release distributions. Using one of the other just changes when/why I have to work around the distro. Arch usually has more small "papercuts" I have to fix myself - often problems around suspend/power management or drivers, in my experience. Ubuntu and the likes I usually struggle either when I encounter some bug OOTB (meaning that won't get fixed in a timely manner because "stable") or once I need some package that's just not there. Having to figure out what are the damn dependency equivalents for some program I'm trying to compile that only has Arch instructions is never fun. Obviously YMMV.
- simion314 6y agoWith Ubuntu you have the choice to install newer kernels and video drivers if you need it and you are competent enough to read instructions. The advantage of stable distros is that you are not surprised with new bugs,feature removal or shiny redesigns. When I needed a new driver to play some game I just installed an official PPA and got the driver and if I did not like it I could install the older version.
- doctorbaum 6y agoWhat distribution?
- zamalek 6y agoIf you're asking for a recommendation: Ubuntu, Fedora or Elementary. Manjaro is good if you're okay with occasional instability (due to rolling releases). My experience has been much the same switching from Windows after the past month. The Linux desktop is better.
- 411111111111111 6y agoPlease don't throw out statements like "linux is better". It is better for you, me, and some others in this thread. But if you make a statement like that you'll get Apple Enthusiasts to try it out just to prove you wrong. And they will find reasons, because both osx and windows both have areas where they're superior.
- hobby-coder-guy 6y agoRead it again “ My experience has been much the same switching from Windows after the past month. The Linux desktop is better.”
- nix23 6y ago>linux is better But it is! And BSD's are even betterer. 9front and Inferno..pff nearly holy...but if you need applications..well that's another story ;)
- Kaze404 6y agoIsn't the subjectivity heavily implied in that context? If people take it on face value and try to prove them wrong, it's on them.
- octoberfranklin 6y agoThis was more or less my path as well. I will never, ever forgive Apple for removing two-dimensional virtual desktops (I think they called it "spaces"). Then just to spite all of us, a few releases later they made it impossible for TotalSpaces (a hack that gave us back this functionality) to do the kernel code-injection wizardry that they sold for the incredible bargain price of $12 or something like that. Because, you know, "security". That was the end of my Apple decade. Now I use sway, which is an astonishingly-faithful (like, down to the config files) wayland clone of i3.
- pimeys 6y agoExactly this. And why I nowadays only use open source software is that I know my experience stays the same for good. I use i3 because it works just like it worked 10 years ago. I don't need a new experience with every release, new graphics, new ways to use my computer. I just need a utilitarian desktop with my editor, browser and a terminal.
- pjmlp 6y agoNot being long enough on FOSS space? My AMD drivers, and a couple of sysadmins might want to have a talk.
- CraigJPerry 6y agoThis functionality does still exist - it's just changed a bit. When you full screen an app in MacOS Big Sur, you can add another app side by side with it in it's space. It was better before as just spaces though. Windows does this right. If you add powertoys you can even go beyond the i3 tiling options but i'd argue i3 is a bit more naturally usable than the powertoys desktop stuff.
- SJetKaran 6y agoI moved from linux to mac for work stuff. Really miss the I3 functionality; yabai fills that gap mostly but not all the way.
- flurdy 6y agoThere is also Amethyst for macos https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst
- ibraheemdev 6y agoAmethyst was inspired by XMonad, so it is probably the closest you are going to get to i3 on MacOS
- sa1 6y agoThere's also yabai
- Steltek 6y agoAmethyst is nice but has odd and unfortunate edge cases. The use of the Accessibility APIs limits what it can do. For example, keybinds stop working if the focus is on an empty screen with no windows. Occassionaly it "loses" a window and you can't cycle to it any more, even if you focus it manually. I also don't think it can throw windows to other workspaces but maybe that's changed? For very simple i3-like configurations (single workspace+monitor, always fullscreen or side-by-side), it's not bad. It's limited by poor support from Apple.
- deleted 6y ago[deleted]
- SxC97 6y agoDo you mind expanding a bit on that thought? What gaps aren’t filled with yabai?
- SJetKaran 6y ago
- robenkleene 6y ago> it is ultimately quite silly that you need to use special URL schemes and workflows to open a text file across different apps. Curious what you mean by this? Which additional mechanism does Linux (or i3?) have for opening a text file between apps?
- deleted 6y ago[deleted]
- Out_of_Characte 6y agoThere is no additional mechanism, You just open text files as many times as you want with any program. (Unless I misunderstand the parent comments)
- yoz-y 6y agoI think the confusion comes from the fact that the sentence mentions both macOS and iOS, whereas url schemes are an iOS-only concept.
- robenkleene 6y agoGot it yeah, this is probably why I was confused. URL schemes are the only way to do a lot of things on iOS, whereas (as far as I know) they're additive to the *nix ways of doing things on the Mac.
- j7ake 6y agoNice story thanks for sharing! Is it easy to reconfigure keyboard shortcuts like cmd+C for Mac but ctrl+C on Linux? I have spent way too much time trying to do it on Ubuntu and it has made it hard for me to make the switch.
- gorgoiler 6y agoGet your keyboard setup as close as you can with whatever tools seem comfortable (eg gnome settings) and then dump the layout to an XKB file. Now you can make the tweaks you need, and load them automatically next time with a call to xkb in your .xsession. Linux and GNU and Xorg et al may be heterogenous and weird, but the joy of an open system is that if you want to take it apart and tweak it, you can.
- srtjstjsj 6y agoSurely someone has already posted a solution on GitHub somewhere...
- stfwn 6y agoIn macOS it is not entirely clear to me what category of things the cmd key is for. On one hand it's used for keyboard shortcuts related to window management and the system, but on the other hand it's also used to issue commands to the application itself. In i3 you assign a $mod key, which then always and exclusively used for 'system and window management'. Opening, closing, moving and resizing windows, switching workspaces and showing toolbars is all done with some key combination that starts with $mod. Since reading and writing the clipboard is done by the application, in my brain it should not involve $mod. So I use ctrl+c and ctrl+v for all applications. The one exception is the terminal, in which ctrl+c terminates programs. So there I use ctrl+shift+c. I also unified the register vim yanks to with the system clipboard, so for me most copying and pasting that happens in the terminal is done via `y` (yank) and `p` (paste). A more straight answer to your question is: yes, you can remap everything to bits. You can modify what keypress each keycode should trigger, so there is really no limit to what you can do there.
- 6y ago
- pacifika 6y agoWhat are you using as replacements for keyboard maestro and hazel?
- stfwn 6y agoThese are exactly the type of silly applications that are needed on macOS because the OS too locked down, or at least not made for people who like to do this type of stuff. On Linux, almost all native applications keep their data in regular, non-proprietary files on the file system. This means your data always exists separate from the applications and you can do with it what you want. If you want to run a script every Monday at 3PM that sifts through your ~/downloads folder and uploads the top 10% largest files to a server, except in January, on Easter, when when your drive is below 70% capacity, if it's not hooked up to power, and also not if Kanye West tweeted something in all caps, you can do that. You can make it retry every 42 minutes if conditions weren't met, email Bob and message Alice in Slack about it. You can make it machine learn your behavior and pick a window within 3 hours after sunrise, log the bandwidth usage, and have it play a tune for your friend's MPD server on the other side of the country. Why you would want to do all of this is beyond me, but odds are you want to do one of these things at some point. Then Hazel won't be able to do it because they didn't consider your use case, that functionality is only available in version 6 (pay up for the upgrade!), Apple didn't provide the right API, or they recently took it away in the name of security. Surely there's another app that can do it, but that one can't do the other thing! Oh well, maybe the next version? On Linux, you dream up the code in the language of your choice and it will work forever. Your learned skills will transfer one-to-one to programming you do for your job or hobby, instead of being weirdly specific and locked down to this one, overpriced app's clickity click interface. The OSS mentality of interoperability and doing one thing well almost guarantees there are battle-tested tools available that can solve pieces of your specific puzzle, while not locking you in to their way of doing things. Of course scripting is not exclusive to Linux, but it is the only OS that was and is built with it in mind.
- least 6y agoThat's a remarkably off-base take. You're attributing qualities that linux has to things that linux exclusively has. Your entire rant about emulating the functionality of Hazel with scripts is something you can do with either operating system. The fact that hazel exists is because it lets people that have neither the time nor the disposition towards writing their own program for their own use case and still get a lot of the benefits of such. In fact, even those that do have a proclivity towards scripting their own maybe would rather do something else with their time. > On Linux, you dream up the code in the language of your choice and it will work forever. ...I'm sorry, how is this exclusive to linux, exactly? You can do the exact same thing in MacOS, Windows, FreeBSD, etc. Also, maybe some people just don't want to fucking program every function and application they run on their operating system? > Your learned skills will transfer one-to-one to programming you do for your job or hobby While I understand that there exists a much higher population of programmers on HN than on other websites, please stop assuming that 1) everyone here is one and 2) that everyone wants to spend their time writing software in their spare time and 3) even if they do like programming in their spare time, that they want to spend it writing automation scripts. > instead of being weirdly specific and locked down to this one, overpriced app's clickity click interface. What is overpriced to you is potentially someone else's pennies. I don't really think the jab at GUI interfaces is appropriate, either. > Of course scripting is not exclusive to Linux, but it is the only OS that was and is built with it in mind. Again, this is just plain ignorance.
- toxik 6y agoi3 aside, the continuation to your story for me is, use Linux machine, be decently productive but nothing works quite the way it should. Change your keyboard layout to one of your own? Eh maybe Xmodmaps, oh but then it gets reset every so often because $HISTORICAL_ARTIFACT. You have to change the actual xkb mapping, which is very much not a “happy path” in any DE. The only graphical e-mail client that actually seems feature complete is Thunderbird, and for _years_ I have to race to disable the global search within 10 seconds of starting it. Otherwise the program just freezes up. I don’t even know what to use for calendar stuff. I would really love it if Linux was viable for me as a desktop OS. It just isn’t, because of things like these.
- nemo136 6y agoFor the keyboard layout, use a mechanical keyboard program it through qmk, loose 1 month adapting to it, and voila, problem solved.
- Ar-Curunir 6y agoLol this is sarcasm, right?
- Koshkin 6y agoNo, just a typo.
- 098799 6y agoChanging the xkb mapping is not a happy path? It's perfectly portable to any system running X11, you can define your own shortcuts to quickly switch maps with setxkbmap... It's a backbone of my workflow with a 60% keyboard.
- cycomanic 6y agoNot sure what you're trying to do in keyboard layouts. I've yet to encounter the flexibility for keyboard layouts that you have in linux in any other OS. Regarding email clients, again I'm not sure what you consider feature complete, but even some of the proprietary options like mailspring or hiri exist on linux. For calendar it again depends on what you are trying to do. I've recently started using Minetime, which is not OSS but free and is working very well for me. One of the weird phenomena that I find in these discussions, is that people are often happy for proprietary software (like OSX or windows) to restrict what they are able to do, and having to adjust their workflow to these systems, but when it comes to OSS suddenly not being able to match the previous workflow, makes the system unsuitable. (Note that this is not aimed at you directly, just a general observation).
- wlesieutre 6y agoFWIW iOS allows apps to to permanently have access to a file or folder in another app's sandbox, they just have to get permission for it.
- krebs_liebhaber 6y agoI dont like Microsoft operating systems and wanted to try something different. I installed Linux. The installation process was very painful. Getting it to cooperate with the hardware was worse, and of course there is no real support. I finally got it halfway working. At that point, I found it was hard to learn, harder to get used to, and hardest to do anything useful since none of the programs were familiar. Two days later the computer stopped working entirely and would not even boot. I spent hours fighting with it, tried to reinstall linux and it simply would not work. I removed the hard drive that linux was on, plugged back in my Windows hard drive, and could not make the computer boot up. I finally took it to a computer repair place and was told the CPU was damaged, and there was damage to the RAM too. Total cost was more than I paid for the computer. I also took along the linux harddrive, and was told that the drive had permanent damage (a brand new drive). The repairman asked me what I was doing with these computers. As soon as I mentioned the word "Linux", he told me that's my problem. He said Linux destroys computer hardware, and said he wont even allow it in his shop. He said that simply installing a self booting Linux CD can wreck a computer in minutes. mostly destroying the CPU and drives. This is caused because Linux sends the wrong voltages to components and burns up the CPU and other chips. It also plays havoc with harddrives, and causes them to lose their ability to read and write data. So, here I sit with around $1200 worth of damages and repair bills. (Not including many hours of wasted time). Since Linux is made by a bunch of computer geeks and idiots with no real business address, there is no one to sue. Both my computer repairman and lawyer said it's worthless to even try a lawsuit. All I can do is warn others, to avoid Linux like a deadly disease. Dont even try it, unless you want to intentionally destroy your computer.
- ruste 6y agoI've been using linux for over a decade and never even _heard_ of this or something similar happening. AFAIK the only typical way to configure these things is through the BIOS, well below the OS level. It sounds like something got borked and the computer repair shop decided it was easier to blame linux than to figure out or explain what happened.
- webmaven 6y ago
- jtxx 6y agoWild, this is the path I went down and it was just 3 months ago! I didn’t expect Fedora to become my daily driver so quickly.
- vmchale 6y agoYup, I envy the M1 but I'm on XMonad (lol) and I really wouldn't want to go back to a non-tiling window manager.
- pimeys 6y agoWaiting to get an M1 with a custom motherboard, a fast GPU and Arch Linux installed. I doubt that'll happen with Apple, but I suspect in a few years we have some other ARM CPU that has integrated RAM and competes with M1. For now, a Ryzen runs circles around M1 (at least with my workloads, C/C++/Rust compilation with needs for 64+ GB of RAM) if you're willing to use some more energy.
- jjuel 6y agoi3 turned out to be a gateway window manager. Tried out all sorts of different tiling managers, and finally stuck on DWM.
- brobdingnagians 6y agoYeah, I didn't realize how much I'd like DWM. Once in awhile I'll try awesome or i3, but DWM seems to hit the sweet spot.
- Steltek 6y agoI'm jealous of you and others in this thread that shared this path. I've unfortunately been dragged in the other direction: I was a happy i3/Linux user and now I'm coping with a multi-monitor Mac setup which stubbornly refuses to support workflows which I find to be very fast and efficient. There are some tools (all $$) for Mac which attempt to replicate a tiling WM but Apple's support for it is extremely poor, affecting the quality of the tools.
- jessemillar 6y agoI'm no longer using a Mac (for employer reasons), but I had a lot of success with Yabai (free/open-source) before I switched. https://github.com/koekeishiya/yabai https://github.com/koekeishiya/yabai
- Steltek 6y agoI haven't disabled SIP yet. As a Mac novice, I'm wary of breaking something required for work (and in a pandemic WFH to boot) that I can't fix. But it looks like it's optional. I'll give it a shot! Thanks for the tip!
- tuananh 6y agoyabai works without SIP, minus some features that requires it
- city41 6y agoThis is the danger of tiling window managers :( I now fear one day I will work at a company that won't let me use Linux. But on the flip side, it's a great testament to the power of tiling. You'll have to claw i3 out of my cold dead hands :)
- vidarh 6y agoIf I was forced to work on a non-Linux box now, I'd most likely end up running a Linux VM and do most things within the VM.
- satysin 6y agoI am still on macOS but I totally agree with your post. macOS and iOS are seriously locked down and it can be very frustrating. Like you I used Magnet but wanting to get something more tiling window manager-like I switched to Amethyst[1] which while not as powerful is pretty good for what it is. Sadly macOS has frustratingly laggy window resizing for a lot of things. Finder and Safari are usually fine but pretty much everything else feels laggy to resize and generally macOS just has absolutely terrible window manager so a tiling window manager is a god send. I mostly use macOS because I have been doing iOS and macOS development and so what else you gonna use but I have to admit I want to move away from the platform. It is all 'very exciting' right now with all the Apple Silicon hype and yeah it genuinely is impressive but for me I kinda want to get back to something more open even if it doesn't have a lovely highly efficient and performant custom SoC driving it. I am like 90% there in convincing myself to build a nice AMD desktop next year and moving away from macOS as my main OS. Luckily I am not dependent on any Apple services so switching shouldn't be that bad. [1] https://github.com/ianyh/Amethyst https://github.com/ianyh/Amethyst
- Hammershaft 6y agoyeah, I agree that macos seems to have the worst window management, both in design and implementation (particularily performance). i3 sounds like a dream window manager to me, but in the meantime while I use Mac OS (& Windows), I've been using yabai, which is heavily inspired by i3 but limited by Mac OS. https://github.com/koekeishiya/yabai https://github.com/koekeishiya/yabai
- deleted 6y ago[deleted]
- addicted 6y agoI think the biggest contribution i3 has made to my computing life is helping me recognize just how superfluous most of what I normally did on my Windows and Mac computers was. Take away a lot of the chrome and it’s incredible how much can be achieved via simple text files and unfussy Linux tools. As an example, my GTD workflow (before I switched to a physical bullet journal) went from a variety of apps to a single i3 workspace that auto opened with 5 terms with each containing a single markdown file opened in vim. The leftmost column contained the processing file from top to bottom. The middle column had Doing and Follow up files. The rightmost column had Done and Projects files. My done would be archived each week with a script and a new done file opened for the upcoming week. If there were any other major files I wanted (for example I would maintain a ling term projects file) that would be opened in a different buffer in the VIM app containing the projects file. Moving items from one folder to another was as simple as quickly navigating to that folder, using a shortcut to yank or cut the line to the global clipboard, ans then pasting it to the file I wanted to move it to. I suspect it would have been trivial to write a script that would have automatically moved the entire line over with a single shortcut. There is absolutely no additional overhead and it works extremely fast and well.
- akho 6y agoWhy use five i3 windows, if you can use five Vim windows? That would make moving things around a lot easier.
- highmastdon 6y agoOn mac there’s a window manager called yabai which I’m using and works very well. It’s a bsp (binary space partitioner) for some advanced uses as moving to other desktops it requires SIP to be disabled (System Integrity Protection) but for the basic stuff it works much much better than Magnet or Amethyst
- markogresak 6y agoHow did you get used to the different modifier key layout? I am missing the cmd every time I try to switch to Linux. I have tried rbreaves/kinto, but it was not working well for me, so I decided to keep the native layout. It took me about 2 weeks to get kind-of used to the different modifier keys, but it did not feel the same. But the thing that made me switch back is when I was buying a laptop. I was set on not going with Apple anymore after my previous macbook screen died 2.5 years in and they were asking almost 1000€ to fix it. But I could not find an option that would match the 16" macbook laptop. I was considering the build quality, screen size and its resolution, battery life, usb type-c charger, trackpad experience and the overall software support that I will expect from a daily driver to do my web development work. I was seriously considering the dell xps 15 9500 that launched this year, but I saw a lot of feedback about generally poor battery life on linux and some cases of trackpad problems. I was thinking about getting a second, cheaper device like System76 Pangolin and see how it works and use this as a transition to a different platform instead of going all in by immediately switching the daily driver.