The Framework Laptop 13, and Fedora 41

Posted:
Tags:
A closed aluminum laptop (the Framework Laptop 13) with rounded corners, seen from a slightly elevated angle focused on the rear left-hand corner. The hinge is black plastic, and extends nearly the full width of the laptop. A black plastic line (the edge of the screen bezel) extends from the hinge and runs the perimeter in between the lid and the main body. A glossy black gear-shaped Framework logo is inset into the center of the lid. On the side, a USB-C port, USB-A port, and 3.5 mm headphone jack are visible.
Framework Laptop 13, seen from the rear left-hand corner.

Partway through writing my last post, my beloved ThinkPad T480—henceforth referred to by its hostname, zephyr1—developed a fault.

I bought zephyr used on eBay for about $800 USD in early-to-mid 2020. By then, it was already two years old, sporting an 8th-generation Intel i5 processor, 16 GiB DDR4 RAM, and a 500ish GB2 NVMe drive.

Many ThinkPads of this era, including the T480, sport a curious quirk: two batteries, one situated inside the case and one easily replaceable from outside. The idea was that a traveling businessperson could carry one or more charged spares to swap with the external battery when it got low, without even having to power off the laptop—the internal battery would kick in while the external one was disconnected.

I don’t know for certain whether or not zephyr came into my possession with its original batteries, though they did at least appear to be genuine Lenovo ones. Regardless, its battery life always felt adequate, so I never considered replacing either of them over the last five years. Until, one day in late February 2025, the internal battery just… stopped charging. Or discharging. It still showed up in the Power panel in the GNOME settings app, but it seemed to be stuck at 29% at all times. The external battery would charge when zephyr was plugged in, and discharge when it wasn’t; but the internal battery wouldn’t budge. The upower utility showed it was stuck in a “pending charge” state.

I tried pressing the “reset” pinhole button on the bottom of the laptop a few times, to no avail. I opened the laptop, removed the battery—inspected it for any signs of “spicy pillow”-ification—reconnected it, and still saw no change.

Genuine replacements for either of the T480’s two batteries go for around $120. I’m not sure if that was always the case, or if its’s a consequence of Lenovo no longer manufacturing those particular models. Third-party knockoffs are available for much less, of course, but you can never be too sure how reliable those are going to be. One last cruel twist: upower reported that the internal battery—if only it would (dis)charge—was still fairly healthy, with 87% of its designed capacity, while the actually-functioning external battery was at the end of its life with only 36%. This led me to wonder if the internal battery was really the problem, or if there might (also?) be something wrong with the motherboard.

All things considered, I was looking at the following options:

  1. Replace the internal battery with a genuine Lenovo replacement for $120. This would be the obvious choice, if not for my uncertainty over the motherboard.

  2. Replace the external battery with a genuine Lenovo replacement, again for $120. This would restore some of the battery life I was used to—theoretically about half—while sidestepping the motherboard question.

  3. Replace the motherboard with one off eBay, and see if my existing internal battery miraculously started charging again. This would probably have run me around $80–$100; and if it didn’t work, I’d have spent extra money unnecessarily and I’d still have to buy at least one new battery.

  4. Replace the internal battery with a third-party knockoff for around $50–$60. This would hopefully prove whether or not there was a motherboard issue, for less money than buying either a new motherboard or a genuine battery first. However, I would probably end up replacing it again with a genuine one within another year or two—assuming my original battery proved to be the problem—so while this option would feel a little safer in terms of up-front cost, it would again mean spending extra in the long run.

With any of options 1, 3, or 4, I would probably want to replace the external battery soon too, given its degraded condition. The worst case scenario—replacing both batteries and the motherboard—would run over $300 at minimum, plus shipping and taxes, not to mention the time cost waiting for things to ship and the risk that the replacements wouldn’t actually solve my problem; all to keep a seven-year-old laptop operating like a seven-year-old laptop (with exceptionally healthy batteries).

This was starting to feel a little less like I-buy-used-ThinkPads-because-they-have-good-repairability-scores territory, and a little more like maybe it was time for a proper upgrade.

Framework Computer, Inc.

In February 2021, a fledgling young company announced their first product: a sleek 13.5"3 ultrabook specifically designed for repairability and upgradability.

I was immediately intrigued. But, at that point, I’d had zephyr for less than a year—price notwithstanding, I could never justify replacing a perfectly good laptop so soon. I resolved to keep an eye on the company; and assuming they stayed in business, and demonstrated their ability to uphold their promises, then maybe my next laptop would be a Framework.

