https://github.com/marijanp/nixos-configurations
A mirror of my NixOS configurations.
https://github.com/marijanp/nixos-configurations
flakes nix nix-flake nixos nixos-configuration nixpkgs
Last synced: 18 days ago
JSON representation
A mirror of my NixOS configurations.
- Host: GitHub
- URL: https://github.com/marijanp/nixos-configurations
- Owner: marijanp
- Created: 2019-04-03T20:42:34.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-06-09T19:49:14.000Z (26 days ago)
- Last Synced: 2025-06-09T20:33:21.404Z (26 days ago)
- Topics: flakes, nix, nix-flake, nixos, nixos-configuration, nixpkgs
- Language: Nix
- Homepage: https://git.sr.ht/~marijan/nixos-configurations
- Size: 557 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Configuration structure
All deployable NixOS configurations can be found in the `flake.nix`.
Use `nix flake show` to display them.
Each NixOS configuration exposed in the `flake.nix` assembles different configuration files from different directories together.
The directories contain configuration files for affecting different aspects of the system:
- The `machines` directory contains hardware specific configuration files for the different target hosts
- The `dotfiles` directory contains home-manager configuration files affecting a specific user
- The `environments` directory contains NixOS system configuration files that assemble configurations from the `services`, and `options` depending on the use of the final system.In the following sections I describe what each subdirectory contains.
## The `machines` directory
The `machines` directory contains a subdirectory for every physical machine running NixOS.
Each of those machine directories contains
- the generated `hardware-configuration.nix`
- hardware specific configuration files like `bluetooth.nix` and `networking.nix`## The `dotfiles` directory
The `dotfiles` directory contains configurations for *user* applications and services like `nvim`, `git`, etc.. It also contains the following files which assmble these configurations depending on the use of the final system.
- `common.nix` unifies all *user* application configurations that can be used on any machine.
- `desktop.nix` unifies all *user* application configurations that can be used on machines with a desktop.
- `work.nix` contains *user* applications that are only used for work.## The `environments` directory
The `environments` directory contains NixOS *system* configuration files that assemble configurations from the `services`, and `options` depending on the use of the final system:
- `common.nix` unifies all *system* configuration files that can be used on any machine.
- `desktop.nix` unifies all *system* configurations that can be used on machines with a desktop.
- `work.nix` contains *system* configurations that are only used for work.## The `options` directory
This directory contains all *system* configurations which are not services.
## The `services` directory
This directory contains all *system* service configurations.