universe/modules/modules/locale.nix

43 lines
895 B
Nix

{ config, options, lib, ... }:
with lib;
with lib.our;
let
cfg = config.modules.locale;
opt = options.modules.locale;
in
{
options.modules.locale = with types; {
keymap = mkOpt str "us";
locale = mkOpt str "en_US.UTF-8";
timezone = mkOpt str "America/New_York";
fonts = {
fonts = mkOpt (listOf package) [ ];
defaults = mkOpt attrs { };
};
};
config = {
console.keyMap = mkDefault cfg.keymap;
services.xserver = {
xkb = {
layout = mkDefault cfg.keymap;
options = "compose:ralt";
};
libinput.enable = true;
};
i18n.defaultLocale = cfg.locale;
time.timeZone = cfg.timezone;
services.automatic-timezoned.enable = true;
fonts = {
packages = cfg.fonts.fonts;
fontconfig.defaultFonts = mkAliasDefinitions opt.fonts.defaults;
};
console.packages = cfg.fonts.fonts;
};
}