Improve Documentation

This commit is contained in:
Tyler Kelley 2024-01-24 02:02:28 -06:00
parent 5559faffce
commit 63e0ae34e3

View File

@ -2,7 +2,7 @@
ZaneyOS is a way of reproducing my configuration on any NixOS system. This includes the wallpaper, scripts, applications, config files, and more. *Please remember to change username and hostname in flake.nix.*
![](demo.jpg)
![](./config/home/files/media/demo.jpg)
## What Is NixOS
@ -14,25 +14,15 @@ In NixOS, the entire operating system configuration is described declaratively i
Choosing NixOS often depends on specific needs and preferences. Here are some reasons why people opt for NixOS:
### Declarative Configuration
- **Declarative Configuration:** NixOS employs a declarative approach to system configuration. This means the entire system configuration is defined in a single file, making it reproducible and easier to manage. Changes are tracked and can be rolled back if needed.
NixOS employs a declarative approach to system configuration. This means the entire system configuration is defined in a single file, making it reproducible and easier to manage. Changes are tracked and can be rolled back if needed.
- **Functional Package Management:** The Nix package manager ensures that each package and its dependencies are isolated and managed separately. This prevents conflicts between different versions of software and enables easy rollbacks to previous versions.
### Functional Package Management
- **Reproducibility:** NixOS allows for consistent and reproducible environments, critical in development, testing, and deployment scenarios. It's particularly valuable in DevOps and CI/CD pipelines where consistent environments are essential.
The Nix package manager ensures that each package and its dependencies are isolated and managed separately. This prevents conflicts between different versions of software and enables easy rollbacks to previous versions.
- **Multiple Environments and Rollbacks:** With NixOS, it's possible to have multiple versions of the same software installed simultaneously without conflicts. This flexibility is especially useful for developers or those requiring different versions of software for various projects.
### Reproducibility
NixOS allows for consistent and reproducible environments, critical in development, testing, and deployment scenarios. It's particularly valuable in DevOps and CI/CD pipelines where consistent environments are essential.
### Multiple Environments and Rollbacks
With NixOS, it's possible to have multiple versions of the same software installed simultaneously without conflicts. This flexibility is especially useful for developers or those requiring different versions of software for various projects.
### Community and Customization
NixOS has an active community that contributes to its growth, sharing configurations, and offering support. Its customizable nature allows users to tailor their systems to their needs.
- **Community and Customization:** NixOS has an active community that contributes to its growth, sharing configurations, and offering support. Its customizable nature allows users to tailor their systems to their needs.
## Why Choose My Configuration?
@ -40,13 +30,13 @@ I have gone through a lot of effort of making my configuration something that is
## Explaining My Flake
My Flake controls where we are getting things from, allows me to define variables, as well as lets us choose which configuration (profile) we want.
My Flake controls where we are getting things from. It also allows me to define variables for things like Git information, CPU, GPU options for enabling different drivers for different configurations. When you run the rebuild switch command from below it sources the flake.nix that sources default.nix and home.nix.
When you run the rebuild switch command from below it just sources the flake.nix that then sources default.nix and home.nix from the git repo. The hardware.nix is automatically generated with all the things you need and the default.nix imports other nix files containing certain aspects of the config that might change based on a profile. You'll notice some of these files have a Nix conditional statement so those settings only get used if that profile is selected. Additional profiles are being added and worked on, but you can always create another for your setup.
The hardware.nix is automatically generated with all the things you need and the default.nix imports other nix files containing certain aspects of the config that may or may not change based on CPU or GPU settings.
### How The Config Files Work
I am using home manager and as of now all configurations use the same home.nix configuration file. That is where all of the main configuration for stuff is.
I am using home manager and as of now all configurations use the same home.nix configuration file. That is where all of the main configuration for stuff is, as most things are in user space.
All of the configuration files that we have being imported in the home.nix are stored in the folder config/home. You might have noticed something quite different about all of them... They are in a .nix format. These files are imported by home.nix.
@ -56,7 +46,7 @@ Having the configuration files as a .nix file that I have creating the home file
Themes you have available for you to set in the flake.nix are available [here](https://github.com/tinted-theming/base16-schemes). Just take off the .yaml part of any of those names and use that as your theme variable.
Another cool thing I can do is have that theme the user set in the flake.nix used to generate a GTK theme as well! So when you change that one variable all you system programs will change upon a rebuild. I have included some fun scripts as well so definitely have some fun playing around with what you can do with my setup.
Another cool thing I can do is have that [theme](https://github.com/tinted-theming/base16-schemes) the user set in the flake.nix used to generate a GTK theme as well! So when you change that one variable all you system programs will change upon a rebuild. I have included some fun scripts as well so definitely have some fun playing around with what you can do with my setup.
# Steps To Reproduce My System
@ -75,7 +65,7 @@ This file should be located at /etc/nixos/configuration.nix
- Then go into repo folder (stay in this folder)
- Change username, hostname, theme, and any other variables you may want under user information in flake.nix
- If you change your hostname in the flake.nix know you need to update your defualt config, rebuild, and reboot.
- Ensure you have selected the proper profile in the flake as well.
- Ensure you have selected the proper cpuType and gpuType in the flake as well.
- Generate your hardware.nix like so:
```