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
|
hardware.enable = true; # Common hardware support and tweaks
|
||||||
fonts.enable = true; # Common fonts and font management tweaks
|
fonts.enable = true; # Common fonts and font management tweaks
|
||||||
audio.enable = true; # Audio setup
|
audio.enable = true; # Audio setup
|
||||||
|
locale.enable = true; # Locale settings
|
||||||
};
|
};
|
||||||
|
|
||||||
desktop.gnome.enable = true;
|
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.
|
# Set timezone.
|
||||||
time.timeZone = "Europe/Berlin";
|
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.
|
# Enable the power-profiles-daemon service for improved battery management.
|
||||||
services.power-profiles-daemon.enable = true;
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue