grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / programs / screen.nix
blob63bfe6576cc02d3b2fef8b6068deacbe5591edcb
1 { config, lib, pkgs, ... }:
3 let
4   cfg = config.programs.screen;
5 in
8   options = {
9     programs.screen = {
10       enable = lib.mkEnableOption "screen, a basic terminal multiplexer";
12       package = lib.mkPackageOption pkgs "screen" { };
14       screenrc = lib.mkOption {
15         type = lib.types.lines;
16         default = "";
17         example = ''
18           defscrollback 10000
19           startup_message off
20         '';
21         description = "The contents of {file}`/etc/screenrc` file";
22       };
23     };
24   };
26   config = lib.mkMerge [
27     {
28       # TODO: Added in 24.05, remove before 24.11
29       assertions = [
30         {
31           assertion = cfg.screenrc != "" -> cfg.enable;
32           message = "`programs.screen.screenrc` has been configured, but `programs.screen.enable` is not true";
33         }
34       ];
35     }
36     (lib.mkIf cfg.enable {
37       environment.etc.screenrc = {
38         text = cfg.screenrc;
39       };
40       environment.systemPackages = [ cfg.package ];
41       security.pam.services.screen = {};
42     })
43   ];