nix-conf/modules/system/locale/default.nix

40 lines
1,006 B
Nix

{ options, config, pkgs, lib, ... }:
with lib;
#with lib.internal;
let cfg = config.custom.system.locale;
in
{
options.custom.system.locale = with types; {
enable = mkBoolOpt false "Whether or not to manage locale settings.";
layout = mkOpt str "de" "The Keyboard layout to use.";
};
config = mkIf cfg.enable {
i18n = {
defaultLocale = "en_NZ.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
LC_CTYPE = "de_DE.UTF-8";
LC_COLLATE = "de_DE.UTF-8";
LC_MESSAGES = "en_NZ.UTF-8";
};
};
console = {
enable = true;
keyMap = mkForce cfg.layout;
};
services.xserver = {
layout = cfg.layout;
};
};
}