Non stop entertainment! The wackiest NixOS configuration to-date.
Find a file
2025-04-27 17:37:30 +02:00
assets 🎉📝 initialize v2 2025-01-13 18:54:17 +01:00
homes/x86_64-linux 🚧 Finish user configuration loading and implement working workstation setup 2025-04-27 17:37:30 +02:00
lib/module 🚧 Update user configuration loading and use formatter 2025-04-26 23:08:11 +02:00
modules 🚧 Finish user configuration loading and implement working workstation setup 2025-04-27 17:37:30 +02:00
systems/x86_64-nixos/puzzlevision 🚧 Finish user configuration loading and implement working workstation setup 2025-04-27 17:37:30 +02:00
.gitignore 🚧 Work on fixing booting issues and various other things 2025-04-25 16:49:34 +02:00
CHANGELOG.md 🎉📝 initialize v2 2025-01-13 18:54:17 +01:00
flake.lock 🚧 Work on fixing booting issues and various other things 2025-04-25 16:49:34 +02:00
flake.nix finalize home configuration loading as nixos module, and more stuffs :3 2025-04-24 03:01:52 +02:00
LICENSE 📄 Update project name, owner name and copyright year 2025-01-13 23:40:34 +01:00
README.md 🚧 Finish user configuration loading and implement working workstation setup 2025-04-27 17:37:30 +02:00


Puzzlevision

Non-stop entertainment! The wackiest NixOS configuration to-date.

🚧 State of development

All the basic functionality of v2 should be working correctly, including:

  • The custom lib implementation at self.lib, recursively built from the contents of the lib directory.
  • Loading of systems from the systems directory, using easy-hosts.
    • A basic workstation archetype for desktop systems.
  • Creating users in your systems through ${self.namespace}.users, automatically maps home-manager configurations from the homes directory to their corresponding users.

Nonetheless, one should still consider this implementation experimental, once I start using this on my laptop, I'll aim for production grade stability.

🚀 Deployment

To deploy a system run the following command in your terminal of choice.

sudo nixos-rebuild switch --flake .#hostname --accept-flake-config

If you're interested in a quick way to experiment with this configuration, you may use the following command to build a VM.

sudo nixos-rebuild build-vm --flake .#hostname --accept-flake-config

📝 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:

and documentations such as:

many thanks to their hard work!