This repository has been archived on 2024-08-18. You can view files and clone it, but cannot push or open issues or pull requests.
en_EU/flake.nix
2024-08-07 15:30:13 +02:00

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;
};
};
}