In 2025, with zephyr on the fritz, I thought perhaps the time had come. I decided that if I could get something that was as good or better, in all respects, for less than $1,000, then I would at least strongly consider it.

Framework sells refurbished units—that is, bought, returned, and inspected—at a slight discount, so I started there. Here’s the configuration I came up with:

All told, that’s $934; after sales tax, $990. Any laptop purchase, including refurbished ones, comes with free shipping.6

As you can likely guess from the title of this post, not to mention the photos, I decided it was worth the investment. After all, if the same situation happens to me again a few years down the line—assuming, again, that Framework stays in business—I’ll be able to get a genuine replacement battery relatively cheaply, and replacing the mainboard7 would be an opportunity to upgrade to a newer CPU.

Close-up of one side of the Framework Laptop 13, with the bottom facing up. There are two cutouts in the shell of the laptop where expansion cards can be inserted. The cutouts are thin rectangles from the side, and roughly square from the bottom. Two expansion cards sit atop the shell, near the cutouts: one featuring a USB-A port, and one with a USB-C port.
The Framework Laptop 13 has four “expansion card” slots, two on each side, allowing you to choose which ports you want (and change your mind at any time).

Hardware

New electronics purchases are decidedly not an everyday occurrence for me, so naturally the next few days were rife with anticipation. But, I was also a bit nervous about whether I made the right decision. Here I was, spending a sizeable chunk of money on something that I could manage to do without; and while most of what I’ve read about Framework online has been quite positive, I’ve seen people recount bad experiences too. I also wondered whether a laptop designed to be taken apart would feel… solid, for lack of a better word, compared with more shall-we-say sealed alternatives.

My Framework laptop—serenity8—arrived on March 6th. Now that I’ve spent a few weeks with it, I am pleased to report a complete lack of buyer’s remorse: this is, unequivocally, the nicest laptop I have ever owned.

That statement comes with a bit of a caveat, in that, historically, I have not tended to own especially nice laptops. My T480 was the previous standard-bearer. Don’t get me wrong—I think the T480 is quite attractive, in a utilitarian sort of way, and certainly well-built. But if your standard for quality in laptops is, say, a MacBook Pro—one of the ones without the notorious butterfly keyboards—then, well, I can’t really tell you whether you would be satisfied with the Framework, because I’ve never owned a MacBook. I have used one before, but not extensively, and that was about a decade ago at this point.

