-
Notifications
You must be signed in to change notification settings - Fork 0
/
locale.mod.nix
47 lines (43 loc) · 1.18 KB
/
locale.mod.nix
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
let
settings = {
keyboard_layout = "no";
timezone = "Europe/Stockholm";
language = "en_US.UTF-8";
formats = "C.UTF-8";
};
module = {lib, ...}:
with lib; {
options.locale =
mapAttrs (
const (value:
mkOption {
type = types.str;
readOnly = true;
default = value;
})
)
settings;
};
in {
universal.modules = [
module
({config, ...}: {
time.timeZone = config.locale.timezone;
console.keyMap = config.locale.keyboard_layout;
i18n.defaultLocale = config.locale.language;
i18n.extraLocaleSettings = {
LC_ADDRESS = config.locale.formats;
LC_IDENTIFICATION = config.locale.formats;
LC_MEASUREMENT = config.locale.formats;
LC_MONETARY = config.locale.formats;
LC_NAME = config.locale.formats;
LC_NUMERIC = config.locale.formats;
LC_PAPER = config.locale.formats;
LC_TELEPHONE = config.locale.formats;
LC_TIME = config.locale.formats;
};
environment.variables."XKB_DEFAULT_LAYOUT" = config.locale.keyboard_layout;
})
];
universal.home_modules = [module];
}