diff --git a/modules/darwin/applications.nix b/modules/darwin/applications.nix index 8f4d4c1..f8d87f2 100644 --- a/modules/darwin/applications.nix +++ b/modules/darwin/applications.nix @@ -7,18 +7,18 @@ system.defaults.dock.persistent-apps = [ "/Applications/Firefox.app" "/Applications/Ghostty.app" - "${pkgs.spotify}/Applications/Spotify.app" + "/Applications/Nix Apps/Spotify.app" "/System/Applications/Messages.app" - "${pkgs.utm}/Applications/UTM.app" + "/Applications/Nix Apps/UTM.app" - "/Applications/Thunderbird.app" - "${pkgs.obsidian}/Applications/Obsidian.app" - "${pkgs.keepassxc}/Applications/KeePassXC.app" + "/System/Applications/Mail.app" + "/Applications/Nix Apps/Obsidian.app" + "/Applications/Nix Apps/KeePassXC.app" "/Applications/OBS.app" - "${pkgs.audacity}/Applications/Audacity.app" - "${pkgs.gimp}/Applications/GNU Image Manipulation Program.app" + "/Applications/Nix Apps/Audacity.app" + "/Applications/Nix Apps/GNU Image Manipulation Program.app" "/Applications/Krita.app" "/Applications/Blender.app" "/Applications/OpenUTAU.app" diff --git a/modules/darwin/nix.nix b/modules/darwin/nix.nix index 0340a43..45ce730 100644 --- a/modules/darwin/nix.nix +++ b/modules/darwin/nix.nix @@ -1,6 +1,30 @@ { config, lib, pkgs, ... }: { + system.activationScripts.applications.text = let + appsSrc = config.system.build.applications + /Applications; + baseDir = "/Applications/Nix Apps"; + in + pkgs.lib.mkForce '' + echo 'Setting up /Applications/Nix Apps...' >&2 + appsSrc="${appsSrc}" + if [ -d "$appsSrc" ]; then + baseDir="${baseDir}" + rsyncFlags=( + --archive + --checksum + --chmod=-w + --copy-unsafe-links + --delete + --no-group + --no-owner + ) + $DRY_RUN_CMD mkdir -p "$baseDir" + $DRY_RUN_CMD ${lib.getBin pkgs.rsync}/bin/rsync \ + ''${VERBOSE_ARG:+-v} "''${rsyncFlags[@]}" "$appsSrc/" "$baseDir" + fi + ''; + # nix auto garbage collection nix.gc = { automatic = true; @@ -8,27 +32,6 @@ options = "--delete-older-than 7d"; }; - # make nix applications use alias instead of symlinks for compatability - system.activationScripts.applications.text = let - env = pkgs.buildEnv { - name = "system-applications"; - paths = config.environment.systemPackages; - pathsToLink = "/Applications"; - }; - in - pkgs.lib.mkForce '' - # Set up applications. - echo "setting up /Applications..." >&2 - rm -rf /Applications/Nix\ Apps - mkdir -p /Applications/Nix\ Apps - find ${env}/Applications -maxdepth 1 -type l -exec readlink '{}' + | - while read -r src; do - app_name=$(basename "$src") - echo "copying $src" >&2 - ${pkgs.mkalias}/bin/mkalias "$src" "/Applications/Nix Apps/$app_name" - done - ''; - # changing this might break system.stateVersion = 5; }