summaryrefslogtreecommitdiff
path: root/common/modules/terminal/default.nix
blob: 8561025de3af143bdc31add8fb1af2033916fec7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
{
  homeManager,
  inputs,
  moduleNameSpace,
  ...
}:
{
  config,
  lib,
  pkgs,
  ...
}:
with lib;
{
  imports = lib.optionals homeManager [
    (import ./foot.nix { inherit lib config; })
    (import ./ghostty.nix { inherit lib config; })
    (import ./alacritty.nix { inherit lib config; })
  ];

  options.${moduleNameSpace}.terminal = {
    default = mkOption {
      type = types.enum [
        "foot"
        "ghostty"
        "alacritty"
      ];
      default = "foot";
      description = "The terminal emulator to enable.";
    };
    foot = mkEnableOption "enable foot";
    alacritty = mkEnableOption "enable alacritty";
    ghostty = mkEnableOption "enable ghostty";

    font = {
      family = mkOption {
        type = types.str;
        default = "monospace";
      };

      size = mkOption {
        type = types.float;
        default = 13.0;
      };

      bright_color_is_bold = mkEnableOption "bright colors in bold font";

      ligatures = mkEnableOption "Only supported by ghostty";
    };

    window = {
      padding-x = mkOption {
        type = types.int;
        default = 10;
        description = "Window padding x axis (pixels).";
      };

      padding-y = mkOption {
        type = types.int;
        default = 10;
        description = "Window padding y axis (pixels).";
      };
    };
  };
}