summaryrefslogtreecommitdiff
path: root/nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix')
-rw-r--r--nix/flake.lock85
-rw-r--r--nix/flake.nix151
-rwxr-xr-xnix/rebuild.sh2
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