Skip to content

Cyberus Linux Modules

We maintain a set of opinionated NixOS modules that work great with Cyberus Linux in the Cyberus Linux Modules repository. We support Flake-based and traditional systems.

Using Cyberus Linux Modules

To use Cyberus Linux modules you need to enable a Nixpkgs overlay in your configuration. Cyberus Linux modules sometimes use software that is not yet packaged in any Nixpkgs branch. For this reason, we maintain an overlay with these packages directly in the Cyberus Linux modules repository.

To consume the modules in a Nix Flake, add the overlay and the module to your flake.nix:

{
    description = "A NixOS Flake consuming Cyberus Linux modules";

    inputs = {
        # NixOS unstable will work as well.
        nixpkgs.url = "https://channels.cyberus-linux.com/channel/cyberus-linux-26.05.tar.xz";

        cyberus-linux-modules.url = "github:cyberus-linux/cyberus-linux-modules";
    };

    outputs = { nixpkgs, cyberus-linux-modules, ... }: {
      nixosConfigurations.host = nixpkgs.lib.nixosSystem {
        modules = [
          ({ config, pkgs, ... }: {
              nixpkgs.overlays = [
                  cyberus-linux-modules.overlays.default
              ];
          })

          # Consume any module from Cyberus Linux modules, you need. Note that
          # modules need to be individually enabled. See their documentation.
          #
          # Also note that not every module is supported on every NixOS and
          # Cyberus Linux version. Refer to the module documentation for details.
          cyberus-linux-modules.nixosModules.profiles

          # Add your modules here.
          # ...
        ];
      };
}

Here is a configuration fragment that enables Cyberus Linux modules on a system that does not use Flakes:

{ config, pkgs, ... }:
let
    cyberus-linux-modules = pkgs.fetchFromGitHub {
        owner = "cyberus-linux";
        repo = "cyberus-linux-modules";
        rev = "main";
        # Replace the fake hash with the correct one
        hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";
    };
in
{
    nixpkgs.overlays = [
        (self: super: import "${cyberus-linux-modules}/packages/default.nix" { pkgs = self; })
    ];

    imports = [
        import "${cyberus-linux-modules}/modules/profiles.nix"
    ];
}

List of Modules

The following modules are currently available.

cyberus-linux.hardware

A set of modules providing configurations required and recommended for different hardware.

Find the documentation here.

cyberus-linux.profiles

A module providing broader and finer-grained options for recommended configuration in different use-cases.

Some of the recommended settings, such as the Cyberus Linux Developer options, are assumed to be used throughout this documentation.

Find the documentation here.

cyberus-linux.vms

A module to run generic (non-NixOS) virtual machines declaratively from your NixOS configuration.

Find the documentation here.

cyberus-linux.image

A module to build an image-based Cyberus Linux system from a NixOS configuration.

Find the documentation here.