diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-12-05 00:36:01 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-12-05 00:54:09 +0300 |
commit | cf3202acac9500a192e00b0e2a3b6fdbc97b6153 (patch) | |
tree | 31a612ca83c0dc3aa9e2eeec4479090ee9075eaf /nixos/modules | |
parent | 95629cf6f83cee1b8200f6fd408a206ea4e858b1 (diff) | |
download | nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar.gz nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar.bz2 nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar.lz nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar.xz nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.tar.zst nixlib-cf3202acac9500a192e00b0e2a3b6fdbc97b6153.zip |
nixos/bumblebee: update for new packages
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/hardware/video/bumblebee.nix | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/nixos/modules/hardware/video/bumblebee.nix b/nixos/modules/hardware/video/bumblebee.nix index e2202e1e17df..b10846ac18a1 100644 --- a/nixos/modules/hardware/video/bumblebee.nix +++ b/nixos/modules/hardware/video/bumblebee.nix @@ -2,10 +2,20 @@ with lib; let + cfg = config.hardware.bumblebee; + kernel = config.boot.kernelPackages; - bumblebee = if config.hardware.bumblebee.connectDisplay - then pkgs.bumblebee_display - else pkgs.bumblebee; + + useNvidia = cfg.driver == "nvidia"; + + bumblebee = pkgs.bumblebee.override { + inherit useNvidia; + useDisplayDevice = cfg.connectDisplay; + }; + + primus = pkgs.primus.override { + inherit useNvidia; + }; in @@ -29,6 +39,7 @@ in type = types.str; description = ''Group for bumblebee socket''; }; + hardware.bumblebee.connectDisplay = mkOption { default = false; type = types.bool; @@ -40,26 +51,30 @@ in Only nvidia driver is supported so far. ''; }; + + hardware.bumblebee.driver = mkOption { + default = "nvidia"; + type = types.enum [ "nvidia" "nouveau" ]; + description = '' + Set driver used by bumblebeed. Supported are nouveau and nvidia. + ''; + }; }; config = mkIf config.hardware.bumblebee.enable { boot.blacklistedKernelModules = [ "nouveau" "nvidia" ]; boot.kernelModules = [ "bbswitch" ]; - boot.extraModulePackages = [ kernel.bbswitch kernel.nvidia_x11 ]; + boot.extraModulePackages = [ kernel.bbswitch ] ++ optional useNvidia kernel.nvidia_x11; - environment.systemPackages = [ bumblebee pkgs.primus ]; + environment.systemPackages = [ bumblebee primus ]; systemd.services.bumblebeed = { description = "Bumblebee Hybrid Graphics Switcher"; wantedBy = [ "display-manager.service" ]; path = [ kernel.bbswitch bumblebee ]; serviceConfig = { - ExecStart = "${bumblebee}/bin/bumblebeed --use-syslog -g ${config.hardware.bumblebee.group}"; - Restart = "always"; - RestartSec = 60; - CPUSchedulingPolicy = "idle"; + ExecStart = "${bumblebee}/bin/bumblebeed --use-syslog -g ${cfg.group} --driver ${cfg.driver}"; }; - environment.LD_LIBRARY_PATH="/run/opengl-driver/lib/"; environment.MODULE_DIR="/run/current-system/kernel-modules/lib/modules/"; }; }; |