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.

  • barsquid@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    5 months 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.

    • tatterdemalion@programming.devOP
      link
      fedilink
      arrow-up
      4
      ·
      5 months 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?

      • vividspecter@lemm.ee
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        5 months 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

      • barsquid@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        5 months 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.

        • tatterdemalion@programming.devOP
          link
          fedilink
          arrow-up
          3
          ·
          5 months 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).

          • barsquid@lemmy.world
            link
            fedilink
            arrow-up
            3
            ·
            5 months ago

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

                • tatterdemalion@programming.devOP
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  5 months 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.

                  • poki@discuss.online
                    link
                    fedilink
                    arrow-up
                    1
                    ·
                    edit-2
                    5 months ago

                    Unfortunately, I don’t own any device with Nvidia. Hence, I don’t think I’ll be able to help out. However, wayblue’s maintainers are pretty active. Therefore, consider opening an issue on its GitHub page and perhaps they’ll be able to help out.

                    I apologize for not being of much help here. Wish ya good luck, though!

                    Happy cake day btw!

                • tatterdemalion@programming.devOP
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  5 months 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.

            • tatterdemalion@programming.devOP
              link
              fedilink
              arrow-up
              2
              ·
              edit-2
              5 months 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?

              • poki@discuss.online
                link
                fedilink
                arrow-up
                2
                ·
                5 months 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.

                  • poki@discuss.online
                    link
                    fedilink
                    arrow-up
                    2
                    ·
                    5 months ago

                    It has been my pleasure!

                    It used to be called Sericea. However, the obscure names started to become very unwieldy. Therefore, they chose to preserve the naming for earlier established and recognized names (i.e. Silverblue and Kinoite) while Sericea became Sway Atomic instead.