1
0
Fork 0
No description
  • Python 45.3%
  • Nix 43.1%
  • Shell 5.8%
  • CSS 5.8%
Find a file
2026-06-30 00:15:29 +05:00
docs refactor: reorganize project structure into src/ and docs/ 2026-06-21 12:18:21 +05:00
src fix 2026-06-30 00:15:29 +05:00
.gitignore ignore 2026-06-18 06:26:39 +05:00
.pre-commit-config.yaml chore(update): auto-update 2026-06-21T09:21:13.357265 2026-06-21 14:21:13 +05:00
diag.py refactor: reorganize project structure into src/ and docs/ 2026-06-21 12:18:21 +05:00
flake.lock chore(update): auto-update 2026-06-21T09:02:29.451650 2026-06-21 14:02:29 +05:00
flake.nix chore(update): auto-update 2026-06-21T09:02:29.451650 2026-06-21 14:02:29 +05:00
README.md refactor: reorganize project structure into src/ and docs/ 2026-06-21 12:18:21 +05:00

🐧 NixOS Configuration

pre.png

Модульная система с профилями desktop/laptop, интеграцией Home Manager, автоматическими pre-commit хуками и полным набором скриптов для обслуживания.


Быстрый старт

Склонируйте репозиторий (через SSH) и сгенерируйте базовую конфигурацию оборудования:

# 1. Клонирование (через SSH, с ключами)
git clone ssh://git@git.priscillafx.com:6669/PRISCILLA_FX/nixos.git --depth=1 && cd nixos

# 2. Генерация hardware-конфига для вашей машины
sudo nixos-generate-config --show-hardware-config > src/hardware/myhost.nix

# 3. При необходимости отредактируйте myhost.nix (диски, модули ядра)

# 4. Сборка и применение (замените myhost на desktop/laptop)
sudo nixos-rebuild switch --flake .#myhost

🔧 Чек-лист перед первой сборкой

Файл / Путь Что изменить Команда / Подсказка
src/hardware/myhost.nix UUID дисков, swap, модули ядра lsblk -f, lspci -k, lsmod
src/modules/user.nix Хэш пароля пользователя mkpasswd -m sha-512
src/users/nixos/home.nix Имя и email пользователя Git config, персонализация
src/modules/<host>/networking.nix Имя сетевого интерфейса, IP ip link, ip addr
~/.ssh/ Генерация SSH-ключей ssh-keygen -t ed25519

📁 Структура проекта

nixos/
├── flake.nix              # 📍 Точка входа: регистрация хостов и импорты
├── src/                   # 🧩 Исходный код конфигурации
│   ├── modules/           # Системные модули
│   │   ├── desktop/       # Специфичные для ПК (статический IP, производительность)
│   │   └── laptop/        # Специфичные для ноутбука (WiFi, энергосбережение)
│   ├── hardware/          # ⚠️ ВАЖНО: myhost.nix (диски, fs, kernel modules)
│   ├── users/             # 👤 Пользовательские настройки
│   │   └── nixos/
│   │       └── home.nix   # Home Manager: shell, программы, dotfiles
│   ├── configs/           # 📄 Статические конфиги (автоматическое слияние)
│   │   ├── shared/        # Базовые конфиги для всех хостов
│   │   └── <host>/        # Специфичные конфиги хоста (перезаписывают shared)
│   └── scripts/           # 🛠 Скрипты для управления системой
├── docs/                  # 📚 Документация и ресурсы
│   ├── bg/                # 🖼 Фоны рабочего стола (для Sway)
│   └── pre.png            # Скриншот
└── README.md

💡 Логика слияния конфигов: src/configs/shared/ src/configs/<host>/ ➡️ ~/.config/ Файлы из папки хоста полностью заменяют файлы с тем же именем из shared.


🛠 Скрипты для повседневной работы

diag.py универсальный инструмент (Python)

./diag.py speed --time 5 --workers 10
./diag.py update --host <desktop|laptop> [--proxy] [--commit] [--diag]
./diag.py diag [--quick] [--json] [--no-sudo] [--save] [--fix]
  • speed тест скорости (iperf3 + HTTP зеркала)
  • update обновление системы (NixOS/Debian/Arch/Alpine/Fedora)
  • diag полная диагностика системы

Shell-скрипты

# Git push с интерактивным подтверждением
./src/scripts/gitpush.sh

# Управление MPD
./src/scripts/mpctrl.sh --up|--down|--toggle|--next|--prev

# tmux + fzf навигация по проектам
./src/scripts/tmux-sessionizer.sh

🛠 Шпаргалка по командам

Действие Команда
Применить конфигурацию sudo nixos-rebuild switch --flake .#<host>
Диагностика (Python) ./diag.py diag [--save] [--fix]
Обновление (Python) ./diag.py update --host <host> --diag
Тест скорости ./diag.py speed --time 5
Проверка синтаксиса nix flake check
Форматирование кода nix fmt .
Обновить flake.lock nix flake update
Откат к предыдущей сборке sudo nixos-rebuild switch --rollback
Очистка мусора sudo nix-collect-garbage -d

📝 Workflow после изменений

После успешной сборки и проверки системы:

git add .
git commit -m "feat: описание изменений"
git push

Или одной командой:

./diag.py update --host desktop --diag --commit