feat: add comprehensive NixOS configuration documentation and structure
- 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.
This commit is contained in:
@@ -0,0 +1,121 @@
|
||||
{ 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"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{ 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.11";
|
||||
|
||||
# Разрешить Home Manager управлять собой
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
|
||||
# Общие переменные окружения
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "micro";
|
||||
VISUAL = "code --wait";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,126 @@
|
||||
{ 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"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{ 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";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,90 @@
|
||||
{ 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" ]; })
|
||||
];
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{ 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
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
{ 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;
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
{ 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 <silent> j gj
|
||||
nnoremap <silent> k gk
|
||||
nnoremap <silent> <leader>w :w<CR>
|
||||
nnoremap <silent> <leader>q :q<CR>
|
||||
nnoremap <silent> <leader>h :nohlsearch<CR>
|
||||
|
||||
" Windows
|
||||
nnoremap <silent> <leader>sv <C-w>v
|
||||
nnoremap <silent> <leader>sh <C-w>s
|
||||
nnoremap <silent> <leader>se <C-w>=
|
||||
nnoremap <silent> <leader>sx :close<CR>
|
||||
|
||||
" Buffers
|
||||
nnoremap <silent> <S-l> :bnext<CR>
|
||||
nnoremap <silent> <S-h> :bprevious<CR>
|
||||
|
||||
" Quickfix
|
||||
nnoremap <silent> ]q :cnext<CR>
|
||||
nnoremap <silent> [q :cprev<CR>
|
||||
|
||||
" 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
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,154 @@
|
||||
{ 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)"
|
||||
'';
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user