You are browsing as a guest. Sign up (or log in) to start making projects!

Matcha Linux

  • 9 Devlogs
  • 50 Total hours

An Alpine Linux based distribution that comes pre-packed with a nice GUI, shell etc... And, of course, is green!

Ship #2 ✨ Blessed

3 months since the last release!

Here’s how Matcha Linux improved:

  • New install flow:
    • It can finally be installed on real hardware
    • Package installation is now more robust, handling package installation properly, with APK tags
    • Many new bugfixes within the matcha-calamares package regarding mounting, cleanup, package management and more
  • Installer optimizations - Live install environment uses only 2.5GB of RAM, allowing for 3GB of RAM support! (Huge improvement btw)
  • Bloat removal - The current build features a stripped version of GNOME without, saving both RAM and disk space. Some packages were replaced in favor of alternatives
  • OpenGL version checking - Some of the system components require OpenGL 4.3+ and GPUs that don’t support it now offload the rendering to CPU to avoid crashes

NEW Requirements

  • Memory: 3GB of RAM
  • Storage: 5GB free disk space for installation
  • UEFI Firmware: Required, legacy BIOS not supported

Known Limitations

  • If there is more than one iso9660 filesystem mounted while installing, the installer will trigger an error
  • Since the current requirement for GPU-driven OpenGL rendering is OpenGL 4.3+, some systems might feel sluggish due to the CPU doing all the work

I hope you enjoy testing and using Matcha Linux :D

  • 3 devlogs
  • 23h
  • 15.71x multiplier
  • 424 Stardust
Try project → See source code →
Open comments for this post

9h 52m 26s logged

Pre-ship devlog

This post is about everything that recently happened with Matcha Linux

1. New terminal app!

Yes, gnome-console got boring, so I replaced it! With none other than ghostty. It’s great - has hardware rendering support, native integration with Kitty image rendering (so fastfetch renders the logo properly) and MANY color themes, one of which happens to perfectly match Matcha’s look and feel.

2. Package management

Since ghostty is from Alpine’s edge repos, I had to find a native way of tagging the packages both while building the iso, and installing the system.

Previous approach blindly installed every package from live ISO. This works only when every package is designed to be sourced from the stable branch. One edge package and updates (or maybe the whole system) breaks!

Now, a helper file helps install the necessary packages both onto the ISO and later system’s disk. Since packages are installed by their names, not separate files from some medium, the installation can also be way more accurate and, in some cases, more compact.

3. OpenGL checks

Ghostty loves OpenGL. But it relies on OpenGL 4.3+, and on hardware that doesn’t support this - crashes. Luckily, if GPU bridge fails, CPU can handle OpenGL operations just as well!

Matcha Linux, starting from today, is expecting hardware to support OpenGL 4.3+ to utilize the GPU for OpenGL APIs. Anything older than 2013-ish (which goes on par with UEFI requirement) would fail. In case of that happening, I added conditional rendering to use the CPU as a fallback.

For now, however, it’s system-wide (to support any other software built with OpenGL 4.3+). OpenGL ES is not supported on the GPU at the moment.

4. Bugfixes!!

Who doesn’t love when their software just… Works?

The upgraded matcha-calamares installer now has a full cleanup stage, correctly catches errors regarding the install ISO presence, also has fixes for many other mount and install issues that could happen in earlier releases.

Bottom line

I love building this Linux distro. The challenges I have to face and the amount of operation ordering I have to do helps me improve. Structure is one of the skills I think humanity is yet to fully master, and i hope that one day, it can.

As for the future of Matcha, it will continue to grow! Tech never sleeps, new releases need updates, and Matcha mustn’t be left behind. I also have more ambitious stuff planned (like an update manager and distrobox install module for calamares), and they are the only thing I’m afraid of implementing.

For now, I’ll stick to making Matcha Linux as stable as possible, and then focus on something more exciting.

I hope more people find this distro to test, daily drive and share the feedback! Always exciting to engage with communities.

0
0
14
Open comments for this post

10h 35m 54s logged

3GB RAM milestone!!

How I managed to achieve 3GB RAM usage in the live environment (but at the same time - break a couple things)

Stage 1 - package optimization

Probably not a surprise to you that Gnome desktop environment is a heavy beast. Well, as it turns out, it bundles a bunch of stuff that’s not technically required to run the system.

