From 8916c3c1df62ed56e0e2253462acdf4c410a2633 Mon Sep 17 00:00:00 2001 From: Sophie Dey Date: Sat, 4 Jul 2026 12:10:07 +1000 Subject: chore: inital commit --- nix/flake.nix | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 nix/flake.nix (limited to 'nix/flake.nix') diff --git a/nix/flake.nix b/nix/flake.nix new file mode 100644 index 0000000..5256950 --- /dev/null +++ b/nix/flake.nix @@ -0,0 +1,151 @@ +{ + description = "Cobalt nix-darwin system flake"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; + nix-darwin.url = "github:nix-darwin/nix-darwin/master"; + nix-darwin.inputs.nixpkgs.follows = "nixpkgs"; + + nix-homebrew.url = "github:zhaofengli/nix-homebrew"; + }; + + outputs = + inputs@{ + self, + nix-darwin, + nixpkgs, + nix-homebrew, + }: + let + configuration = + { + pkgs, + config, + lib, + ... + }: + { + system.primaryUser = "melodidey"; + nixpkgs.config.allowUnfree = true; + + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = [ + pkgs.zed-editor + pkgs.ghostty-bin + + pkgs.git + pkgs.cloc + pkgs.jq + pkgs.fortune + pkgs.cowsay + pkgs.tig + pkgs.mpv + pkgs.inetutils + pkgs.micro + pkgs.stow + pkgs.fastfetch + + pkgs.nixd + pkgs.nixfmt + + pkgs.dotnet-sdk_10 + pkgs.python3 + + #pkgs.jetbrains.rider + #pkgs.jetbrains.idea + #pkgs.jetbrains.datagrip + + pkgs.docker + pkgs.docker-compose + pkgs.colima + ]; + + fonts.packages = [ + pkgs.nerd-fonts.jetbrains-mono + ]; + + homebrew = { + enable = true; + taps = [ + "can1357/tap" + ]; + brews = [ + "mole" + "omp" + ]; + casks = [ ]; + onActivation.cleanup = "zap"; + }; + + services.postgresql = { + enable = true; + package = pkgs.postgresql_18; + dataDir = "/Users/melodidey/Library/Application Support/Postgres"; + + authentication = pkgs.lib.mkForce '' + # TYPE DATABASE USER ADDRESS METHOD + local all all trust + host all all 127.0.0.1/32 trust + host all all ::1/128 trust + ''; + + #ensureDatabases = [ "master" ]; + #ensureUsers = [ + # { + # name = "melodidey"; + # ensurePermissions = { + # "DATABASE master" = "ALL PRIVILEGES"; + # }; + # } + #]; + }; + + system.activationScripts.postActivation.text = '' + sudo -u melodidey /run/current-system/sw/bin/stow \ + --dir="/Users/melodidey/dotfiles" \ + --target="/Users/melodidey" \ + --restow "." + ''; + + system.defaults = { + dock.autohide = true; + finder.AppleShowAllExtensions = true; + }; + + # Necessary for using flakes on this system. + nix.settings.experimental-features = "nix-command flakes"; + + # Enable alternative shell support in nix-darwin. + # programs.fish.enable = true; + + # Set Git commit hash for darwin-version. + system.configurationRevision = self.rev or self.dirtyRev or null; + + # Used for backwards compatibility, please read the changelog before changing. + # $ darwin-rebuild changelog + system.stateVersion = 6; + + # The platform the configuration will be used on. + nixpkgs.hostPlatform = "aarch64-darwin"; + }; + in + { + # Build darwin flake using: + # $ darwin-rebuild build --flake .#cobalt + darwinConfigurations."cobalt" = nix-darwin.lib.darwinSystem { + modules = [ + configuration + nix-homebrew.darwinModules.nix-homebrew + { + nix-homebrew = { + enable = true; + #enableRosetta = true; + user = "melodidey"; + autoMigrate = true; + }; + } + ]; + }; + }; +} -- cgit v1.3.1