Hey dudes, I know it's been a while since the last post for anyone following 10.2.1's progress. People waiting on the stable release have probably been watching for two and a half months. Yeah, this one's for you. But beyond just saying 10.2.1 is out, there are a few things I want to announce, some good, some less so. There's also a reason this one is landing a bit earlier than usual, but that part can wait until the end. Let's get into it.
10.2.1 is here
The version number might make it look like a minor bump, but this one has a lot going on under the hood. The reason it's 10.2.1 and not 10.3 is that 10.3 has different goals entirely, more on that when the time comes. What 10.2.1 is, is a focused fix release: things that should have worked correctly from the start, now fixed. More than 30 bugs were fixed in total.
Before the list: genuine thanks to vista, kib, Kris F. (Toshy developer), Yuki Imisura, Peter R., and H.C.G. (and anyone I missed) for the bug reports, testing sessions, and feedback that directly shaped this release.
Setup & first run
- New accent/variant selection screen in OOBE: after picking a language, you can now choose the regional variant (Brazilian vs. European Portuguese, US vs. UK English, etc.).
- Locale filenames now correctly handle accented and variant characters.
- Visible language names are now generated via python3-babel instead of hardcoded strings.
- Fixed the bug where language codes were saved incorrectly (e.g.
en_ENinstead ofen_US), causing subtle issues with date formats and collation. - Fixed an issue where the intro video failing to play (for any reason) would silently stall setup and leave you on a white screen with a small black square in the middle. GStreamer errors now trigger the same transition a normal video end would. Setup continues regardless.
- Added a fallback timeout for cases where the intro video pipeline never emits anything at all.
- Fixed: the Calamares installer slideshow wasn't playing during installation. This was a public beta issue, now fixed in stable.
- NebiGreeter has been moved to Wayfire. Previously it ran on cage, then weston in 10.2. It now uses the same compositor as NebiDE. The nice side effect: if NebiGreeter runs, NebiDE runs, because they're both Wayfire. One less class of "logs in but the desktop doesn't come up" problem. (There's still a hiccup going from NebiGreeter to NebiDE on nouveau, but H.C.G. and I traced that one down: it's nouveau being a garbage driver on modern cards, not a NebiOS bug. Nvidia, fuck you.)
- Btrfs is now officially unsupported and disabled at the installer level. On btrfs, home directories were being created under
/homeinstead of/Users, leaving no users visible at login. Since btrfs was never tested or listed as supported, disabling it is the right call. If btrfs support is something you'd like to work on, the codebase is open and contributions are welcome (see the FAQ for how).
Desktop environment
- Fixed a long-standing DBus session configuration issue responsible for a range of intermittent bugs across apps and system integrations. The
nebide-disable-dbusactivatablestartup workaround was put in place to mask some of these; with the root cause fixed, it's now disabled. One side effect of the same fix: apps that adapt their behavior based on the desktop environment were treating NebiOS as GNOME, and now correctly see NebiDE through properXDG_CURRENT_DESKTOPregistration. - xdg-activation protocol support is now enabled. Without it, when an app tried to bring a client forward, it just didn't. Open a .deb file while Bundle Store is running in the background and it would land in Bundle Store, but you'd have no idea because the client never came forward. Same thing with opening a link from Discord and Firefox not switching to you. Both classes of bug are gone now.
- Shell-level dialogs (trash confirmations, Super+Enter reminder, etc.) are now managed through a centralized system called nebide-shellaction.
- The panel clock now updates every 5 seconds instead of every minute.
- Fixed: hovering the clock now shows the date in the tooltip.
wcmandwdisplaysnow show a NebiDE-specific warning on launch, directing you to the right Control Center panel. Both tools remain accessible through the dialog for advanced use.- Fixed: clicking "Continue in wdisplays" left the warning dialog open on screen. This was a public beta issue. It now closes as soon as wdisplays opens.
Utility Panel
- Fixed: the trash bin always appeared empty regardless of its actual state. It now reflects what's actually in it.
- Fixed: the trash empty sound effect only played when emptying through
nebide-shell-trash. The sound code has been moved to the Utility Panel itself, so it works regardless of whether you empty through Nautilus, the terminal, or anything else. - Fixed: pinned Flatpak app icons were falling back to
application-x-executableinstead of showing the actual app icon. - Partially fixed: Utility Panel refresh issue. The remaining limitation comes from Waybar itself; there's a ceiling on what's possible within that framework. The custom panel system planned for NebiOS 11 will handle this properly.
nebide-shell-trashhas been moved intonebide-shellaction. The old command still exists for backward compatibility with earlier 10.x patches, but will likely be removed in NebiOS 11.
Control Center
- Display Settings: clicking a monitor in the arrangement diagram now correctly updates the settings panel. The two were out of sync before.
- Display Settings: the enable/disable toggle is now grayed out when only one monitor is active, preventing you from disabling every display.
- Display Settings: display configuration changes now show a 15-second confirmation dialog. If you don't confirm or the new config breaks your display, it reverts automatically. Borrowed from other desktop environments because it just makes sense.
- Regional Settings: the timezone picker now has an interactive map. Click your region instead of scrolling a list.
- Regional Settings: the "Auto timezone" toggle has been temporarily removed. It was only toggling NTP sync, not actually detecting your timezone, which isn't what it implied. A proper implementation is planned.
Wallpaper Engine
- Improved: the image loading algorithm in the Wallpaper Engine properties dialog has been rewritten. Opening the dialog while a wallpaper was still loading would leave the client unresponsive until the image finished. The dialog now opens immediately and images load noticeably faster. The desktop Wallpaper Engine itself is unaffected; this is only the properties dialog.
- Fixed: memory leaks in various Wallpaper Engine widgets.
- Improved: lyrics sync in the music player widget, especially on faster tracks where the previous sync was noticeably off.
- Fixed: a race condition where changing tracks while lyrics were still loading would leave the previous song's lyrics on screen. Whatever finished loading last would display, regardless of what was actually playing.
- Fixed: the same race condition existed in the comic reader widget for images. Same pattern, same fix.
Bundle Store & napp-runtime
- Bundle Store load times significantly improved. A large portion of the memory leak issues have also been addressed.
- Fixed: apps downloaded through Bundle Store were requiring an internet connection on first launch in offline scenarios, because manifests weren't shipping with the app. Now resolved.
- Fixed: when an app was updated through Bundle Store, the old app's permissions weren't being carried over to the new version.
- Fixed: when an app runs in no-sandbox mode, napp-runtime creates a temporary token that grants it the right to run unsandboxed. Those tokens were sitting in the global
/tmp. They're now scoped per user. - Download buttons on app pages now clearly show the package type (.napp, Flatpak, apt, etc.). As a reminder: you can switch the app repository or installation method through the three-dot menu at the top. This has been there since 10.2 but still seems to catch people off guard.
- Various other Bundle Store fixes and algorithm improvements.
- Introducing SafeFetch, a new NebiOS feature. SafeFetch makes sure that sensitive remote content (app manifests, storefront configuration, etc.) is fetched through trusted DNS servers instead of whatever the system DNS happens to be, which may be manipulated by an ISP or network administrator. It uses a hardcoded list of trusted resolvers: Cloudflare, Quad9, AdGuard, DNS.Watch, etc. If SafeFetch is disabled, Bundle Store shows an InfoBar warning. You can toggle it from Control Center → Privacy & Security.
System & images
- Fixed
/etc/os-releaseso apps no longer identify NebiOS as "Ubuntu 10.2." Follows the same convention as Pop!_OS and Linux Mint. - The Nvidia ISO is no longer experimental. The Vulkan errors and greetd issues present in the 10.2 Nvidia live ISO have been resolved. It took significantly more testing and debugging than the standard ISO, but it's stable now.
There are also smaller fixes that didn't make it onto this list, the usual assortment of things that are just quietly better now.
NebiOS 10.2.1 is available to download from the official website. If you're already on NebiOS X, open Bundle Store → Updates, download the update, then launch "NebiOS Update" from ~/Applications or the Launcher. The SourceForge mirror will be up within the next few hours.
About the Spanish translation
The April recap said the Spanish translation by vista would ship alongside 10.2.1. It won't, and that's my call, not vista's.
Here's the reasoning. Two months without a stable release is long enough, and 10.2.1 was always meant to be a focused bug-fixing update. Holding the whole thing back for a feature that fits better in a feature release didn't make sense. So the translation moves to 10.3, which is the last feature update for NebiOS X anyway. vista gets more time, and the work lands where it belongs. I reached out, explained all this, and vista agreed it was the better plan.
The translation itself is still in progress. There will also be a few new JSON files to cover by 10.3, since I've added more strings since. Sorry about that, vista. Thanks for sticking with it.
Fastfetch now supports NebiOS and NebiDE

I'd been expecting someone from the community to open a pull request for this eventually; that's usually how distro logos end up in fastfetch. But the feedback I kept getting since NebiOS X launched was that people wanted me to add it. So I finally made the time and opened the pull request myself. It got merged in about four days. CarterLi shipped a fastfetch release with NebiOS and NebiDE support a few days ago, I've already added it to the NebiOS repositories, and I'll keep it updated as best I can.
One note: I'm not a GitHub user. I use it only for contributing to external projects. NebiOS's source has always lived on GitLab, and moving it to GitHub isn't possible given how the project is structured (each NebiOS version is a GitLab subproject).
A year since NebiOS X went public
The NebiOS X public beta went out on May 12, 2025. That makes this month its first birthday.
The first person to actually look at it wasn't a tech site or a reviewer. It was Gregor Czaykowski (Loading Artist), who pulled up the NebiOS website on a Twitch stream a few days after the beta dropped, went through the screenshots, spotted his own comics running as desktop widgets, and said it looked like a lot of work. (That stream is archived here, if you want to see it.) The press came later. I sent It's FOSS the RC4 build, which they covered in October; that was the first time I'd ever reached out to a tech outlet. From there it kept going on its own, without me asking anyone: YouTube channels and write-ups around the 10.0 release, more through 10.1, and a wider wave around 10.2, from NotebookCheck and ZDNet to DistroTube. But the order matters to me: a cartoonist on a livestream came first, and everything else came after.
I know that's not how a Linux distribution is "supposed" to be introduced. There's a version of this story that happens at a tech conference, with a booth and a press kit. NebiOS just isn't that project. It has comic widgets, stickers, a Wallpaper Engine, artist partnerships. Being shown off on an artist's stream isn't a mismatch with what NebiOS is, it's the most accurate possible introduction to it.
A year in: downloaded across 114 countries according to SourceForge, the top Turkish-origin distro on DistroWatch, and still a one-person project. Thanks to everyone who tried it, broke it, reported it, translated it, and stuck around. That's the whole reason there's a second year to write about.
To mark the occasion, I'm opening part of the NebiOS archive, which has been private until now. The NebiOS X public beta and release candidate builds are now available at diskimg.nebios.org/archive. A fair warning: these are old, unpatched test builds kept for archival and curiosity purposes, not for everyday use. The rest of the archive, the older NebiOS versions and everything before them, stays private for now. I'd like to cover that part properly someday as part of "The Origins of NebiOS", though I can't give a timeline for it.
Before I go
A few things before I wrap up, some about NebiOS and some not.
First, the project. As I said in the previous recap, 10.3 is the last feature update for NebiOS X. I'll start talking about what's in it when the time is right. For now, if you run into bugs in 10.2.1 or have something to report, the feedback channels are open: Discord, or by email at [email protected] and [email protected]. Just know that I might be slow to respond over the next while, for reasons I'll get to below. The one thing that's certain: after 10.3, NebiOS X goes into maintenance mode and I move on to NebiOS 11. Maintenance mode means bug fixes and general updates only, so things like UI improvements won't happen in NebiOS X anymore. I held some of them back when 10.0 shipped too, either pushing them to 11 or deciding against them. After 10.3, all interface work goes straight into NebiOS 11.
Now the personal part. There are a couple of things I want to mention outside of NebiOS. One is that I had a birthday about ten days ago. I'm 20 now. Thank you to everyone who wished me well, whether from the NebiOS community or from the people I talk to elsewhere. It meant a lot.
The project is also going to slow down for a while. Part of it is travel: I have a flight on May 21, and I'll be going to two different places. One of those trips is tied to NebiOS: I'm hoping to meet Chris McCoy (Safely Endangered) while I'm there. Maybe I'll write about it properly afterward, maybe not. The other part is school. June is going to be almost entirely finals for me, resits included if it comes to that, so don't expect much movement on the project that month.
There's one more thing, and it's a bigger one: I'm planning to relocate. Not right now, but it's something I've decided on, and it's part of why some of this travel is happening. The short version is that the living conditions where I am aren't sustainable for me anymore, and moving is the answer to that. I'd rather not go into more detail here. Maybe another time.
That's it for this one. Thanks for sticking around, and I'll see you in the next.
— Sarp M.