nix-dots/machines/mac/configuration.nix

86 lines
1.6 KiB
Nix

{
config,
pkgs,
...
}: {
users.users.michael = {
home = "/Users/michael";
shell = pkgs.zsh;
};
networking = {
computerName = "neptune";
hostName = "neptune";
};
environment = {
shells = with pkgs; [zsh];
variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
systemPackages = with pkgs; [
# Containers
colima
unstable.docker-client
unstable.docker-compose
# Video
ffmpeg
# Spotify
unstable.spicetify-cli
# Java
checkstyle
# XCode
cocoapods
# Android Development
android-tools
];
};
programs = {
zsh = {
enable = true;
# Make zsh installation work properly with macOS path
loginShellInit = ''
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
'';
enableGlobalCompInit = false;
};
};
security.pam.enableSudoTouchIdAuth = true;
services = {
nix-daemon.enable = true;
};
nixpkgs = {
# Workaround for pyopenssl being marked broken
config.allowBroken = true;
};
nix = {
package = pkgs.nix;
gc = {
automatic = true;
interval.Day = 7;
options = "--delete-older-than 7d";
};
extraOptions = ''
experimental-features = nix-command flakes
'';
settings = {
auto-optimise-store = false;
trusted-users = ["root" "michael"];
};
};
system = {
# Since it's not possible to declare default shell, run this command after build
activationScripts.postActivation.text = ''sudo chsh -s ${pkgs.zsh}/bin/zsh'';
stateVersion = 4;
};
}