46 lines
1019 B
Nix

{ config, lib, ... }:
let
inherit (lib) mkDefault mkEnableOption mkIf;
cfg = config.ataraxia.defaults.locale;
dk = "en_DK.UTF-8";
gb = "en_GB.UTF-8";
ie = "en_IE.UTF-8";
ru = "ru_RU.UTF-8";
us = "en_US.UTF-8";
lang = "en_US:en:C:ru_RU:ru";
in
{
options.ataraxia.defaults.locale = {
enable = mkEnableOption "Default locale settings";
};
config = mkIf cfg.enable {
# Locale
i18n.defaultCharset = "UTF-8";
i18n.defaultLocale = ie;
i18n.extraLocaleSettings = {
LANGUAGE = lang;
LC_TIME = dk;
LC_ADDRESS = ru;
LC_MONETARY = ru;
LC_NUMERIC = ru;
LC_PAPER = ru;
LC_TELEPHONE = ru;
};
i18n.extraLocales = map (x: "${x}/${config.i18n.defaultCharset}") [
gb
us
];
# Keyboard layout
console.earlySetup = true;
console.useXkbConfig = true;
services.xserver.xkb = {
layout = "us,ru";
options = "grp:win_space_toggle";
};
# Timezone
time.timeZone = mkDefault "Europe/Moscow";
};
}