- Add stt-ptt language support documentation - Add rofi-project-opener module documentation - Add rofi-project-opener package documentation - Update zellij-ps documentation - Update guides and reference patterns - Update AGENTS.md with latest commands
m3ta-nixpkgs Documentation
Complete documentation for m3ta's personal Nix flake repository.
Overview
m3ta-nixpkgs is a collection of custom packages, overlays, NixOS modules, and Home Manager modules organized as a modern Nix flake. This repository follows a flakes-only approach (no channels) and provides reusable components for personal infrastructure.
Getting Started
- Quick Start Guide - Get up and running in 5 minutes
- Architecture - Understanding the repository structure and design
- Contributing - How to contribute to this repository
Documentation Sections
📚 Guides
Step-by-step guides for common tasks:
- Getting Started - Initial setup and basic usage
- Adding Packages - How to add new packages
- Port Management - Managing service ports across hosts
- Using Modules - Using NixOS and Home Manager modules
- Development Workflow - Development and testing workflow
📦 Packages
Documentation for all custom packages:
- code2prompt - Convert code to prompts
- hyprpaper-random - Random wallpaper setter for Hyprpaper
- launch-webapp - Launch web applications
- mem0 - AI memory assistant with vector storage
- msty-studio - Msty Studio application
- pomodoro-timer - Pomodoro timer utility
- rofi-project-opener - Rofi-based project launcher with custom args
- stt-ptt - Push to Talk Speech to Text using Whisper
- tuxedo-backlight - Backlight control for Tuxedo laptops
- zellij-ps - Project switcher for Zellij
⚙️ Modules
Configuration modules for NixOS and Home Manager:
NixOS Modules
Home Manager Modules
- Overview - Home Manager modules overview
- CLI Tools - CLI-related modules
- rofi-project-opener - Rofi-based project launcher
- stt-ptt - Push to Talk Speech to Text
- zellij-ps - Zellij project switcher
- Coding - Development-related modules
- editors - Editor configurations
📖 Reference
Technical references and APIs:
Repository Structure
m3ta-nixpkgs/
├── docs/ # This directory
│ ├── README.md
│ ├── QUICKSTART.md
│ ├── ARCHITECTURE.md
│ ├── CONTRIBUTING.md
│ ├── guides/
│ ├── packages/
│ ├── modules/
│ └── reference/
├── pkgs/ # Custom packages
├── modules/
│ ├── nixos/ # NixOS modules
│ └── home-manager/ # Home Manager modules
├── lib/ # Library functions
├── shells/ # Development shells
├── overlays/ # Package overlays
├── templates/ # Templates
└── examples/ # Usage examples
Key Concepts
Flakes-Only Approach
This repository uses modern Nix flakes exclusively. No channels or nix-channel commands are needed. All dependencies are declaratively specified in flake.nix.
Namespace Convention
All modules use the m3ta.* namespace:
m3ta.ports.*- Port managementm3ta.mem0.*- Mem0 service configurationm3ta.*.enable- Enable/disable modules
Port Management
Centralized port management across hosts using the m3ta.ports module:
m3ta.ports = {
enable = true;
definitions = { mem0 = 8000; };
hostOverrides.laptop = { mem0 = 8080; };
currentHost = "laptop";
};
Supported Systems
x86_64-linux- Primaryaarch64-linux- ARM Linuxx86_64-darwin- macOS (Intel)aarch64-darwin- macOS (Apple Silicon)
Quick Commands
# Validate flake
nix flake check
# Format code
nix fmt
# Build package
nix build .#<package-name>
# List outputs
nix flake show
# Enter dev shell
nix develop
License
Individual packages may have their own licenses. Check each package's meta.license attribute.