119 lines
No EOL
5.2 KiB
Markdown
119 lines
No EOL
5.2 KiB
Markdown
# Index
|
|
- [About This Project](#about-this-project)
|
|
- [General Layout](#general-layout)
|
|
- Modules
|
|
- [desktops](#desktops)
|
|
- [hosts](#hosts)
|
|
- [nix](#nix)
|
|
- [programs](#programs)
|
|
- [servers](#servers)
|
|
- [services](#services)
|
|
- [system](#system)
|
|
- [theme](#theme)
|
|
- [users](#users)
|
|
- [nix-assets](#nix-assets)
|
|
- [Misc](#misc)
|
|
- [Installer ISO Script](#installer-iso-script)
|
|
- [Secrets](#secrets)
|
|
|
|
# About This Project
|
|
Just my personal NixOS Configs, nothing too special. It uses `import-tree`, `flake-file`, and `flake-parts` to generate my nixos systems. It also has multiple hosts, including an installer for them
|
|
|
|
# General Layout
|
|
Here is the general structure of the base folders. the deepest level of each file/folder shown will be given its own section with more details, in the order shown.
|
|
```
|
|
modules
|
|
├── desktops
|
|
├── hosts
|
|
├── nix
|
|
├── programs
|
|
├── servers
|
|
├── services
|
|
├── system
|
|
├── theme
|
|
└── users
|
|
nix-assets
|
|
```
|
|
## desktops
|
|
Simple module folder, just contains all my desktop modules, such as `hyprland` or `kde`, and any relevent stuff for those modules (Such as `hyprland` also contains its login screen, hyprland configs, DMS as its shell, and a few other things hyprland relies on for my configs)
|
|
|
|
## hosts
|
|
This contains all my per-host configurations.
|
|
|
|
|
|
here is a list of existing hosts in this sytem, and a description of their use:
|
|
|
|
### aquaticRouter
|
|
Currently un-used, intended to be my router once I have it finished
|
|
|
|
### controlstation
|
|
Based on `system-gaming` template.
|
|
My main desktop for a majority of my usage (gaming, AI experiments, and general web browsing), this host also dual-boots windows
|
|
|
|
### installer-iso
|
|
This host is special, as it is not "installed". This is, instead, the configuration used to generate my installation ISOs, and it has the most quirks, see [Installer ISO Script](#installer-iso-script) later in this readme for more detail. Generate the ISO on any machine containing the `installer-iso-keys` module by entering the root of the project, and running the command `sudo nix build path:.#nixosConfigurations.installer-iso.config.system.build.isoImage --impure`
|
|
|
|
### mainsrv
|
|
Based on `system-cli` template.
|
|
Contains all of my long-running servers and remote filesystems currently, not much else.
|
|
|
|
## nix
|
|
Contains 2 major folders, and holds the very very base of my setup, that everything else expects and relies on.
|
|
|
|
First, `flake-parts`, is set up to initialize and load the core of `flake-parts`, `flake-file`, and `import-tree`, the 3 main tools that my use of dendritic would not work without.
|
|
|
|
Next, is `tools`. This holds `agenix`, `disko`, `home-manager`, `impermanence`, and `NUR` configs. All these are parts that I decided would be assumed to be had by every one of my systems, and were made into a core assumption
|
|
|
|
## programs
|
|
This modules folder is basically, for the most part, my "package management" setup, and where a majority of my apps are at.
|
|
|
|
The `appimages` folder is simple, it just contains any appimages I want to pull and "install" into my setup.
|
|
|
|
Next, the `aquatic` folder. This has chunks mostly mirroring my system tempaltes (see [system](#system) for details on templates). These modules are named like `aquatic-cli` or `aquatic-gaming` or similar, to allow me to group most of my generally preffered apps into just a few modules
|
|
|
|
Then, the `shell` folder is just for my shell config, including `zsh` and `bash`
|
|
|
|
I chose to give `zenbrowser` its own folder. No strong reason, just felt I wanted it that way.
|
|
|
|
For the files, `nixdev` contains my development environment, and all config for it, for my nix config that you are viewing right now, and`virtualbox` is just, well, virtualbox, only used on one system so I have it in its own module
|
|
|
|
## servers
|
|
[TODO]
|
|
## services
|
|
[TODO]
|
|
## system
|
|
[TODO]
|
|
## theme
|
|
[TODO]
|
|
## users
|
|
[TODO]
|
|
|
|
# nix-assets
|
|
Not included in the repo is a submodule for `nix-assets` (private to avoid any legal issues), with the current structure below:
|
|
```
|
|
nix-assets
|
|
├── greetd
|
|
│ ├── wpeng_assets
|
|
│ └── wpeng_papers
|
|
└── bin
|
|
└── appimages
|
|
```
|
|
`wpeng_assets` is the assets folder from wallpaper engine, and `wpeng_papers` contains the wallpapers, both are used to run wallpaper engine based wallpapers on the greetd login screen.
|
|
|
|
Wallpapers to use are currently defined through `aquaticConfig.hyprland.monitors` for each given monitor via `wpeng`
|
|
|
|
Line 109 of `modules/programs/hyprland/login.nix` does the actual copying of the assets
|
|
|
|
These options and lines can be changed or removed as needed, or can be ignored if not using `hyprland` module
|
|
|
|
Meanwhile, the appimages folder is just to contain appimages that are not currently public for any given reason. Currently, this is only the `metrolist` as that is in closed beta
|
|
|
|
|
|
# Misc
|
|
This section will just contain anything that was not part of my modules, or that needs extra special explinations
|
|
|
|
## Installer ISO Script
|
|
This is the file at `/modules/hosts/installer-iso/installer/installer.sh`, it is a bash script that is actively a work in progress. Currently, it can only be used for new hosts that do not exist in the config, and has no error checking. But, for now, it works to add a new host and roll it into my secrets at the `machines` and `all` levels.
|
|
|
|
## Secrets
|
|
[TODO] |