diff --git a/nix/configuration/configuration.nix b/nix/configuration/configuration.nix index c8a7bbf..b83a896 100644 --- a/nix/configuration/configuration.nix +++ b/nix/configuration/configuration.nix @@ -28,6 +28,7 @@ in ./roles/d2 ./roles/direnv ./roles/disko + ./roles/displaylink ./roles/distributed_build ./roles/doas ./roles/docker diff --git a/nix/configuration/hosts/odowork/default.nix b/nix/configuration/hosts/odowork/default.nix index 970cc6f..f69acf2 100644 --- a/nix/configuration/hosts/odowork/default.nix +++ b/nix/configuration/hosts/odowork/default.nix @@ -92,6 +92,7 @@ me.chromium.enable = true; me.d2.enable = true; me.direnv.enable = true; + me.displaylink.enable = true; me.doas.enable = true; me.docker.enable = false; me.dont_use_substituters.enable = true; diff --git a/nix/configuration/roles/displaylink/default.nix b/nix/configuration/roles/displaylink/default.nix new file mode 100644 index 0000000..6758733 --- /dev/null +++ b/nix/configuration/roles/displaylink/default.nix @@ -0,0 +1,40 @@ +{ + config, + lib, + pkgs, + ... +}: + +{ + imports = [ ]; + + options.me = { + displaylink.enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + description = "Whether we want to install displaylink."; + }; + }; + + config = lib.mkIf config.me.displaylink.enable ( + lib.mkMerge [ + { + environment.systemPackages = with pkgs; [ + displaylink + ]; + + allowedUnfree = [ "displaylink" ]; + + boot = { + extraModulePackages = [ config.boot.kernelPackages.evdi ]; + initrd.kernelModules = [ + "evdi" + ]; + }; + } + (lib.mkIf config.me.graphical { + }) + ] + ); +}