A simple, minimal, beautiful, and fast NixOS configuration for beginners, adaptable for different use cases on multiple machines.
- Beginner-friendly (imports only)
- Self-explanatory file structure
- Flake-based (updated regularly)
- Avoids advanced Nix language features, libraries, and overlays
- Modular and easily extendable
- Opinionated and based on best practices
- Includes home-manager without special handling
- Pre-made frontend configuration to kickstart your own
- Hyprland (Wayland exclusive)
- Hyprlock (Beautiful lockscreen)
- System-wide theming with stylix (pre-configured with clean FutureHUD colors)
- UI scripting with AGS
- Login via bare TTY with uwsm
- Automatic lock and suspend for laptops
- Keybindings:
<super>
: Open app launcher (AGS)<super> + l
: Lock screen (Hyprlock)<super> + s
: Screenshot (wayland-freeze, grim, satty, magick)
- Based on kickstart.nvim
- Includes bun and zig
- powerlevel10k
- Compatible with direnv
- Install NixOS from the ISO.
- Change hostname in
configuration.nix
and switch the system once. - Fork this repository.
- Create a directory for managing your system, e.g.,
~/nixos
, and cd into it. - Clone your forked repository:
git clone <fork-url> .
- Create a directory for your host configuration:
mkdir src/host/$(hostname)
- Copy your host configuration files:
cp /etc/nixos/*configuration.nix src/host/$(hostname)
- Rename the configuration files:
mv src/host/$(hostname)/hardware-configuration.nix src/host/$(hostname)/hardware.nix mv src/host/$(hostname)/configuration.nix src/host/$(hostname)/customization.nix
- Create an entry point for your host:
cp src/host/b1kini/default.nix src/host/$(hostname)/default.nix
- Copy and customize the user configuration:
cp -r src/user/i src/user/yourusername
- Replace occurrences of
i
with your username in the copied files. - Update
src/flake.nix
with your hostname and user combination:// ...existing code... nixosConfigurations.<HOSTNAME> = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = attrs; modules = [ ./host/<HOSTNAME> ./user/<USERNAME> ]; }; // ...existing code...
- Test the configuration:
bin/build
- Update your user's password via root.
- Explore the configuration to understand further details.
To update the system (flake), run:
bin/update
bin/build
To perform garbage collection, run:
bin/gc
Info:
This deletes older boot entries!
Make sure that your current config/boot-entry is bootable (by rebooting once)
If you enable the development module (optional), your Nix configuration will automatically be statically checked, formatted, and you will gain Nix LSP.
To enable development features, add the module/add/software/development.nix
module to your host's default.nix
.
The various tools to assist development with Nix will be loaded automatically when you enter the directory where you cloned this repository.