# Comments on Aurora Developer Experience (DX)

**URL:** <https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407>\
**Category:** Aurora\
**Created:** [May 12, 2025, 1:40am UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407 "2025-05-12T01:40:41Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![SylChamber](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/sylchamber/32/6422_2.png) [@SylChamber](https://universal-blue.discourse.group/u/SylChamber)\
**Post date:** [May 12, 2025, 1:40am UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/1 "2025-05-12T01:40:41Z")

</div>

I’m giving Aurora DX a test drive (being a distro and desktop environment hopper, I have a laptop dedicated to these experiments 😄) and I must say I’m favorably impressed.

I’ve been working with cloud-native technologies for a couple of years (big fan of containers and Kubernetes), and of _course_ Universal Blue caught my eye.

Aurora DX is very near my ideal workstation. The one I would like to have at work rather than the Windows 11 with WSL2 box I’m forced to use. (My Kingdom for BYOPC!)

I must say I was skeptical on `brew`. I’ve tried it years before in Linux, and I didn’t like it, because some packages had to compile, and many were missing. Since then, obviously a lot more software has been _bottled_ for Linux. Only two packages seem to be missing for my DevOps toolbox: `git-credential-manager` and `Session Manager plugin for AWS CLI`. (The first, I got from the project’s GitHub page as a tarball and extracted it in my local bin folder; the second, I don’t need at home.)

What I like is the simplicity of software installation. Flatpak (was already a fan, even on Ubuntu/Kubuntu) for GUI apps, `brew` for the rest. And it works. (I did use AppImage for an app that isn’t packaged as a flatpak, that’s another welcome option.)

Managing software has been a hassle in Ubuntu LTS (which I also use at work in Windows Subsystem for Linux 2). Or rather, managing DevOps tools.

- Not every tool is the distribution’s repos
- I have to add repos for some
- for others, I must install from GitHub releases
  - I use [eget](https://github.com/zyedidia/eget) for those distributed as tarballs
  - for the packages distributed as `deb`s, I have to use bash scripts
  - often, man pages aren’t included with the tarballs, while the `deb`s usually do

I’ve been considering managing all this with Ansible scripts (it’s a pretty good configuration management tool in the DevOps space for that use case), but frankly it’s a lot of work. So much easier and simpler with `brew`.

I’d consider adding a few tools in the DX list, [chezmoi](https://www.chezmoi.io/) being first. I may be looking at doing pull requests.

Cheers!

---

<div class="post-metadata">

**Author:** ![j0rge](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/j0rge/32/8_2.png) [@j0rge](https://universal-blue.discourse.group/u/j0rge)\
**Post date:** [May 12, 2025, 2:17am UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/2 "2025-05-12T02:17:54Z")

</div>

Thanks for your thorough feedback, love this! I agree on chezmoi, it’s time:

> <https://github.com/ublue-os/packages/pull/454>
>
> It's time, this tool is too good, let's just call this another one of our strong… opinions. 😄

A pattern I’d like to move us to would be to have more focused brewfiles. We can ship as many as we want, right now it’s bluefin-cli and the kubernetes tools. We could have additional ones so we don’t end up making bluefin-cli itself too heavy.

Though chezmoi is a great tool - I have multiple machines, so I think that makes a great case to just have it in bluefin-cli.

Also these are command line tools for command line junkies. This would make a great ujust using the charm tools to make a nice tui. Because then we could put an update button in there and that would fix a major problem we have with this. Right now I have to tell you to disable and then re-enable bluefin-cli to “refresh” the thing, and that part still sucks.

---

<div class="post-metadata">

**Author:** ![inffy](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/inffy/32/7996_2.png) [@inffy](https://universal-blue.discourse.group/u/inffy)\
**Post date:** [May 12, 2025, 8:30am UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/3 "2025-05-12T08:30:57Z")

</div>

> [@SylChamber](#):
>
> I’d consider adding a few tools in the DX list, [chezmoi](https://www.chezmoi.io/) being first. I may be looking at doing pull requests.

Chezmoi is actually already part of the aurora-cli which you can enable with `ujust aurora-cli`

---

<div class="post-metadata">

**Author:** ![SylChamber](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/sylchamber/32/6422_2.png) [@SylChamber](https://universal-blue.discourse.group/u/SylChamber)\
**Post date:** [May 12, 2025, 10:41pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/4 "2025-05-12T22:41:34Z")

</div>

I could swear it wasn’t part of it when I first installed `aurora-cli`. I disabled it and re-enabled it, and indeed `chezmoi` was included in the `brew install` command. I got the ISO last week and installed the stable channel. I changed to the daily channel yesterday.

---

<div class="post-metadata">

**Author:** ![SylChamber](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/sylchamber/32/6422_2.png) [@SylChamber](https://universal-blue.discourse.group/u/SylChamber)\
**Post date:** [May 13, 2025, 5:24pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/5 "2025-05-13T17:24:30Z")

</div>

I didn’t know the concept of _brewfiles_. I like it. I didn’t even know Linux supported the _casks_ (seen in `aurora-fonts.Brewfile`).

This is so much simpler than managing my config with Ansible. Had I been told earlier about this, I’d have migrated to `brew` a long time ago. 😁

The cherry on the cake: `ujust update` or the **System Update** entry in the application menu. I get the feeling you people are as much into automation as I am. 🤣

I agree with focused brewfiles. I wouldn’t have put `stress-ng` in `bluefin-cli`/`aurora-cli`, it looks out of place. Maybe a “devops” brewfile? With tools such as `stress-ng`, `sops`, `age`, whatever.

One thing’s missing from Aurora DX: `chsh`. A developer may want to change the shell for `zsh` or `fish`. I had to edit `/etc/passwd` directly.

I’m going to do a PR for k8s tools to add `kubecolor` (by a CNCF ambassador in my town) and `k3d` (which I prefer to `kind` and `minikube`). I’d also add `gdu` in `[aurora|bluefin]-cli`. Didn’t know about `dysk`, I like it, it’s better than `duf`.

After trying out Aurora on my ThinkPad, I installed Aurora on my desktop PC (a custom gaming rig) last night. It fixed problems with suspension(?) (going to sleep) that have **plagued** me with Ubuntu 24.04 LTS for _months_. Must be due to the more up-to-date kernel and NVIDIA drivers. You have no idea (actually you probably do 😉) how many hours I lost trying to find a solution.

THIS really sold me on an “immutable”, near-rolling “distro”. I’m probably going to rebase to Bazzite though.

---

<div class="post-metadata">

**Author:** ![j0rge](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/j0rge/32/8_2.png) [@j0rge](https://universal-blue.discourse.group/u/j0rge)\
**Post date:** [May 13, 2025, 5:29pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/6 "2025-05-13T17:29:24Z")

</div>

> [@SylChamber](#):
>
> One thing’s missing from Aurora DX: `chsh`. A developer may want to change the shell for `zsh` or `fish`. I had to edit `/etc/passwd` directly.

This is purposely removed on our images, we do it this way: [Don’t change your login shell, use a modern terminal emulator - Siosm’s blog](https://tim.siosm.fr/blog/2023/12/22/dont-change-defaut-login-shell/)

> THIS really sold me on an “immutable”, near-rolling “distro”.

All of these features have nothing to do with immutability, which is why we don’t describe it that way. 😃

---

<div class="post-metadata">

**Author:** ![SylChamber](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/sylchamber/32/6422_2.png) [@SylChamber](https://universal-blue.discourse.group/u/SylChamber)\
**Post date:** [May 13, 2025, 5:37pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/7 "2025-05-13T17:37:12Z")

</div>

Never thought of that! 🤣 I’d wondered if there was a reason `chsh` was missing.

> All of these features have nothing to do with immutability, which is why we don’t describe it that way. 😃

That’s why I put it in double-quotes. 😉 I really like the idea of “atomic” updates and the possibility of rolling back, that’s what I was thinking about.

---

<div class="post-metadata">

**Author:** ![Mshrm](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/mshrm/32/5588_2.png) [@Mshrm](https://universal-blue.discourse.group/u/Mshrm)\
**Post date:** [May 13, 2025, 6:33pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/8 "2025-05-13T18:33:11Z")

</div>

Aurora stable is still on Fedora 41 until the kernel 6.14 is stable. Not sure what Fedora version daily is on right now. Fedora 42 images probably have it included.

---

<div class="post-metadata">

**Author:** ![inffy](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/inffy/32/7996_2.png) [@inffy](https://universal-blue.discourse.group/u/inffy)\
**Post date:** [May 13, 2025, 6:40pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/9 "2025-05-13T18:40:20Z")

</div>

Stable/stable\_daily both have the gated coreOS kernel. So currently 6.13.8.

---

<div class="post-metadata">

**Author:** ![ajgraves](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/ajgraves/32/6477_2.png) [@ajgraves](https://universal-blue.discourse.group/u/ajgraves)\
**Post date:** [May 14, 2025, 11:04pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/10 "2025-05-14T23:04:37Z")

</div>

Dumb question, but, what is the difference between gated and ungated in kernel context?

---

<div class="post-metadata">

**Author:** ![JohnAtl](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/johnatl/32/3485_2.png) [@JohnAtl](https://universal-blue.discourse.group/u/JohnAtl)\
**Post date:** [May 15, 2025, 12:20am UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/11 "2025-05-15T00:20:17Z")

</div>

The gated kernel has a slower release cadence than the ungated.

From the docs:

Gated Kernel

The gts and stable tags feature a gated kernel. This kernel follows the same version as the [Fedora CoreOS stable stream](https://fedoraproject.org/coreos/release-notes?arch=x86_64&stream=stable), which is a slower cadence than default Fedora Silverblue. The Universal Blue team may temporarily pin to a specific kernel in order to avoid regressions that may affect users.

> **[Administrator's Guide | Bluefin](https://docs.projectbluefin.io/administration/)**
>
> Day to Day Operation

---

<div class="post-metadata">

**Author:** ![SylChamber](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/sylchamber/32/6422_2.png) [@SylChamber](https://universal-blue.discourse.group/u/SylChamber)\
**Post date:** [May 16, 2025, 5:47pm UTC](https://universal-blue.discourse.group/t/comments-on-aurora-developer-experience-dx/8407/12 "2025-05-16T17:47:13Z")

</div>

There is even native support in Aurora for U2F PAM authentication (I’m using my FIDO2 key for `sudo` operations and unlocking my session). The `udev` rules are already there. There’s a tool to manage PAM authentication which I never heard about, [authselect](https://www.mankier.com/8/authselect). In Ubuntu and EndeavourOS, I had to manually modify `/etc/pam.d/` files.

And as I wrote elsewhere, both my PCs got upgraded from 41 to 42 and I wasn’t even aware of it. This is… really great.

I just can’t believe it. This is the most turnkey OS I’ve ever seen.

Wow. 😍
