Two failing services after the channel switch. automatic-timezoned has been polkit-blocked since well before the switch — replace with a static Europe/London timezone. Hosts that travel can override locally if needed. The vendored crowdsec module's setup unit chowns its config dir to the (DynamicUser-allocated) crowdsec user via an ExecStartPre+ hack. On stable's systemd the dynamic user isn't visible to chown via NSS at that point, so it fails with 'invalid user'. Declaring crowdsec as a static system user makes systemd use it (DynamicUser becomes a no-op) and the chown resolves cleanly. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
32 lines
749 B
Nix
32 lines
749 B
Nix
# locale.nix
|
|
{ config, pkgs, lib, ... }:
|
|
|
|
{
|
|
# Static timezone — automatic-timezoned needs polkit rules to call timedate1
|
|
# and was failing on every host. Override on the laptop if it ever moves.
|
|
time.timeZone = "Europe/London";
|
|
|
|
# Select internationalisation properties.
|
|
i18n.defaultLocale = "en_GB.UTF-8";
|
|
i18n.extraLocaleSettings = {
|
|
LC_ADDRESS = "en_GB.UTF-8";
|
|
LC_IDENTIFICATION = "en_GB.UTF-8";
|
|
LC_MEASUREMENT = "en_GB.UTF-8";
|
|
LC_MONETARY = "en_GB.UTF-8";
|
|
LC_NAME = "en_GB.UTF-8";
|
|
LC_NUMERIC = "en_GB.UTF-8";
|
|
LC_PAPER = "en_GB.UTF-8";
|
|
LC_TELEPHONE = "en_GB.UTF-8";
|
|
LC_TIME = "en_GB.UTF-8";
|
|
};
|
|
|
|
# Configure keymap in X11
|
|
services.xserver.xkb = {
|
|
layout = "gb";
|
|
variant = "";
|
|
};
|
|
|
|
# Configure console keymap
|
|
console.keyMap = "uk";
|
|
|
|
}
|