summaryrefslogtreecommitdiff
path: root/nix/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/flake.nix')
-rw-r--r--nix/flake.nix151
1 files changed, 151 insertions, 0 deletions
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;
+ };
+ }
+ ];
+ };
+ };
+}