refactor(module): move locale config to own nixos module
This commit is contained in:
parent
078657f1e2
commit
3f767068d2
3 changed files with 58 additions and 20 deletions
|
@ -28,6 +28,7 @@ in {
|
|||
hardware.enable = true; # Common hardware support and tweaks
|
||||
fonts.enable = true; # Common fonts and font management tweaks
|
||||
audio.enable = true; # Audio setup
|
||||
locale.enable = true; # Locale settings
|
||||
};
|
||||
|
||||
desktop.gnome.enable = true;
|
||||
|
|
57
modules/nixos/common/locale/default.nix
Normal file
57
modules/nixos/common/locale/default.nix
Normal file
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
lib,
|
||||
inputs,
|
||||
namespace,
|
||||
config,
|
||||
...
|
||||
}: with lib; with lib.${namespace};
|
||||
let
|
||||
cfg = config.${namespace}.common.locale;
|
||||
in {
|
||||
options.${namespace}.common.locale = {
|
||||
enable = mkEnableOption "whether to enable common locale tweaks";
|
||||
|
||||
language = mkOption {
|
||||
type = types.str;
|
||||
default = "en_US";
|
||||
example = "en_US";
|
||||
description = "Sets the language for most text, doesn't include monetary or measurement settings";
|
||||
};
|
||||
|
||||
country = mkOption {
|
||||
type = types.str;
|
||||
default = "de_DE";
|
||||
example = "de_DE";
|
||||
description = "Sets the language used for monetary or measurement settings (USD vs Euro, etc...)";
|
||||
};
|
||||
|
||||
keymap = mkOption {
|
||||
type = types.str;
|
||||
default = "de";
|
||||
example = "de";
|
||||
description = "Sets the keymap to be used by the system";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# Internationalisation properties.
|
||||
i18n.defaultLocale = "${cfg.language}.UTF-8";
|
||||
i18n.extraLocaleSettings = {
|
||||
LC_ADDRESS = "${cfg.country}.UTF-8";
|
||||
LC_IDENTIFICATION = "${cfg.country}.UTF-8";
|
||||
LC_MEASUREMENT = "${cfg.country}.UTF-8";
|
||||
LC_MONETARY = "${cfg.country}.UTF-8";
|
||||
LC_NAME = "${cfg.country}.UTF-8";
|
||||
LC_NUMERIC = "${cfg.country}.UTF-8";
|
||||
LC_PAPER = "${cfg.country}.UTF-8";
|
||||
LC_TELEPHONE = "${cfg.country}.UTF-8";
|
||||
LC_TIME = "${cfg.country}.UTF-8";
|
||||
};
|
||||
|
||||
# Set console keymap.
|
||||
console.keyMap = ${cfg.keymap};
|
||||
services.xserver = {
|
||||
xkb.layout = ${cfg.keymap};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -34,26 +34,6 @@ with lib.${namespace};
|
|||
# Set timezone.
|
||||
time.timeZone = "Europe/Berlin";
|
||||
|
||||
# Internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
i18n.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";
|
||||
};
|
||||
|
||||
# Set console keymap.
|
||||
console.keyMap = "de";
|
||||
services.xserver = {
|
||||
xkb.layout = "de";
|
||||
};
|
||||
|
||||
# Enable the power-profiles-daemon service for improved battery management.
|
||||
services.power-profiles-daemon.enable = true;
|
||||
|
||||
|
|
Loading…
Reference in a new issue