Nix flake for system configurations, dotfiles, and home server infrastructure
|
|
10 miesięcy temu | |
|---|---|---|
| home | 10 miesięcy temu | |
| hosts | 10 miesięcy temu | |
| lib | 10 miesięcy temu | |
| modules | 10 miesięcy temu | |
| overlays | 10 miesięcy temu | |
| packages | 10 miesięcy temu | |
| templates | 10 miesięcy temu | |
| .editorconfig | 1 rok temu | |
| .envrc | 10 miesięcy temu | |
| .gitignore | 10 miesięcy temu | |
| LICENSE | 1 rok temu | |
| README.md | 10 miesięcy temu | |
| devenv.nix | 10 miesięcy temu | |
| flake.lock | 10 miesięcy temu | |
| flake.nix | 10 miesięcy temu |
A comprehensive Nix configuration for managing multiple machines with a unified approach. This repository contains configurations for macOS (Darwin) and Linux systems, with shared home-manager configurations and custom packages.
This repository manages the following machines:
Each machine has its own system configuration and home-manager setup, with shared modules and features.
.
├── flake.nix # Main flake configuration
├── hosts/ # System-specific configurations
│ ├── meili/ # macOS laptop configuration
│ └── modgud/ # Linux server configuration
├── home/ # My home-manager configurations
│ └── features/ # Shared home-manager features
│ ├── cli/ # CLI tools (git, fish, tmux, etc.)
│ ├── desktop/ # Desktop applications (aerospace, ghostty, etc.)
│ └── nvim/ # Neovim configuration
├── modules/ # Shared NixOS/Darwin modules
├── packages/ # Custom packages
├── lib/ # Helper functions
└── overlays/ # Nixpkgs overlays
# Apply system configuration
nix run github:lnl7/nix-darwin -- switch --flake .#meili
# Apply home-manager configuration
nix run github:nix-community/home-manager -- switch --flake .#thomas@meili
# Apply system configuration (if NixOS)
nix run github:nix-community/nixos-anywhere -- --flake .#modgud [email protected]
# Apply home-manager configuration
nix run github:nix-community/home-manager -- switch --flake .#thomas@modgud
This repository includes several custom packages:
photo-cli - Photo management and organization tooltmux-select-pane-no-wrap - TMUX pane selection without wrappingaerospace-tmux-focus - Integration between AeroSpace and TMUXhello - Example packagehosts/ for your machineflake.nixhome/home/features/packages/ directorylib/ directory contains helper functions for creating configurationsFor photo organization, use the custom photo-cli package:
# Copy photos with folder hierarchy preservation
photo-cli copy \
--process-type SubFoldersPreserveFolderHierarchy \
--naming-style DateTimeWithSecondsAddress \
--number-style PaddingZeroCharacter \
--folder-append DayRange \
--folder-append-location Prefix \
--reverse-geocode OpenStreetMapFoundation \
--openstreetmap-properties country city town suburb \
--no-coordinate InSubFolder \
--no-taken-date InSubFolder \
--verify \
--output ~/Photos
# Flatten all subfolders with address-based grouping
photo-cli copy \
--process-type FlattenAllSubFolders \
--group-by AddressHierarchy \
--naming-style DayAddress \
--reverse-geocode OpenStreetMapFoundation \
--openstreetmap-properties country city town suburb \
--number-style OnlySequentialNumbers \
--no-taken-date AppendToEndOrderByFileName \
--no-coordinate InSubFolder \
--input ~/Backup \
--output ~/Photos \
--dry-run --verify