• 1 Post
  • 181 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle






  • Separate your system and user lists. Use home-manager for example for your user packages. I think separating those configs is the official recommendation.

    As for the rest, I’m using nix on MX because of declarative package management. Screw going back to imperative and having to remember what packages to install. If it’s something I use often it goes on a list, if I don’t nix shell comes to the rescue.

    I’d rather mess around with dev envs for nix than distrobox.









  • Oh, yes we have. Gitlab, Codeberg, Notabug, etc. You can even host your own Gitea or Forgejo instance if you want.

    Self-hosting is right out for most people. It’s pretty expensive to even get started without compromising your home network (router with VLAN, switch, multiple servers (at least thinclients)), and then on top of that you need to maintain it, and can’t really ever max out your download/upload speeds because people are depending on your internet to interact with the repo.

    Gitlab is also for-profit, but also has blackouts and devs going rm -rf on the production DB. It’s often in the news for bad things, so I’ve generally avoided it.

    Codeberg is great for personal repos, but most smaller git hosting services have horrible SEO. Like I’ve had issues finding repos when searching for their exact name, if I had to use general search terms I’d only see github repos.





  • I’m going to have to come back to Nix/NixOS in a bit.

    Use nix + home-manager first for sure. It’s far easier, and you can slowly get into it while making a list of bleeding edge packages.

    I’ll probably wait until the official docs catch up as it appears that they are quite a bit behind

    Skip them altogether when you’re starting out. I gave up on trying nix the first few times due to how bad they are. zero-to-nix.com is better for learning the basics of nix.

    That and I’m not sure how I feel about a DSL for package management. I’d much rather use JSON or YAML, or even INI or TOML.

    The closest you can get is home-manager with a list of packages in a json-like format. It’s really not practical to develop a declarative system without a programming language. A basic example would be variables, more advanced would be to write a wrapper that modifies the package so it automatically runs the required cli commands to use your dediated gpu and nixGL with specific packages (nvidia-run-mx nixVulkanNvidia-525.147.05 obs for example).

    It’s sort of like IaC where you’ve got terraform (dsl), pulumi (various languages), and cloudformation (json/yaml). Can you guess which one is universally despised?

    Maybe if I were a LISP or Haskell guy.

    Then you’d use guix and a dsl made within an actual programming language (much better approach IMO).