{ outputs, config, ... }: { imports = [ outputs.modules.global.nix-config ./kanata.nix ./system.nix ./software.nix ] ++ (builtins.attrValues outputs.modules.darwin); # NOTE: might be valuable to put this in it's own file nix.linux-builder = { enable = true; systems = [ "aarch64-linux" "x86_64-linux" ]; ephemeral = true; supportedFeatures = [ "kvm" "benchmark" "big-parallel" "nixos-test" ]; maxJobs = 4; config = { # Enable x86_64 emulation boot.binfmt.emulatedSystems = [ "x86_64-linux" ]; virtualisation = { darwin-builder = { diskSize = 40 * 1024; memorySize = 8 * 1024; }; cores = 6; }; }; }; nix.settings.system-features = [ "nixos-test" "apple-virt" "benchmark" "big-parallel" "kvm" ]; # nix.settings.extra-platforms = [ "aarch64-linux" ]; # launchd.daemons.linux-builder = { # serviceConfig = { # StandardOutPath = "/var/log/darwin-builder.log"; # StandardErrorPath = "/var/log/darwin-builder.log"; # }; # }; # NOTE: this seems to be needed to make nix work in fish programs.fish = { enable = true; vendor = { completions.enable = true; config.enable = true; functions.enable = true; }; }; environment.shells = [ config.programs.fish.package ]; # TODO: move into module: # system.activationScripts.extraActivation.text = lib.mkAfter '' # # disable spotlight # echo "disable spotlight..." >&2 # mdutil -i off / # ''; # TODO: # - Proton Mail Bridge # - Proton Drive set up home folders programs = { nix-index.enable = true; gnupg.agent.enable = true; }; users.users.thomas.home = "/Users/thomas"; users.users.thomas.shell = config.programs.fish.package; users.groups.nix-users.members = [ "thomas" ]; ids.gids.nixbld = 350; nix.settings.trusted-users = [ "thomas" ]; networking = { hostName = "meili"; remote-login = true; }; time.timeZone = "Europe/Vienna"; system.stateVersion = 4; }