1 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

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: