mirror of
https://github.com/nix-community/home-manager.git
synced 2025-11-08 11:36:05 +01:00
Move platform check into modules
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
This commit is contained in:
parent
1617e56c2f
commit
5f433eb164
90 changed files with 743 additions and 307 deletions
|
|
@ -43,6 +43,11 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf (activationCmds != [ ]) {
|
||||
assertions = [
|
||||
(hm.assertions.assertPlatform "targets.darwin.defaults" pkgs
|
||||
platforms.darwin)
|
||||
];
|
||||
|
||||
home.activation.setDarwinDefaults = hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
$VERBOSE_ECHO "Configuring macOS user defaults"
|
||||
${concatStringsSep "\n" activationCmds}
|
||||
|
|
|
|||
|
|
@ -12,16 +12,18 @@ let
|
|||
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 || :
|
||||
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
|
||||
'';
|
||||
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
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,6 +31,11 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf (cfg.keybindings != { }) {
|
||||
assertions = [
|
||||
(hm.assertions.assertPlatform "targets.darwin.keybindings" pkgs
|
||||
platforms.darwin)
|
||||
];
|
||||
|
||||
# NOTE: just copy the files because symlinks won't be recognized by macOS
|
||||
home.activation.setCocoaKeybindings =
|
||||
hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
|
|
|
|||
|
|
@ -20,6 +20,11 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf (cfg.search != null) {
|
||||
assertions = [
|
||||
(hm.assertions.assertPlatform "targets.darwin.search" pkgs
|
||||
platforms.darwin)
|
||||
];
|
||||
|
||||
targets.darwin.defaults = {
|
||||
NSGlobalDomain.NSPreferredWebServices = {
|
||||
NSWebServicesProviderWebSearch = {
|
||||
|
|
|
|||
|
|
@ -27,6 +27,10 @@ in {
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
(hm.assertions.assertPlatform "targets.genericLinux" pkgs platforms.linux)
|
||||
];
|
||||
|
||||
xdg.systemDirs.data = [
|
||||
# Nix profiles
|
||||
"\${NIX_STATE_DIR:-/nix/var/nix}/profiles/default/share"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue