darwin: Merge shared configuration between hosts
This commit is contained in:
parent
cc4b19e36e
commit
464b0bd5fe
5 changed files with 76 additions and 120 deletions
6
flake.lock
generated
6
flake.lock
generated
|
@ -92,11 +92,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748455938,
|
"lastModified": 1748489961,
|
||||||
"narHash": "sha256-mQ/iNzPra2WtDQ+x2r5IadcWNr0m3uHvLMzJkXKAG/8=",
|
"narHash": "sha256-uGnudxMoQi2c8rpPoHXuQSm80NBqlOiNF4xdT3hhzLM=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "02077149e2921014511dac2729ae6dadb4ec50e2",
|
"rev": "95c988cf08e9a5a8fe7cc275d5e3f24e9e87bd51",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
36
hosts/darwin/shared/common.nix
Normal file
36
hosts/darwin/shared/common.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
imports = [
|
||||||
|
./java.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
# We'd like to use Vim globally.
|
||||||
|
environment = {
|
||||||
|
systemPackages = [
|
||||||
|
pkgs.vim
|
||||||
|
];
|
||||||
|
variables.EDITOR = "${pkgs.vim}/bin/vim";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Similarly, we'd like to use zsh.
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
|
||||||
|
# We make the assumption our user is named `spot`.
|
||||||
|
users.users.spot = {
|
||||||
|
description = "Spotlight Deveaux";
|
||||||
|
home = "/Users/spot";
|
||||||
|
shell = pkgs.zsh;
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
# Keep the latest version of Nix.
|
||||||
|
package = pkgs.nix;
|
||||||
|
settings = {
|
||||||
|
# Necessary for using flakes on this system.
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
|
||||||
|
# Include Garnix
|
||||||
|
substituters = [ "https://cache.garnix.io" ];
|
||||||
|
trusted-public-keys = [ "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
30
hosts/darwin/shared/java.nix
Normal file
30
hosts/darwin/shared/java.nix
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{ pkgs, ... }: {
|
||||||
|
# Install the latest JDK, and latest LTS JDK.
|
||||||
|
# Per https://github.com/LnL7/nix-darwin/issues/663,
|
||||||
|
# nix-darwin only supports a few specific named activation scripts.
|
||||||
|
# We'll leverage `extraActivation` to symlink our JDKs.
|
||||||
|
# TODO(spotlightishere): Migrate to explicit scripts when possible
|
||||||
|
system.activationScripts.extraActivation.text = ''
|
||||||
|
##############
|
||||||
|
# Latest JDK #
|
||||||
|
##############
|
||||||
|
# Regardless of version, we'd like the latest JDK available.
|
||||||
|
|
||||||
|
# Remove the symlink if it doesn't already exist.
|
||||||
|
rm -f /Library/Java/JavaVirtualMachines/zulu-latest.jdk
|
||||||
|
|
||||||
|
# We should only have a single JDK present within our package,
|
||||||
|
# but let's limit `find` regardless.
|
||||||
|
JDK_LOCATION="$(find "${pkgs.jdk24}" -name "*.jdk" | head -n1)"
|
||||||
|
|
||||||
|
# Symlink!
|
||||||
|
ln -sf "$JDK_LOCATION" "/Library/Java/JavaVirtualMachines/zulu-latest.jdk"
|
||||||
|
|
||||||
|
##########
|
||||||
|
# JDK 21 #
|
||||||
|
##########
|
||||||
|
# We'd also like the latest LTS version of the JDK available.
|
||||||
|
rm -f /Library/Java/JavaVirtualMachines/zulu-21.jdk
|
||||||
|
ln -sf "${pkgs.jdk21}/zulu-21.jdk" "/Library/Java/JavaVirtualMachines/zulu-21.jdk"
|
||||||
|
'';
|
||||||
|
}
|
|
@ -1,66 +1,11 @@
|
||||||
{ lib, pkgs, system, ... }: {
|
{ lib, pkgs, system, ... }: {
|
||||||
environment = {
|
imports = [
|
||||||
# We'll use Vim globally.
|
../shared/common.nix
|
||||||
systemPackages = [
|
|
||||||
pkgs.vim
|
|
||||||
];
|
];
|
||||||
variables.EDITOR = "${pkgs.vim}/bin/vim";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Per https://github.com/LnL7/nix-darwin/issues/663,
|
|
||||||
# nix-darwin only supports a few specific named activation scripts.
|
|
||||||
# We'll leverage `extraActivation` to symlink our JDKs.
|
|
||||||
system.activationScripts.extraActivation.text = ''
|
|
||||||
##############
|
|
||||||
# Latest JDK #
|
|
||||||
##############
|
|
||||||
# Regardless of version, we'd like the latest JDK available.
|
|
||||||
|
|
||||||
# Remove the symlink if it doesn't already exist.
|
|
||||||
rm -f /Library/Java/JavaVirtualMachines/zulu-latest.jdk
|
|
||||||
|
|
||||||
# We should only have a single JDK present within our package,
|
|
||||||
# but let's limit `find` regardless.
|
|
||||||
JDK_LOCATION="$(find "${pkgs.jdk24}" -name "*.jdk" | head -n1)"
|
|
||||||
|
|
||||||
# Symlink!
|
|
||||||
ln -sf "$JDK_LOCATION" "/Library/Java/JavaVirtualMachines/zulu-latest.jdk"
|
|
||||||
|
|
||||||
##########
|
|
||||||
# JDK 21 #
|
|
||||||
##########
|
|
||||||
# We'd also like the latest LTS version of the JDK available.
|
|
||||||
rm -f /Library/Java/JavaVirtualMachines/zulu-21.jdk
|
|
||||||
ln -sf "${pkgs.jdk21}/zulu-21.jdk" "/Library/Java/JavaVirtualMachines/zulu-21.jdk"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Auto upgrade the nix package.
|
|
||||||
nix = {
|
|
||||||
# Keep the latest version of Nix.
|
|
||||||
package = pkgs.nix;
|
|
||||||
settings = {
|
|
||||||
# Necessary for using flakes on this system.
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
|
|
||||||
# Include Garnix
|
|
||||||
substituters = [ "https://cache.garnix.io" ];
|
|
||||||
trusted-public-keys = [ "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
# $ darwin-rebuild changelog
|
# $ darwin-rebuild changelog
|
||||||
system.stateVersion = 6;
|
system.stateVersion = 6;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-darwin";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-darwin";
|
||||||
|
|
||||||
# Our singular user!
|
|
||||||
users.users.spot = {
|
|
||||||
description = "Spotlight Deveaux";
|
|
||||||
home = "/Users/spot";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,66 +1,11 @@
|
||||||
{ lib, pkgs, system, ... }: {
|
{ lib, pkgs, system, ... }: {
|
||||||
environment = {
|
imports = [
|
||||||
# We'll use Vim globally.
|
../shared/common.nix
|
||||||
systemPackages = [
|
|
||||||
pkgs.vim
|
|
||||||
];
|
];
|
||||||
variables.EDITOR = "${pkgs.vim}/bin/vim";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Per https://github.com/LnL7/nix-darwin/issues/663,
|
|
||||||
# nix-darwin only supports a few specific named activation scripts.
|
|
||||||
# We'll leverage `extraActivation` to symlink our JDKs.
|
|
||||||
system.activationScripts.extraActivation.text = ''
|
|
||||||
##############
|
|
||||||
# Latest JDK #
|
|
||||||
##############
|
|
||||||
# Regardless of version, we'd like the latest JDK available.
|
|
||||||
|
|
||||||
# Remove the symlink if it doesn't already exist.
|
|
||||||
rm -f /Library/Java/JavaVirtualMachines/zulu-latest.jdk
|
|
||||||
|
|
||||||
# We should only have a single JDK present within our package,
|
|
||||||
# but let's limit `find` regardless.
|
|
||||||
JDK_LOCATION="$(find "${pkgs.jdk24}" -name "*.jdk" | head -n1)"
|
|
||||||
|
|
||||||
# Symlink!
|
|
||||||
ln -sf "$JDK_LOCATION" "/Library/Java/JavaVirtualMachines/zulu-latest.jdk"
|
|
||||||
|
|
||||||
##########
|
|
||||||
# JDK 21 #
|
|
||||||
##########
|
|
||||||
# We'd also like the latest LTS version of the JDK available.
|
|
||||||
rm -f /Library/Java/JavaVirtualMachines/zulu-21.jdk
|
|
||||||
ln -sf "${pkgs.jdk21}/zulu-21.jdk" "/Library/Java/JavaVirtualMachines/zulu-21.jdk"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Auto upgrade the nix package.
|
|
||||||
nix = {
|
|
||||||
# Keep the latest version of Nix.
|
|
||||||
package = pkgs.nix;
|
|
||||||
settings = {
|
|
||||||
# Necessary for using flakes on this system.
|
|
||||||
experimental-features = "nix-command flakes";
|
|
||||||
|
|
||||||
# Include Garnix
|
|
||||||
substituters = [ "https://cache.garnix.io" ];
|
|
||||||
trusted-public-keys = [ "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing.
|
||||||
# $ darwin-rebuild changelog
|
# $ darwin-rebuild changelog
|
||||||
system.stateVersion = 4;
|
system.stateVersion = 6;
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "aarch64-darwin";
|
nixpkgs.hostPlatform = lib.mkDefault "aarch64-darwin";
|
||||||
|
|
||||||
# Our singular user!
|
|
||||||
users.users.spot = {
|
|
||||||
description = "Spotlight Deveaux";
|
|
||||||
home = "/Users/spot";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue