first
This commit is contained in:
193
examples/home-manager-standalone.nix
Normal file
193
examples/home-manager-standalone.nix
Normal file
@@ -0,0 +1,193 @@
|
||||
# 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;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user