nixos-config/modules/unfree.nix

47 lines
1.5 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?
"drone-runner-exec" # exception: same as drone.io
"drone.io" # exception: is open source (but has usage restriction)
"fahclient" # exception: for science
"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
# games (okay if they run sandboxed)
"factorio"
"factorio-headless"
"osu-lazer" # also is free except for one dependency
"steam"
"steam-original"
"steam-runtime"
]
));
};
}