What I can say is that serenity does feel solid, and it looks gorgeous, and it’s a good 350 g (0.77 lbs.; 21%) lighter and 4.1 mm (0.16"; 20%) thinner than zephyr. The product photography on Framework’s website—not that my own photos are any better—doesn’t quite capture how the aluminum glistens; nor can you tell that the logo on the lid is inset slightly and features a classy gloss finish. It’s just a more beautiful machine in person, it seems, than pictures can convey.

The display is a bit smaller diagonally than zephyr’s 14" screen, but it has a much higher resolution, much thinner bezels, and a taller 3:2 (vs. 16:9) aspect ratio; so it really doesn’t feel any smaller, and it’s definitely nicer to look at.

The keyboard has a bit less key travel—1.5 mm vs. zephyr’s 1.8 mm—but to me it feels just as good, and maybe actually a little snappier. It’s unquestionably better than the keyboard on my work-issued 2023 Lenovo P16s. One thing I thought would bother me was the Mac-style9 arrow key layout: the left and right keys are full-height, while the up and down keys are half-height and share the footprint of a single key in between. In practice, however, I’ve hardly noticed this.

Side-by-side comparison of the arrow key layouts of the ThinkPad T480 and Framework Laptop 13. The ThinkPad's arrow keys are all the same size, roughly three quarters as big as a regular key. They are arranged in the traditional inverted-T layout, with the left, down, and right keys aligned at the bottom and the up key above the down key. The Framework's keys have the Mac-style layout; the left and right keys are the size of regular keys, and the up and down keys are half-height and fit into the space of a single key between the left and right keys.
Arrow key layouts of the ThinkPad T480 (left) and Framework Laptop 13 (right).

Similarly, I expected to miss the physical mouse buttons zephyr had at the top of the touchpad, for use with the TrackPoint.™ I used to use the TrackPoint™ heavily with my old X220, chimaera,10 but the touchpad experience improved so much between the X220 and the T480 that I lost that habit soon after making the switch to zephyr. Nonetheless, I continued to use the middle-click button constantly to open links in new browser tabs; but with no such button on serenity, it didn’t take long for me to get used to GNOME’s three-finger touchpad click instead.

Close-up of the ThinkPad T480's keyboard and touchpad, showing the TrackPoint: a red circle in the middle of the G, H, and B keys; and the three mouse buttons below the spacebar. The mouse buttons are asymmetrically sloped, with the wider left and right buttons peaking near the bottom and the smaller, wedge-shaped middle button peaking near the top. The left and right buttons have a red accent line at their bottom edge.
The ThinkPad T480’s TrackPoint™ and mouse buttons.

Software

Though I’ve tried a few other distributions11 here and there, Ubuntu has been my standby for as long as I’ve been in the Linux space. Notably, zephyr kept the same Ubuntu install—upgraded every six-ish months, from 20.04 through to 24.10—for the entirety of its five years of service; easily the longest I’ve ever gone without distro- or at least desktop-environment-hopping.

Still, in recent years, I’ve begun to accumulate a few minor annoyances with Ubuntu. For instance, while I don’t particularly mind either the snap or flatpak packaging formats, I do mind having to use both—flatpak because that’s where most of the rest of the Linux ecosystem has focused their efforts, and snap because it’s basically unavoidable on Ubuntu. The worst part about this is that the Ubuntu Software app doesn’t support flatpak, while the upstream GNOME Software app doesn’t support snap; meaning that in order to manage them both with a GUI, I have to switch between both Ubuntu Software and GNOME Software.

Maybe I’m just following too many anti-capitalist, free-culture types on Mastodon, but lately I’ve also started to question the long-term wisdom of relying on a distro which is primarily managed by an ostensibly for-profit corporation.12 I recognize that basically all Linux distributions receive a great deal of support—whether directly, or indirectly via upstream projects—from companies, and may even be untenable without such support. Nonetheless, it seems reasonable to think that a distro primarily managed by members of its own community is more likely to stay aligned with the interests of said community than one governed by corporate interests, even when those corporations are relatively benign.

Thinking about these things, I had already planned to try a different distribution the next time I got a new computer. Given my familiarity with Ubuntu, I figured it would probably be Debian.

Framework computers are known to work well with a handful of distributions, but the only ones that Framework officially supports are Ubuntu and Fedora. Despite their association with Red Hat, Fedora is a community-run distro, so I decided to start there and see how things went. Fedora also tends to follow the cutting edge a bit closer than Ubuntu, and especially closer than Debian, which led me to think it might have better support than Debian for my choice of relatively-new processor.

On the whole, so far, it’s been a delight. I’m sure at least part of that is the fancy new hardware it’s running on, making everything feel just that little bit more responsive than I’m used to. Part of it, too, can probably be chalked up to the subtle differences in typefaces and iconography, lending the whole thing the bright sheen of novelty.

I don’t think those factors are the whole story, though. Another factor—one that actually is a meaningful difference between Fedora and Ubuntu—is the configuration of the desktop environment. As much as I liked Unity of old, I have to say that Fedora’s use of GNOME as it was designed feels better, to me, than Ubuntu’s use of GNOME stuffed into a vaguely Unity-shaped box.

And, hey—if it’s good enough for Linus Torvalds, then surely it’s good enough for me.

Papercuts

So far, this post has been overwhelmingly positive; and, indeed, that accurately captures how I’m feeling about serenity one month in. That said, I have encountered a few minor hiccups, and I would be remiss if I tried to pretend otherwise. Each of these issues, however, have been easily solved—or in one case, has an easy solution, even if I haven’t gotten around to implementing it.

Loose touchpad

When I first got serenity, the touchpad seemed a bit loose: a two-finger scrolling gesture, for instance, caused it to make sort of a rattling sound. This seems to be a common problem, with more than one thread in the community forum reporting something similar.

One side of the touchpad is affixed directly to the input cover with a pair of screws. The other side—the side closer to the front edge of the laptop, the side that registers clicks—is held in place by a metal bracket.

The underside of the Framework Laptop 13's input cover. The hinge side is out of the frame, but it would be facing towards the camera. A red rectangle has been drawn over the image, highlighting the black bracket that holds the touchpad in place.
The touchpad bracket. In this image, the input cover has been removed and flipped over, with the hinge side now facing the camera, so as not to have to disconnect the touchpad’s ribbon cable.

The problem is that there’s a little bit too much space between the touchpad and the bracket, such that the whole touchpad assembly wobbles slightly when you administer a bit of force (but less force than it takes to actually register a click). Some people have solved this by inserting a slip of paper and/or a strip of electrical tape in between the bracket and the touchpad; others, myself included, bent the bracket juuuuust slightly towards the input cover in the middle. Done right, either approach eliminates the extra wiggle room so the touchpad holds firm.

Soft surfaces

The Framework Laptop 13 draws in air through vents on the bottom, and expels it through larger exhaust vents inside the hinge area. Set on a hard surface, the laptop is elevated just enough by a long rubber foot behind the vents to ensure adequate airflow. On my lap, even when wearing a blanket, enough of the vents stretch across the valley between my legs that, again, the laptop can bring in enough air to stay cool.

On a wider soft surface, however, such as the arm of my couch—where I am often forced to put it, as my cat frequently demands the prime real estate of my lap—the foot sinks into the surface; and the vents are constrained to a small enough area that it is easy for the fabric to block all of them. For now, I’ve solved this by setting my Kindle on the couch arm underneath the laptop, with the rubber foot resting on the Kindle to create a gap for air to flow. As it happens, laid in a landscape orientation, my Kindle is just about the same width as the vents.

I think I probably didn’t have this problem with zephyr because the T480 has vents all over its bottom surface, not just in one spot. Parts of it—with vents—were always overhanging empty space.

A sleeping black cat, curled up in a lap covered by a green-and-black blanket adorned with zeroes and ones.
The root cause of my airflow problem.

Mesa v25.x

The first few days, I was besieged by sporadic freezing. The mouse pointer would still move, but pressing keys or clicking on things produced no reaction, and I would be forced to perform a hard reboot. The freezing was often correlated with launching a web browser or a browser-based (i.e., Electron) application.

I found a number of threads for this issue as well. Solutions involved upgrading to a slightly newer kernel—which I was already on—and downgrading the Mesa graphics library from major version 25 to 24. The latter is accomplished with

sudo dnf downgrade 'mesa*'

Since then, I have had no further problems.

For the time being, I have pinned the Mesa libraries to version 24 using the versionlock plugin for DNF. This has to be installed:

sudo dnf install 'dnf-command(versionlock)'

…after which you can pin the currently-installed version of a package with e.g.

sudo dnf versionlock add mesa-vulkan-drivers.x86_64

I used dnf list 'mesa*' to identify which Mesa packages I had installed, and then pinned each of them in turn as above.

Unfortunately, installing updates via either the GNOME Software app, or the pop-up prompt that sometimes appears when shutting down the computer, does not respect versionlock. Until such time as a new version of Mesa becomes available that doesn’t have these issues on my hardware, I have to be sure to always decline that prompt and install updates exclusively with sudo dnf upgrade in the terminal.

iPhone photos

Since 24.04, Ubuntu has had out-of-the-box support for the proprietary HEIC image format, which iPhones use by default. Fedora, as of Fedora 41, does not. So far as I’ve been able to gather, this has to do with patent licensing costs rather than any technical limitation.

I currently have a 2022 iPhone SE with iOS 18.3. I use the KDE Connect app on the phone side and the GS Connect extension for GNOME Shell to sync photos to my computer.

I am not an avid photographer, so I don’t have a massive library of photos. Most of them are old enough—brought forward from previous phones—that they were created as JPEGs. I do, however, have a few dozen newer photos in the HEIC format.

Fortunately, it is still possible to configure an iPhone to use JPEG instead: in the Settings app, under Camera → Formats, I changed the Camera Capture setting from “High Efficiency” (meaning HEIC) to “Most Compatible” (meaning JPEG). This ensures any pictures I take going forwards will be usable in Fedora without any hassle. It also means the pictures I take will fill somewhat more space; but I’m not too concerned about that since, again, I am not an avid photographer.

For existing HEIC photos that I haven’t synced yet, there’s a neat (if slightly convoluted) little trick to convert them on the phone side:

  1. In the Photos app, select one or more HEIC pictures.

  2. Tap the share button.

  3. In the Share sheet, tap Options.

  4. The Options sheet has a Format section, with choices “Automatic,” “Current,” and “Most Compatible.” Choose “Most Compatible” and tap Done.

  5. Back in the Share sheet, select “Save to Files.”

  6. Choose somewhere to save the photos. I created a folder called “Converted Photos.”

  7. In KDE Connect, tap “Send Files” rather than the usual “Send Photos and Videos.” Then, find the converted pictures and send them to the computer.

That just leaves the problem of existing HEIC photos that I had already synced to zephyr, before copying all my files from zephyr to serenity. I could sync them again following the steps above, but that seems like it would be a pain.

Another option is to replace the preinstalled version of GNOME Image Viewer (a.k.a. Loupe) from Fedora’s RPM repositories with the flatpak version from Flathub. Reportedly, this comes with HEIC support enabled. It’s not a perfect solution, though, as other apps that deal with images would still be unable to open them, unless I replaced those apps too.

I could enable the popular-but-unofficial RPMFusion repositories, and install their version of the libheif package in place of Fedora’s. That should enable HEIC support everywhere. Past experiences with PPAs in Ubuntu make me reluctant to try this, however.

Probably the best solution overall will be to fire up zephyr again, mass-convert all the HEIC files to JPEG with ImageMagick, and then copy them back to serenity. I haven’t felt compelled to go through with that just yet. In the meantime, I’ve installed the Flathub version of the GNU Image Manipulation Program, which allows me to convert individual files on serenity when really necessary.

Footnotes

  1. Named for the plane from Marvel’s Agents of S.H.I.E.L.D. ↩︎

  2. I am attempting to follow what I believe is the typical convention these days, wherein memory sizes are usually expressed in terms of binary unit prefixes (GiB) while storage sizes are usually expressed in terms of decimal prefixes (GB). ↩︎

  3. Despite being American, I usually like to express measurements on the Internet in metric, both because it just makes more sense than imperial units and because I know the entire rest of the world is accustomed to it. But, screen sizes feel like a bit of an exception. I think it’s because in that context, it’s not just a measurement: it’s also a size class.

    Genuine question: rather than “13-inch” laptops, do people talk about “330-millimeter” laptops outside the US? ↩︎

  4. As I understand it: roughly equivalent to a 13th-generation Intel i5, but with better power efficiency. ↩︎

  5. zephyr had a full-size SD card slot. Framework also sells a full-size SD expansion card for $25, which I considered; but the only SD cards I deal with anymore are MicroSD cards, so this lets me stop fiddling with adapters. ↩︎

  6. Most of Framework’s products are manufactured in Taiwan, with some components manufactured in China. In the time I have been drafting this post, the US announced new tariffs on basically every country in the world—including especially severe ones on Taiwan and China—on April 2nd; implemented those tariffs on April 9th; substantially scaled back those tariffs, still on April 9th; substantially scaled up the tariffs on China specifically; announced tariff exemptions for some electronics; and threatened to impose yet more tariffs within the next few months.

    During the few hours on April 9th when the original tariffs were in effect, Framework temporarily raised prices in the US on most products by about 10% while absorbing the remainder of the tariff impact by reducing their profit margins. Some of the lowest-margin products were de-listed from the US store entirely.

    As of posting, I believe most of their prices are back to where they were at the time when I bought my laptop, but I wouldn’t count on the prices I listed or the free-shipping policy I mentioned still being the case whenever you’re reading this. ↩︎

  7. I’m not sure if Framework calls it a “mainboard” in an effort to use gender-neutral language, or if it’s because buying a mainboard includes the CPU and heatsink. Regardless, Framework’s website uses the term “mainboard” while Lenovo’s uses “motherboard,” so I’ve followed suit when referring to each product. ↩︎

  8. Named for the ship from Firefly. ↩︎

  9. While writing this, I became aware that MacBooks in recent years have gone back to the more traditional inverted-T layout. Ironically, I suppose that makes this more accurately “Mac-copycat-style”—e.g. Framework, Microsoft Surface—rather than truly being Mac-style anymore. ↩︎

  10. Named for Thrawn’s flagship. Suffice it to say that I like to name my computers at the intersection of mythology and science fiction. ↩︎

  11. Including Arch, BTW. ↩︎

  12. Why, then, am I so willing to sing the praises of a laptop that is, itself, a commercial product from a for-profit corporation? Well, for one thing—to my knowledge—the open hardware space isn’t nearly as competitive (yet) with commercial hardware as free software is with proprietary software. It would be false to claim I have no alternatives here, but pursuing them would likely mean making tradeoffs that I’m not presently prepared to make. Besides which, the whole concept behind Framework specifically is really about as customer-oriented as one could hope to see under capitalism these days.

    For another, there are a lot more ways that a company can make software worse, whether intentionally or not, after you’ve bought/installed it than is the case for physical hardware. ↩︎