diff options
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/flake.lock | 85 | ||||
| -rw-r--r-- | nix/flake.nix | 151 | ||||
| -rwxr-xr-x | nix/rebuild.sh | 2 |
3 files changed, 238 insertions, 0 deletions
diff --git a/nix/flake.lock b/nix/flake.lock new file mode 100644 index 0000000..064e44e --- /dev/null +++ b/nix/flake.lock @@ -0,0 +1,85 @@ +{ + "nodes": { + "brew-src": { + "flake": false, + "locked": { + "lastModified": 1781226006, + "narHash": "sha256-w4ZTuOnhYiDxjaynrMTASzp802QblBWmo3wpB8wVN4Y=", + "owner": "Homebrew", + "repo": "brew", + "rev": "109191be4988470b51a60a5ef1998520aa24c01b", + "type": "github" + }, + "original": { + "owner": "Homebrew", + "ref": "6.0.1", + "repo": "brew", + "type": "github" + } + }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1781761792, + "narHash": "sha256-rCPytmKNjctLloB6UgK5CRrHSwV4b0ygxtJLPPp8R14=", + "owner": "nix-darwin", + "repo": "nix-darwin", + "rev": "a1fa429e945becaf60468600daf649be4ba0350c", + "type": "github" + }, + "original": { + "owner": "nix-darwin", + "ref": "master", + "repo": "nix-darwin", + "type": "github" + } + }, + "nix-homebrew": { + "inputs": { + "brew-src": "brew-src" + }, + "locked": { + "lastModified": 1781389246, + "narHash": "sha256-ORqLAo/hoJdsZC7UPAuEHev6S0+XIqKEC7vjo5prz1k=", + "owner": "zhaofengli", + "repo": "nix-homebrew", + "rev": "de7953a08ed4bb9245be043e468561c17b89130d", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "repo": "nix-homebrew", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1782918843, + "narHash": "sha256-ETYnV9U7Sr+A45dohzZdfCZKOss4qrTkO+wgNZNvEc0=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e8273b29fe1390ec8d4603f2477357555291432e", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nix-darwin": "nix-darwin", + "nix-homebrew": "nix-homebrew", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} 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; + }; + } + ]; + }; + }; +} diff --git a/nix/rebuild.sh b/nix/rebuild.sh new file mode 100755 index 0000000..2a07b41 --- /dev/null +++ b/nix/rebuild.sh @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +sudo darwin-rebuild switch --flake ~/dotfiles/nix#cobalt
\ No newline at end of file |
