62 lines
1.7 KiB
Nix
62 lines
1.7 KiB
Nix
{ 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 = [
|
|
./termite
|
|
];
|
|
|
|
options.my.home = with lib; {
|
|
terminal = {
|
|
program = mkOption {
|
|
type = with types; nullOr (enum [ "termite" ]);
|
|
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;
|
|
};
|
|
}
|