at master 1.0 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8with lib; 9 10let 11 cfg = config.services.xserver.windowManager.herbstluftwm; 12in 13 14{ 15 options = { 16 services.xserver.windowManager.herbstluftwm = { 17 enable = mkEnableOption "herbstluftwm"; 18 19 package = mkPackageOption pkgs "herbstluftwm" { }; 20 21 configFile = mkOption { 22 default = null; 23 type = with types; nullOr path; 24 description = '' 25 Path to the herbstluftwm configuration file. If left at the 26 default value, $XDG_CONFIG_HOME/herbstluftwm/autostart will 27 be used. 28 ''; 29 }; 30 }; 31 }; 32 33 config = mkIf cfg.enable { 34 services.xserver.windowManager.session = singleton { 35 name = "herbstluftwm"; 36 start = 37 let 38 configFileClause = optionalString (cfg.configFile != null) ''-c "${cfg.configFile}"''; 39 in 40 '' 41 ${cfg.package}/bin/herbstluftwm ${configFileClause} & 42 waitPID=$! 43 ''; 44 }; 45 environment.systemPackages = [ cfg.package ]; 46 }; 47}