From c2694f46a2bcec000a900fd38730cfb77c2544a7 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Mon, 16 Feb 2026 13:36:17 -0700 Subject: [PATCH] Trying something else --- flake.lock | 21 +++++ flake.nix | 151 ++++++-------------------------- modules/home/default.nix | 16 ++++ modules/home/zed.nix | 51 +++++++++++ modules/homebrew.nix | 28 ++++++ modules/packages/cli.nix | 26 ++++++ modules/packages/languages.nix | 21 +++++ modules/packages/media.nix | 9 ++ modules/packages/networking.nix | 8 ++ modules/packages/security.nix | 10 +++ modules/system.nix | 17 ++++ 11 files changed, 232 insertions(+), 126 deletions(-) create mode 100644 modules/home/default.nix create mode 100644 modules/home/zed.nix create mode 100644 modules/homebrew.nix create mode 100644 modules/packages/cli.nix create mode 100644 modules/packages/languages.nix create mode 100644 modules/packages/media.nix create mode 100644 modules/packages/networking.nix create mode 100644 modules/packages/security.nix create mode 100644 modules/system.nix diff --git a/flake.lock b/flake.lock index 4d61513..b51636f 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,25 @@ { "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1771269455, + "narHash": "sha256-BZ31eN5F99YH6vkc4AhzKGE+tJgJ52kl8f01K7wCs8w=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "5f1d42a97b19803041434f66681d5c44c9ae62e3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -38,6 +58,7 @@ }, "root": { "inputs": { + "home-manager": "home-manager", "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs", "rust-overlay": "rust-overlay" diff --git a/flake.nix b/flake.nix index 24ff460..edb606b 100644 --- a/flake.nix +++ b/flake.nix @@ -1,5 +1,5 @@ { - description = "dart — system configuration via nix-darwin"; + description = "dart"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; @@ -9,13 +9,18 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = { self, nixpkgs, nix-darwin, rust-overlay }: + outputs = { self, nixpkgs, nix-darwin, home-manager, rust-overlay }: let system = "aarch64-darwin"; @@ -24,138 +29,32 @@ overlays = [ rust-overlay.overlays.default ]; config.allowUnfree = true; }; - - rustToolchain = pkgs.rust-bin.stable.latest.default.override { - extensions = [ "rust-src" "rust-analyzer" ]; - targets = [ "aarch64-apple-darwin" ]; - }; - - # CLI - cliTools = with pkgs; [ - # Editors - helix - micro - lazygit - ripgrep - - # Build/dev tools - fnm - cmake - ninja - gradle - - # Network - netcat-gnu - - # Misc - bitwarden-cli - pwgen - qrencode - sl - upx - wakeonlan - magic-wormhole - httpie - gh - doctl - qemu - ]; - - # Languages - languages = with pkgs; [ - rustToolchain - python313 - openjdk - openjdk17 - lua - luajit - perl - ruby - go - ]; - - # Media - media = with pkgs; [ - ffmpeg - tesseract - tectonic - ]; - - # Security - security = with pkgs; [ - nmap - nikto - john - rustscan - ]; - - # Networking - networking = with pkgs; [ - freerdp - openmpi - ]; - - allPackages = - cliTools - ++ languages - ++ media - ++ security - ++ networking; - in { darwinConfigurations."dart" = nix-darwin.lib.darwinSystem { inherit system; + specialArgs = { inherit rust-overlay; }; modules = [ - { - nix.settings = { - experimental-features = [ "nix-command" "flakes" ]; - }; - - nixpkgs = { - hostPlatform = system; - config.allowUnfree = true; - overlays = [ rust-overlay.overlays.default ]; - }; - - environment.systemPackages = allPackages; - - homebrew = { - enable = true; - - onActivation = { - autoUpdate = true; - cleanup = "zap"; - }; - - brews = [ - "gamdl" - "knock" - "snort" - ]; - - casks = [ - "android-platform-tools" - "flutter" - "ghostty" - "librewolf" - "ngrok" - "pearcleaner" - "zulu@17" - ]; - }; - - programs.zsh.enable = true; - system.primaryUser = "atridad"; - system.stateVersion = 6; - } + home-manager.darwinModules.home-manager + ./modules/system.nix + ./modules/packages/cli.nix + ./modules/packages/languages.nix + ./modules/packages/media.nix + ./modules/packages/security.nix + ./modules/packages/networking.nix + ./modules/homebrew.nix + ./modules/home/default.nix ]; }; - devShells.${system} = { - default = pkgs.mkShell { - packages = allPackages; - }; + devShells.${system}.default = pkgs.mkShell { + packages = with pkgs; [ + (rust-bin.stable.latest.default.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ "aarch64-apple-darwin" ]; + }) + helix + ]; }; }; } diff --git a/modules/home/default.nix b/modules/home/default.nix new file mode 100644 index 0000000..65875a2 --- /dev/null +++ b/modules/home/default.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: + +{ + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + + users.atridad = { pkgs, ... }: { + imports = [ + ./zed.nix + ]; + + home.stateVersion = "25.11"; + }; + }; +} diff --git a/modules/home/zed.nix b/modules/home/zed.nix new file mode 100644 index 0000000..f75e88b --- /dev/null +++ b/modules/home/zed.nix @@ -0,0 +1,51 @@ +{ pkgs, ... }: + +{ + programs.zed-editor = { + enable = true; + + extensions = [ + "nix" + "catppuccin" + "catppuccin-icons" + "toml" + "elixir" + "make" + "astro" + "vue" + "latex" + "mermaid" + ]; + + userSettings = { + icon_theme = "Catppuccin Macchiato"; + title_bar = { + show_sign_in = false; + }; + collaboration_panel = { + button = false; + }; + status_bar = { + cursor_position_button = false; + }; + disable_ai = true; + telemetry = { + diagnostics = false; + metrics = false; + }; + ui_font_size = 16; + buffer_font_size = 15; + theme = { + mode = "system"; + light = "One Light"; + dark = "Catppuccin Macchiato"; + }; + languages = { + "Nix" = { + language_servers = [ "nil" "nixd" ]; + format_on_save = "on"; + }; + }; + }; + }; +} diff --git a/modules/homebrew.nix b/modules/homebrew.nix new file mode 100644 index 0000000..96ed37c --- /dev/null +++ b/modules/homebrew.nix @@ -0,0 +1,28 @@ +{ ... }: + +{ + homebrew = { + enable = true; + + onActivation = { + autoUpdate = true; + cleanup = "zap"; + }; + + brews = [ + "gamdl" + "knock" + "snort" + ]; + + casks = [ + "android-platform-tools" + "flutter" + "ghostty" + "librewolf" + "ngrok" + "pearcleaner" + "zulu@17" + ]; + }; +} diff --git a/modules/packages/cli.nix b/modules/packages/cli.nix new file mode 100644 index 0000000..df8f402 --- /dev/null +++ b/modules/packages/cli.nix @@ -0,0 +1,26 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + helix + micro + lazygit + ripgrep + fnm + cmake + ninja + gradle + netcat-gnu + bitwarden-cli + pwgen + qrencode + sl + upx + wakeonlan + magic-wormhole + httpie + gh + doctl + qemu + ]; +} diff --git a/modules/packages/languages.nix b/modules/packages/languages.nix new file mode 100644 index 0000000..2b3c2f1 --- /dev/null +++ b/modules/packages/languages.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: + +let + rustToolchain = pkgs.rust-bin.stable.latest.default.override { + extensions = [ "rust-src" "rust-analyzer" ]; + targets = [ "aarch64-apple-darwin" ]; + }; +in +{ + environment.systemPackages = with pkgs; [ + rustToolchain + python313 + openjdk + openjdk17 + lua + luajit + perl + ruby + go + ]; +} diff --git a/modules/packages/media.nix b/modules/packages/media.nix new file mode 100644 index 0000000..98f0e25 --- /dev/null +++ b/modules/packages/media.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + ffmpeg + tesseract + tectonic + ]; +} diff --git a/modules/packages/networking.nix b/modules/packages/networking.nix new file mode 100644 index 0000000..543d784 --- /dev/null +++ b/modules/packages/networking.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + freerdp + openmpi + ]; +} diff --git a/modules/packages/security.nix b/modules/packages/security.nix new file mode 100644 index 0000000..ef21425 --- /dev/null +++ b/modules/packages/security.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + nmap + nikto + john + rustscan + ]; +} diff --git a/modules/system.nix b/modules/system.nix new file mode 100644 index 0000000..d525f4e --- /dev/null +++ b/modules/system.nix @@ -0,0 +1,17 @@ +{ rust-overlay, ... }: + +{ + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + }; + + nixpkgs = { + hostPlatform = "aarch64-darwin"; + config.allowUnfree = true; + overlays = [ rust-overlay.overlays.default ]; + }; + + programs.zsh.enable = true; + system.primaryUser = "atridad"; + system.stateVersion = 6; +}