CutefishOS: Unix-y development model? Check. macOS aesthetic? Check (if you like that sort of thing)

The Register - Fri Sep 24 10:50

Review One of the reasons Linux has never caught on as a desktop operating system, as Linux fans know, is that Linux isn't a desktop operating system, it's a kernel. And assembling it into a coherent package users can install is the job of a distribution.

This is a very different distribution model than the one Apple or Microsoft uses, and it confuses newcomers. Windows and macOS are easier to understand, they are single things made by single companies. Canonical and Red Hat notwithstanding, Linux is not packaged and presented this way at all. I've long believed that this difference is one of the key stumbling blocks to wider Linux adoption.

Apple has macOS, Microsoft has Windows, Linux has... hundreds of awkward, confusingly named options.

This is both Linux's greatest strength, and its greatest weakness. For those who already understand and use it the options are welcome. I've been a Linux user for over a decade and I've used several dozen distros, some of them so different from one another it's difficult to believe they're built from the same base. This wealth of options is great, but it's both confusing and overwhelming for new users.

Distributions like elementary OS are popular with people switching from macOS and Windows because elementary OS offers that same highly polished, all-in-one package that makes the transition from proprietary operating systems smoother. But this is Linux, so you can't just have elementary OS.

The latest distro to catch my eye is CutefishOS, which owes considerable design debt to both elementaryOS and the operating system made by that fruit company.

Cutefish Desktop

Cutefish desktop (click to enlarge)

CutefishOS seems to have started as a desktop environment (and it's still available as a desktop on Arch and Manjaro), and then progressed to a full distro built atop Ubuntu, or more specifically Kubuntu 21.04. When I first saw it I almost skipped right over it because do we really need yet another desktop distro? But CutefishOS turns out to have a couple of very cool tricks up its sleeve that make it a distro worth watching on even if you don't jump at this early stage of development.

CutefishOS doesn't yet have a 1.0 release, right now it's at a 0.4.2 beta that's labeled "developer edition." As such I would not suggest you rush out and install it, because it definitely still has some rough edges. That said, it's surprisingly polished for a developer beta and if it continues to develop at its current pace I think it has considerable potential.

The CuteFish desktop

Nearly every new desktop I've tried in the recent past has been GNOME-based. Not CutefishOS, which has embraced KDE and the Qt toolkit to develop its desktop and application base. When you install the Kubuntu-based version of CutefishOS you get all the Qt-based underpinnings of a KDE-based distro, but with CuteFish's own desktop environment and budding range of homegrown apps. Sound familiar? Yes, that's more or less the model elementaryOS has used, though elementaryOS does it using GNOME as a base.

I haven't been able to find out for sure, but I think the name CuteFish probably comes from the Qt-based underpinnings (Qt is usually pronounced "cute"). Whatever the case, it's nice to see developers working with KDE. And for a pre-1.0 release the CuteFish desktop is surprisingly usable. With Kubuntu 21.04 under the hood it's plenty stable, and I never had the desktop crash on me.

I also did some of my testing using the CuteFish desktop on top of Arch. That was slightly buggier, and more difficult though it may well have been my setup (I installed CuteFish alongside my existing Sway desktop, rather than doing a clean install as I did with the Kubuntu version). In both cases though, aside from some of the CuteFish apps crashing in Arch, I had no problem using it as my everyday driver for several weeks.

Cutefish Appstore

Click to enlarge

Aesthetically there's no getting around the fact that CutefishOS is what you might call "heavily inspired" by macOS. There's a dock along the bottom of the screen, and a status bar along the top. App menus show up in the top toolbar rather than in the app window, and the minimize, maximize, and other window controls are in the left upper corner (the wrong corner as it's also known). There's also a little "control center" drop down menu in the upper right corner that looks like it was pulled straight from iOS.

CutefishOS isn't a macOS ripoff by any means, there's plenty that's different — there's a fullscreen app launcher with a search box that's reminiscent of GNOME, for instance — but if you're the sort of person who spends hours downloading theme files to make your current favorite desktop look like macOS, then CutefishOS is definitely worth a look. It's also worth noting that the CutefishOS website lists JingOS among its "friends", and it does bear a certain design similarity to JingOS (which is itself inspired by iOS).

cutefish launcher

The launcher (click to enlarge)

However, even as someone who can't stand the macOS/iOS aesthetic, I still find CutefishOS worth trying because I think it's got a loosely coupled development and update model that strikes me as a step in the right direction. More on that in a minute.

But first, let me just say that when I say it's not quite ready for prime time I am mainly thinking of the homegrown apps that ship with CuteFish, not the desktop itself which is already quite solid and offers plenty of control over settings. While most apps you'd need in an operating system are there, many of them are very limited at this stage. That's to be expected in a 0.4 release.

cutefish settings/Files

Settings and files (click to enlarge)

Right now you get homegrown File Manager, Terminal, Settings Manager, Photo organizer, and couple of others (notably though, no mail client). Of these the most mature is the settings manager, which handles all the customizations and system tweaks from theme changes (there's a dark mode as well) to display resolution, touchpad controls, and more. Suffice to say that the tools you need to get connected and get work done are all there.

The included CutefishOS apps are all very basic, but functional — a good base the build on. Right now CutefishOS makes up what's missing by shipping a few KDE apps (Kate, Muon, Gwenview, etc), as well as a few third-party apps like Discord and Telegram.

Again, this has a certain familiarity to it. If you were to go back and read through early reviews of elementaryOS, you'd see the same criticism — nice start, but we're going to have to wait for the apps to get built out. The big question is, will CutefishOS eventually get to where elementaryOS has? I'm hoping it will because I like CutefishOS's development model.

Embrace the chaos?

Once I got past the aesthetic differences between me and the CutefishOS devs, I was intrigued by the decision to include two package managers. When you want to update the underlying system, you run Apt, just as you would on any Debian or Ubuntu derived distro. If you want to update the CuteFish desktop, though, you run Tap, a homegrown package manager that will update the CuteFish desktop on a rolling basis.

On the surface that sounds like a pain, especially if you throw in a few Flatpak apps — now you have three package managers to keep track of and run updates from.

In fact it is a pain, but only because those things have not been unified by a good GUI. Let's assume though that at some point CutefishOS provides a GUI app that integrates all of those into a single interface that isn't a pain.

I don't mean to handwave the problem away, because that is not a trivial thing to develop, but assuming the developers can pull that off you'd have a Linux distro with a solid base that gets updates at the pace of Ubuntu releases (twice a year), but a desktop environment that gets updates on a rolling release cycle. That's the best of both worlds in many ways, especially for distros that sit downstream of Ubuntu or Debian and want to iterate more quickly than the parent distro.

What makes it even more Unix-y is that it's embracing the chaos of choices in the Linux world and using it to build something that's well-designed and user-friendly.

The big question is, will CutefishOS manage to get there or will it fizzle out after an initial sprint. We won't know that for a considerable amount of time, but I do think it's one worth keeping an eye on. ®