194 lines
5.8 KiB
Nix
194 lines
5.8 KiB
Nix
![]() |
# 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;
|
||
|
}
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|