47 lines
1.6 KiB
Nix
47 lines
1.6 KiB
Nix
{ config, lib, ... }:
|
|
let
|
|
cfg = config.sbruder.unfree;
|
|
in
|
|
{
|
|
# Options that affect multiple modules
|
|
options.sbruder = {
|
|
unfree = {
|
|
allowAssets = lib.mkOption {
|
|
default = true;
|
|
type = lib.types.bool;
|
|
description = "Allow restricted selection of unfree assets to be installed.";
|
|
};
|
|
allowSoftware = lib.mkOption {
|
|
default = false;
|
|
type = lib.types.bool;
|
|
description = "Allow restricted selection of unfree software to be installed.";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = {
|
|
nixpkgs.config.allowUnfreePredicate = (pkg: lib.elem (lib.getName pkg) (
|
|
lib.optionals cfg.allowAssets [
|
|
"corefonts"
|
|
"vista-fonts"
|
|
"wallpaper-unfree" # defined in users/simon/modules/sway.nix
|
|
] ++ lib.optionals cfg.allowSoftware [
|
|
"cups-kyocera-ecosys-m552x-p502x" # exception: the file header says MIT license, but explicitly forbids modifications WTF?
|
|
"makemkv" # exception: runs in sandbox, only way to get DRM garbage to work properly
|
|
"p7zip" # exception: rar source code is not free, but available; p7zip with `enableUnfree` includes it
|
|
|
|
# exception: used for programming the NitroKey,
|
|
# available under essentially a 3-BSD license with two additional restrictions:
|
|
# one usage restriction and one (pointless as the source is available) reverse engineering restriction
|
|
"nrfutil"
|
|
|
|
# games (okay if they run sandboxed)
|
|
"osu-lazer" # also is free except for one dependency
|
|
"steam"
|
|
"steam-original"
|
|
"steam-runtime"
|
|
]
|
|
));
|
|
};
|
|
}
|