puzzlevision/README.md

62 lines
2.2 KiB
Markdown
Raw Permalink Normal View History

2025-01-13 18:54:17 +01:00
<br>
<div align="center"><img src="assets/puzzlevision.png" width="120px" height="auto"></div>
2023-10-23 00:21:45 +02:00
2025-01-13 18:54:17 +01:00
<h1 align="center">✨ Puzzlevision ✨<br></h1>
<div align="center">Non-stop entertainment! The wackiest NixOS configuration to-date.</div>
<br>
2023-10-23 00:41:07 +02:00
2025-01-13 18:54:17 +01:00
## 🚧 State of development
Version 2.0 is still very much an experiment and not ready to be used in a production
environment. If you must, try running it within a VM using the provided deployment
instructions.
## 🚀 Deployment
To deploy a system run the following command in your terminal of choice.
2023-10-23 00:41:07 +02:00
```sh
sudo nixos-rebuild switch --flake .#hostname
```
2025-01-13 18:54:17 +01:00
If you're interested in a quick way to experiment with this configuration,
you may use the following command to build a VM.
2023-10-23 00:41:07 +02:00
```sh
2025-01-13 18:54:17 +01:00
sudo nixos-rebuild build-vm --flake .#hostname
2023-10-23 00:41:07 +02:00
```
2025-01-13 18:54:17 +01:00
## 📝 Goals and improvements
The main goals of this rewritten flake are:
- using flake-parts in place of Snowfall lib
- significantly improving the re-usability of all modules
- avoiding anti-patterns, such as `with lib; with lib.${namespace};`
- improved secrets management
- keeping external assets closer to their related nix file, e.g. wallpapers in
the desktop modules folder
## 🏗️ Structure
The structure this flake aims to build on is relatively simple to grasp.
```
flake.nix --> The flake.
/systems --> NixOS configurations for various types of systems, using easy-hosts.
/modules --> Modules that are mapped to their corresponding easy-hosts class (and home modules).
/nixos --> (example) Modules specific to the nixos class configured in easy-hosts.
/homes --> Directory for home-manager configurations, not specific to the system type.
/lib --> A place for custom lib attributes exposed on the flake namespace (lib.puzzlevision.mkOpt).
(more...) --> Additional directories have been considered (e.g. shells), but as of right now, they serve no use to me.
```
## 🎨 Credits
Parts of this flake were inspired by the likes of:
- [isabelroses](https://github.com/isabelroses)
- [uncenter](https://github.com/uncenter)
and documentations such as:
- [flake-parts](https://flake.parts)
- [NixOS and Flakes book](https://nixos-and-flakes.thiscute.world)
many thanks to their hard work!