Skip to content

alper-han/ZyNixOS

Repository files navigation


ZyNixOS





Table of Contents

Installation

Note

Before proceeding with the installation, check these files and adjust them for your system:

  • hosts/Default/variables.nix: Contains host-specific variables.
  • hosts/Default/host-packages.nix: Lists installed packages for the host.
  • hosts/Default/configuration.nix: Module imports for the host and extra configuration.

You can install on a running system or from the NixOS live installer. Get the minimal ISO from the NixOS website.

Installation Steps

  1. Clone the Repository:
git clone https://github.com/alper-han/ZyNixOS.git ~/ZyNixOS
  1. Change Directory:
cd ~/ZyNixOS
  1. Run the Installer:
./install.sh

The install and rebuild scripts automate the setup process, including hosts, username, and applying the configuration. It also automatically generates the hardware-configuration.nix file based on your system's detected hardware, eliminating the need to manually generate it.

Usage

Managing Hosts

Method 1: Automatic - run the installer again to select or create another host:

./install.sh

Method 2: Manual:

  1. Copy hosts/Default to a new directory (e.g., hosts/Laptop)

  2. Edit the new host's variables.nix and host-packages.nix

  3. Add the host to flake.nix:

    nixosConfigurations = {
      Default = mkHost "Default";
      Laptop = mkHost "Laptop";
    };
  4. Track the new host with git:

    git add hosts/Laptop
  1. Rebuild with the new hostname using either nixos-rebuild or nh (see Rebuilding below). Once rebuilt, any rebuilding method can be used, as the host name will be implicitly recognised.

Rebuilding

Apply configuration changes:

  • Keyboard shortcut: Super + U
  • rebuild script: rebuild
  • nixos-rebuild: sudo nixos-rebuild switch --flake ~/ZyNixOS#<HOST>
  • nh: nh os switch --hostname <HOST>

Replace <HOST> with the name of your host (e.g., Laptop).

Rollbacks

List generations:

list-gens

Rollback to generation N:

rollback N

Replace N with the generation number (e.g., 69).

Keybindings

View all keybindings with Super + ? or Super + Ctrl + K.

Development Shells

Pre-configured dev shells for various languages are included.

Initialize a project from a template:

nix flake init -t ~/ZyNixOS#<TEMPLATE_NAME>

Create a new project directory:

nix flake new -t ~/ZyNixOS#<TEMPLATE_NAME> <PROJECT_NAME>

Templates are defined in dev-shells/default.nix (python, node, etc.).

Enter the shell:

cd <PROJECT_NAME>
nix develop

If you're using direnv, the shell activates automatically.

Credits/Inspiration

Credit Reason
Sly-Harvey/NixOS Provided the NixOS template base

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published