Alpine package gnome adds many apps (like calendar, weather and more) that aren’t relevant anymore. However, even though unused, they take up space, and in Alpine, the live environment installs every package onto ram to provide a diskless environment.

At first I tried making a filesystem capable of loading packages from mounted iso as it’s necessary for the install either way, but optimizing package selection turned out to be easier (besides - who has a 64bit system with less than 6GB ram these days?)

Stage 2 - package loading

The fact that package selection is optimized to reduce Gnome’s bloat wasn’t enough to make the install environment lighter.

Alpine has a file /etc/apk/world in which every package that should be installed is defined. Utilizing it I could control what packages must appear within the live system, and which - not (because you probably don’t need a heavy browser before installing the system).

Stage 3 - things break if you’re too brave

And they broke for me too. Certain admin functionality (like some polkit integrations) don’t work anymore due to the limited selection (and probably some hidden dependencies) of packages.

I think I have diagnozed the issue though - testing suggests that it could be the missing linux-pam package or some dbus initialization race conditions.

Other important updates

Besides implementing optimizations to the image (consequences of which I can hopefully fix), I also made sure to update extensions, as well as the matcha-calamares package that now has a broader support for systems and reduces crashes. The building pipeline was also slightly tweaked.

Either way, I’m off to fixing the issue, so see you in the next devlog!

0
0
7
Open comments for this post

2h 36m 35s logged

Today, when one Hack Clubber pointed out that they wish to try Matcha Linux on Hyper-V, I thought it would work. Turns out I was completely wrong!

Linux, built with the LTS kernel instead of VM-specific (Virt), breaks on Hyper-V due to inability to pass the framebuffer through Hyper-V’s exceptional drivers (or so I think). The minimal terminal works, but flickers due to GDM trying to restart every few ms.

Implementing a dual-ISO build pipeline I fixed this issue and also made Matcha Linux and its packages work on top of a new Alpine (v3.24) release. Thought it would be harder, but both Alpine itself, and Gnome 50 play along very well!

Also added Hyper-V specific instructions to the README.

0
0
32
Ship #1

I engineered Matcha Linux - a fresh, fast, and fluid desktop OS built on top of Alpine Linux to combat software bloat and give any x86_64 UEFI hardware a life with a gorgeous and usable GNOME experience. It idles at JUST 1.5GB of RAM!
The OS includes a custom port of Calamares installer specifically made for Matcha Linux (which probably took the most amount of work), and a heavily customized unique GNOME desktop.
Navigating the initial release was a rollercoaster of debugging broken services, installer locales, build and install issues, encryption, swap configuration and ISO permissions, but the stable 2026.06.09 build is officially live, works out-of-the-box.
Before testing it live or in a VM (4GB RAM, 10GB storage minimum, UEFI only), note that native glibc apps require a quick Distrobox container setup to run on Alpine.

  • 6 devlogs
  • 27h
  • 15.16x multiplier
  • 407 Stardust
Try project → See source code →
Open comments for this post

5h 48m 7s logged

It builds, it runs, it WORKS!

I was really surprised with how this OS turned out. After what seemed like a rollercoaster of issues that had me stumped for a while, and countless hours of debugging, I STILL managed to deliver a working product this soon. It relieved me, and I can consider myself both lucky and proud.

After fixing all said issues in the previous devlogs, I present Matcha Linux 2026.06.09 - the initial release.

Matcha Linux was made to combat e-waste, hardware pricing increase and provide a beautiful yet customizable experience to absolutely anyone! By being able to run it on any x86_64 UEFI-compatible piece of hardware, using very few resources, Matcha Linux aims to be the primary choice for people trying to escape bloat.

What was fixed since the last devlog:

  • Swap not working due to a service not being run on boot
  • Locales not being correctly set up due to a missing installer module

Additional tweaks:

  • Reworked the permission system to be more reliable and controllable (when building the live ISO image)
  • Implemented a proper post-install reboot mechanism by tweaking installer’s configuration
  • Refactored build source files to be more compact, added comments where necessary
  • Removed keyboard configuration from the installer due to it not being well integrated with GNOME
  • Cleaned up repositories, added better documentation, published first working release files

