nix-config/modules/home/terminal/default.nix

63 lines
1.8 KiB
Nix
Raw Permalink Normal View History

{ config, lib, ... }:
let
mkColorOption = with lib; description: default: mkOption {
inherit description default;
example = "#abcdef";
type = types.strMatching "#[0-9a-f]{6}";
};
cfg = config.my.home.terminal;
in
{
imports = [
2023-02-12 17:46:49 +01:00
./alacritty
./termite
];
options.my.home = with lib; {
terminal = {
2021-04-05 02:57:32 +02:00
program = mkOption {
2023-02-12 17:46:49 +01:00
type = with types; nullOr (enum [ "alacritty" "termite" ]);
2021-04-05 02:57:32 +02:00
default = null;
example = "termite";
description = "Which terminal to use for home session";
};
colors = {
background = mkColorOption "Background color" "#161616";
foreground = mkColorOption "Foreground color" "#ffffff";
foregroundBold = mkColorOption "Foreground bold color" "#ffffff";
cursor = mkColorOption "Cursor color" "#ffffff";
black = mkColorOption "Black" "#222222";
blackBold = mkColorOption "Black bold" "#666666";
red = mkColorOption "Red" "#e84f4f";
redBold = mkColorOption "Red bold" "#d23d3d";
green = mkColorOption "Green" "#b7ce42";
greenBold = mkColorOption "Green bold" "#bde077";
yellow = mkColorOption "Yellow" "#fea63c";
yellowBold = mkColorOption "Yellow bold" "#ffe863";
blue = mkColorOption "Blue" "#66aabb";
blueBold = mkColorOption "Blue bold" "#aaccbb";
magenta = mkColorOption "Magenta" "#b7416e";
magentaBold = mkColorOption "Magenta bold" "#e16a98";
cyan = mkColorOption "Cyan" "#6d878d";
cyanBold = mkColorOption "Cyan bold" "#42717b";
white = mkColorOption "White" "#dddddd";
whiteBold = mkColorOption "White bold" "#cccccc";
};
};
};
config.home.sessionVariables = lib.mkIf (cfg.program != null) {
TERMINAL = cfg.program;
};
}