39 lines
824 B
Nix
39 lines
824 B
Nix
{ config, options, lib, ... }:
|
|
with lib;
|
|
with lib.hlissner;
|
|
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 = {
|
|
layout = mkDefault cfg.keymap;
|
|
xkbOptions = "compose:ralt";
|
|
libinput.enable = true;
|
|
};
|
|
|
|
i18n.defaultLocale = cfg.locale;
|
|
|
|
time.timeZone = cfg.timezone;
|
|
|
|
fonts = {
|
|
fonts = cfg.fonts.fonts;
|
|
fontconfig.defaultFonts = mkAliasDefinitions opt.fonts.defaults;
|
|
};
|
|
|
|
console.packages = cfg.fonts.fonts;
|
|
};
|
|
}
|