From 9e6145c031b47fc37398b80dec1b4dfc0cfb5183 Mon Sep 17 00:00:00 2001 From: sefidel Date: Fri, 9 Sep 2022 17:49:03 +0900 Subject: milestone: darwin! feat(darwin/kompakt)!: support darwin chore: reformat feat(home/o32): manage neovim feat(home/development): fix haskell lsp version mismatch feat(darwin/*): stabilise --- lib/mk_home.nix | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'lib/mk_home.nix') diff --git a/lib/mk_home.nix b/lib/mk_home.nix index b2f87dc..a1466ba 100644 --- a/lib/mk_home.nix +++ b/lib/mk_home.nix @@ -3,7 +3,7 @@ { username, hostname, pkgs, version, extraModules ? null }: let entrypoint = "${self}/home/${hostname}/${username}.nix"; - defaultModule = { lib, ... }: { + defaultModule = { lib, config, ... }: { _module.args.inputs = self.inputs; _module.args.self = self; @@ -15,9 +15,33 @@ let home = { inherit username; - homeDirectory = "/home/${username}"; + homeDirectory = if pkgs.stdenv.isDarwin then "/Users/${username}" else "/home/${username}"; stateVersion = version; }; + + # Make applications pop up in finder/spotlight + home.activation = lib.mkIf pkgs.stdenv.isDarwin { + copyApplications = + let + apps = pkgs.buildEnv { + name = "home-manager-applications"; + paths = config.home.packages; + pathsToLink = "/Applications"; + }; + in + lib.hm.dag.entryAfter [ "writeBoundary" ] '' + baseDir="$HOME/Applications/Home Manager Apps" + if [ -d "$baseDir" ]; then + rm -rf "$baseDir" + fi + mkdir -p "$baseDir" + for appFile in ${apps}/Applications/*; do + target="$baseDir/$(basename "$appFile")" + $DRY_RUN_CMD cp ''${VERBOSE_ARG:+-v} -fHRL "$appFile" "$baseDir" + $DRY_RUN_CMD chmod ''${VERBOSE_ARG:+-v} -R +w "$target" + done + ''; + }; }; in home-manager.lib.homeManagerConfiguration { -- cgit 1.4.1