I consider this experience a lesson not only about Linux, but also the need of doing things sequentally, planning and always going forward, no matter what challenge waits up front.

Do I have something else planned for the future?

YES! But these things may be quite difficult:

  • A custom installer module to provide the setup for Distrobox (to run almost any Linux app (by default they won’t run unless installed through APK and are within Alpine Linux repositories. Running layered Debian, Arch or Fedora boxes creates disposable and highly capable environments))
  • A custom updater program (probably won’t be integrated this summer)
  • Further debugging and engaging with the community

I hope this project inspires many people to build projects and solve problems for the whole world.
Open source, as it should be.

0
0
10
Open comments for this post

4h 52m 47s logged

Several bugs fixed! (And one drawback taken)

First off, with the fixes:

  • Installer UI no longer crashes when selecting a swap option or entering encryption details (the issue was only persistent on legacy BIOS boot and without a certain configuration file (bootloader.conf, that got added))
  • Encryption finally works! Can’t show in the devlog image, but a disk can be encrypted and decrypted with LUKS properly
  • A non-encrypted approach of installation is also viable and works as it should

Drawback (the sad part):

  • Since I couldn’t get legacy BIOS to not crash the installer in a mentioned case, after strong considerations I have decided that Matcha Linux will only officially support EFI, and enforced this behaviour in the build pipeline
  • This gets along the philosophy of using modern lightweight standards that Matcha tries to utilize, so it’s not much of a loss

What remains broken:

  • Swap memory does not seem to be working in the installed system, even when the necessary files ARE created by the installer
  • Timezones don’t still work properly

After fixing said issues the project will be ready to ship. Hopefully it shouldn’t take more than a week

0
0
6
Open comments for this post

2h 2m 46s logged

I have successfully resolved the issues found in the earlier build, and everything works (almost) flawlessly now!

New things:

  • Cleaned up build scripts to make them more portable and more easily readable
  • Implemented package exclusion when installing the OS
  • Customized the default dock apps list
  • Improved branding by implementing FastFetch configuration

However, I have noticed some bugs that are worth taking a look into:

  • When setting up the disk with swap space, the installer crashes. Maybe just a package missing that handles this
  • LUKS encryption does not work
  • Timezone setup is useless as it doesn’t set up the timezone (manual setup is working post-install, but the installer SHOULD set that up)

After fixing those, Matcha Linux can finally ship!

0
0
8
Open comments for this post

9h 6m 28s logged

Since the last devlog, I put in a LOT of work to make the whole OS build properly

This includes:

  • Setting up a well-working approach for installing Matcha Calamares installer to the live system
  • Adding a README to (almost) all repositories related to this project
  • Customizing the installer
  • Tweaking a few things for smoother performance

Next steps are:

  • Removing hardcoded references to just make the images “build and run”
  • Reflecting ways of optimization
  • Excluding unnecessary stuff from the installed system
  • Testing everything for the final time
  • Shipping!
    Wish me luck, now I’m heading out, polishing this project
0
0
10
Open comments for this post

1h 22m 31s logged

FINALLY did I fix the system running incorrectly
Turns out, the problem was a faulty overlay that kept overwriting user account files, thus revoking the ability for some system services to run!
Now the system installs beautifully, runs even prettier, only thing left is to test whether there is no junk in a fresh system and the user is set up correctly and if the startup times could be improved (unless it’s VirtualBox-specific)
Other goals haven’t changed since the last devlog, but I am starting to question if I really need to write software for this distribution myself (for issuing updates, etc…) because the process should be fairly straightforward

0
0
10
Open comments for this post

3h 41m 31s logged

First devlog, and with good news already!
After successfully porting Calamares installer over to Alpine Linux, today I also made it install the system correctly
The issue was bad grub configuration that either did not mount the system or did not load ext4 kernel module
With that resolved (and a bit of a rework on live iso build profile) Matcha Linux is one step closer to being at least usabe post-install

Remaining issues are:

  • Incorrect group and user creation process due to which dbus service can’t launch (critical)

Remaining steps are:

  • Testing if other core services that depend on dbus launch after fixing the issue
  • Testing the system and whether everything copies correctly

Future plans:

  • Customizing the installer
  • Adding a DistroBox Debian shell by default for app compatibility
  • Making an updater app
0
0
18

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…