49 lines
1.3 KiB
Nix
49 lines
1.3 KiB
Nix
{ self, lib, ... }: {
|
|
flake.nixosModules.systemLocalization = {
|
|
config,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.chiasson.system.localization;
|
|
in
|
|
{
|
|
options.chiasson.system.localization = {
|
|
timeZone = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "America/Moncton";
|
|
description = "Default system timezone.";
|
|
};
|
|
defaultLocale = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "en_CA.UTF-8";
|
|
description = "Default system locale.";
|
|
};
|
|
xkb = {
|
|
layout = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "ca";
|
|
description = "Default XKB layout.";
|
|
};
|
|
variant = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "";
|
|
description = "Default XKB variant.";
|
|
};
|
|
};
|
|
consoleKeyMap = lib.mkOption {
|
|
type = lib.types.str;
|
|
default = "cf";
|
|
description = "Default Linux console keymap.";
|
|
};
|
|
};
|
|
|
|
config = {
|
|
time.timeZone = lib.mkDefault cfg.timeZone;
|
|
i18n.defaultLocale = lib.mkDefault cfg.defaultLocale;
|
|
services.xserver.xkb.layout = lib.mkDefault cfg.xkb.layout;
|
|
services.xserver.xkb.variant = lib.mkDefault cfg.xkb.variant;
|
|
console.keyMap = lib.mkDefault cfg.consoleKeyMap;
|
|
};
|
|
};
|
|
}
|