Skip to content

Latest commit

 

History

History
76 lines (56 loc) · 4.03 KB

README.md

File metadata and controls

76 lines (56 loc) · 4.03 KB

nixos

Templated from juspay/nixos-unified-template.

Under the hood, it uses nixos-unified. See ./modules to see what's available. We support home-manager (see ./modules/home), nix-darwin (see ./modules/darwin) and NixOS (see ./modules/nixos).

Platform Supported By
macOS only home-manager and/or ✅ nix-darwin
NixOS only home-manager and ✅ NixOS
All platforms home-manager only

Getting Started

On NixOS

If you use, or intend to use, NixOS:

  1. Install NixOS from Graphical ISO image and reboot.
  2. Ensure that /etc/nixos/{configuration.nix, hardware-configuration.nix} are in place.
  3. In a terminal, become root and initialize our template under /etc/nixos:
    sudo su -
    cd /etc/nixos
    nix --accept-flake-config --extra-experimental-features "nix-command flakes" \
      run github:juspay/omnix -- \
      init github:juspay/nixos-unified-template#nixos -o .
    # Replace HOSTNAME with the hostname you entered above.
    mv configuration.nix hardware-configuration.nix ./configurations/nixos/HOSTNAME/
    nix --extra-experimental-features "nix-command flakes" run
  4. At this point, you can move /etc/nixos to anywhere, and initialize a Git repository to track future changes.

On non-NixOS

If you are on macOS or running other Linux distros:

  1. Install Nix:

    curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | \
      sh -s -- install --no-confirm --extra-conf "trusted-users = $(id -un)"
  2. Open a new terminal; Initialize[^omnix] your Nix configuration using this repo as template:

    nix --accept-flake-config run github:juspay/omnix -- \
      init github:juspay/nixos-unified-template -o ~/nixconfig
    cd ~/nixconfig
    image
    • It will prompt to you choose between home-manager only configuration and nix-darwin configuration (ignore the NixOS template). The latter includes home-manager as well.
    • Optionally, you may edit ./modules/{home,darwin}/*.nix to your liking.
  3. Run nix run (or the appropriate command printed by the above command) to activate your configuration.

  4. Restart your terminal.

After steps 1-4, you should expect to see the starship prompt:

image

Whenever you modify your configuration in ./modules/*/*.nix, you should re-run nix run to activate the new configuration.

Details

The configuration repo has flake.nix file in the current directory and some ./modules/{home,darwin,nixos}/*.nix files containing the home-manager, nix-darwin and NixOS configurations respectively that you can review. It also has a justfile, which provides a set of recipes analogous to Make targets to interact with the nix flake.

Run nix run to activate this configuration in your system.

To browse the capabilities of home-manager (and to see what else can go in your ./modules/home/*.nix -- such as shell aliases), consult home-manager options reference. You can also run man home-configuration.nix in the terminal.

Global configuration is in the ./config.nix file. Here, you can specify your user name, email and such settings.