targets.darwin: add module

Currently, this module makes sure that `/Applications` directories for
packages in `home.packages` get linked into the user's environment.
wip/yesman
Nicolas Berbiche 4 years ago committed by Robert Helgesson
parent bd4c2b0651
commit d3aee544b6
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
  1. 1
      modules/modules.nix
  2. 14
      modules/targets/darwin.nix
  3. 4
      tests/default.nix
  4. 20
      tests/modules/targets-darwin/darwin.nix
  5. 1
      tests/modules/targets-darwin/default.nix
  6. 0
      tests/modules/targets-linux/default.nix
  7. 0
      tests/modules/targets-linux/generic-linux.nix

@ -189,6 +189,7 @@ let
(loadModule ./services/xscreensaver.nix { })
(loadModule ./services/xsuspender.nix { condition = hostPlatform.isLinux; })
(loadModule ./systemd.nix { })
(loadModule ./targets/darwin.nix { condition = hostPlatform.isDarwin; })
(loadModule ./targets/generic-linux.nix { condition = hostPlatform.isLinux; })
(loadModule ./xcursor.nix { })
(loadModule ./xresources.nix { })

@ -0,0 +1,14 @@
{ config, lib, pkgs, ... }:
{
config = lib.mkIf pkgs.stdenv.hostPlatform.isDarwin {
# Install MacOS applications to the user environment.
home.file."Applications/Home Manager Apps".source = let
apps = pkgs.buildEnv {
name = "home-manager-applications";
paths = config.home.packages;
pathsToLink = "/Applications";
};
in "${apps}/Applications";
};
}

@ -69,6 +69,8 @@ import nmt {
./modules/programs/zplug
./modules/programs/zsh
./modules/xresources
] ++ lib.optionals pkgs.stdenv.hostPlatform.isDarwin [
./modules/targets-darwin
] ++ lib.optionals pkgs.stdenv.hostPlatform.isLinux [
./meta # Suffices to run on one platform.
./modules/misc/debug
@ -93,6 +95,6 @@ import nmt {
./modules/services/window-managers/i3
./modules/services/window-managers/sway
./modules/systemd
./modules/targets
./modules/targets-linux
]);
}

@ -0,0 +1,20 @@
{ config, lib, pkgs, ... }:
with lib;
let
darwinTestApp = pkgs.runCommandLocal "target-darwin-example-app" { } ''
mkdir -p $out/Applications
touch $out/Applications/example-app
'';
in {
config = {
home.packages = [ darwinTestApp ];
nmt.script = ''
assertFileExists 'home-files/Applications/Home Manager Apps/example-app'
'';
};
}

@ -0,0 +1 @@
{ targets-darwin = ./darwin.nix; }
Loading…
Cancel
Save