Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joshuachp/nixos-config
NixOS configuration
https://github.com/joshuachp/nixos-config
Last synced: about 8 hours ago
JSON representation
NixOS configuration
- Host: GitHub
- URL: https://github.com/joshuachp/nixos-config
- Owner: joshuachp
- Created: 2022-03-08T20:46:49.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T00:14:04.000Z (19 days ago)
- Last Synced: 2024-10-30T02:47:46.114Z (19 days ago)
- Language: Nix
- Size: 1.96 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# nixos-config
[![status-badge](https://ci.k.joshuachp.dev/api/badges/1/status.svg)](https://ci.k.joshuachp.dev/repos/1)
This repository contains the configuration files for managing NixOS systems.
## Architecture
- `homes`: configurations to manage nix throw home-manager
- `lib`: library functions and helpers
- `modules`: nixos modules, divided for the functionalities
- `common`: common modules which must work for both home-manager and nixos
- `home-manager`: home-manager modules, configuration specific for the home-manager options.
- `nixos`: nixos modules, configuration specific for the nixos options.
- `options`: contains system/configuration wide options, shared between nixos and home-manager. Some
example are: nix system version, if its a desktop, ...
- `overlays`: overlays file and imported packages from flake inputs
- `patches`: patch files useful for the overlays
- `pkgs`: files containing various list of packages. This is to make the configuration sharable
between nixos and home-manager. Since the options are not always the same we cannot always use the
same modules, but usually the required packages are the same. This directory contains the lists of
packages for the various modules, like development, desktop programs, ...
- `systems`: NixOS systems configurations, this contains the various hosts and machine specific
configurations.
- `users`: user configurations, options regarding specific users, like name default shells and so
on.## Options
The category of options are:
- `systemConfig`: system wide options, for both nixos and home-manager
- `nixosConfig`: nixos specific options
- `homeConfig`: home-manager specific optionsThe options can be set in the `options` directory, and at the top of each module, but there MUST not
be respectively a `nixosConfig` or `homeConfig` options in the home-manager or nixos module
directories.The `systemConfig` options will be shared to the home-manager on nixos config in the
[`users/default.nix`] file.