diff options
author | Peter Hoeg <peter@hoeg.com> | 2019-11-01 12:48:13 +0800 |
---|---|---|
committer | Peter Hoeg <peter@hoeg.com> | 2019-11-01 13:06:28 +0800 |
commit | d936b17d144ee2a479e5288e6f90bc8725fc33d1 (patch) | |
tree | 18fef93153b3e7b52541b6cad86656ca8ebe0c83 /nixos | |
parent | 198fdd98fb1c226f7021a02146498f767520f315 (diff) |
nixos/displaylink: write out required xorg.conf fragment
Invoke xrandr to actually connect the device. Additionally, we let systemd create the logs directory and use our module loader instead of handling it manually.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/hardware/video/displaylink.nix | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/nixos/modules/hardware/video/displaylink.nix b/nixos/modules/hardware/video/displaylink.nix index 669ac849cbad0..912f53da836a8 100644 --- a/nixos/modules/hardware/video/displaylink.nix +++ b/nixos/modules/hardware/video/displaylink.nix @@ -19,6 +19,21 @@ in config = mkIf enabled { boot.extraModulePackages = [ evdi ]; + boot.kernelModules = [ "evdi" ]; + + environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = '' + Section "OutputClass" + Identifier "DisplayLink" + MatchDriver "evdi" + Driver "modesetting" + Option "AccelMethod" "none" + EndSection + ''; + + # make the device available + services.xserver.displayManager.sessionCommands = '' + ${lib.getBin pkgs.xorg.xrandr}/bin/xrandr --setprovideroutputsource 1 0 + ''; # Those are taken from displaylink-installer.sh and from Arch Linux AUR package. @@ -47,18 +62,13 @@ in description = "DisplayLink Manager Service"; after = [ "display-manager.service" ]; conflicts = [ "getty@tty7.service" ]; - path = [ pkgs.kmod ]; serviceConfig = { ExecStart = "${displaylink}/bin/DisplayLinkManager"; Restart = "always"; RestartSec = 5; + LogsDirectory = "displaylink"; }; - - preStart = '' - mkdir -p /var/log/displaylink - modprobe evdi - ''; }; }; |