1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 18:21:07 +01:00
Files
niveum/modules/constants.nix

131 lines
3.1 KiB
Nix
Raw Normal View History

2019-04-19 03:11:51 +02:00
{ config, lib, pkgs, ... }:
with lib;
let
2019-04-19 15:02:05 +02:00
colourScheme = config.niveum.colours;
my-types.hexColour = types.strMatching "#[0-9A-Fa-f]{6}";
my-types.colourPair = types.submodule {
options = {
dark = mkOption { type = my-types.hexColour; };
bright = mkOption { type = my-types.hexColour; };
};
};
my-types.theme = types.submodule {
options = {
name = mkOption { type = types.str; };
package = mkOption { type = types.package; };
};
};
my-types.colourTheme = types.submodule {
options = {
black = mkOption { type = my-types.colourPair; };
red = mkOption { type = my-types.colourPair; };
green = mkOption { type = my-types.colourPair; };
yellow = mkOption { type = my-types.colourPair; };
blue = mkOption { type = my-types.colourPair; };
magenta = mkOption { type = my-types.colourPair; };
cyan = mkOption { type = my-types.colourPair; };
white = mkOption { type = my-types.colourPair; };
background = mkOption { type = my-types.hexColour; };
foreground = mkOption { type = my-types.hexColour; };
cursor = mkOption { type = my-types.hexColour; };
2019-04-19 03:11:51 +02:00
};
};
in {
options.niveum = {
2020-06-10 17:37:25 +02:00
applications = { fileManager = mkOption { type = types.str; }; };
2019-04-19 15:02:05 +02:00
colours = mkOption { type = my-types.colourTheme; };
colourPalette = mkOption {
type = types.listOf my-types.hexColour;
default = with config.niveum.colours; [
black.dark
red.dark
green.dark
yellow.dark
blue.dark
magenta.dark
cyan.dark
white.dark
black.bright
red.bright
green.bright
yellow.bright
blue.bright
magenta.bright
cyan.bright
white.bright
];
};
2019-06-17 19:10:42 +02:00
networkInterfaces.wireless = mkOption { type = types.str; };
batteryBlocks.default = mkOption { type = types.str; };
2019-06-17 19:10:42 +02:00
2020-06-10 17:37:25 +02:00
promptColours = let
colours16 = types.enum [
"black"
"red"
"green"
"yellow"
"blue"
"magenta"
"cyan"
"white"
];
2019-06-17 19:10:42 +02:00
in {
2020-06-10 17:37:25 +02:00
success = mkOption {
type = colours16;
default = "green";
};
failure = mkOption {
type = colours16;
default = "red";
};
2019-06-17 19:10:42 +02:00
};
2020-06-10 17:37:25 +02:00
fonts = { size = mkOption { type = types.int; }; };
2019-04-19 03:11:51 +02:00
user = {
2019-04-19 15:02:05 +02:00
github = mkOption { type = types.str; };
name = mkOption { type = types.str; };
email = mkOption { type = types.strMatching ".+@.+\\..+"; };
2019-04-19 03:11:51 +02:00
};
ignore = mkOption {
2019-04-19 15:02:05 +02:00
type = types.listOf types.str;
2020-06-10 17:37:25 +02:00
default = [
"*~"
".stack-work/"
"__pycache__/"
".mypy_cache/"
"*.py[co]"
"*.o"
"*.hi"
"*.aux"
"*.bbl"
"*.bcf"
"*.blg"
"*.fdb_latexmk"
"*.fls"
"*.out"
"*.run.xml"
"*.toc"
"*.bbl"
"*.class"
"*.dyn_hi"
"*.dyn_o"
"dist/"
];
2019-04-19 03:11:51 +02:00
};
theme = {
2019-04-19 15:02:05 +02:00
gtk = mkOption { type = my-types.theme; };
icon = mkOption { type = my-types.theme; };
cursor = mkOption { type = my-types.theme; };
2019-04-19 03:11:51 +02:00
};
};
}