diff options
Diffstat (limited to 'infra/libkookie/home-manager/modules/targets/darwin/fonts.nix')
-rw-r--r-- | infra/libkookie/home-manager/modules/targets/darwin/fonts.nix | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/infra/libkookie/home-manager/modules/targets/darwin/fonts.nix b/infra/libkookie/home-manager/modules/targets/darwin/fonts.nix new file mode 100644 index 000000000000..bc4042a8d739 --- /dev/null +++ b/infra/libkookie/home-manager/modules/targets/darwin/fonts.nix @@ -0,0 +1,27 @@ +{ 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.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 + ''; +} |