screenshot

This year was personal laptop rollover year, and I was excited to finally take the plunge: Linux! Yes, Linux. After polling some dev bros and doing a lot of YouTube research, I ended up replacing my 2015 MacBook Pro with a System76 Lemur Pro (specifically, the lemp10). With that new hardware came a whole new operating system: Pop!_OS. I've now had the new machine for a few days, and I want to record my initial thoughts/feelings with this brave new FOSS world.


Motivation

I grew up using Windows machines. In 2010, I switched to MacBook Pros, both for work and for home. I've been thinking about switching to Linux ever since this article about Cory Doctorow's workflow came out in 2013, but lots of stuff held me back. I kept a spreadsheet of all the Mac apps I thought I needed that Linux wouldn't have - Evernote, Microsoft Office (this was in my pre-career transition days). Finally - in 2021 (!) - my life is now programmy enough that moving to Linux seemed sensible and fine. In particular, I was really inspired by this entry in the always-fun series, Uses This: Katherine Cox-Buday's work setup. And the fact that a bunch of my work colleagues used Linux at work. And... a lot of things!

In fact, here's my motivation list.

  1. I have been getting more and more sick of planned obsolescence. In an age of climate change and environmental degradation, spurred by a ravenously materialistic culture, it feels especially stupid to make something as dazzling and hard as a COMPUTER - with fancy rare Earth parts and feats of engineering and logic - only to have it be a 2-year social media browser. My MacBook 2010 chugged along well enough until 2015. My 2015 MacBook has been declining slowly for the last year or two. My 2017 work MacBook Pro died spectacularly after 2.5 years... because the battery fritzed. A battery that is soldered and therefore not replaceable. As an economist, I understand the model: you don't make tons of money by selling people something they need every 10 years (water heaters!). You need to keep that consumption happening. Also, as a macroeconomist, you need that GDP growing growing growing. The 2019 Nobel laureates had something to say about that... Anyway, no no no.
  2. Speaking of which, why can't I just remove my dead battery? Or upgrade my RAM? Or just open it and learn about it and fiddle with it? Why is customization artificially locked away via glued and soldered parts?
  3. I want to learn about computers! As my life and career has gotten more programmy, I've become more curious (and more empowered) about different aspects of the computer. My tldr understanding of Linux was: this is an OS that makes you work a bit more - there's more learning curve - but you get rewarded with a deeper understanding of your machine. We'll see indeed if this is true!
  4. I could do everything I needed in Linux anyway. As an economist, I used Microsoft Word and Excel a lot. As a data scientist, I'm mostly working in Jupyter notebooks and vim now (glorious vim).
  5. The Pi felt like a breakthrough. I don't know why, but setting up my first Raspberry Pi also loosened me up from my "chained to MacBooks" feeling.

Moving from macOS to Pop!_OS

Much has changed! Oh, the many hours I have spent either (a) in a terminal, (b) accidentally right-clicking, and/or (c) pressing the wrong keyboard shortcut. Ay, it has been a little painful, a little joyous. I think things are a bit more settled now, after that initial shock. My report!

First, and most importantly: all the keyboard shortcuts are weird

Arrghh. Keyboard shortcuts. After 10 years, I am a wizard at text editing and dashing around with cmd this and 3-/4-finger gesture that. Pop!_OS dropped me into a new world where keyboard shortcuts that had been unified under a macOS's cmd were now living under three new keys: ctrl, "Super" (a System76-specific special key), and alt. Aieee. My pinkyyyyy.

This has taken, of course, some MASSIVE getting used to, as well as onerous pecking and mousing/clicking in the earliest hours. I have since discovered the general rule that: (1) Super for "big stuff" (launching/quitting apps, moving across workspaces), ctrl for ye olde stuff (closing browser tabs, jumping forward/backward words), and alt as a wild card (jumping across browser tabs? reloading the previous or the future page?).

All a little unexpected and painful, and I've seen that Pop!_OS natively supports some vim movements for things. MAYBE I CAN MAKE IT ALL VIM!?

Replicating macOS trackpad gestures

Which brings us to the next big thing I do with my hands ("prehensile paws"): TRACKPAD STUFF. Namely, macOS's glorious gestures - which I fell in love with in 2010 and, honestly, were another big reason I was hesitant to switch to Linux.

This was actually very easy. Almost trivial? I mean, I spent an hour or two researching and installing and so on, but - once I found what I wanted - it was really straightforward. And suddenly, that whole gesturey aspect was unlocked.

Basically, I'm using libinput-gestures, a (mostly-)Python library that interprets the touchpad gestures and maps them to shell commands. Out of the box, using the default configuration, it replicated the 3-gesture workspace swipe that I've grown so accustomed to.

RTFM

Actually, in installing libinput-gestures, I ran into a workflow that I've been using for years now and I just know is not serving me well. It serves me maybe 70% well. Basically, when I don't know how to do something, especially something programmy, especially something about installing a package via the shell, I normally:

  • DuckDuckGo it.
  • Find the first answer that seems relevant.
  • Scan, without reading, for the first code block.
  • Copy+paste whatever is in that code block and see if that works.

Yes, I know. Hackers, here's your entry point! Just stick a fake search result in a... Well, anyway.

So the worst thing about this is that it does work, like maybe 60% of the time. And so I'm being randomly dopamine-rewarded for a very bad process indeed. With the above, when I was installing libinput-gestures (which has very good documentation), I faced an easy problem and kept opening more and more search tabs, trying random things, shaving yaks randomly, before finally finding the solution... in the README. A solution that had been clearly written in both the project's GitHub README and in the config file I was struggling with.

I've noticed this happening in other ways, but, really, I should just RTFM. It seems more "costly" up front, but I can likely spare myself a lot of browser tabs and hand-waving.

How could someone survive without the shell?

So far, I've spent many a happy hour installing, debugging, and generally fiddling with things in the Pop!_OS terminal. (Which is called Terminal?) This is fine and well, and I feel confident enough to do what I need to do. But what if the Terminal is strange to you? There do seem to be a lot of Linux GUI things floating around, and maybe they're sufficient? But it seemed like everything I ran into (e.g. libinput-gestures) assumed some familiarity with the command line. I would have struggled much more in 2013. I do wonder about this. How do non-command line users experience and enjoy Linux? I'm so curious, I might investigate this and see if there's any blog posts, etc.

Everything is a choice

This is both the blessing and curse. I didn't like the way Pop!_OS's default file browser looked and worked. I understood that, with Linux, I could change this. Oh man, and cue the Reddit threads and browsing of .debs and .flatpaks (what are these?) and all that. I ended up with Nemo, since it was vaguely pretty and immediately intuitive.

Speaking of pretty...

Default macOS is very pretty. So stylish. So Just Works-y. So confidence-building. Linux is definitely a little uglier, harsher, etc. I mean, I love the form factor (NEW WORD I LEARNED) of my beautiful, featherweight Lemur Pro. And the... KDE (?) - the windows, the dock (oh yeah, I installed and replicated the macOS dock) are certainly charmingly okay. But I will work on beautifying this machine.

Further reading