lumina-desktop / lumina

Lumina Desktop Environment
http://lumina-desktop.org
BSD 3-Clause "New" or "Revised" License
530 stars 115 forks source link

Add LuminaOS-NixOS.cpp #802

Closed romildo closed 2 years ago

romildo commented 2 years ago

NixOS is a linux distribution built with the Nix package manager.

Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell — they are built by functions that don’t have side-effects, and they never change after they have been built. Nix stores packages in the Nix store, usually the directory /nix/store, where each package has its own unique subdirectory such as

/nix/store/b6gvzjyb2pg0kjfwrjmg1vfhh54ad73z-firefox-33.1/

where b6gvzjyb2pg0… is a unique identifier for the package that captures all its dependencies (it’s a cryptographic hash of the package’s build dependency graph). This enables many powerful features.

A consequence of this design is that each package is installed in its own subdirectory under /nix/store, not following FHS.

The NixOS specific code for Lumina in this PR indirectly indicates particular tools by enclosing a bash variable name between @, and the package script would replace this variable by the actual path to the tool, known at building time.

q5sys commented 2 years ago

Thanks for the work. I'm merging it into my 1.6.3 branch now which will be the next released version. The branch for 1.6.3 has just been forked off of Master, and nothing else should be going into master until that branch is merged back in for release.