Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vinetos/dotnix
My NixOS System configurations
https://github.com/vinetos/dotnix
hacktoberfest home-manager nixos nixos-configuration nixos-flake
Last synced: about 2 months ago
JSON representation
My NixOS System configurations
- Host: GitHub
- URL: https://github.com/vinetos/dotnix
- Owner: Vinetos
- Created: 2020-11-02T09:56:12.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-04-13T17:18:45.000Z (9 months ago)
- Last Synced: 2024-04-14T16:09:15.463Z (9 months ago)
- Topics: hacktoberfest, home-manager, nixos, nixos-configuration, nixos-flake
- Language: Nix
- Homepage:
- Size: 3.48 MB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# Vinetos Nix* Configurations
This repository contains all my configurations for all my nix-based systems.
It includes NixOS systems configurations, Nix configurations and nix-darwin configurations with per-user configurations,
and per-host configurations.
This repository is built on top of Nix Flakes and [nixos-unified](https://github.com/srid/nixos-unified).This config allow me to have per-machine configuration (e.g. modules, hardware specific) AND per-user per-machine
configuration (e.g. profiles, workspaces, ...).I use this repository to manage my personal computers, servers, and workstations including :
- Laptops with NixOS and MacOS + Nix-Darwin
- Desktop with NixOS
- WSL2 with NixOS and Ubuntu
- Servers with NixOS and Debian + Nix
- Raspberry Pi with NixOS# What's inside
Some of the noticeable things I use :
- Nix with Flakes built on top of latest stable channel + easy unstable access
- Nixos-unified (flake-parts module) to provide a consistent interface for all my configurations
- Home-manager for per-user configuration
- Wayland (Hyprland, Hyprpaper, ...)
- DoAs (alternative to sudo)
- Kitty terminal, Fish as shell## Architecture
Start from `flake.nix` (see [Flakes](https://nixos.wiki/wiki/Flakes)). [`flake-parts`](https://flake.parts/) is used as
the module system.### Directory layout
> [!TIP]
> This repo use [autowiring](https://nixos-unified.org/autowiring.html) of flake outputs based on this directory
> structure.| Path | Corresponding flake output |
|--------------------------------------------------|-----------------------------------------|
| `./configurations/{nixos,darwin,home}/foo/` | `{nixos,darwin,home}Configurations.foo` |
| `./modules/{nixos,darwin,home,flake-parts}/foo/` | `{nixos,darwin,home,flake}Modules.foo` |
| `./overlays/foo.nix` | `overlays.foo` |
| `./packages/bar` | `` |## How to use
- To add a new host, install it with NixOS Installer or Nix-Darwin, then
- Create a new directory in `configurations/{nixos/darwin/home}/hostname` depending on underlying OS.
- Create or move home-manager configurations to `configuration/home/my-user.nix`
- Copy the generated `configuration.nix` and `hardware-configuration.nix` to the new directory and create the
`default.nix`.
- Apply the configuration with `nix run`- To apply the configuration, run `nix run`
- You are no required to run it as root, it will ask for sudo password when needed
```sh
nix run # Will update the configuration based on the hostname
# Or, `nix run .#`
```
- To update NixOS (and other inputs) run `nix flake update`
- You may also update a subset of inputs, e.g.
```sh
nix flake lock --update-input nixpkgs --update-input darwin --update-input home-manager
# Or, `nix run .#update`
```
- To free up disk space,
```sh-session
sudo nix-env -p /nix/var/nix/profiles/system --delete-generations +2
sudo nixos-rebuild boot
```
- To autoformat the project tree using nixpkgs-fmt, run `nix fmt`.
- To build all flake outputs (locally or in CI), run `nix --accept-flake-config run github:juspay/omnix ci build`