From 9285660f2756663660a1108c0d8cce70aa8d1f77 Mon Sep 17 00:00:00 2001 From: Dmitry Date: Sat, 11 Apr 2026 13:47:41 +0300 Subject: [PATCH] backup: 2026-04-11 13:47 --- fastfetch/.config/fastfetch/config.jsonc | 74 +++++ fastfetch/.config/fastfetch/logo.txt | 14 + git/.gitconfig | 2 +- kitty/.config/kitty/kitty.conf | 83 +++++ nixos/.gitignore | 63 ---- nixos/README.md | 346 -------------------- nixos/configuration.nix | 38 --- nixos/docs/01-install-packages.md | 130 -------- nixos/docs/02-shell-environment.md | 203 ------------ nixos/docs/03-networking.md | 234 ------------- nixos/docs/04-devshell.md | 188 ----------- nixos/docs/05-git-config.md | 228 ------------- nixos/docs/06-adding-modules.md | 302 ----------------- nixos/docs/07-troubleshooting.md | 285 ---------------- nixos/docs/08-structure.md | 223 ------------- nixos/docs/README.md | 39 --- nixos/flake.nix | 85 ----- nixos/hardware-configuration.nix | 30 -- nixos/home/ada/alacritty.nix | 121 ------- nixos/home/ada/default.nix | 45 --- nixos/home/ada/git.nix | 126 ------- nixos/home/ada/micro.nix | 32 -- nixos/home/ada/packages.nix | 90 ----- nixos/home/ada/tmux.nix | 29 -- nixos/home/ada/tools.nix | 27 -- nixos/home/ada/vim.nix | 112 ------- nixos/home/ada/zsh.nix | 154 --------- nixos/modules/desktop/pipewire.nix | 18 - nixos/modules/desktop/plasma.nix | 43 --- nixos/modules/networking/default.nix | 16 - nixos/modules/services/default.nix | 65 ---- nixos/modules/system/boot.nix | 17 - nixos/modules/system/locale.nix | 21 -- nixos/modules/system/nix.nix | 60 ---- nixos/modules/users/ada.nix | 14 - nixos/modules/virtualisation/qemu-guest.nix | 15 - nixos/modules/virtualisation/virtualbox.nix | 10 - zed/.config/zed/settings.json | 4 +- zsh/.config/zsh/.zshrc | 14 + zsh/.config/zsh/config/aliases.zsh | 7 +- 40 files changed, 193 insertions(+), 3414 deletions(-) create mode 100644 fastfetch/.config/fastfetch/config.jsonc create mode 100644 fastfetch/.config/fastfetch/logo.txt create mode 100644 kitty/.config/kitty/kitty.conf delete mode 100644 nixos/.gitignore delete mode 100644 nixos/README.md delete mode 100644 nixos/configuration.nix delete mode 100644 nixos/docs/01-install-packages.md delete mode 100644 nixos/docs/02-shell-environment.md delete mode 100644 nixos/docs/03-networking.md delete mode 100644 nixos/docs/04-devshell.md delete mode 100644 nixos/docs/05-git-config.md delete mode 100644 nixos/docs/06-adding-modules.md delete mode 100644 nixos/docs/07-troubleshooting.md delete mode 100644 nixos/docs/08-structure.md delete mode 100644 nixos/docs/README.md delete mode 100644 nixos/flake.nix delete mode 100644 nixos/hardware-configuration.nix delete mode 100644 nixos/home/ada/alacritty.nix delete mode 100644 nixos/home/ada/default.nix delete mode 100644 nixos/home/ada/git.nix delete mode 100644 nixos/home/ada/micro.nix delete mode 100644 nixos/home/ada/packages.nix delete mode 100644 nixos/home/ada/tmux.nix delete mode 100644 nixos/home/ada/tools.nix delete mode 100644 nixos/home/ada/vim.nix delete mode 100644 nixos/home/ada/zsh.nix delete mode 100644 nixos/modules/desktop/pipewire.nix delete mode 100644 nixos/modules/desktop/plasma.nix delete mode 100644 nixos/modules/networking/default.nix delete mode 100644 nixos/modules/services/default.nix delete mode 100644 nixos/modules/system/boot.nix delete mode 100644 nixos/modules/system/locale.nix delete mode 100644 nixos/modules/system/nix.nix delete mode 100644 nixos/modules/users/ada.nix delete mode 100644 nixos/modules/virtualisation/qemu-guest.nix delete mode 100644 nixos/modules/virtualisation/virtualbox.nix diff --git a/fastfetch/.config/fastfetch/config.jsonc b/fastfetch/.config/fastfetch/config.jsonc new file mode 100644 index 0000000..d6b0a08 --- /dev/null +++ b/fastfetch/.config/fastfetch/config.jsonc @@ -0,0 +1,74 @@ +{ + "$schema": "https://github.com/fastfetch-cli/fastfetch/raw/master/doc/json_schema.json", + "logo": { + "type": "small", + "position": "left", + "printRemaining": false, + "padding": { + "top": 2, + "right": 1 + } + }, + "display": { + "separator": " ", + "brightColor": false, + "color": { + "keys": "blue", + "title": "cyan", + "separator": "bright_black", + "output": "white" + }, + "key": { + "width": 3, + "type": "icon" + }, + "duration": { + "abbreviation": true + } + }, + "modules": [ + "title", + "separator", + { + "type": "os", + "key": "os", + "format": "{name}" + }, + { + "type": "kernel", + "key": "kernel", + "format": "{release}" + }, + { + "type": "uptime", + "key": "uptime" + }, + { + "type": "command", + "key": "age", + "shell": "/bin/sh", + "param": "-c", + "text": "first=\"$(sed -n '1{s/^\\[\\([^]]*\\)\\].*/\\1/p;q}' /var/log/pacman.log)\"; if [ -n \"$first\" ]; then start=\"${first%%+*}\"; now=$(date +%s); then_ts=$(date -d \"$start\" +%s 2>/dev/null || true); if [ -n \"$then_ts\" ]; then days=$(( (now-then_ts)/86400 )); years=$(( days/365 )); rem=$(( days%365 )); if [ \"$years\" -gt 0 ]; then printf '%sy %sd\\n' \"$years\" \"$rem\"; else printf '%sd\\n' \"$days\"; fi; else echo n/a; fi; else echo n/a; fi" + }, + { + "type": "shell", + "key": "shell", + "format": "{pretty-name}" + }, + { + "type": "terminal", + "key": "term", + "format": "{pretty-name}" + }, + { + "type": "memory", + "key": "ram", + "format": "{used}/{total} ({percentage})" + }, + { + "type": "disk", + "key": "disk", + "format": "{size-used}/{size-total} ({size-percentage})" + } + ] +} diff --git a/fastfetch/.config/fastfetch/logo.txt b/fastfetch/.config/fastfetch/logo.txt new file mode 100644 index 0000000..237fdac --- /dev/null +++ b/fastfetch/.config/fastfetch/logo.txt @@ -0,0 +1,14 @@ + + %%%%%%%%%%%%%% + *%%%%%%%%%%%%%%%%%%@ + %%%%%%%%%%%%%%%%%%%@%% + %%%%%%%%%%%%%%%%%%%%%%%%+ + %%%%%%%% %%%%@@% %%%%%%%% + %%%%:%%% %%%%@% %% %%%*@%%%% + %%% % %% %%% %@ %% @ %%% + %% % % %@% % %% %% % %%% + %%%%%%%% %%%%%%% %%%%@%%%@ + %%%%%%%%%%%%%%%%%@%%%%%@% + %%%%%%@%%%%%%%@%%%%%%% + %%%%%%%%%%%%%%%%%%%% + %%%%%%%%%%%%%% diff --git a/git/.gitconfig b/git/.gitconfig index 2f78d33..fbf7484 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -205,7 +205,7 @@ [credential] # Кэшировать пароли на 1 час - helper = "!f() { /home/ada/.vscode-server/bin/e7fb5e96c0730b9deb70b33781f98e2f35975036/node /tmp/vscode-remote-containers-a5b5f662-89b2-4631-a1e9-74a4d6766f58.js git-credential-helper $*; }; f" + helper = "!f() { /home/ada/.vscode-server/bin/e7fb5e96c0730b9deb70b33781f98e2f35975036/node /tmp/vscode-remote-containers-c2ca9419-d1b5-464d-a579-9a0e513fd732.js git-credential-helper $*; }; f" # ═══ URL shortcuts ══════════════════════════════════════════ diff --git a/kitty/.config/kitty/kitty.conf b/kitty/.config/kitty/kitty.conf new file mode 100644 index 0000000..ed2abc8 --- /dev/null +++ b/kitty/.config/kitty/kitty.conf @@ -0,0 +1,83 @@ +# Adapted from alacritty/.config/alacritty/alacritty.toml +# Reference: https://sw.kovidgoyal.net/kitty/conf/ + +# Launch shell and attach/create tmux session +shell /usr/bin/zsh -l -c "tmux new-session -A -s main" + +# Window appearance +hide_window_decorations yes +background_opacity 0.90 +# window_padding_width 1 1 +enable_tab_bar no +# Alacritty startup_mode=maximized has no direct kitty.conf equivalent. +# Use: kitty --start-as maximized + +# Font +font_family FiraCode Nerd Font Mono +bold_font FiraCode Nerd Font Mono Bold +italic_font FiraCode Nerd Font Mono Italic +font_size 15.0 + +# Scrollback +scrollback_lines 10000 +wheel_scroll_multiplier 5.0 + +# Selection behavior +copy_on_select clipboard +select_by_word_characters @-./_~?&=%+# + +# Keep mouse cursor visible while typing +mouse_hide_wait 0.0 + +# Cursor +cursor_shape beam +cursor_blink_interval 0.5 +cursor_beam_thickness 1.5 + +# Bell (disable visual bell) +visual_bell_duration 0.0 + +# Nord color scheme +foreground #D8DEE9 +background #2E3440 + +cursor #D8DEE9 +cursor_text_color #2E3440 + +selection_foreground #D8DEE9 +selection_background #434C5E + +color0 #3B4252 +color1 #BF616A +color2 #A3BE8C +color3 #EBCB8B +color4 #81A1C1 +color5 #B48EAD +color6 #88C0D0 +color7 #E5E9F0 + +color8 #4C566A +color9 #BF616A +color10 #A3BE8C +color11 #EBCB8B +color12 #81A1C1 +color13 #B48EAD +color14 #8FBCBB +color15 #ECEFF4 + +# Key bindings aligned with Alacritty config +map ctrl+shift+c copy_to_clipboard +map ctrl+shift+v paste_from_clipboard +map ctrl+shift+enter new_os_window +map ctrl+shift+f11 toggle_fullscreen + +map ctrl+shift+equal change_font_size all +2.0 +map ctrl+shift+minus change_font_size all -2.0 +map ctrl+shift+0 change_font_size all 0 + +map ctrl+shift+up scroll_line_up +map ctrl+shift+down scroll_line_down +map ctrl+shift+page_up scroll_page_up +map ctrl+shift+page_down scroll_page_down +map ctrl+shift+home scroll_home +map ctrl+shift+end scroll_end diff --git a/nixos/.gitignore b/nixos/.gitignore deleted file mode 100644 index c7fbadb..0000000 --- a/nixos/.gitignore +++ /dev/null @@ -1,63 +0,0 @@ -# ══════════════════════════════════════════════════════════════════ -# Nix & Flake -# ══════════════════════════════════════════════════════════════════ -# Результаты build (должны игнорироваться) -result -result-* - -# Lock файлы (можно коммитить для воспроизводимости, но часто игнорируется) -# flake.lock - -# ══════════════════════════════════════════════════════════════════ -# Резервные и временные файлы -# ══════════════════════════════════════════════════════════════════ -*.backup -*.bak -*~ -.backup -.old - -# ══════════════════════════════════════════════════════════════════ -# Редакторы и IDE -# ══════════════════════════════════════════════════════════════════ -.vscode/ -.idea/ -*.swp -*.swo -*.kate-swp -.vimrc.local -.nvimrc.local - -# ══════════════════════════════════════════════════════════════════ -# ОС -# ══════════════════════════════════════════════════════════════════ -.DS_Store -.AppleDouble -.LSOverride -Thumbs.db -ehthumbs.db -Desktop.ini -$RECYCLE.BIN/ -.Trash-* - -# ══════════════════════════════════════════════════════════════════ -# Разработка -# ══════════════════════════════════════════════════════════════════ -.envrc -.direnv/ -target/ -dist/ -build/ -.cache/ - -# ══════════════════════════════════════════════════════════════════ -# Логи -# ══════════════════════════════════════════════════════════════════ -*.log -*.logs/ -.DS_Store -Thumbs.db - -# Temporary files -*.tmp -*.temp diff --git a/nixos/README.md b/nixos/README.md deleted file mode 100644 index 45bdb95..0000000 --- a/nixos/README.md +++ /dev/null @@ -1,346 +0,0 @@ -# NixOS Configuration - -Модульная конфигурация NixOS на базе Flakes с Home Manager для виртуальной машины. - -## 📚 Документация - -Атомарные гайды по отдельным задачам находятся в папке [`docs/`](docs/): - -- **[docs/README.md](docs/README.md)** - Индекс всех гайдов -- **[docs/01-install-packages.md](docs/01-install-packages.md)** - Добавление/удаление пакетов -- **[docs/02-shell-environment.md](docs/02-shell-environment.md)** - Shell alias и переменные -- **[docs/03-networking.md](docs/03-networking.md)** - SSH, Firewall, сеть -- **[docs/04-devshell.md](docs/04-devshell.md)** - Разработка конфигурации -- **[docs/05-git-config.md](docs/05-git-config.md)** - Git конфигурация -- **[docs/06-adding-modules.md](docs/06-adding-modules.md)** - Создание новых модулей -- **[docs/07-troubleshooting.md](docs/07-troubleshooting.md)** - Отладка проблем -- **[docs/08-structure.md](docs/08-structure.md)** - Структура проекта - -## Структура проекта - -``` -nixos/ -├── README.md # Главная страница (ты здесь) -├── flake.nix # Главный флейк с inputs и outputs -├── configuration.nix # Главная конфигурация (импортирует модули) -├── hardware-configuration.nix # Автогенерированная конфигурация железа -│ -├── docs/ # 📚 Документация (атомарные гайды) -│ ├── README.md # Индекс документации -│ ├── 01-install-packages.md # Как ставить программы -│ ├── 02-shell-environment.md # Shell alias и переменные -│ ├── 03-networking.md # SSH, Firewall, сеть -│ ├── 04-devshell.md # Разработка конфигурации -│ ├── 05-git-config.md # Git конфигурация -│ ├── 06-adding-modules.md # Создание новых модулей -│ ├── 07-troubleshooting.md # Отладка проблем -│ └── 08-structure.md # Структура проекта -│ -├── modules/ # Системные модули -│ ├── system/ # Ядро системы -│ │ ├── boot.nix # GRUB, kernel modules -│ │ ├── nix.nix # Nix конфигурация -│ │ └── locale.nix # Язык, таймзона -│ │ -│ ├── desktop/ # Рабочее окружение -│ │ ├── plasma.nix # KDE Plasma 6 + Wayland -│ │ └── pipewire.nix # Audio система -│ │ -│ ├── networking/ # Сеть -│ │ └── default.nix # NetworkManager, Firewall -│ │ -│ ├── services/ # Сервисы -│ │ └── default.nix # SSH, Firefox и др. -│ │ -│ ├── users/ # Пользователи -│ │ └── ada.nix # Пользователь ada -│ │ -│ └── virtualisation/ # Виртуализация -│ ├── virtualbox.nix # VirtualBox Guest -│ └── qemu-guest.nix # QEMU/KVM Guest -│ -└── home/ # Home Manager (пользователь) - └── ada/ - ├── default.nix # Главный файл (импорты) - ├── packages.nix # Пакеты (~50) - ├── git.nix # Git конфиг - ├── zsh.nix # Shell алиасы - ├── vim.nix # Vim конфиг - ├── alacritty.nix # Терминал - ├── micro.nix # Micro редактор - ├── tmux.nix # Tmux конфиг - └── tools.nix # CLI утилиты -``` - -## Особенности конфигурации - -### ✨ Система -- **Flakes**: Современная система управления зависимостями Nix -- **Home Manager**: Управление пользовательским окружением -- **KDE Plasma 6**: Последняя версия с поддержкой Wayland -- **PipeWire**: Современная аудиосистема -- **Русская раскладка**: Настроено переключение по Caps Lock - -### 🛠 Утилиты для работы с Nix - -**`nh` (рекомендуется)** - современный помощник для работы с NixOS: -- ✅ Автоматически показывает diff между поколениями после сборки -- ✅ Использует nix-output-monitor для красивого вывода -- ✅ Интерактивная очистка с предпросмотром удаляемых пакетов -- ✅ Более простой и короткий синтаксис команд -- ✅ Автоматически определяет конфигурацию из текущей директории - -**Другие утилиты:** -- `nix-output-monitor` (nom) - красивый вывод при сборке -- `nvd` - diff между поколениями системы -- `nix-tree` - визуализация зависимостей -- `nix-index` - поиск файлов в nixpkgs -- `comma` - запуск программ без установки -- `nix-du` - анализ использования диска -- `nixfmt-classic` - форматирование Nix кода - -### 💻 Development tools -- **Editors**: Vim, Neovim, VS Code, IntelliJ IDEA Community -- **Shell**: ZSH с Oh-My-Zsh и кастомными алиасами -- **Git**: Git, GitHub CLI (gh), LazyGit -- **Terminal**: Tmux с улучшенной конфигурацией -- **Modern CLI tools**: eza, bat, fzf, ripgrep, fd - -### 🔧 Виртуализация - -**VirtualBox Guest:** -- Drag & Drop включен -- Shared clipboard включен -- Guest additions настроены - -**QEMU/KVM Guest:** -- QEMU Guest Agent включен -- SPICE VDAgent для интеграции -- Улучшенная производительность - -## Как использовать - -### Первоначальная сборка - -```bash -cd /home/ada/.dotfiles/nixos - -# Обновить зависимости flake -nix flake update - -# Стандартный способ: -sudo nixos-rebuild switch --flake .#nixos-vm - -# Или с помощью nh (рекомендуется): -nh os switch -``` - -### Применение изменений - -```bash -# Тестовая сборка (без добавления в boot menu) -sudo nixos-rebuild test --flake .#nixos-vm -# С nh: -nh os test - -# Применить и добавить в boot menu -sudo nixos-rebuild switch --flake .#nixos-vm -# С nh: -nh os switch - -# Собрать и добавить в boot menu без активации сейчас -sudo nixos-rebuild boot --flake .#nixos-vm -# С nh: -nh os boot -``` - -### Алиасы (доступны в ZSH после первой сборки) - -```bash -# Пересборка системы (использует nh) -nixos-rebuild - -# Тестовая сборка (использует nh) -nixos-test - -# Сборка без активации (использует nh) -nixos-boot - -# Обновление флейка и пересборка -nixos-update - -# Список поколений системы -nixos-list -``` - -> **Примечание**: Алиасы в этой конфигурации используют утилиту `nh` для более удобной работы. -> Если хотите использовать стандартные команды напрямую, см. разделы выше. - -### Обновление flake inputs - -```bash -cd /home/ada/.dotfiles/nixos - -# Обновить зависимости -nix flake update - -# Применить изменения - стандартный способ: -sudo nixos-rebuild switch --flake .#nixos-vm - -# Или с nh: -nh os switch -``` - -### Сравнение поколений системы - -```bash -# Сравнить текущее и предыдущее поколение - стандартный способ: -nvd diff /run/current-system /run/booted-system - -# С nh (автоматически показывает diff после сборки): -nh os switch # автоматически покажет изменения - -# Красивый вывод при сборке с nom: -nom build .#nixosConfigurations.nixos-vm.config.system.build.toplevel - -# nh по умолчанию использует nom для красивого вывода -``` - -### Просмотр зависимостей пакета - -```bash -nix-tree /run/current-system -``` - -## Добавление нового пакета - -### Системный пакет -Отредактируйте нужный модуль в `modules/` и добавьте пакет в `environment.systemPackages`. - -### Пользовательский пакет -Отредактируйте `home/ada/default.nix` и добавьте пакет в `home.packages`. - -## Создание нового модуля - -1. Создайте файл в соответствующей директории `modules/` -2. Добавьте import в [configuration.nix](configuration.nix) -3. Примените изменения - -Пример: -```nix -# modules/services/docker.nix -{ pkgs, ... }: -{ - virtualisation.docker.enable = true; - users.users.ada.extraGroups = [ "docker" ]; -} -``` - -## Полезные команды - -### Поиск и установка пакетов - -```bash -# Поиск пакета - стандартный способ: -nix search nixpkgs - -# С nh (быстрее и удобнее): -nh search - -# Запустить программу без установки: -nix run nixpkgs# - -# Или с помощью comma: -, -``` - -### Управление системой - -```bash -# Garbage collection - стандартный способ: -sudo nix-collect-garbage -d -sudo nix-collect-garbage --delete-older-than 7d - -# С nh (интерактивно, безопаснее): -nh clean all # очистить всё старое -nh clean user # только пользовательские профили -nh clean system # только системные поколения - -# Оптимизация store: -nix-store --optimise - -# Починить права в /nix/store: -sudo nix-store --verify --check-contents --repair -``` - -## Кастомизация - -### Изменить email в Git -Отредактируйте `home/ada/default.nix`: -```nix -programs.git = { - userEmail = "ваш-email@example.com"; -}; -``` - -### Добавить ZSH плагины -Отредактируйте `home/ada/default.nix`: -```nix -programs.zsh.oh-my-zsh.plugins = [ - "git" - "sudo" - "docker" - "ваш-плагин" -]; -``` - -### Изменить тему ZSH -```nix -programs.zsh.oh-my-zsh.theme = "agnoster"; -``` - -## Troubleshooting - -### Ошибка при сборке -```bash -# Посмотрите логи - стандартный способ: -sudo nixos-rebuild switch --flake .#nixos-vm --show-trace - -# С nh (более подробный вывод по умолчанию): -nh os switch -- --show-trace - -# Проверьте синтаксис: -nix flake check -``` - -### Откатиться на предыдущее поколение -```bash -# Список поколений - стандартный способ: -sudo nix-env --list-generations --profile /nix/var/nix/profiles/system - -# С nh: -nh os list # показать все поколения системы - -# Откат на предыдущее поколение - стандартный способ: -sudo nixos-rebuild switch --rollback - -# С nh (откат на конкретное поколение): -nh os switch --generation <номер> -``` - -### Обновить только Home Manager -```bash -# Стандартный способ: -home-manager switch --flake .#ada - -# С nh: -nh home switch -``` - -## Ссылки - -- [NixOS Manual](https://nixos.org/manual/nixos/stable/) -- [Home Manager Manual](https://nix-community.github.io/home-manager/) -- [Nixpkgs Search](https://search.nixos.org/packages) -- [NixOS Options Search](https://search.nixos.org/options) -- [Nix Flakes](https://nixos.wiki/wiki/Flakes) diff --git a/nixos/configuration.nix b/nixos/configuration.nix deleted file mode 100644 index b2b24ac..0000000 --- a/nixos/configuration.nix +++ /dev/null @@ -1,38 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - imports = [ - # Конфигурация железа - ./hardware-configuration.nix - - # Системные модули - ./modules/system/boot.nix - ./modules/system/nix.nix - ./modules/system/locale.nix - - # Окружение рабочего стола - ./modules/desktop/plasma.nix - ./modules/desktop/pipewire.nix - - # Сеть - ./modules/networking/default.nix - - # Сервисы - ./modules/services/default.nix - - # Виртуализация - ./modules/virtualisation/virtualbox.nix - ./modules/virtualisation/qemu-guest.nix - - # Пользователи - ./modules/users/ada.nix - ]; - - # Версия релиза NixOS - # Это значение определяет релиз NixOS, из которого были взяты настройки по умолчанию - # для stateful данных, таких как расположение файлов и версии баз данных в вашей системе. - # Рекомендуется оставить это значение таким, каким оно было при первой установке системы. - # Перед изменением этого значения прочитайте документацию для этой опции - # (например, man configuration.nix или https://nixos.org/nixos/options.html). - system.stateVersion = "25.05"; -} diff --git a/nixos/docs/01-install-packages.md b/nixos/docs/01-install-packages.md deleted file mode 100644 index f4b14e4..0000000 --- a/nixos/docs/01-install-packages.md +++ /dev/null @@ -1,130 +0,0 @@ -# Добавление и удаление пакетов - -Как управлять программами в конфигурации. - -## Где пакеты? - -Пакеты описаны в файле: -``` -home/ada/packages.nix -``` - -## Добавить пакет - -### Способ 1: Через редактор - -1. Открыть `home/ada/packages.nix` -2. Найти подходящую категорию (например "Средства разработки") -3. Добавить пакет: - -```nix -# Было: -htop # Интерактивный монитор процессов - -# Стало: -htop # Интерактивный монитор процессов -lazygit # Интерактивный git UI -``` - -4. Собрать конфигурацию: -```bash -nh os switch -``` - -### Способ 2: Найти пакет в nixpkgs - -Если не знаешь точное имя пакета: - -```bash -# Поиск в nixpkgs -nix search nixpkgs - -# Пример: -nix search nixpkgs git-lfs -``` - -## Удалить пакет - -1. Открыть `home/ada/packages.nix` -2. Удалить строку с пакетом -3. Собрать: -```bash -nh os switch -``` - -## Категории пакетов - -В файле `packages.nix` пакеты организованы по категориям: - -``` -Редакторы → vim, neovim, micro -IDE → vscode, idea-community, zed -Терминал → alacritty -Dev tools → tmux, fzf, ripgrep, fd, bat, eza -Git tools → git, gh, lazygit -Сеть → curl, wget, ssh, mosh, nmap -БД → sqlite, postgresql -Утилиты → jq, yq, zip, unzip, gnupg -Шрифты → nerdfonts (FiraCode) -``` - -## Правила оформления - -```nix -# ✅ Хорошо - с комментарием -ripgrep # Быстрый поиск в файлах (rg) - -# ❌ Плохо - без комментария -ripgrep - -# ✅ Хорошо - выровнены -fzf # Интерактивный поиск -ripgrep # Быстрый поиск - -# ❌ Плохо - не выровнены -fzf # Интерактивный поиск -ripgrep # Быстрый поиск -``` - -## Проверка перед сборкой - -```bash -# Проверить синтаксис -nix flake check - -# Или просто пробуй собрать: -nh os test # Тестовая сборка (без применения) -``` - -## Примеры - -### Добавить lazydocker - -1. Открыть `home/ada/packages.nix` -2. В разделе "Dev tools" добавить: -```nix -lazydocker # Docker UI -``` -3. Собрать: -```bash -nh os switch -``` - -### Добавить несколько пакетов - -```nix -# Быстрее найти нужные команды -fzf # Поиск -ripgrep-all # Поиск по всем типам -fd # find аналог - -# Анализ и визуализация -tokei # Анализ кода -nitch # Системная информация -``` - -## Рядом интересные пакеты - -- `comma` - запустить пакет без установки: `, package` -- `nix-index` - найти файл в nixpkgs -- `nixpkgs-fmt` - форматирование Nix кода diff --git a/nixos/docs/02-shell-environment.md b/nixos/docs/02-shell-environment.md deleted file mode 100644 index 12fe511..0000000 --- a/nixos/docs/02-shell-environment.md +++ /dev/null @@ -1,203 +0,0 @@ -# Shell окружение и алиасы - -Как настроить ZSH, добавить alias и переменные окружения. - -## Где окружение? - -Конфигурация ZSH находится в: -``` -home/ada/zsh.nix -``` - -## Добавить alias - -1. Открыть `home/ada/zsh.nix` -2. Найти секцию `shellAliases` -3. Добавить новый alias: - -```nix -# Было: -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 -``` - -4. Собрать: -```bash -nh os switch -``` - -## Добавить переменную окружения - -Переменные находятся в секции `sessionVariables`: - -```nix -sessionVariables = { - EDITOR = "micro"; - VISUAL = "code --wait"; - PAGER = "less"; - # Добавить новую переменную: - MY_CUSTOM_VAR = "value"; -}; -``` - -## Примеры alias - -### Быстрая навигация - -```nix -dl = "cd ~/Downloads"; -dt = "cd ~/Desktop"; -dev = "cd ~/dev"; -``` - -### Безопасность - -```nix -rm = "rm -i"; # Подтверждение удаления -cp = "cp -i"; # Подтверждение копирования -mv = "mv -i"; # Подтверждение перемещения -``` - -### Работа с Git - -```nix -g = "git"; -gs = "git status"; -ga = "git add"; -gp = "git push"; -gl = "git log --oneline"; -``` - -### Docker - -```nix -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`: - -```nix -history = { - size = 50000; # Размер истории - save = 50000; # Сохранять 50000 команд - ignoreDups = true; # Не сохранять дубликаты - ignoreSpace = true; # Не сохранять команды начинающиеся с пробела - share = true; # Делиться историей между сессиями -}; -``` - -## Интеграции - -### Zoxide (быстрая навигация) - -```bash -z # Перейти в папку -zi # Интерактивный выбор -``` - -### Direnv (окружения) - -```bash -# .envrc файл в папке с переменными -cat > .envrc << EOF -export MY_VAR=value -EOF - -direnv allow # Разрешить автоматическое применение -``` - -### FZF (интерактивный поиск) - -```bash -Ctrl+R # Поиск по истории -Ctrl+T # Поиск файлов -``` - -## Проверка после изменения - -```bash -# Просто применить и проверить -nh os switch - -# Потом проверить alias -alias ls # Показать что это такое -``` - -## Примеры полезных alias - -```nix -# Список процессов -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'"; -``` - -## Переменные окружения - -### Полезные переменные - -```nix -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"; -}; -``` - -## Часто изменяемое - -Самые частые изменения: -1. Добавить новый alias -2. Изменить EDITOR -3. Добавить PATH переменную - -Всё это делается в `zsh.nix` в соответствующих секциях. diff --git a/nixos/docs/03-networking.md b/nixos/docs/03-networking.md deleted file mode 100644 index 76278c3..0000000 --- a/nixos/docs/03-networking.md +++ /dev/null @@ -1,234 +0,0 @@ -# Сеть: SSH, Firewall, NetworkManager - -Как настроить сетевые сервисы. - -## Где сетевые настройки? - -Сеть находится в двух местах: - -``` -modules/networking/default.nix ← NetworkManager, Firewall -modules/services/default.nix ← SSH и другие сервисы -``` - -## SSH настройки - -SSH находится в `modules/services/default.nix`. - -### Текущие настройки - -```nix -settings = { - # Только публичные ключи - PasswordAuthentication = false; - PubkeyAuthentication = true; - - # root не может логиниться - PermitRootLogin = "no"; - - # Максимум попыток: 3 - MaxAuthTries = 3; - - # Максимум сессий: 2 - MaxSessions = 2; -}; -``` - -### Открыть SSH на определённый порт - -В `modules/networking/default.nix`: - -```nix -# По умолчанию открыт порт 22 -networking.firewall.allowedTCPPorts = [ 22 ]; - -# Если хочешь другой порт (например 2222): -networking.firewall.allowedTCPPorts = [ 2222 ]; -``` - -И в `modules/services/default.nix`: - -```nix -services.openssh.settings = { - Port = 2222; # Добавить эту строку -}; -``` - -## Firewall - -Firewall находится в `modules/networking/default.nix`. - -### Открыть порты - -```nix -networking.firewall.allowedTCPPorts = [ 22 ]; # SSH - -# Добавить новые порты: -networking.firewall.allowedTCPPorts = [ 22 8080 3000 ]; -``` - -### Открыть приложение - -```nix -# Автоматически открыть порты для приложения -services.transmission.openFirewall = true; -services.minecraft-server.openFirewall = true; -``` - -## NetworkManager - -NetworkManager позволяет управлять Wi-Fi и Ethernet. - -### Статус - -```bash -# Статус сети -nmcli status - -# Список Wi-Fi сетей -nmcli dev wifi list - -# Подключиться к Wi-Fi -nmcli dev wifi connect "SSID" password "password" -``` - -## Настройка Hostname - -В `modules/networking/default.nix`: - -```nix -networking.hostname = "nixos-vm"; - -# Изменить на: -networking.hostname = "my-machine"; -``` - -## Интернет соединение - -### Справка: NetworkManager управляет: - -- Wi-Fi (connect/disconnect) -- Ethernet (автоматическое подключение) -- VPN (при установке клиента) -- Прокси (конфигурация) - -### Команды - -```bash -# Включить/выключить Wi-Fi -nmcli radio wifi on/off - -# Список подключений -nmcli con show - -# Отключиться от сети -nmcli con down "connection-name" -``` - -## VPN - -VPN поддержка уже подготовлена в `modules/services/default.nix`: - -```nix -# AmneziaVPN поддержка -services.amnezia.enable = true; # Если добавлено -``` - -## DNS - -Если нужно изменить DNS серверы: - -```nix -# В modules/networking/default.nix -networking.nameservers = [ "1.1.1.1" "8.8.8.8" ]; -``` - -## Проверка после изменений - -```bash -# Применить конфигурацию -nh os switch - -# Проверить статус -systemctl status networking -systemctl status ssh - -# Проверить firewall -sudo firewall-cmd --list-ports # Если используется firewalld -``` - -## Диагностика - -### SSH не работает? - -```bash -# Проверить статус -systemctl status ssh - -# Посмотреть логи -sudo journalctl -u sshd -f - -# Перезагрузить SSH -sudo systemctl restart ssh -``` - -### Нет интернета? - -```bash -# Проверить соединение -ping 8.8.8.8 - -# Проверить DNS -nslookup google.com - -# NetworkManager статус -nmcli status - -# Перезагрузить NetworkManager -sudo systemctl restart NetworkManager -``` - -### Firewall блокирует? - -```bash -# Проверить открытые порты -sudo nftables list tables # Или через nmap - -nmap localhost # Сканирование локального машина - -# Проверить конкретный порт -sudo netstat -tlnp | grep :8080 -``` - -## SSH ключи - -### Генерировать ключ (если нет) - -```bash -ssh-keygen -t ed25519 -C "ada.dmitry@gmail.com" -# или -ssh-keygen -t rsa -b 4096 -C "ada.dmitry@gmail.com" -``` - -### Добавить публичный ключ - -Содержимое `~/.ssh/id_ed25519.pub` нужно добавить на сервер в `~/.ssh/authorized_keys`. - -## Общие команды - -```bash -# Сетевые интерфейсы -ip link show - -# IP адреса -ip addr show - -# Маршруты -ip route show - -# Слушающие порты -sudo netstat -tlnp - -# DNS кэш -systemctl status systemd-resolved -``` diff --git a/nixos/docs/04-devshell.md b/nixos/docs/04-devshell.md deleted file mode 100644 index 6d2ffdb..0000000 --- a/nixos/docs/04-devshell.md +++ /dev/null @@ -1,188 +0,0 @@ -# DevShell: Окружение для разработки - -Как использовать devShell для работы с конфигурацией. - -## Что такое devShell? - -DevShell - это временное окружение с инструментами для разработки конфигурации. - -## Войти в devShell - -```bash -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 - -### Форматировать код - -```bash -# Внутри devShell: -nixfmt-classic home/ada/*.nix -nixfmt-classic modules/**/*.nix -``` - -### Проверить зависимости - -```bash -# Посмотреть дерево -nix-tree nixpkgs# - -# Сравнить версии между поколениями -nvd diff /nix/var/nix/profiles/system /run/current-system -``` - -### Красивый вывод сборки - -```bash -# С красивым выводом -nix-output-monitor -- nix build . -``` - -## Редактировать конфигурацию - -Внутри devShell можно редактировать файлы и сразу их форматировать: - -```bash -vim home/ada/packages.nix - -# После редактирования: -nixfmt-classic home/ada/packages.nix -``` - -## Автоматический вход - -Если у тебя есть `.envrc`, devShell загружается автоматически при входе в папку: - -```bash -cd /home/ada/.dotfiles/nixos -# Если есть direnv - автоматически загрузится devShell -``` - -Спросит разрешение первый раз: -```bash -direnv allow -``` - -## Использование с IDE - -### VS Code - -Если открыть папку в VS Code, он автоматически предложит использовать devShell. - -### Vim/Neovim - -Перед запуском vim: -```bash -nix develop -vim home/ada/zsh.nix -``` - -## Выход из devShell - -```bash -exit -# или -Ctrl+D -``` - -## Типичный workflow - -```bash -# 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 - -```bash -# Форматирование -nixfmt-classic **/*.nix - -# Проверка -nix flake check -nix flake show --all-systems - -# Анализ -nix-tree -nvd diff - -# Сборка -nom -- nix build . - -# Поиск -rg "pattern" -fd "pattern" -``` - -## Возможные проблемы - -### "command not found" - -Если команда не найдена, убедись что ты внутри devShell: - -```bash -# Проверить -echo $IN_NIX_SHELL - -# Если пусто, войти: -nix develop -``` - -### Долгая загрузка devShell - -Первая загрузка может быть долгой. После этого будет быстрее. - -### Нужен другой инструмент? - -Открой `flake.nix`, найди секцию `devShell` и добавь пакет: - -```nix -devShells.${system}.default = pkgs.mkShell { - buildInputs = with pkgs; [ - # Существующие - nix-output-monitor - - # Добавить новый: - your-package - ]; -}; -``` - -Потом собери: -```bash -exit # Выйти из старого devShell -nix develop # Войти в новый -``` diff --git a/nixos/docs/05-git-config.md b/nixos/docs/05-git-config.md deleted file mode 100644 index e38bb55..0000000 --- a/nixos/docs/05-git-config.md +++ /dev/null @@ -1,228 +0,0 @@ -# Git конфигурация - -Как настроить Git алиасы и конфигурацию. - -## Где Git конфиг? - -Git конфигурация находится в: -``` -home/ada/git.nix -``` - -## Пользователь - -```nix -programs.git = { - enable = true; - userName = "Dmitry"; - userEmail = "ada.dmitry@gmail.com"; -``` - -Изменить имя и email: - -```nix -userName = "Твоё имя"; -userEmail = "твой@email.com"; -``` - -## Добавить alias - -Алиасы находятся в `aliases`: - -```nix -aliases = { - # Базовые - st = "status"; - co = "checkout"; - br = "branch"; - - # Твой новый alias: - quick-commit = "commit -am"; -}; -``` - -### Примеры полезных алиасов - -```nix -# Быстрая работа с коммитами -cm = "commit -m"; -amend = "commit --amend"; -undo = "reset --soft HEAD^"; - -# Логи -lg = "log --graph --oneline --all"; -recent = "log -10 --oneline"; - -# Ветки -new-branch = "checkout -b"; -sync = "pull --rebase"; - -# Простые проверки -changed = "diff --name-only"; -staged = "diff --cached"; -``` - -## Глобальный gitignore - -Файлы которые всегда игнорируются: - -```nix -ignores = [ - ".DS_Store" # macOS - "Thumbs.db" # Windows - ".vscode/" # VS Code - ".idea/" # IntelliJ - "*.swp" # Vim - # Добавить свой: - ".myfile" -]; -``` - -## Цвета - -Визуальная конфигурация разных элементов: - -```nix -"color \"branch\"" = { - current = "yellow bold"; - local = "green"; - remote = "cyan"; -}; - -"color \"diff\"" = { - meta = "yellow"; - old = "red bold"; - new = "green bold"; -}; -``` - -Можешь изменять цвета на свой вкус. - -## Основные настройки - -```nix -extraConfig = { - # Ветка по умолчанию - init.defaultBranch = "main"; - - # Автоматический rebase при pull - pull.rebase = true; - - # Редактор для коммитов - core.editor = "micro"; -}; -``` - -## Проверка конфигурации - -После изменений собери конфигурацию: - -```bash -nh os switch -``` - -Проверить что применилось: - -```bash -git config --list | grep user -git config user.name -git alias # Если есть такой alias -``` - -## Использование алиасов - -```bash -# Вместо: -git status - -# Используешь: -g st # Если есть alias g = git -``` - -## Работа с удалёнными репозиториями - -Если нужны специальные алиасы для pull/push: - -```nix -# В алиасах: -pom = "push origin main"; -plm = "pull origin main"; -``` - -## Слияние веток - -```nix -# Алиасы для слияния -merge-main = "merge main"; -merge-dev = "merge develop"; -``` - -## Интерактивные операции - -Хорошие алиасы для интерактивной работы: - -```nix -interactive = "rebase -i"; -fixup = "rebase -i --autosquash"; -``` - -## Проверка перед применением - -```bash -# Посмотреть текущие алиасы -git config --get-regexp alias - -# Проверить синтаксис после редактирования -nix flake check -``` - -## Git UI - -Если хочешь использовать интерактивный Git UI: - -```bash -lazygit # Уже установлен в пакетах -``` - -## Частые операции - -### Быстрый коммит - -```nix -# Добавить алиас -quick = "commit -am"; -``` - -```bash -git quick "commit message" -``` - -### История файла - -```nix -# Алиас -history = "log --oneline"; -``` - -```bash -git history -``` - -### Визуальное дерево - -```bash -# Уже есть -git lg # или git l -``` - -## Если что-то сломалось - -Вернуть конфиг по умолчанию: - -```bash -# Отменить последние изменения -git checkout home/ada/git.nix - -# Пересобрать -nh os switch -``` diff --git a/nixos/docs/06-adding-modules.md b/nixos/docs/06-adding-modules.md deleted file mode 100644 index 9159f0e..0000000 --- a/nixos/docs/06-adding-modules.md +++ /dev/null @@ -1,302 +0,0 @@ -# Добавление новых модулей - -Как создавать расширяющие конфигурацию новые модули. - -## Что такое модуль? - -Модуль - это файл `.nix` который описывает часть конфигурации: - -``` -modules/system/boot.nix - Загрузчик -modules/desktop/plasma.nix - Рабочий стол -home/ada/vim.nix - Vim конфигурация -``` - -## Структура модуля - -Простой модуль выглядит так: - -```nix -{ pkgs, ... }: - -{ - # Здесь твоя конфигурация - services.myservice.enable = true; -} -``` - -## Создание системного модуля - -### Пример: Добавить Transmission (торрент клиент) - -1. Создать файл `modules/services/transmission.nix`: - -```nix -{ pkgs, ... }: - -{ - services.transmission = { - enable = true; - openFirewall = true; - - settings = { - # Конфигурация - rpc-port = 6969; - download-dir = "/home/ada/Downloads"; - }; - }; -} -``` - -2. Добавить импорт в `configuration.nix`: - -```nix -imports = [ - # ... существующие - ./modules/services/transmission.nix # Добавить эту строку -]; -``` - -3. Собрать: - -```bash -nh os switch -``` - -### Пример: Добавить VirtualBox (уже есть) - -Модуль находится в `modules/virtualisation/virtualbox.nix`: - -```nix -{ ... }: - -{ - virtualisation.virtualbox.host.enable = true; - virtualisation.virtualbox.guest.enable = true; -} -``` - -## Создание Home Manager модуля - -### Пример: Конфигурировать Neovim - -1. Создать файл `home/ada/neovim.nix`: - -```nix -{ pkgs, ... }: - -{ - programs.neovim = { - enable = true; - - extraConfig = '' - set number - set relativenumber - set tabstop=2 - ''; - - plugins = with pkgs.vimPlugins; [ - vim-sensible - nord-vim - ]; - }; -} -``` - -2. Добавить импорт в `home/ada/default.nix`: - -```nix -imports = [ - # ... существующие - ./neovim.nix # Добавить -]; -``` - -3. Собрать: - -```bash -nh os switch -``` - -## Распространённые системные модули - -### Принтер CUPS - -```nix -{ ... }: - -{ - services.printing.enable = true; -} -``` - -### PostgreSQL - -```nix -{ ... }: - -{ - services.postgresql = { - enable = true; - package = pkgs.postgresql; - }; -} -``` - -### MySQL - -```nix -{ ... }: - -{ - services.mysql = { - enable = true; - package = pkgs.mysql; - }; -} -``` - -### Docker - -```nix -{ ... }: - -{ - virtualisation.docker.enable = true; - - users.extraGroups.docker = { - members = [ "ada" ]; - }; -} -``` - -## Распространённые Home Manager модули - -### Kitty терминал - -```nix -{ ... }: - -{ - programs.kitty = { - enable = true; - - settings = { - font_family = "FiraCode"; - font_size = 14; - }; - }; -} -``` - -### Helix редактор - -```nix -{ ... }: - -{ - programs.helix = { - enable = true; - }; -} -``` - -### Starship (красивый prompt) - -```nix -{ ... }: - -{ - programs.starship = { - enable = true; - }; -} -``` - -## Правила при создании модулей - -✅ **Делай:** -- Используй русские комментарии -- Оставляй пустые строки между секциями -- Документируй нетривиальные вещи - -❌ **Не делай:** -- Не смешивай систему и Home Manager в одном файле -- Не создавай огромные модули (разбей на части) -- Не создавай дублирующие друг друга файлы - -## Организация модулей - -Системные модули по категориям: - -``` -modules/ - ├── system/ - Ядро системы - │ ├── boot.nix - Загрузчик - │ ├── nix.nix - Nix конфиг - │ └── locale.nix - Язык/время - ├── desktop/ - Рабочий стол - │ ├── plasma.nix - │ └── pipewire.nix - ├── networking/ - Сеть - ├── services/ - Сервисы - ├── users/ - Пользователи - └── virtualisation/ - Виртуализация -``` - -Home Manager модули: - -``` -home/ada/ - ├── default.nix - Главный файл (импорты) - ├── packages.nix - Пакеты - ├── alacritty.nix - Терминал - ├── vim.nix - Vim - ├── git.nix - Git - ├── zsh.nix - Shell - └── ... -``` - -## Типичный workflow - -```bash -# 1. Создать файл модуля -cat > modules/services/myservice.nix << 'EOF' -{ ... }: - -{ - # конфигурация -} -EOF - -# 2. Добавить импорт в configuration.nix -vim configuration.nix - -# 3. Протестировать -nh os test - -# 4. Собрать -nh os switch - -# 5. Проверить -systemctl status myservice -``` - -## Отладка моего модуля - -```bash -# Проверить синтаксис -nix flake check - -# Полный check -nix flake check --all-systems - -# Посмотреть ошибки собственного файла -nix-instantiate modules/services/myservice.nix -``` - -## Полезные ресурсы - -- [NixOS options search](https://search.nixos.org/options) -- [Nixpkgs документация](https://github.com/nixos/nixpkgs) -- [Home Manager опции](https://nix-community.github.io/home-manager/options.html) diff --git a/nixos/docs/07-troubleshooting.md b/nixos/docs/07-troubleshooting.md deleted file mode 100644 index 9c776bf..0000000 --- a/nixos/docs/07-troubleshooting.md +++ /dev/null @@ -1,285 +0,0 @@ -# Отладка и решение проблем - -Что делать когда что-то не работает. - -## Конфигурация не собирается - -### Ошибка синтаксиса - -```bash -# Проверить синтаксис -nix flake check - -# Посмотреть ошибку -nh os test -``` - -Читай ошибку внимательно - она указывает на строку файла. - -## Ошибка: пакет не найден - -```bash -# Проверить существует ли пакет -nix search nixpkgs package-name - -# Полное имя может быть другим -nix search nixpkgs git-lfs -``` - -Если пакет не найден: -1. Проверь имя в [https://search.nixos.org](https://search.nixos.org) -2. Возможно пакет устарел -3. Попробуй альтернативу - -## Ошибка: модуль не импортируется - -```bash -# Если добавил новый модуль и он не применяется -nix flake check - -# Проверить импорт в configuration.nix -grep "./modules/mymodule" configuration.nix - -# Проверить путь (должен быть правильный относительный путь) -``` - -Старые импорты кэшируются. Попробуй: -```bash -rm -rf .direnv # Если использует direnv -nix flake update -``` - -## Сборка зависает - -Обычно при первой сборке это может быть долгим (20-30 минут). - -Если зависает надолго: -```bash -# Прервать (Ctrl+C) - -# Очистить кэш -nix flake update - -# Пробовать снова -nh os test -``` - -## Команда не работает после apply - -```bash -# Обновить PATH -exec $SHELL - -# Или перезагрузить terminal -# В новом окне терминала попробуй команду -``` - -## SSH не работает - -```bash -# Проверить статус -sudo systemctl status ssh - -# Посмотреть логи -sudo journalctl -u sshd -f - -# Перезагрузить -sudo systemctl restart ssh - -# Проверить firewall -sudo nftables list tables -nmcli device show -``` - -## Git алиасы не работают - -```bash -# Применить конфигурацию -nh os switch - -# Проверить что установилась -git config --list | grep alias - -# Перезагрузить shell -exec $SHELL -``` - -## Пакет not found после добавления - -```bash -# Пересобрать -nh os switch - -# Обновить PATH если нужно -exec $SHELL - -# Проверить пакет -which package-name -``` - -## Система не загружается - -Если сломал конфигурацию и система не грузится: - -```bash -# При загрузке в GRUB выбери предыдущую версию системы -``` - -Или откати изменения: -```bash -cd /home/ada/.dotfiles/nixos -git checkout configuration.nix -nh os switch -``` - -## Firewall блокирует - -```bash -# Проверить статус -sudo nftables list tables - -# Открыть порт (редактор файл) -# modules/networking/default.nix -networking.firewall.allowedTCPPorts = [ 22 8080 ]; - -# Собрать -nh os switch -``` - -## Нет интернета - -```bash -# Проверить связь -ping 8.8.8.8 - -# Проверить DNS -nslookup google.com - -# Перезагрузить NetworkManager -sudo systemctl restart NetworkManager - -# Посмотреть статус -nmcli status -``` - -## Логирование и отладка - -### Посмотреть логи системы - -```bash -# Последние ошибки -sudo journalctl -b | tail -50 - -# Логи конкретного сервиса -sudo journalctl -u ssh -f - -# По уровню важности -sudo journalctl -p err -``` - -### Проверить что загрузилось - -```bash -# Посмотреть текущую конфигурацию -systemctl status -ps aux - -# Проверить конкретный сервис -systemctl status sshd -systemctl status NetworkManager -``` - -## Производительность - -Если система медленная: - -```bash -# Посмотреть процессы -btop - -# Посмотреть использование диска -du -sh ~/* - -# Нулевые файлы -find / -size 0 2>/dev/null - -# GC собрал много? -du -sh /nix/store -nix store gc -``` - -## Вернуть рабочее состояние - -### Откатить последнее изменение - -```bash -# В git -git checkout HEAD -- home/ada/packages.nix - -# Пересобрать -nh os switch -``` - -### Посмотреть историю поколений - -```bash -nh os list - -# Откатить на предыдущее поколение -sudo nix-env -p /nix/var/nix/profiles/system --switch-generation N -``` - -### Резервная копия - -Есть файл конфигурации до изменений: -``` -configuration.nix.backup -``` - -Если что-то критичное сломалось: -```bash -cp configuration.nix configuration.nix.broken -cp configuration.nix.backup configuration.nix -nh os switch -``` - -## Получить помощь - -### Проверить логи - -```bash -# Полные логи последней сборки -nixos-rebuild dry-run 2>&1 | head -100 -``` - -### Читать ошибки - -Обычно в ошибке указывается: -1. **Файл** - какой файл конфига проблема -2. **Строка** - на какой строке -3. **Ошибка** - что именно не так - -### Поиск в документации - -```bash -# Поиск опции -nixos-option services.openssh - -# Поиск в nixpkgs -nix search nixpkgs pattern -``` - -## Когда ничего не помогает - -```bash -# 1. Откатить на рабочее состояние -git checkout HEAD~1 - -# 2. Собрать -nh os switch - -# 3. Проверить что работает -systemctl status - -# 4. Медленнее добавить изменения по одному -``` diff --git a/nixos/docs/08-structure.md b/nixos/docs/08-structure.md deleted file mode 100644 index 06ff890..0000000 --- a/nixos/docs/08-structure.md +++ /dev/null @@ -1,223 +0,0 @@ -# Структура проекта - -Как устроена конфигурация. - -## Главные файлы - -``` -flake.nix - Главная входная точка -configuration.nix - Системная конфигурация -``` - -## Папки - -``` -modules/ - Системные модули -home/ada/ - Конфигурация пользователя (Home Manager) -docs/ - Документация (этот гайд) -``` - -## Версионирование - -### flake.nix - -```nix -inputs = { - # Откуда берёмся пакеты - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - - # Управление пользовательским окружением - home-manager.url = "github:nix-community/home-manager/release-25.11"; -}; -``` - -- NixOS версия: **25.11** (стабильный релиз) -- Home Manager версия: **25.11** (синхронизирована) - -## Системные модули - -### `modules/system/` - -Ядро системы: - -- **boot.nix** - GRUB загрузчик, kernel modules -- **nix.nix** - Nix конфигурация (flakes, gc, substituters) -- **locale.nix** - Таймзона (Europe/Moscow), системные locale - -### `modules/desktop/` - -Рабочее окружение: - -- **plasma.nix** - KDE Plasma 6, Wayland, X11, раскладка клавиатуры -- **pipewire.nix** - Audio система (PipeWire + ALSA) - -### `modules/networking/` - -Сетевые сервисы: - -- **default.nix** - NetworkManager, Firewall - -### `modules/services/` - -Системные сервисы: - -- **default.nix** - SSH (hardened), Firefox, GnuPG, VPN support - -### `modules/users/` - -Управление пользователями: - -- **ada.nix** - Пользователь `ada` (groups, shell: zsh) - -### `modules/virtualisation/` - -Виртуализация: - -- **virtualbox.nix** - VirtualBox Guest Additions (drag&drop, clipboard) -- **qemu-guest.nix** - QEMU/KVM Guest поддержка (spice-vdagent) - -## Home Manager (Пользователь ada) - -### `home/ada/default.nix` - -Главный файл (импорты всех модулей): - -```nix -home.username = "ada"; -home.homeDirectory = "/home/ada"; -home.stateVersion = "25.05"; -``` - -### Модули пользователя - -| Файл | Назначение | -|------|-----------| -| packages.nix | 50+ пакетов (организованы по категориям) | -| alacritty.nix | Терминальный эмулятор (Nord тема, FiraCode) | -| vim.nix | Vim редактор (Nord тема, плагины) | -| micro.nix | Micro редактор (простой редактор) | -| git.nix | Git конфигурация (15+ алиасов, colors) | -| zsh.nix | ZSH shell (30+ алиасов, интеграции) | -| tmux.nix | Tmux терминальный мультиплексер (VI mode) | -| tools.nix | CLI утилиты (bat, fzf, direnv) | - -## Информационный поток - -``` -flake.nix (входная точка) - ↓ - ├─→ nixpkgs (версия 25.11) - ├─→ home-manager (версия 25.11) - └─→ nixos-hardware - -configuration.nix (система) - ├─→ hardware-configuration.nix - ├─→ modules/system/* (boot, nix, locale) - ├─→ modules/desktop/* (plasma, pipewire) - ├─→ modules/networking/* (network) - ├─→ modules/services/* (ssh, firefox, etc.) - ├─→ modules/users/* (пользователь) - ├─→ modules/virtualisation/* (vbox) - └─→ Home Manager (через special args) - -home/ada/default.nix (пользователь) - ├─→ packages.nix (50+ пакетов) - ├─→ alacritty.nix (терминал) - ├─→ vim.nix (editor) - ├─→ micro.nix (editor) - ├─→ git.nix (git config) - ├─→ zsh.nix (shell) - ├─→ tmux.nix (multiplexer) - └─→ tools.nix (utilities) -``` - -## Категории пакетов - -В `packages.nix` пакеты организованы так: - -``` -Редакторы vim, neovim, micro -IDE vscode, idea-community, zed -Терминал alacritty -Dev tools tmux, fzf, ripgrep, fd, bat, eza... -Git git, gh, lazygit -Сеть curl, wget, ssh, mosh, nmap... -БД sqlite, postgresql -Утилиты jq, yq, zip, unzip, gnupg... -Шрифты nerdfonts (FiraCode) -``` - -## Какой файл менять? - -| Задача | Файл | -|--------|------| -| Добавить переменную окружения | `home/ada/zsh.nix` | -| Добавить программу | `home/ada/packages.nix` | -| Изменить Git конфиг | `home/ada/git.nix` | -| Добавить Shell alias | `home/ada/zsh.nix` | -| Настроить SSH | `modules/services/default.nix` | -| Открыть firewall порт | `modules/networking/default.nix` | -| Добавить язык/locale | `modules/system/locale.nix` | -| Установить новый сервис | Создать новый модуль в `modules/` | -| Конфигурировать программу | Создать новый модуль в `home/ada/` | - -## Версия конфигурации - -```nix -# configuration.nix -system.stateVersion = "25.05"; - -# home/ada/default.nix -home.stateVersion = "25.05"; - -# Обновить можно когда готов к миграции -# Но ОСТОРОЖНО - читай документацию NixOS -``` - -## Как это всё работает? - -1. **flake.nix** - говорит Nix где брать пакеты и как их собрать -2. **configuration.nix** - импортирует все системные модули -3. **modules/** - каждый модуль отвечает за часть системы -4. **home/ada/default.nix** - импортирует все пользовательские модули -5. **home/ada/** - каждый модуль конфигурирует программу - -### Когда ты делаешь `nh os switch`: - -``` -1. Нужно собрать конфигурацию -2. Nix читает flake.nix -3. Понимает что использовать из inputs (nixpkgs, home-manager) -4. Собирает configuration.nix (импортирует все modules/) -5. Собирает home/ada/default.nix через Home Manager -6. Создаёт результат (нов поколение системы) -7. Переключается на него -``` - -## Быстрая справка - -```bash -# Посмотреть версию -cat configuration.nix | grep stateVersion - -# Посмотреть импорты -head -30 configuration.nix - -# Список всех модулей -ls -la modules/**/*.nix - -# Список Home Manager модулей -ls -la home/ada/*.nix - -# Найти файл по названию -find . -name "*ssh*" -``` - -## Следующие шаги - -Если хочешь что-то изменить: - -1. Найди нужный файл (выше таблица) -2. Отредактируй его -3. Собери: `nh os switch` -4. Если не работает → см. docs/07-troubleshooting.md diff --git a/nixos/docs/README.md b/nixos/docs/README.md deleted file mode 100644 index 553227b..0000000 --- a/nixos/docs/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# 📚 Документация NixOS конфигурации - -Каждый файл в этой папке - это небольшой гайд по конкретной задаче. - -## 📖 Гайды - -- **[01-install-packages.md](01-install-packages.md)** — Добавление и удаление пакетов -- **[02-shell-environment.md](02-shell-environment.md)** — Shell alias, переменные окружения -- **[03-networking.md](03-networking.md)** — SSH, firewall, сетевые настройки -- **[04-devshell.md](04-devshell.md)** — Работа с devShell для разработки -- **[05-git-config.md](05-git-config.md)** — Git конфигурация и алиасы -- **[06-adding-modules.md](06-adding-modules.md)** — Создание новых модулей -- **[07-troubleshooting.md](07-troubleshooting.md)** — Отладка проблем -- **[08-structure.md](08-structure.md)** — Структура проекта - -## ⚡ Быстрый старт - -```bash -cd /home/ada/.dotfiles/nixos - -# Собрать конфигурацию -sudo nixos-rebuild switch --flake . - -# Или с nh (проще): -nh os switch -``` - -## 🔍 Найти нужное - -| Задача | Файл | -|--------|------| -| Добавить пакет | 01-install-packages.md | -| Добавить shell alias | 02-shell-environment.md | -| Конфигурировать SSH | 03-networking.md | -| Использовать devShell | 04-devshell.md | -| Настроить Git | 05-git-config.md | -| Создать новый модуль | 06-adding-modules.md | -| Что-то не работает | 07-troubleshooting.md | -| Как всё устроено | 08-structure.md | diff --git a/nixos/flake.nix b/nixos/flake.nix deleted file mode 100644 index b27554c..0000000 --- a/nixos/flake.nix +++ /dev/null @@ -1,85 +0,0 @@ -{ - description = "Модульная конфигурация NixOS 25.11 на Flake с Home Manager для виртуальной машины"; - - inputs = { - # Nixpkgs - главный репозиторий пакетов - # Используем nixos-25.11 для стабильности вместо unstable - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; - - # Hardware profiles для различных машин - nixos-hardware.url = "github:nixos/nixos-hardware"; - - # Home Manager для управления конфигурацией пользователя - home-manager = { - url = "github:nix-community/home-manager/release-25.11"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = { self, nixpkgs, nixos-hardware, home-manager }: - let - # Переменные для переиспользования - system = "x86_64-linux"; - version = "25.11"; - - pkgs = import nixpkgs { - inherit system; - config.allowUnfree = true; - }; - in - { - # Главная конфигурация NixOS - nixosConfigurations.nixos-vm = nixpkgs.lib.nixosSystem { - inherit system; - - specialArgs = { - inherit pkgs; - }; - - modules = [ - ./configuration.nix - - # Модуль Home Manager для управления конфигурацией пользователя - home-manager.nixosModules.home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.ada = import ./home/ada/default.nix; - } - ]; - }; - - # Окружение для разработки конфигурации - devShells.${system}.default = pkgs.mkShell { - description = "Development environment для NixOS конфигурации"; - buildInputs = with pkgs; [ - # Инструменты Nix - nix-output-monitor - nvd - nix-tree - nixfmt-classic - - # Редакторы - vim - nano - - # Утилиты для работы - git - ripgrep - fd - ]; - - shellHook = '' - echo "🚀 Development environment loaded" - echo "📚 Доступные утилиты:" - echo " - nixfmt: Форматирование Nix кода" - echo " - nvd: Сравнение версий" - echo " - nix-tree: Дерево зависимостей" - echo "💡 Совет: запусти 'nh os switch' для применения конфигурации" - ''; - }; - - # Форматеры кода - formatter.${system} = pkgs.nixfmt-classic; - }; -} diff --git a/nixos/hardware-configuration.nix b/nixos/hardware-configuration.nix deleted file mode 100644 index c4d309f..0000000 --- a/nixos/hardware-configuration.nix +++ /dev/null @@ -1,30 +0,0 @@ -# Do not modify this file! It was generated by ‘nixos-generate-config’ -# and may be overwritten by future invocations. Please make changes -# to /etc/nixos/configuration.nix instead. -{ config, lib, pkgs, modulesPath, ... }: - -{ - imports = [ ]; - - boot.initrd.availableKernelModules = [ "ata_piix" "ohci_pci" "ehci_pci" "ahci" "sd_mod" "sr_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ ]; - boot.extraModulePackages = [ ]; - - fileSystems."/" = - { device = "/dev/disk/by-uuid/2bb3bd25-1bc0-408f-945e-9150e4a10255"; - fsType = "ext4"; - }; - - swapDevices = [ ]; - - # Enables DHCP on each ethernet and wireless interface. In case of scripted networking - # (the default) this is the recommended approach. When using systemd-networkd it's - # still possible to use this option, but it's recommended to use it in conjunction - # with explicit per-interface declarations with `networking.interfaces..useDHCP`. - networking.useDHCP = lib.mkDefault true; - # networking.interfaces.enp0s3.useDHCP = lib.mkDefault true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - virtualisation.virtualbox.guest.enable = true; -} diff --git a/nixos/home/ada/alacritty.nix b/nixos/home/ada/alacritty.nix deleted file mode 100644 index 99e077a..0000000 --- a/nixos/home/ada/alacritty.nix +++ /dev/null @@ -1,121 +0,0 @@ -{ pkgs, ... }: - -{ - # Alacritty - GPU-ускоренный эмулятор терминала - programs.alacritty = { - enable = true; - - settings = { - # Оболочка по умолчанию с автоматическим запуском tmux - shell = { - program = "${pkgs.zsh}/bin/zsh"; - args = [ "-l" "-c" "tmux new-session -A -s main" ]; - }; - - # Настройки окна - window = { - decorations = "None"; # Без рамок и заголовка - startup_mode = "Maximized"; # Растянуто на весь экран - opacity = 0.80; - padding = { - x = 10; - y = 5; - }; - }; - - # Шрифты - font = { - size = 15.0; - normal = { - family = "FiraCode Nerd Font Mono"; - style = "Regular"; - }; - bold = { - family = "FiraCode Nerd Font Mono"; - style = "Bold"; - }; - italic = { - family = "FiraCode Nerd Font Mono"; - style = "Italic"; - }; - }; - - # Прокрутка - scrolling = { - history = 10000; - multiplier = 5; - }; - - # Выделение - selection = { - save_to_clipboard = true; - semantic_escape_chars = "@-./_~?&=%+#"; - }; - - # Мышь - mouse = { - hide_when_typing = false; - }; - - # Курсор - cursor = { - blink_interval = 500; - thickness = 0.15; - style = { - shape = "Beam"; - blinking = "On"; - }; - }; - - # Звуковой сигнал (отключен) - bell = { - animation = "EaseOutExpo"; - duration = 0; - }; - - # Nord цветовая схема - # https://www.nordtheme.com/ - colors = { - primary = { - background = "#2E3440"; - foreground = "#D8DEE9"; - }; - cursor = { - text = "#2E3440"; - cursor = "#D8DEE9"; - }; - selection = { - text = "#D8DEE9"; - background = "#434C5E"; - }; - normal = { - black = "#3B4252"; - red = "#BF616A"; - green = "#A3BE8C"; - yellow = "#EBCB8B"; - blue = "#81A1C1"; - magenta = "#B48EAD"; - cyan = "#88C0D0"; - white = "#E5E9F0"; - }; - bright = { - black = "#4C566A"; - red = "#BF616A"; - green = "#A3BE8C"; - yellow = "#EBCB8B"; - blue = "#81A1C1"; - magenta = "#B48EAD"; - cyan = "#8FBCBB"; - white = "#ECEFF4"; - }; - }; - - # Горячие клавиши - keyboard.bindings = [ - { key = "C"; mods = "Control|Shift"; action = "Copy"; } - { key = "V"; mods = "Control|Shift"; action = "Paste"; } - { key = "Return"; mods = "Control|Shift"; action = "SpawnNewInstance"; } - ]; - }; - }; -} diff --git a/nixos/home/ada/default.nix b/nixos/home/ada/default.nix deleted file mode 100644 index 30eb876..0000000 --- a/nixos/home/ada/default.nix +++ /dev/null @@ -1,45 +0,0 @@ -{ config, pkgs, ... }: - -{ - - # Импорт модульных конфигураций - imports = [ - # Визуальные программы - ./alacritty.nix - ./vim.nix - ./micro.nix - - # Конфигурация оболочеки и инструментов - ./git.nix - ./zsh.nix - ./tmux.nix - - # Утилиты и пакеты - ./tools.nix - ./packages.nix - ]; - - - # Основные настройки Home Manager - - - # Информация о пользователе - home.username = "ada"; - home.homeDirectory = "/home/ada"; - - # Версия Home Manager - # Это значение определяет релиз Home Manager, с которым совместима конфигурация. - # Это помогает избежать поломок при выходе новых релизов с несовместимыми изменениями. - home.stateVersion = "25.05"; - - # Разрешить Home Manager управлять собой - programs.home-manager.enable = true; - - - # Общие переменные окружения - - home.sessionVariables = { - EDITOR = "micro"; - VISUAL = "code --wait"; - }; -} diff --git a/nixos/home/ada/git.nix b/nixos/home/ada/git.nix deleted file mode 100644 index a282078..0000000 --- a/nixos/home/ada/git.nix +++ /dev/null @@ -1,126 +0,0 @@ -{ config, pkgs, ... }: - -{ - # Git - система контроля версий - programs.git = { - enable = true; - userName = "Dmitry"; - userEmail = "ada.dmitry@gmail.com"; - - extraConfig = { - # Основные настройки - init.defaultBranch = "main"; - pull.rebase = true; - core = { - editor = "micro"; - filemode = false; - autocrlf = "input"; - whitespace = "trailing-space,space-before-tab"; - pager = "less -FRXS"; - }; - - # Цвета - color = { - ui = "auto"; - branch = "auto"; - diff = "auto"; - status = "auto"; - }; - - "color \"branch\"" = { - current = "yellow bold"; - local = "green"; - remote = "cyan"; - }; - - "color \"diff\"" = { - meta = "yellow"; - frag = "magenta bold"; - old = "red bold"; - new = "green bold"; - whitespace = "red reverse"; - }; - - "color \"status\"" = { - added = "green bold"; - changed = "yellow bold"; - untracked = "red bold"; - }; - }; - - # Алиасы из .gitconfig - aliases = { - # Базовые сокращения - st = "status"; - co = "checkout"; - br = "branch"; - ci = "commit"; - cm = "commit -m"; - ca = "commit --amend"; - - # Добавление файлов - a = "add"; - aa = "add --all"; - ap = "add --patch"; - - # Логи - l = "log --oneline --graph --decorate"; - lg = "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"; - ll = "log --pretty=format:'%C(yellow)%h%Cred%d %Creset%s%Cblue [%cn]' --decorate --numstat"; - ls = "log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Creset%d %s' --date=short"; - lol = "log --graph --decorate --pretty=oneline --abbrev-commit"; - lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"; - - # История файла - filelog = "log -u"; - fl = "log -u"; - - # Diff - d = "diff"; - ds = "diff --staged"; - dc = "diff --cached"; - - # Показать последний коммит - last = "log -1 HEAD --stat"; - - # Отменить последний коммит (сохранив изменения) - undo = "reset --soft HEAD^"; - - # Показать изменения в файле - blame = "blame -w -M -C"; - }; - - # Глобальный gitignore - ignores = [ - # OS Generated - ".DS_Store" - ".AppleDouble" - ".LSOverride" - "._*" - "*~" - ".directory" - ".Trash-*" - "Thumbs.db" - "ehthumbs.db" - "Desktop.ini" - "$RECYCLE.BIN/" - - # IDEs & Editors - ".vscode/" - "*.code-workspace" - ".history/" - ".idea/" - "*.iml" - "*.ipr" - "*.iws" - ".idea_modules/" - "*.swp" - "*.swo" - ".*.sw?" - "Session.vim" - "#*#" - ".#*" - ".projectile" - ]; - }; -} diff --git a/nixos/home/ada/micro.nix b/nixos/home/ada/micro.nix deleted file mode 100644 index ff97f7d..0000000 --- a/nixos/home/ada/micro.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ pkgs, ... }: - -{ - # Micro - современный терминальный редактор - programs.micro = { - enable = true; - - settings = { - # Автосохранение и undo - autosu = true; - saveundo = true; - savecursor = true; - - # Цветовая схема - colorscheme = "simple"; - - # Поведение - mkparents = true; # Создавать родительские директории - rmtrailingws = true; # Удалять trailing whitespace - tabstospaces = true; # Заменять табы на пробелы - scrollbar = true; # Показывать scrollbar - - # Строка состояния - statusformatl = "$(filename) $(modified)($(line),$(col)) $(opt:filetype) $(opt:fileformat)"; - }; - }; - - # Добавить micro в $PATH и установить как основной редактор - home.sessionVariables = { - EDITOR = "micro"; - }; -} diff --git a/nixos/home/ada/packages.nix b/nixos/home/ada/packages.nix deleted file mode 100644 index 54937e6..0000000 --- a/nixos/home/ada/packages.nix +++ /dev/null @@ -1,90 +0,0 @@ -{ config, pkgs, ... }: - -{ - # Списование пакетов для различных нужд - home.packages = with pkgs; [ - # ══════════════════════════════════════════════════════════════════ - # Редакторы - # ══════════════════════════════════════════════════════════════════ - neovim - micro - - # ══════════════════════════════════════════════════════════════════ - # IDE - # ══════════════════════════════════════════════════════════════════ - vscode - jetbrains.idea-community - zed-editor - - # ══════════════════════════════════════════════════════════════════ - # Терминал - # ══════════════════════════════════════════════════════════════════ - alacritty - - # ══════════════════════════════════════════════════════════════════ - # Средства разработки и навигации - # ══════════════════════════════════════════════════════════════════ - tmux # Мультиплексер терминала - fzf # Интерактивный поиск - ripgrep # Быстрый поиск в файлах (rg) - ripgrep-all # Ripgrep для всех типов файлов (rga) - fd # Альтернатива find - bat # Замена cat с подсветкой - eza # Замена ls с иконками - lsd # Ещё одна замена ls - htop # Интерактивный монитор процессов - btop # Современный монитор ресурсов - bottom # Альтернатива top/htop - tree # Вывод дерева директорий - zoxide # Умная навигация (z, zi) - just # Альтернатива make для скриптов - tokei # Анализатор кода (строки, блоки кода) - nitch # Минималистичный neofetch аналог - difftastic # Красивый синтаксис для diff - - # ══════════════════════════════════════════════════════════════════ - # Инструменты Git - # ══════════════════════════════════════════════════════════════════ - git # Система контроля версий - gh # GitHub CLI - lazygit # Интерактивный git UI - - # ══════════════════════════════════════════════════════════════════ - # Разработка и интеграция - # ══════════════════════════════════════════════════════════════════ - pre-commit # Git hooks framework - nodePackages.prettier # Code formatter (Markdown, JSON, YAML, etc.) - - # ══════════════════════════════════════════════════════════════════ - # Сетевые утилиты - # ══════════════════════════════════════════════════════════════════ - curl # Загрузка файлов через URL - wget # Загрузчик файлов - openssh # SSH клиент и сервер - mosh # SSH альтернатива с поддержкой мобильности - nmap # Сканер портов и сетевая диагностика - net-tools # Классические утилиты (netstat, arp и т.д.) - drill # DNS утилита (альтернатива dig) - - # ══════════════════════════════════════════════════════════════════ - # Базы данных и хранилище - # ══════════════════════════════════════════════════════════════════ - sqlite # Встраиваемая реляционная БД - postgresql # Клиент PostgreSQL - - # ══════════════════════════════════════════════════════════════════ - # Утилиты - # ══════════════════════════════════════════════════════════════════ - jq # Обработка JSON - yq # Обработка YAML (аналог jq для YAML) - unzip # Распаковка zip архивов - zip # Создание zip архивов - p7zip # 7-Zip архиватор - gnupg # Шифрование и подписание - - # ══════════════════════════════════════════════════════════════════ - # Шрифты - # ══════════════════════════════════════════════════════════════════ - (pkgs.nerdfonts.override { fonts = [ "FiraCode" ]; }) - ]; -} diff --git a/nixos/home/ada/tmux.nix b/nixos/home/ada/tmux.nix deleted file mode 100644 index b5e831a..0000000 --- a/nixos/home/ada/tmux.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ config, pkgs, ... }: - -{ - # Tmux - мультиплексер терминала - programs.tmux = { - enable = true; - terminal = "screen-256color"; - keyMode = "vi"; - mouse = true; - prefix = "C-a"; - - extraConfig = '' - # Разделить панели используя | и - - bind | split-window -h - bind - split-window -v - unbind '"' - unbind % - - # Перезагрузить конфигурацию - bind r source-file ~/.tmux.conf - - # Переключение панелей используя Alt-стрелки без prefix - bind -n M-Left select-pane -L - bind -n M-Right select-pane -R - bind -n M-Up select-pane -U - bind -n M-Down select-pane -D - ''; - }; -} diff --git a/nixos/home/ada/tools.nix b/nixos/home/ada/tools.nix deleted file mode 100644 index ee19db1..0000000 --- a/nixos/home/ada/tools.nix +++ /dev/null @@ -1,27 +0,0 @@ -{ config, pkgs, ... }: - -{ - # Утилиты для работы с CLI - - # Bat - замена cat с подсветкой синтаксиса - programs.bat = { - enable = true; - config = { - theme = "TwoDark"; - pager = "less -FR"; - }; - }; - - # FZF - интерактивный поиск - programs.fzf = { - enable = true; - enableZshIntegration = true; - }; - - # Direnv - управление окружением по директориям - programs.direnv = { - enable = true; - enableZshIntegration = true; - nix-direnv.enable = true; - }; -} diff --git a/nixos/home/ada/vim.nix b/nixos/home/ada/vim.nix deleted file mode 100644 index 95d68be..0000000 --- a/nixos/home/ada/vim.nix +++ /dev/null @@ -1,112 +0,0 @@ -{ pkgs, ... }: - -{ - # Vim - легковесный редактор - programs.vim = { - enable = true; - - # Включить все улучшения по умолчанию - defaultEditor = false; # Micro - основной редактор - - # Настройки - settings = { - # Отображение - number = true; - relativenumber = true; - - # Отступы - expandtab = true; - shiftwidth = 2; - tabstop = 2; - smartindent = true; - - # Поиск - ignorecase = true; - smartcase = true; - - # Файлы - swapfile = false; - undofile = true; - - # История команд - history = 1000; - }; - - # Конфигурация из .vimrc - extraConfig = '' - " Ada's Vim config — lightweight and close to Neovim setup - scriptencoding utf-8 - set nocompatible - - " Leader - let mapleader = " " - - " UI - set cursorline - set signcolumn=yes - set termguicolors - - " Performance - set updatetime=200 - set timeoutlen=400 - - " Splits - set splitbelow - set splitright - - " Clipboard (prefer system clipboard if available) - if has('unnamedplus') - set clipboard=unnamedplus - endif - - " Keymaps - nnoremap j gj - nnoremap k gk - nnoremap w :w - nnoremap q :q - nnoremap h :nohlsearch - - " Windows - nnoremap sv v - nnoremap sh s - nnoremap se = - nnoremap sx :close - - " Buffers - nnoremap :bnext - nnoremap :bprevious - - " Quickfix - nnoremap ]q :cnext - nnoremap [q :cprev - - " Autocommands - augroup AdaCore - autocmd! - " Resize splits equally on terminal resize - autocmd VimResized * tabdo wincmd = - " Disable auto comment on new line - autocmd FileType * setlocal formatoptions-=o formatoptions-=r - augroup END - ''; - - # Плагины через vim-plug (устанавливается автоматически) - plugins = with pkgs.vimPlugins; [ - # Тема Nord - nord-vim - - # Fuzzy finder - fzf-vim - - # Файловое дерево - nerdtree - - # Редактирование - vim-surround - vim-commentary - - # Git - vim-gitgutter - ]; - }; -} diff --git a/nixos/home/ada/zsh.nix b/nixos/home/ada/zsh.nix deleted file mode 100644 index 43f15a2..0000000 --- a/nixos/home/ada/zsh.nix +++ /dev/null @@ -1,154 +0,0 @@ -{ config, pkgs, ... }: - -{ - # ZSH - расширенная оболочка - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestion.enable = true; - syntaxHighlighting.enable = true; - - # Переменные окружения - sessionVariables = { - EDITOR = "micro"; - VISUAL = "code --wait"; - PAGER = "less"; - - # XDG Base Directories - XDG_CONFIG_HOME = "$HOME/.config"; - XDG_DATA_HOME = "$HOME/.local/share"; - XDG_CACHE_HOME = "$HOME/.cache"; - XDG_STATE_HOME = "$HOME/.local/state"; - - # История - HISTFILE = "$XDG_STATE_HOME/zsh/history"; - HISTSIZE = "50000"; - SAVEHIST = "50000"; - - # Less - LESS = "-R -M -i -j10"; - - # Цвета - CLICOLOR = "1"; - - # FZF - FZF_DEFAULT_OPTS = "--height 40% --layout=reverse --border --inline-info"; - FZF_DEFAULT_COMMAND = "fd --type f --hidden --follow --exclude .git"; - - # Go - GOPATH = "$HOME/go"; - - # Rust - CARGO_HOME = "$HOME/.cargo"; - - # Python - PYTHONDONTWRITEBYTECODE = "1"; - }; - - shellAliases = { - # Навигация - ".." = "cd .."; - "..." = "cd ../.."; - "...." = "cd ../../.."; - "....." = "cd ../../../.."; - - # Быстрый доступ - dl = "cd ~/Downloads"; - dt = "cd ~/Desktop"; - doc = "cd ~/Documents"; - dev = "cd ~/dev"; - - # Списки файлов (eza) - ls = "eza --icons --group-directories-first"; - ll = "eza -l --icons --group-directories-first --git"; - la = "eza -la --icons --group-directories-first --git"; - lt = "eza --tree --level=2 --icons"; - l = "eza -lah --icons --group-directories-first --git"; - - # Безопасность - rm = "rm -i"; - cp = "cp -i"; - mv = "mv -i"; - - # Системные - grep = "grep --color=auto"; - df = "df -h"; - du = "du -h"; - free = "free -h"; - - # Сеть - ping = "ping -c 5"; - ports = "netstat -tulanp"; - localip = "ip -4 addr show | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}' | grep -v 127.0.0.1"; - - # NixOS - используем nh для удобства - nixos-rebuild = "nh os switch"; - nixos-test = "nh os test"; - nixos-boot = "nh os boot"; - nixos-update = "cd /home/ada/.dotfiles/nixos && nix flake update && nh os switch"; - nixos-list = "nh os list"; - - # Git - g = "git"; - gs = "git status"; - gst = "git --no-pager status"; - ga = "git add"; - gaa = "git add ."; - gc = "git commit"; - gcm = "git commit -m"; - gp = "git push"; - gpl = "git pull"; - gd = "git diff"; - gco = "git checkout"; - gb = "git branch"; - gl = "git log --oneline --graph --decorate"; - glog = "git log --oneline --graph --decorate --all"; - - # Docker - d = "docker"; - dc = "docker-compose"; - dps = "docker ps"; - dpsa = "docker ps -a"; - di = "docker images"; - dex = "docker exec -it"; - dlog = "docker logs -f"; - - # Kubectl - k = "kubectl"; - kgp = "kubectl get pods"; - - # Lazy инструменты - lg = "lazygit"; - }; - - # История - history = { - size = 50000; - save = 50000; - path = "$HOME/.local/state/zsh/history"; - ignoreDups = true; - ignoreSpace = true; - share = true; - }; - - initExtra = '' - # Включить zoxide (умная навигация) - eval "$(zoxide init zsh)" - - # Включить direnv - eval "$(direnv hook zsh)" - - # FZF конфигурация с Catppuccin цветами - export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS \ - --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \ - --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ - --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8" - - # FZF используем fd вместо find - export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND" - - # Создать директорию для истории если не существует - [[ ! -d "$(dirname $HISTFILE)" ]] && mkdir -p "$(dirname $HISTFILE)" - ''; - }; -} diff --git a/nixos/modules/desktop/pipewire.nix b/nixos/modules/desktop/pipewire.nix deleted file mode 100644 index 18d4bbe..0000000 --- a/nixos/modules/desktop/pipewire.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: - -{ - # Отключение PulseAudio - services.pulseaudio.enable = false; - - # Включение RealtimeKit для низколатентного аудио - security.rtkit.enable = true; - - # Включение PipeWire - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - # jack.enable = true; # Раскомментируйте для поддержки JACK - }; -} diff --git a/nixos/modules/desktop/plasma.nix b/nixos/modules/desktop/plasma.nix deleted file mode 100644 index 78c3e81..0000000 --- a/nixos/modules/desktop/plasma.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ pkgs, ... }: - -{ - # Включение X11 и Wayland - services.xserver.enable = true; - - # Окружение рабочего стола KDE Plasma 6 - services.displayManager.sddm = { - enable = true; - wayland.enable = true; - }; - - services.desktopManager.plasma6.enable = true; - - # Настройка раскладки клавиатуры - services.xserver.xkb = { - layout = "us,ru"; # Английская и русская раскладки - variant = ""; - options = "grp:caps_toggle"; # Переключение раскладки по Caps Lock - }; - - # Поддержка Wayland для Electron приложений - environment.sessionVariables.NIXOS_OZONE_WL = "1"; - - # Включение CUPS для печати - services.printing.enable = true; - - # Дополнительные пакеты KDE/Qt - environment.systemPackages = with pkgs; [ - kdePackages.plasma-browser-integration - kdePackages.kio-extras - kdePackages.kio-fuse - kdePackages.kate - kdePackages.kcalc - kdePackages.kcharselect - kdePackages.filelight - kdePackages.partitionmanager - kdePackages.ark - kdePackages.okular - kdePackages.gwenview - kdePackages.spectacle - ]; -} diff --git a/nixos/modules/networking/default.nix b/nixos/modules/networking/default.nix deleted file mode 100644 index 43b979c..0000000 --- a/nixos/modules/networking/default.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ ... }: - -{ - # Имя хоста - networking.hostName = "nixos-vm"; - - # Включение NetworkManager - networking.networkmanager.enable = true; - - # Конфигурация фаервола - networking.firewall = { - enable = true; - allowedTCPPorts = [ 22 ]; # SSH - # allowedUDPPorts = [ ... ]; - }; -} diff --git a/nixos/modules/services/default.nix b/nixos/modules/services/default.nix deleted file mode 100644 index d636621..0000000 --- a/nixos/modules/services/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ pkgs, ... }: - -{ - # Сервер OpenSSH с усиленной безопасностью - services.openssh = { - enable = true; - - settings = { - # Аутентификация - PasswordAuthentication = false; - PubkeyAuthentication = true; - PermitRootLogin = "no"; - KbdInteractiveAuthentication = false; - ChallengeResponseAuthentication = false; - PermitEmptyPasswords = false; - - # Сессии и доступ - LoginGraceTime = 30; - MaxAuthTries = 3; - MaxSessions = 2; - ClientAliveInterval = 300; - ClientAliveCountMax = 2; - - # Отключить устаревшие возможности - X11Forwarding = false; - AllowAgentForwarding = false; - PermitUserEnvironment = false; - }; - - # Дополнительная конфигурация - extraConfig = '' - # Authentication methods - AuthenticationMethods publickey - - # Reduce legacy or risky features - IgnoreRhosts yes - HostbasedAuthentication no - TCPKeepAlive no - - # Connection throttling - MaxStartups 10:30:60 - ''; - }; - - # Агент GnuPG - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - - # MTR для сетевой диагностики - programs.mtr.enable = true; - - # Firefox - programs.firefox.enable = true; - - # AmneziaVPN - programs.amnezia-vpn.enable = true; - - # Системные пакеты - environment.systemPackages = with pkgs; [ - amneziawg-tools - neofetch - ]; -} diff --git a/nixos/modules/system/boot.nix b/nixos/modules/system/boot.nix deleted file mode 100644 index 231d13f..0000000 --- a/nixos/modules/system/boot.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - # Конфигурация загрузчика - boot.loader.grub = { - enable = true; - device = "/dev/sda"; - useOSProber = true; - }; - - # Параметры ядра - boot.kernelParams = [ "quiet" ]; - - # Модуль ядра AmneziaWG - boot.extraModulePackages = [ config.boot.kernelPackages.amneziawg ]; - boot.kernelModules = [ "amneziawg" ]; -} diff --git a/nixos/modules/system/locale.nix b/nixos/modules/system/locale.nix deleted file mode 100644 index fb83659..0000000 --- a/nixos/modules/system/locale.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ ... }: - -{ - # Часовой пояс - time.timeZone = "Europe/Moscow"; - - # Интернационализация - i18n.defaultLocale = "en_US.UTF-8"; - - i18n.extraLocaleSettings = { - LC_ADDRESS = "ru_RU.UTF-8"; - LC_IDENTIFICATION = "ru_RU.UTF-8"; - LC_MEASUREMENT = "ru_RU.UTF-8"; - LC_MONETARY = "ru_RU.UTF-8"; - LC_NAME = "ru_RU.UTF-8"; - LC_NUMERIC = "ru_RU.UTF-8"; - LC_PAPER = "ru_RU.UTF-8"; - LC_TELEPHONE = "ru_RU.UTF-8"; - LC_TIME = "ru_RU.UTF-8"; - }; -} diff --git a/nixos/modules/system/nix.nix b/nixos/modules/system/nix.nix deleted file mode 100644 index b040a52..0000000 --- a/nixos/modules/system/nix.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ pkgs, ... }: - -{ - # Конфигурация Nix с flakes и оптимизациями - nix = { - package = pkgs.nixVersions.latest; - - settings = { - experimental-features = [ "nix-command" "flakes" ]; - auto-optimise-store = true; - - # Substituters для более быстрой загрузки - substituters = [ - "https://cache.nixos.org/" - "https://nix-community.cachix.org" - ]; - - trusted-public-keys = [ - "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" - "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" - ]; - }; - - # Автоматическая сборка мусора - gc = { - automatic = true; - dates = "weekly"; - options = "--delete-older-than 7d"; - }; - }; - - # Разрешить проприетарные пакеты - nixpkgs.config.allowUnfree = true; - - # Системные пакеты для удобства работы с Nix - environment.systemPackages = with pkgs; [ - # Утилиты Nix - nix-output-monitor # Красивый вывод Nix - nvd # Инструмент сравнения версий Nix - nix-tree # Просмотр зависимостей Nix store - nix-index # База данных файлов для nixpkgs - comma # Запуск без установки - nh # Ещё один помощник для Nix - nix-du # Визуализация использования диска - nixfmt-classic # Форматтер Nix кода - ]; - - # nix-ld для запуска непропатченных бинарников - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ - stdenv.cc.cc - zlib - fuse3 - icu - nss - openssl - curl - expat - ]; -} diff --git a/nixos/modules/users/ada.nix b/nixos/modules/users/ada.nix deleted file mode 100644 index 126fa88..0000000 --- a/nixos/modules/users/ada.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ pkgs, ... }: - -{ - # Определение учётной записи пользователя - users.users.ada = { - isNormalUser = true; - description = "ada"; - extraGroups = [ "networkmanager" "wheel" ]; - shell = pkgs.zsh; - }; - - # Включение ZSH системно - programs.zsh.enable = true; -} diff --git a/nixos/modules/virtualisation/qemu-guest.nix b/nixos/modules/virtualisation/qemu-guest.nix deleted file mode 100644 index 2620c7b..0000000 --- a/nixos/modules/virtualisation/qemu-guest.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: - -{ - # QEMU/KVM Guest поддержка - services.qemuGuest.enable = true; - - # SPICE Agent для лучшей интеграции (общий буфер, drag&drop) - services.spice-vdagentd.enable = true; - - # Дополнительные пакеты для работы с QEMU - environment.systemPackages = with pkgs; [ - spice-vdagent # SPICE агент для гостевой системы - qemu-utils # Утилиты QEMU - ]; -} diff --git a/nixos/modules/virtualisation/virtualbox.nix b/nixos/modules/virtualisation/virtualbox.nix deleted file mode 100644 index b547835..0000000 --- a/nixos/modules/virtualisation/virtualbox.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - # VirtualBox Guest additions - virtualisation.virtualbox.guest = { - enable = true; - dragAndDrop = true; # Перетаскивание файлов - clipboard = true; # Общий буфер обмена - }; -} diff --git a/zed/.config/zed/settings.json b/zed/.config/zed/settings.json index 9a4f084..cc1647e 100644 --- a/zed/.config/zed/settings.json +++ b/zed/.config/zed/settings.json @@ -142,12 +142,12 @@ }, "ui_font_size": 16.0, "buffer_font_size": 14.0, - "proxy": "socks5://127.0.0.1:20170", + "proxy": "socks5://127.0.0.1:7897", // "proxy": "socks5://ada:%3FHolivarr588856@157.22.231.198:1081", "theme": { "mode": "system", "light": "Ayu Light", - "dark": "Tokyo Night", + "dark": "Nordfox - blurred", }, "features": { "notebooks": true, diff --git a/zsh/.config/zsh/.zshrc b/zsh/.config/zsh/.zshrc index 154de66..7e3265e 100644 --- a/zsh/.config/zsh/.zshrc +++ b/zsh/.config/zsh/.zshrc @@ -2,6 +2,8 @@ # Ada's Modular ZSH Configuration # ════════════════════════════════════════════════════════════ +typeset -g POWERLEVEL9K_INSTANT_PROMPT=off + # ═══ Powerlevel10k Instant Prompt ══════════════════════════ # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Initialization code that may require console input (password prompts, [y/n] @@ -37,6 +39,7 @@ source "${ZSH_CONFIG_DIR}/functions.zsh" # Пользовательские source "${ZSH_CONFIG_DIR}/keybindings.zsh" # Горячие клавиши source "${ZSH_CONFIG_DIR}/prompt.zsh" # Настройка промпта (starship) + # ═══ Локальные настройки (опционально) ═════════════════════ # Для машинно-специфичных настроек [[ -f "${ZSH_CONFIG_DIR}/local.zsh" ]] && source "${ZSH_CONFIG_DIR}/local.zsh" @@ -48,6 +51,17 @@ source "${ZSH_CONFIG_DIR}/prompt.zsh" # Настройка промпта [[ ! -f /home/ada/.config/zsh/.p10k.zsh ]] || source /home/ada/.config/zsh/.p10k.zsh +# Показываем fastfetch один раз уже после инициализации prompt'а. +if [[ -o interactive ]]; then + autoload -Uz add-zsh-hook + function _fastfetch_once() { + add-zsh-hook -d precmd _fastfetch_once + command fastfetch + } + add-zsh-hook precmd _fastfetch_once +fi + + export NVM_DIR="$HOME/.config/nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion diff --git a/zsh/.config/zsh/config/aliases.zsh b/zsh/.config/zsh/config/aliases.zsh index e85f76a..d23c284 100644 --- a/zsh/.config/zsh/config/aliases.zsh +++ b/zsh/.config/zsh/config/aliases.zsh @@ -58,8 +58,11 @@ alias ports='netstat -tulanp' alias localip="ip -4 addr show | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v 127.0.0.1" # Proxy -alias proxy-on='sshp-start && export http_proxy="http://127.0.0.1:1080" https_proxy="http://127.0.0.1:1080" HTTP_PROXY="http://127.0.0.1:1080" HTTPS_PROXY="http://127.0.0.1:1080" && echo "Proxy enabled"' -alias proxy-off='sshp-stop && unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY && echo "Proxy disabled"' +# Включение прокси (HTTP, HTTPS и SOCKS5h для DNS через прокси) +alias proxy-on='export http_proxy="http://127.0.0.1:2080" https_proxy="http://127.0.0.1:2080" ALL_PROXY="socks5://127.0.0.1:2080" all_proxy="socks5://127.0.0.1:2080" && echo "󰖟 Proxy enabled (127.0.0.1:2080)"' + +# Полное отключение всех переменных прокси +alias proxy-off='unset http_proxy https_proxy HTTP_PROXY HTTPS_PROXY all_proxy ALL_PROXY && echo "󰖪 Proxy disabled"' alias proxy-status='env | grep -i proxy'