{ 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"; nix-wallpaper.url = "github:lunik1/nix-wallpaper"; }; outputs = inputs@{ self, nix-darwin, nixpkgs, nix-homebrew, nix-wallpaper, }: let system = "aarch64-darwin"; wallpaper = nix-wallpaper.packages.${system}.default.override { preset = "catppuccin-frappe"; logoSize = 25; }; 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.ripgrep pkgs.ffmpeg pkgs.nixos-anywhere # pkgs.discord # pkgs.signal-desktop pkgs.nixd pkgs.nixfmt pkgs.dotnet-sdk_10 pkgs.python3 pkgs.pipx #pkgs.jetbrains.rider #pkgs.jetbrains.idea #pkgs.jetbrains.datagrip pkgs.docker pkgs.docker-compose pkgs.colima pkgs.k9s pkgs.kubectl ]; 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 "." osascript -e "tell application \"System Events\" to tell every desktop to set picture to \"${wallpaper}/share/wallpapers/nixos-wallpaper.png\" as POSIX file" ''; system.defaults = { dock.autohide = true; dock.static-only = false; dock.persistent-apps = [ "/System/Cryptexes/App/System/Applications/Safari.app" "/System/Applications/Music.app" "/Applications/Discord.app" "/Applications/Signal.app" "/System/Applications/Messages.app" "${pkgs.ghostty-bin}/Applications/Ghostty.app" "${pkgs.zed-editor}/Applications/Zed.app" ]; dock.persistent-others = [ "/Users/melodidey/Downloads" ]; finder.AppleShowAllExtensions = true; trackpad.Clicking = true; loginwindow.GuestEnabled = false; }; # 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 = system; nix.linux-builder.enable = true; }; 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; }; } ]; }; }; }