grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / x11 / window-managers / herbstluftwm.nix
blob94c9f4aa91c8f5334046e3ee9adca7860db1da9c
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   cfg = config.services.xserver.windowManager.herbstluftwm;
7 in
10   options = {
11     services.xserver.windowManager.herbstluftwm = {
12       enable = mkEnableOption "herbstluftwm";
14       package = mkPackageOption pkgs "herbstluftwm" { };
16       configFile = mkOption {
17         default     = null;
18         type        = with types; nullOr path;
19         description = ''
20           Path to the herbstluftwm configuration file.  If left at the
21           default value, $XDG_CONFIG_HOME/herbstluftwm/autostart will
22           be used.
23         '';
24       };
25     };
26   };
28   config = mkIf cfg.enable {
29     services.xserver.windowManager.session = singleton {
30       name = "herbstluftwm";
31       start =
32         let configFileClause = optionalString
33             (cfg.configFile != null)
34             ''-c "${cfg.configFile}"''
35             ;
36         in ''
37           ${cfg.package}/bin/herbstluftwm ${configFileClause} &
38           waitPID=$!
39         '';
40     };
41     environment.systemPackages = [ cfg.package ];
42   };