53 lines
1.2 KiB
Nix
53 lines
1.2 KiB
Nix
|
{ config, lib, ... }:
|
||
|
let
|
||
|
cfg = config.kropcloud.locale;
|
||
|
in
|
||
|
{
|
||
|
options.kropcloud.locale = {
|
||
|
timeZone = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
default = "Europe/Prague";
|
||
|
description = "The timezone for the system.";
|
||
|
};
|
||
|
keyMap = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
default = "cz-lat2";
|
||
|
description = "The keymap to use for console input.";
|
||
|
};
|
||
|
defaultLocale = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
default = "en_GB.UTF-8";
|
||
|
description = "The default locale for the system.";
|
||
|
};
|
||
|
extraLocale = lib.mkOption {
|
||
|
type = lib.types.str;
|
||
|
default = "cs_CZ.UTF-8";
|
||
|
description = "The locale to apply uniformly to all LC_* categories.";
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = {
|
||
|
# Set the system timezone.
|
||
|
time.timeZone = cfg.timeZone;
|
||
|
|
||
|
# Set the default locale.
|
||
|
i18n.defaultLocale = cfg.defaultLocale;
|
||
|
|
||
|
# Apply the same locale to all LC_* categories.
|
||
|
i18n.extraLocaleSettings = lib.genAttrs [
|
||
|
"LC_ADDRESS"
|
||
|
"LC_IDENTIFICATION"
|
||
|
"LC_MEASUREMENT"
|
||
|
"LC_MONETARY"
|
||
|
"LC_NAME"
|
||
|
"LC_NUMERIC"
|
||
|
"LC_PAPER"
|
||
|
"LC_TELEPHONE"
|
||
|
"LC_TIME"
|
||
|
] (_: cfg.extraLocale);
|
||
|
|
||
|
# Set the console keymap.
|
||
|
console.keyMap = cfg.keyMap;
|
||
|
};
|
||
|
}
|