# Example Standalone Home Manager Configuration using m3ta-nixpkgs # This file demonstrates how to use m3ta-nixpkgs with standalone Home Manager # (without NixOS) { description = "Example Home Manager configuration with m3ta-nixpkgs"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; # Add m3ta-nixpkgs as an input m3ta-nixpkgs = { url = "git+https://code.m3ta.dev/m3tam3re/nixpkgs"; # Or use a local path during development: # url = "path:/home/user/projects/m3ta-nixpkgs"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, m3ta-nixpkgs, ... } @ inputs: let system = "x86_64-linux"; # Change to your system: aarch64-linux, x86_64-darwin, aarch64-darwin pkgs = import nixpkgs { inherit system; config.allowUnfree = true; # Apply m3ta-nixpkgs overlays overlays = [ m3ta-nixpkgs.overlays.default ]; }; in { homeConfigurations = { # Replace 'm3tam3re' with your actual username m3tam3re = home-manager.lib.homeManagerConfiguration { inherit pkgs; # Pass inputs as extra special args extraSpecialArgs = {inherit inputs;}; modules = [ # Import m3ta's Home Manager modules m3ta-nixpkgs.homeManagerModules.default # Main Home Manager configuration { # ============================================ # User Information # ============================================ home.username = "m3tam3re"; home.homeDirectory = "/home/m3tam3re"; home.stateVersion = "24.05"; # ============================================ # Packages from m3ta-nixpkgs # ============================================ # Since we applied the overlay above, packages are available directly home.packages = with pkgs; [ # Custom packages from m3ta-nixpkgs code2prompt hyprpaper-random launch-webapp msty-studio pomodoro-timer zellij-ps # Regular packages from nixpkgs git vim htop fzf ripgrep ]; # ============================================ # Custom Home Manager Modules # ============================================ # If you've defined custom Home Manager modules # programs.myProgram = { # enable = true; # package = pkgs.myProgram; # settings = { # theme = "dark"; # }; # }; # ============================================ # Shell Configuration # ============================================ programs.bash = { enable = true; shellAliases = { ll = "ls -l"; ".." = "cd .."; }; }; programs.zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; }; # ============================================ # Git Configuration # ============================================ programs.git = { enable = true; userName = "Your Name"; userEmail = "your.email@example.com"; extraConfig = { init.defaultBranch = "main"; pull.rebase = false; }; }; # ============================================ # Additional Programs # ============================================ programs.direnv = { enable = true; nix-direnv.enable = true; }; programs.fzf = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; # ============================================ # Environment Variables # ============================================ home.sessionVariables = { EDITOR = "vim"; VISUAL = "vim"; }; # ============================================ # File Management # ============================================ # Create custom config files home.file.".config/my-app/config.json".text = '' { "setting": "value" } ''; # ============================================ # Allow Home Manager to manage itself # ============================================ programs.home-manager.enable = true; } ]; }; # ============================================ # Minimal Example Configuration # ============================================ minimal = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { inherit system; overlays = [m3ta-nixpkgs.overlays.default]; }; modules = [ { home.username = "m3tam3re"; home.homeDirectory = "/home/m3tam3re"; home.stateVersion = "24.05"; # Just use a couple of custom packages home.packages = with pkgs; [ code2prompt zellij-ps ]; programs.home-manager.enable = true; } ]; }; }; }; }