I’m preparing for a new PC build, and I decided to try a new atomic OS after having been with NixOS for about a year.

First I tried Kinoite, then Bazzite, but even though KDE has a lot of features, I found it incredibly buggy, and it even had generally poor performance, especially in Firefox. I don’t really have time to diagnose these issues, so I figured I would put in just a little more effort and migrate my Sway config to Fedora Sway Atomic.

I’m glad I did. The vanilla install of Fedora Sway is awesome. No bloat and very usable. I haven’t noticed any bugs. Performance is excellent. And it was very straightforward to apply my sway config on top without losing the nice menu bar, since Fedora puts their sway config in /usr/share/sway.

I’m also quite happy with the middle ground of using an OSTree-based Linux plus Nix and Home Manager for my user config. I always thought that configuring the system-level stuff in Nix was the hardest part with the least payoff, but it was most productive to have a declarative config for my dev tools and desktop environment.

I originally tried NixOS because I wanted bleeding edge software without frequent breakage, and I bought into the idea of a declarative OS configuration with versioned updates and rollback. It worked out well, but I would be lying if I said it wasn’t a big time investment to learn NixOS. I feel like there’s a sweet spot with container images for a base OS layer then Nix and Home Manager for stuff that’s closer to your actual workflows.

I might even explore building my own OS image on top of Universal Blue’s Nvidia image.

Hope this path forward stays fruitful! I urge anyone who’s interested in immutable distros to give this a try.

  • @[email protected]
    link
    fedilink
    44 days ago

    Hell yeah! I’m on Bazzite, myself. I’m ok with KDE but might swap it out later. Did you rebase to get from Bazzite to Sway?

    I think the ostree stuff is really neat. Nix sounds like a great complement to it, I guess you can configure it to install to /var pretty easily? I think I’d prefer that to brew.

    I’ve been interested in ostree so much that I’m moving a few other things over to IoT. Building your own makes too much sense, updating layers is so slow. I’m trying to use rpm-ostree compose to make my own version of IoT but I am struggling to modify the containers it builds or turn them into ISOs. All of their tooling is needlessly complex.

    • @tatterdemalionOP
      link
      44 days ago

      I just clean installed Sway. The last time I tried a rebase from Kinoite to Bazzite it left me with a weird set of flatpaks and removed Firefox somehow. Probably wasn’t a big deal but it was easy enough to start fresh.

      And yeah Nix store can live in /var. That’s where it ended up when I used the nix-installer provided by Determinate Systems.

      Hmm what you say about the ostree tooling is unfortunate. I was hoping to make my own image at some point. What specifically is overly complex?

      • @[email protected]
        link
        fedilink
        3
        edit-2
        3 days ago

        The last time I tried a rebase from Kinoite to Bazzite it left me with a weird set of flatpaks and removed Firefox somehow

        There’s a warning against this in the Bazzite FAQ, so that’s not too surprising. It’s referring to DEs, but different “distributions” also applies I presume. I hope that becomes solved in the long run, as it is one of the current downsides with Silverblue etc

      • @[email protected]
        link
        fedilink
        34 days ago

        The problem I’m running into is attempting to create an image fresh from the yaml “treefile” and building on that. I think I know what they’re using but the documentation on how to reproduce the build isn’t great.

        I’d also like to isolate the build into containers, which makes the whole thing harder because the build process uses containers and loop devices.

        You might get up and running faster if you start from an existing atomic distro and layer packages on top. The ublue-os repos have an automated script that you could use as a reference.

        • @tatterdemalionOP
          link
          34 days ago

          Gotcha, lack of docs is tough.

          Ideally I would use an existing atomic distro with both Sway and Nvidia drivers, since I’m currently failing to install those drivers without getting black screen on boot (the issue).

            • @tatterdemalionOP
              link
              2
              edit-2
              1 day ago

              Wait. Where are you finding the sway image? I’m browsing the images but I don’t see it.

              EDIT: Maybe it’s only Way blue that has sway?

              • @[email protected]
                link
                fedilink
                21 day ago

                It’s found here. It’s called sericea-nvidia. For this image, please refer to the installation guide found here if you’re interested.

                • @tatterdemalionOP
                  link
                  21 day ago

                  Oh thanks! I didn’t notice “Sericea” was the name of this image when I installed it. Wish that had been more obvious.

            • @tatterdemalionOP
              link
              21 day ago

              Oh I didn’t realize they had one with Sway. That helps!

                • @tatterdemalionOP
                  link
                  21 day ago

                  After a little more time with it, I’ve noticed that nvidia + sway is causing a lot of flickering on updating rectangles of any window, presumably from a compositing issue. I expected the “explicit sync” fix in the 555 Nvidia driver to fix this, but I’m currently running 555.85. I hope it’s not some other issue.

                • @tatterdemalionOP
                  link
                  21 day ago

                  So right off the bat I tried rebasing from Fedora Sway Atomic to the Wayblue sway-nvidia image, but I got the error:

                  Package 'rpmfusion-nonfree-release-40-1.noarch' is already in the base
                  

                  I think because I had previously tried installing nvidia drivers from RPM Fusion. So I reset back to the base image with:

                  rpm-ostree reset --overlays
                  

                  After that everything went smoothly and I’m apparently booted with a functional Nvidia driver. Thanks for the help! I’m off to try running some graphics.

            • @tatterdemalionOP
              link
              32 days ago

              Thanks! I had seen the ublue template, but not that blue build tool. Will check it out.

          • @[email protected]
            link
            fedilink
            34 days ago

            Oh dang that seems like a nightmare. It does seem like it is going through some growing pains particularly with kernel mods.