17b0cdfbac
- Introduced `08-structure.md` detailing project structure, main files, and versioning. - Created `README.md` for documentation overview and quick start guide. - Added user-specific configurations for Alacritty, Vim, Micro, Git, Zsh, Tmux, and tools. - Implemented system modules for desktop environment (KDE Plasma), audio (PipeWire), networking, and services (OpenSSH, GnuPG). - Configured Nix settings with flakes support and garbage collection. - Established user management for `ada` with necessary groups and shell settings. - Enabled VirtualBox guest additions for improved VM experience.
4.1 KiB
4.1 KiB
DevShell: Окружение для разработки
Как использовать devShell для работы с конфигурацией.
Что такое devShell?
DevShell - это временное окружение с инструментами для разработки конфигурации.
Войти в devShell
cd /home/ada/.dotfiles/nixos
nix develop
После этого ты находишься в окружении с дополнительными инструментами.
Что в devShell?
Когда входишь в devShell, доступны:
nix-output-monitor (nom) - Красивый вывод Nix
nvd - Сравнение версий
nix-tree - Дерево зависимостей
nixfmt-classic - Форматер Nix кода
vim, nano - Редакторы
git, ripgrep, fd - Утилиты
Использование devShell
Форматировать код
# Внутри devShell:
nixfmt-classic home/ada/*.nix
nixfmt-classic modules/**/*.nix
Проверить зависимости
# Посмотреть дерево
nix-tree nixpkgs#<package-name>
# Сравнить версии между поколениями
nvd diff /nix/var/nix/profiles/system /run/current-system
Красивый вывод сборки
# С красивым выводом
nix-output-monitor -- nix build .
Редактировать конфигурацию
Внутри devShell можно редактировать файлы и сразу их форматировать:
vim home/ada/packages.nix
# После редактирования:
nixfmt-classic home/ada/packages.nix
Автоматический вход
Если у тебя есть .envrc, devShell загружается автоматически при входе в папку:
cd /home/ada/.dotfiles/nixos
# Если есть direnv - автоматически загрузится devShell
Спросит разрешение первый раз:
direnv allow
Использование с IDE
VS Code
Если открыть папку в VS Code, он автоматически предложит использовать devShell.
Vim/Neovim
Перед запуском vim:
nix develop
vim home/ada/zsh.nix
Выход из devShell
exit
# или
Ctrl+D
Типичный workflow
# 1. Войти в devShell
cd /home/ada/.dotfiles/nixos
nix develop
# 2. Отредактировать файл
vim home/ada/packages.nix
# 3. Форматировать
nixfmt-classic home/ada/packages.nix
# 4. Проверить синтаксис
nix flake check
# 5. Вернуться в нормальный shell
exit
# 6. Собрать конфигурацию (вне devShell)
nh os switch
Команды в devShell
# Форматирование
nixfmt-classic **/*.nix
# Проверка
nix flake check
nix flake show --all-systems
# Анализ
nix-tree <package>
nvd diff
# Сборка
nom -- nix build .
# Поиск
rg "pattern"
fd "pattern"
Возможные проблемы
"command not found"
Если команда не найдена, убедись что ты внутри devShell:
# Проверить
echo $IN_NIX_SHELL
# Если пусто, войти:
nix develop
Долгая загрузка devShell
Первая загрузка может быть долгой. После этого будет быстрее.
Нужен другой инструмент?
Открой flake.nix, найди секцию devShell и добавь пакет:
devShells.${system}.default = pkgs.mkShell {
buildInputs = with pkgs; [
# Существующие
nix-output-monitor
# Добавить новый:
your-package
];
};
Потом собери:
exit # Выйти из старого devShell
nix develop # Войти в новый