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.4 KiB
4.4 KiB
Shell окружение и алиасы
Как настроить ZSH, добавить alias и переменные окружения.
Где окружение?
Конфигурация ZSH находится в:
home/ada/zsh.nix
Добавить alias
- Открыть
home/ada/zsh.nix - Найти секцию
shellAliases - Добавить новый alias:
# Было:
ls = "eza --icons --group-directories-first";
la = "eza -la --icons --group-directories-first --git";
# Стало:
ls = "eza --icons --group-directories-first";
la = "eza -la --icons --group-directories-first --git";
lh = "eza -la --icons --group-directories-first --git | head -20"; # Первые 20
- Собрать:
nh os switch
Добавить переменную окружения
Переменные находятся в секции sessionVariables:
sessionVariables = {
EDITOR = "micro";
VISUAL = "code --wait";
PAGER = "less";
# Добавить новую переменную:
MY_CUSTOM_VAR = "value";
};
Примеры alias
Быстрая навигация
dl = "cd ~/Downloads";
dt = "cd ~/Desktop";
dev = "cd ~/dev";
Безопасность
rm = "rm -i"; # Подтверждение удаления
cp = "cp -i"; # Подтверждение копирования
mv = "mv -i"; # Подтверждение перемещения
Работа с Git
g = "git";
gs = "git status";
ga = "git add";
gp = "git push";
gl = "git log --oneline";
Docker
d = "docker";
dps = "docker ps";
dpsa = "docker ps -a";
dex = "docker exec -it";
Организация алиасов
В zsh.nix алиасы организованы по категориям:
Навигация (cd ...)
Файлы (ls variants)
Безопасность (rm, cp, mv)
Система (grep, df, du)
Сеть (ping, ports)
NixOS (nixos-rebuild и т.д.)
Git
Docker
Kubectl
Lazy инструменты
История ZSH
История настраивается в секции history:
history = {
size = 50000; # Размер истории
save = 50000; # Сохранять 50000 команд
ignoreDups = true; # Не сохранять дубликаты
ignoreSpace = true; # Не сохранять команды начинающиеся с пробела
share = true; # Делиться историей между сессиями
};
Интеграции
Zoxide (быстрая навигация)
z <directory> # Перейти в папку
zi # Интерактивный выбор
Direnv (окружения)
# .envrc файл в папке с переменными
cat > .envrc << EOF
export MY_VAR=value
EOF
direnv allow # Разрешить автоматическое применение
FZF (интерактивный поиск)
Ctrl+R # Поиск по истории
Ctrl+T # Поиск файлов
Проверка после изменения
# Просто применить и проверить
nh os switch
# Потом проверить alias
alias ls # Показать что это такое
Примеры полезных alias
# Список процессов
ps = "ps aux | grep";
# Размер папок
du_sort = "du -sh * | sort -hr";
# Network
ip_local = "ip -4 addr show | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}' | grep -v 127.0.0.1";
# Поиск по типу файла
find_py = "find . -name '*.py'";
Переменные окружения
Полезные переменные
sessionVariables = {
# Главный редактор
EDITOR = "micro";
VISUAL = "code --wait";
# Пейджер
PAGER = "less";
# Данные
XDG_CONFIG_HOME = "$HOME/.config";
XDG_DATA_HOME = "$HOME/.local/share";
XDG_CACHE_HOME = "$HOME/.cache";
# Язык
LANG = "en_US.UTF-8";
# Git
GIT_AUTHOR_NAME = "Dmitry";
GIT_AUTHOR_EMAIL = "ada.dmitry@gmail.com";
};
Часто изменяемое
Самые частые изменения:
- Добавить новый alias
- Изменить EDITOR
- Добавить PATH переменную
Всё это делается в zsh.nix в соответствующих секциях.