79 lines
2.4 KiB
Nix
79 lines
2.4 KiB
Nix
{
|
|
description = "Custom locale";
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, home-manager, ... }:
|
|
let
|
|
inherit (nixpkgs) lib;
|
|
stateVersion = lib.versions.majorMinor lib.version;
|
|
patchLocales = pkgs: args:
|
|
let glibcLocales =
|
|
if pkgs.glibcLocales == null
|
|
then pkgs.callPackage
|
|
(pkgs.path + "/pkgs/development/libraries/glibc/locales.nix") args
|
|
else pkgs.glibcLocales.override args;
|
|
in glibcLocales.overrideAttrs (base: {
|
|
postPatch = base.postPatch + ''
|
|
cp ${./en_EU} localedata/locales/en_EU
|
|
echo 'en_EU.UTF-8/UTF-8 \' >>localedata/SUPPORTED
|
|
'';
|
|
});
|
|
in {
|
|
nixosModules.default = { config, lib, pkgs, ... }: {
|
|
i18n.defaultLocale = lib.mkDefault "en_EU.UTF-8";
|
|
i18n.glibcLocales = patchLocales pkgs {
|
|
allLocales = builtins.any (x: x == "all")
|
|
config.i18n.supportedLocales;
|
|
|
|
locales = config.i18n.supportedLocales;
|
|
};
|
|
};
|
|
|
|
homeModules.default = { lib, pkgs, ... }: {
|
|
home.language.base = lib.mkDefault "en_EU.UTF-8";
|
|
i18n.glibcLocales = patchLocales pkgs {
|
|
allLocales = false;
|
|
locales = [ "en_EU.UTF-8/UTF-8" ];
|
|
};
|
|
};
|
|
|
|
checks = lib.genAttrs lib.systems.flakeExposed (system: {
|
|
home = (home-manager.lib.homeManagerConfiguration {
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
modules = [
|
|
self.homeModules.default {
|
|
home = {
|
|
inherit stateVersion;
|
|
username = "test";
|
|
homeDirectory = "/home/test";
|
|
};
|
|
}
|
|
];
|
|
}).activationPackage;
|
|
} // lib.optionalAttrs (lib.hasSuffix "-linux" system) {
|
|
nixos = (nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
modules = [
|
|
self.nixosModules.default
|
|
({ modulesPath, ... }: {
|
|
imports = [ (modulesPath + "/profiles/minimal.nix") ];
|
|
boot.loader.grub.enable = false;
|
|
fileSystems."/".device = "nodev";
|
|
system.stateVersion = stateVersion;
|
|
})
|
|
];
|
|
}).config.system.build.toplevel;
|
|
});
|
|
|
|
hydraJobs.checks = {
|
|
inherit (self.checks) x86_64-linux aarch64-linux riscv64-linux;
|
|
};
|
|
};
|
|
}
|