1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8let
9 cfg = config.programs.screen;
10in
11
12{
13 options = {
14 programs.screen = {
15 enable = lib.mkEnableOption "screen, a basic terminal multiplexer";
16
17 package = lib.mkPackageOption pkgs "screen" { };
18
19 screenrc = lib.mkOption {
20 type = lib.types.lines;
21 default = "";
22 example = ''
23 defscrollback 10000
24 startup_message off
25 '';
26 description = "The contents of {file}`/etc/screenrc` file";
27 };
28 };
29 };
30
31 config = lib.mkMerge [
32 (lib.mkIf cfg.enable {
33 environment.etc.screenrc = {
34 text = cfg.screenrc;
35 };
36 environment.systemPackages = [ cfg.package ];
37 security.pam.services.screen = { };
38 })
39 ];
40}