aboutsummaryrefslogtreecommitdiffstats
path: root/modules/tools/terminal/alacritty/default.nix
blob: 4bffc0bb4d03522d49cbbe18beb7903dc9ab1f98 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{ pkgs, config, lib, ... }:

{
	options.tools.terminal.alacritty = {
		enable = lib.mkEnableOption "Enables alacritty.";
	};

	config = lib.mkIf config.tools.terminal.alacritty.enable {
		programs.alacritty.enable = true;
		tools.terminal.default = lib.mkDefault "alacritty";
		tools.terminal.command =
			if config.tools.terminal.default == "alacritty" then
				lib.mkForce "${pkgs.kitty}/bin/alacritty"
			else "";

		programs.alacritty.settings = {
			window = {
				opacity = 1.0;
				padding = {
					x = config.desktop.window-manager.gap;
					y = config.desktop.window-manager.gap;
				};
				decorations = "none";
			};

			font = {
				normal = {
					family = config.fonts.normal;
					style = "Retina";
				};
				bold = {
					family = config.fonts.bold;
					style = "Bold";
				};
				italic = {
					family = config.fonts.italic;
				};
				size = config.fonts.size;
			};

			colors = with config.scheme; {
				primary = {
					background = "0x${base00}";
					foreground = "0x${base05}";
				};
				normal = {
					black = "0x${base00}";
					red = "0x${base08}";
					green = "0x${base0B}";
					yellow = "0x${base0A}";
					blue = "0x${base0D}";
					magenta = "0x${base0E}";
					cyan = "0x${base0C}";
					white = "0x${base05}";
				};
				bright = {
					black = "0x${base03}";
					red = "0x${base08}";
					green = "0x${base0B}";
					yellow = "0x${base0A}";
					blue = "0x${base0D}";
					magenta = "0x${base0E}";
					cyan = "0x${base0C}";
					white = "0x${base07}";
				};
				dim = {
					black = "0x${base01}";
					red = "0x${base08}";
					green = "0x${base0B}";
					yellow = "0x${base0A}";
					blue = "0x${base0D}";
					magenta = "0x${base0E}";
					cyan = "0x${base0C}";
					white = "0x${base04}";
				};
			};

			shell = {
				program = config.shell.command;
			};
		};
	};
}