nix-config
devbox
Our great sponsors
nix-config | devbox | |
---|---|---|
4 | 47 | |
32 | 7,456 | |
- | 6.2% | |
9.1 | 9.7 | |
27 days ago | 1 day ago | |
Nix | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nix-config
-
BTFS (BitTorrent Filesystem)
Just the other week I used Nix on my laptop to derive a PXE boot images, uploaded those to IPFS, and netbooted my server in another country over a public IPFS mirror. The initrd gets mounted as read-only overlayfs on boot. My configs are public: https://github.com/jhvst/nix-config
-
Use nix-shell or systemPackages
You should look into configuring your neovim with home-manager. This wraps the tools needed for various language servers in a way that solves your concern. Upside is that now you can also move the whole neovim configuration into servers etc., if you prefer that, just by importing your neovim configuration. I have done this in my configuration.
-
NixOS 22.11 “Raccoon” Released
Plugging my own thing here, but I have been experimenting with a Nix configuration for gaming only. My configuration is here (for Nvidia, which does not work without tinkering as AMD does) : https://github.com/jhvst/nix-config/blob/main/nvidia.nix
First, this is a whole system specification. This means that executing this on Nix will build you a whole OS image. You can build the image if you have Nix by running the first line on file. You can also use Docker with the instruction on my README: https://github.com/jhvst/nix-config
Back to elaborating on the Nix file from the gaming perspective. First, we have the overlays. These are like patches to the packages, and really useful for gaming because it allows building important packages like mesa from the source tip. This is particularly useful when new games or GPUs are released. Same thing for wayland: Nvidia and its proprietary drivers need some patching, but it's possible to get wayland (and sway) to work this way.
Then, I have taken the reproducibility of Nix to a next step in my opinion, and made the system stateless. This means that it runs from the RAM. It is easy to create installation media like kernel, initrd, and rootfs because you have all the steps to create the distribution. This means that here, Nix works as a meta-distro like Gentoo, on top of which you develop your own. Running from the RAM means that theoretically, if you have a working config, and two people with different hardware runs it, then they should have the same experience. If you look at ProtonDB, you often find that some people claim that game X works on their machine with drivers and mesa of Y and Z, but there is no way to copy their configurations because it's certain that the user has made some stateful changes which they have forgotten hence left undocumented, which is the reason it works for them. If everyone would be using Nix, you could reproduce their system and possibly fix your own, but this is not tractable with most OSs.
If you like to test my changes, you can read more about my approach here: https://github.com/NixOS/nixpkgs/pull/203750
For testing I distribute Nvidia as documented here: https://github.com/jhvst/jhvst.github.io/blob/main/ramdisk.m...
However, I have developed it bit further: if you manage to get into an iPXE shell, you can write `boot -a http://boot.ponkila.com/menu.ipxe`, then select the second option which is Nvidia (proprietary drivers), and with some waiting you will get into a shell prompt to which you can write `sway --unsupported-gpu`, which will launch sway. Cmd+Enter opens a prompt to which you can write `steam`, which will open Steam. Then, you have to mount some drive on another shell with `mount`, and add this as a Steam library via Steam's UI. Then you can play games. I use this on AMD and I have been very happy.
-
NixOS on Raspberry Pi 4 & enabling Ethernet over USB
You will need to have a DHCP server which has to be configured with ARM 64 bit file name option to point to the efi/boot/bootaa64.efi in the TFTP server alongside option called UEFI HTTPBoot URL which has to point to the RPI_EFI.d file from the ipxe project builds. Unfortunately, I have no idea how to apply the DHCP settings unless you happen to run pfSense, which has the option under DHCP server settings. If you manage to do this some other way, you can then add a file called autoexec.ipxe to the efi/boot folder. You can generate the autoexec.ipxe file by running the following script, for example: https://github.com/jhvst/nix-config/blob/main/minimal.nix (the command to run it is in the first line of the file).
devbox
-
Show HN: Flox 1.0 – Open-source dev env as code with Nix
How does Flox compare to Devbox? https://github.com/jetpack-io/devbox
- Instant, easy, and predictable development environments on any machine
-
PackagingCon – a conference only for software package management
I've spent the last year managing all my packages with Devbox (https://github.com/jetpack-io/devbox).
Local dev, cloud dev, CI, production – all with the same config file. Fingers crossed my talk submission for PackagingCon gets accepted. It'd be awesome to share this new way of working with a wider audience.
-
NixOS and My Descent into Insanity
> Now to figure out what a "flake" is…
Flake is a worthwhile addition to Nix that is worth learning. But like anything Nixian, it's not straightforward.
Have you checked out any of the tools that aim to simplify Nix experience? We built Devbox (https://github.com/jetpack-io/devbox) with this in mind.
-
TySON: a native go library that lets you use TypeScript as an embedded configuration language without depending on Node or V8
Also devbox ( https://github.com/jetpack-io/devbox ) which is what this is for does not work on windows because of its Nix dependency.
-
Simplifying preview environments for everyone
For these reasons, I believe most developer environments should prioritize developer experience over fidelity. Tools like Containerized development environments and cloud emulators can strike the right balance and there’s no surprise that we see increased activity around devcontainers, and similar solutions.
-
Codespaces but open-source, client-only, and unopinionated
Local first, cloud optional is the only way (IMHO) we're going to get people off their local laptop development setups.
We need to support local dev environments first, with the exact same config a developer can then move to the cloud.
See https://github.com/jetpack-io/devbox for how this can be achieved and https://www.mikenikles.com/blog/dev-environments-in-the-clou... for my thoughts after 3 years of working in this space.
-
Why did Nix adopt Flakes?
If you like the properties of Nix, but find it confusing, you should check out Devbox! It simplifies the process of creating Nix-powered dev environments:
https://github.com/jetpack-io/devbox
-
NixTest: a tiny unit testing framework written in pure nix
As part of the work we've been doing with [devbox](https://github.com/jetpack-io/devbox), we needed a unit testing framework to test some of our nix code. Unfortunately we had some use cases where we did *not* want to introduce a dependency on `nixpkgs` (and therefore we couldn't use `runTests`).
-
Docker's deleting Open Source images and here's what you need to know
You might be interested in Devbox (http://jetpack.io/devbox)! We built Devbox because we were frustrated with our Docker based dev environments, and our goal is to provide the power of Nix with a more accessible interface (similar to yarn or other package managers).
We're open source and rapidly adding features, you can check us out on Github at https://github.com/jetpack-io/devbox
What are some alternatives?
vanitygen-plusplus - A vanity address generator for BTC, ETH, LTC, TRX and 100+ more crypto currencies.
devenv - Fast, Declarative, Reproducible, and Composable Developer Environments
core - OPNsense GUI, API and systems backend
devpod - Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.
nix-autobahn
distrobox - Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
nix - Nix, the purely functional package manager
Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]
nix-alien - Run unpatched binaries on Nix/NixOS
asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more
nsh - OpenBSD networking configuration shell