musicmatzes blog

nix

I just released the version 0.2 of the nixos-scripts. Read here what is included in this release.

44 patches are included in this release, merges not counted. There were some basic changes and a handful of features were added.

First, the switch command includes the hostname of your machine by default now, whereas the flag is now changed from adding your hostname to preventing the hostname in your tag.

The tags which are generated by switch are no longer annotated.

The switch command also has now an option to do all the things, but not nixos-rebuild at all.

The switch command can also tag the local nixpkgs clone now if the switch succeeded. The subcommand switch is default for the switch command now, you don't have to do nix-script switch -c switch, you can do nix-script switch.

The command for updating a package definition has now a flag for not checking out a new branch before updating the package. This can be used to mass-update packages on one branch. Also a flag for not checking out the base branch after a successful update of a package.

The user gets less output now, only output which can be relevant to the user is printed if the -v flag is passed to the nix-script command. The -d (debugging) flag prints all the information which can be used to debug the scripts now. But normal users don't need this flag.

All the scripts have support for the RC file now. You can put configuration in ~/.nix-script.rc now, so you don't have to pass things all the time. For examples, see the nixos-scripts repository at github.

Channel tools were integrated as well. The channel tools can be used to diff between channel generations, list the channel generations, checkout a specific channel generation and so on. More utilities will be included as time goes on, of course.

What is in the pipeline

Of course, the next release is already planned. v0.3 will land as soon as there are enough new features. In the pipeline is already:

  • A tool to update the nixos channel and generate tags for it in the configuration directory
  • A repo-reset command, which can be used to generate a branch in your nixpkgs which is based on the commit which your current nixos generation is build from
  • Container helpers. Everything you need to manage nixos-containers
  • diff-generations will be able to list the diff in your configuration
  • A tool for test-building a package based on a special branch

More things will be done behind the scenes: Verification that everything worked well, checks before commands are executed, on so on.

v0.4 will be a one-feature-release which will only include completion support. The PR on github for this feature exists already, but it will be developed until v0.3 is ready and if everything works, it will be integrated with a single merge commit.

So that's it for today. tags: #linux #nix #nixos #software #tools

NixOS has a new Logo. So I have a new wallpaper now.

Awefully enough, my last wallpaper had this stupid error in the slogan. I just created a new wallpaper I want to share now, feel free to use and/or modify it (both the .png and the .xcf files) under the terms of WTFPL.

I think I got the slogan right this time.

NixOS wallpaper

GIMP project file. tags: #linux #nix #nixos

Finally I got NixOS installed on my Thinkpad as well. I created a wallpaper for the device, which I want to share here.

Another blog post about the switch on my Thinkpad will follow.

So here we go:

NixOS wallpaper

As you can see, I'm not really good at designing wallpapers.

Feel free to customize my gimp project, if you want: GIMP project file.

LICENSE: The above files (the wallpaper image and the GIMP project file) are available to you under terms of the terms of WTFPL. Everything else remains under the license of this blog, though.

tags: #linux #nixos #nix

As you might have noticed, I'm about to switch to NixOS, the purely functional Linux distribution ™. Here are some toughts on Racket on NixOS.

First, why Racket? Well, my blog here is written using frog, the frozen blog tool which is written in Racket . It actually works really well for me and was not that much effort to setup – I'd recommend it to everyone.

But this isn't about frog, this is about racket. So, I need Racket for my blog. But I also like Racket, I played with it some time ago and it is a neat language, really!

Because of my switch to NixOS I wanted to try whether I can compile my blog on NixOS, so I installed Racket on my NixOS-testing machine. And you know what is awesome?

It. Just. Worked.

When installing racket, the racket language distribution ships everything you need. It ships the racket interpreter, it ships DrRacket, the Racket-IDE, the REPL, the package manager for racket. I was able to install frog and compile my blog in 3 steps.

  1. Install racket
  2. Install frog using the racket package manager
  3. Compile the blog

Well, you actually do not use the nix package manager when doing the upper steps, which is, of course, impure. But I wanted to focus on whether it works or not here, not on purity. Of course it would be much better to be able to install frog via the nix package manager, keeping everything in the nix store. But that's not possible (yet), I guess. tags: #linux #nixos #nix #blog

I heard about NixOS at the unfuck conference at my university the very first time. And I was impressed (although I was very tired at the moment the talk came up).

NixOS is, from my point of view, the next generation OS. The idea behind the package managing and handling of dependencies is just the way it should've been all the time. No longer “will this update crash my system or not?” fearing! So, finally, I installed NixOS on my secondary device this week. I had a Debian running Gnome3 on it beforehand, so I wanted to keep my /home directory.

I first burned a USB drive with a NixOS live image on it and started it. It shipped with KDE, which was not my taste (but way better than Gnome3 of course), but hey – on this kindof old machine, it just ran like hell! It was very fast compared to this Gnome crap!

I rebooted and chose the install option in the boot manager. I got a root shell.

I had a documentation. I followed the docs. It worked.

Now I have a NixOS machine that just works, running i3 as Window manager (copied configuration scripts from my main machine for convenience). I installed chromium (as I need this browser for video chatting). I had to override some build stuff for chromium, but luckily my build configuration was already available, so I didn't need to build it on my own (which would take years on this machine, still).

I would recommend NixOS to every linux guy out there, as it is the kind of approach that freaks your mind out while beeing so obviously the right way to do it (it = package management, configuration handling)

tags: #linux #nixos #nix