2 minute read

nixos

To try out programs in your current shell only

nix-shell -p <program>

To edit config (e.g. add packages)

sudoedit /etc/nixos/configuration.nix
sudo nixos-rebuild switch

home-manager

Handling user specific settings, e.g. dotfiles

sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz home-manager
sudo nix-channel --update
vim ~/.config/home-manager/home.nix
home-manager switch

Move configurations into a repository

git clone myConfigUrl ~/myConfigs

cp /etc/nixos/configuration.nix ~/myConfigs/
sudo rm /etc/nixos/configuration.nix
sudo ln -s /home/paul/myConfigs/configuration.nix /etc/nixos/configuration.nix

cp /etc/nixos/hardware-configuration.nix ~/myConfigs/
sudo rm /etc/nixos/hardware-configuration.nix
sudo ln -s /home/paul/myConfigs/hardware-configuration.nix /etc/nixos/hardware-configuration.nix

cp ~/.config/home-manager.nix ~/myConfigs/
rm ~/.config/home-manager.nix
ln -s /home/paul/myConfigs/configuration.nix /home/paul/.config/home-manager.nix

Set the channel (i.e. the NixOS version)

The channel is like a snapshot of the nixpkg repository. Similar to an Ubuntu release version. Note, the channels can be different between users (e.g. root vs USER).

sudo nix-channel --add https://nixos.org/channels/nixos-25.05 nixos
sudo nix-channel --update
sudo nixos-rebuild switch

Update the channel

sudo nix-channel --remove nixos
sudo nix-channel --add https://nixos.org/channels/nixos-25.11 nixos

# optional: only needed when using home-manager
sudo nix-channel --remove home-manager
sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager

sudo nix-channel --update
sudo nixos-rebuild switch

Adapt to your versions (this example updates from 25.05 to 25.11).

VSCodium with extensions via nix configs

This works well as described in the wiki (e.g. specify each extension in vscode’s config section). Make sure to disable auto-updating of extensions in VSCode, e.g.

// file settings.json
{
    ...
    "extensions.autoCheckUpdates": false,
    "extensions.autoUpdate": false
}

Categories: ,

Updated: