mirror of
https://github.com/nix-community/home-manager
synced 2024-11-24 20:19:45 +01:00
5f433eb164
Before, loading a module would be guarded by an optional platform condition. This made it possible to avoid loading and evaluating a module if it did not support the host platform. Unfortunately, this made it impossible to share a single configuration between GNU/Linux and Darwin hosts, which some wish to do. This removes the conditional load and instead inserts host platform assertions in the modules that are platform specific. Fixes #1906
29 lines
771 B
Nix
29 lines
771 B
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
homeDir = config.home.homeDirectory;
|
|
fontsEnv = pkgs.buildEnv {
|
|
name = "home-manager-fonts";
|
|
paths = config.home.packages;
|
|
pathsToLink = "/share/fonts";
|
|
};
|
|
fonts = "${fontsEnv}/share/fonts";
|
|
in {
|
|
# macOS won't recognize symlinked fonts
|
|
config = mkIf pkgs.hostPlatform.isDarwin {
|
|
home.activation.copyFonts = hm.dag.entryAfter [ "writeBoundary" ] ''
|
|
copyFonts() {
|
|
rm -rf ${homeDir}/Library/Fonts/HomeManager || :
|
|
|
|
local f
|
|
find -L "${fonts}" -type f -printf '%P\0' | while IFS= read -rd "" f; do
|
|
$DRY_RUN_CMD install $VERBOSE_ARG -Dm644 -T \
|
|
"${fonts}/$f" "${homeDir}/Library/Fonts/HomeManager/$f"
|
|
done
|
|
}
|
|
copyFonts
|
|
'';
|
|
};
|
|
}
|