Compare commits
2 commits
e2cbe45706
...
cec561fe0d
| Author | SHA1 | Date | |
|---|---|---|---|
| cec561fe0d | |||
| ad2e06c07b |
4 changed files with 125 additions and 147 deletions
|
|
@ -22,6 +22,7 @@
|
||||||
# "lxqt-policykit-agent" # Заменил на гномовский
|
# "lxqt-policykit-agent" # Заменил на гномовский
|
||||||
"sxhkd"
|
"sxhkd"
|
||||||
"nm-applet" # Нетворк манагер
|
"nm-applet" # Нетворк манагер
|
||||||
|
# "blueman-applet" # Блютуз в трее
|
||||||
"ksnip"
|
"ksnip"
|
||||||
"xset s off -dpms" # Отменить затухание экрана через X минут
|
"xset s off -dpms" # Отменить затухание экрана через X минут
|
||||||
"spice-vdagent" # Для виртуалки
|
"spice-vdagent" # Для виртуалки
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ pkgs, pkgs2, spkgs, inputs, ... }: {
|
{ pkgs, pkgs2, spkgs, ... }: {
|
||||||
|
|
||||||
# https://nixos.wiki/wiki/Fonts
|
# https://nixos.wiki/wiki/Fonts
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
|
|
@ -132,10 +132,6 @@
|
||||||
# Оптимизация для игр. https://github.com/FeralInteractive/gamemode
|
# Оптимизация для игр. https://github.com/FeralInteractive/gamemode
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
|
|
||||||
# Я хз надо ли оно мне. https://github.com/ValveSoftware/gamescope
|
|
||||||
# Подробносни тут https://ventureo.codeberg.page/source/linux-gaming.html#gamescope
|
|
||||||
# gamescope.enable = true;
|
|
||||||
|
|
||||||
adb.enable = true; # Android Tools
|
adb.enable = true; # Android Tools
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -145,62 +141,53 @@
|
||||||
## Программирование ##
|
## Программирование ##
|
||||||
######################
|
######################
|
||||||
|
|
||||||
|
neovim
|
||||||
|
|
||||||
# Это рекомендуют ставить не на всю систему,
|
# Это рекомендуют ставить не на всю систему,
|
||||||
# а только на nix shell внутри проекта, где нужны эти пакеты
|
# а только на nix shell внутри проекта, где нужны эти пакеты
|
||||||
# Но я хочу на всю систему
|
# Но я хочу на всю систему
|
||||||
|
|
||||||
# Python
|
# Python
|
||||||
python3 # Python last version
|
python3
|
||||||
python3Packages.pip # Python package manager (nvim его не видит)
|
python3Packages.pip # Package manager (nvim его не видит)
|
||||||
python3Packages.debugpy # Debug Adapter Protocol for Python
|
python3Packages.debugpy # Debug Adapter Protocol for Python
|
||||||
pyright # Python LSP
|
pyright # LSP
|
||||||
ruff # Extremely fast Python linter
|
ruff # Linter
|
||||||
|
|
||||||
# C/C++
|
# C/C++
|
||||||
# clang-tools # Clangd? LSP
|
clang-tools # Clangd? LSP
|
||||||
# ccls # C/C++ LSP
|
|
||||||
# clang # Компилятор
|
|
||||||
# gcc # Компилятор
|
|
||||||
# glibc # GNU C Library
|
|
||||||
# gnumake # ?
|
|
||||||
# cmake-language-server # CMake LSP
|
|
||||||
# cmake # ?
|
|
||||||
# bear # Tool that generates a compilation database for clang tooling
|
|
||||||
# boost # Collection of C++ libraries
|
|
||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
rust-analyzer # Rust LSP (rustup component add rust-analyzer)
|
rust-analyzer # Rust LSP (rustup component add rust-analyzer)
|
||||||
|
|
||||||
# Golang
|
# Golang
|
||||||
go # Go programming language
|
go
|
||||||
gopls # Go LSP
|
gopls # LSP
|
||||||
delve # Go debugger
|
delve # Debugger
|
||||||
templ # A language for writing HTML user interfaces in Go.
|
golangci-lint # Linter
|
||||||
golangci-lint # Fast linters Runner for Go
|
|
||||||
|
|
||||||
# Nix
|
# Nix
|
||||||
nixd # Nix LSP. Нет в mason
|
nixd # LSP
|
||||||
|
|
||||||
# Lua
|
# Lua
|
||||||
lua5_1 # Scripting language
|
lua5_1
|
||||||
luajit # JIT compiler for Lua
|
luajit # JIT compiler for Lua
|
||||||
luajitPackages.luarocks # Package manager for lua
|
luajitPackages.luarocks # Package manager
|
||||||
lua-language-server # Lua LSP
|
lua-language-server # LSP
|
||||||
stylua # Lua formatter
|
stylua # Formatter
|
||||||
|
|
||||||
# Shell/Bash
|
# Shell/Bash
|
||||||
bash-language-server # Basp LSP
|
bash-language-server # LSP
|
||||||
shellcheck # Проверка shell скриптов на ошибки
|
shellcheck # Проверка shell скриптов на ошибки
|
||||||
shfmt # Shell parser and formatter
|
shfmt # Shell parser and formatter
|
||||||
|
|
||||||
# SQL
|
# SQL
|
||||||
sqls # SQL LSP
|
sqls # LSP
|
||||||
sqlite
|
sqlite
|
||||||
dbeaver-bin
|
dbeaver-bin
|
||||||
|
|
||||||
# Frontend
|
# Frontend
|
||||||
nodejs_24 # For npm
|
nodejs_24 # For npm
|
||||||
htmx-lsp # HTMX lsp
|
|
||||||
emmet-language-server # Emmet.io LSP
|
emmet-language-server # Emmet.io LSP
|
||||||
vscode-langservers-extracted # HTML/CSS/JSON/ESLint LSP
|
vscode-langservers-extracted # HTML/CSS/JSON/ESLint LSP
|
||||||
typescript-language-server # TypeScript LSP
|
typescript-language-server # TypeScript LSP
|
||||||
|
|
@ -226,17 +213,16 @@
|
||||||
# kubernetes-helm # Package manager for kubernetes
|
# kubernetes-helm # Package manager for kubernetes
|
||||||
|
|
||||||
# Other
|
# Other
|
||||||
# hugo # Для моего блога
|
gnumake
|
||||||
|
cmake-language-server
|
||||||
|
cmake
|
||||||
|
spkgs.hugo # Для моего блога
|
||||||
yaml-language-server # YAML LSP
|
yaml-language-server # YAML LSP
|
||||||
taplo # TOML LSP
|
taplo # TOML LSP
|
||||||
vim-language-server # VimScript LSP
|
vim-language-server # VimScript LSP
|
||||||
# go-migrate # Database migrations. CLI and Golang library
|
|
||||||
# postman # API Development Environment
|
# postman # API Development Environment
|
||||||
# insomnia
|
# insomnia
|
||||||
|
|
||||||
# Nushell
|
|
||||||
# nushell # Modern shell
|
|
||||||
|
|
||||||
# For nvim
|
# For nvim
|
||||||
tree-sitter # For nvim
|
tree-sitter # For nvim
|
||||||
ripgrep # For nvim
|
ripgrep # For nvim
|
||||||
|
|
@ -261,53 +247,49 @@
|
||||||
wget
|
wget
|
||||||
curl
|
curl
|
||||||
git
|
git
|
||||||
gitui # Git TUI
|
tree
|
||||||
xclip # Буфер обмена
|
xdg-utils
|
||||||
ffmpeg_7 # Обработка видео. Нужен всегда и везде как зависимость
|
httpie
|
||||||
svt-av1 # Кодек для рендера в av1 на проце
|
jq
|
||||||
# imlib2Full # Image manipulation library
|
libxml2
|
||||||
imagemagick # Обработка изображений. Мб тоже нужен всегда
|
miller
|
||||||
|
htmlq
|
||||||
|
usbutils
|
||||||
|
f2fs-tools
|
||||||
|
exfat
|
||||||
|
gitui
|
||||||
|
pwgen
|
||||||
|
lm_sensors
|
||||||
|
exiftool
|
||||||
|
xclip # Буфер обмена на X11
|
||||||
|
ffmpeg_7 # Обработка видео
|
||||||
|
svt-av1 # Быстрый рендер в av1 на проце
|
||||||
|
imagemagick # Конвертация картинок
|
||||||
vips # В 4 раза быстрее imagemagick?
|
vips # В 4 раза быстрее imagemagick?
|
||||||
tree # Структура файлов в терминале
|
gnugrep # Поиск в терминале (grep)
|
||||||
gnugrep # Поиск в терминале
|
gawk # Обработка и анализ текста в терминале (awk)
|
||||||
gawk # Обработка и анализ текста в терминале
|
|
||||||
rsync # Синхронизация файлов
|
rsync # Синхронизация файлов
|
||||||
bat # Аналог cat с подсветкой синтаксиса
|
bat # Аналог cat с подсветкой синтаксиса
|
||||||
xorg.xwininfo # Команда xprop. Статы окна, по типу класса
|
xorg.xwininfo # Команда xprop. Статы окна, по типу класса
|
||||||
xorg.xrandr # Управление мониторами
|
xorg.xrandr # Управление мониторами
|
||||||
xorg.xev # Узнать айдишник бинда
|
xorg.xev # Узнать айдишник бинда
|
||||||
xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks
|
|
||||||
playerctl # Управление медиа. Плей/пауза и тд
|
playerctl # Управление медиа. Плей/пауза и тд
|
||||||
xdotool # Fake keyboard/mouse input. Для rofi-pass
|
xdotool # Fake keyboard/mouse input. Для rofi-pass
|
||||||
# zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll
|
|
||||||
tokei # Количество строк кода на разных языках в каталоге
|
tokei # Количество строк кода на разных языках в каталоге
|
||||||
pass # Менеджер паролей в терминале
|
pass # Менеджер паролей в терминале
|
||||||
amdgpu_top # Tool to display AMD GPU usage
|
|
||||||
btop # Монитор ресурсов в терминале
|
btop # Монитор ресурсов в терминале
|
||||||
rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
|
rocmPackages.rocm-smi # Чтоб в btop было amd gpu?
|
||||||
rocmPackages.rocblas # Для работы hip?
|
rocmPackages.rocblas # Для работы hip?
|
||||||
rocmPackages.hipblas # Для работы hip?
|
rocmPackages.hipblas # Для работы hip?
|
||||||
rocmPackages.clr # Для работы hip?
|
rocmPackages.clr # Для работы hip?
|
||||||
pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов
|
timer # Таймер на пельмени "timer 5m"
|
||||||
timer # A "sleep" with progress. Таймер на пельмени "timer 5m"
|
libqalculate # Калькулятор для rofi
|
||||||
libqalculate # Advanced calculator library
|
|
||||||
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
|
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
|
||||||
fzf # Нечёткий поиск
|
fzf # Нечёткий поиск
|
||||||
killall # Убить процессы. Мем, что в стоке не стоит
|
killall # Убить процессы
|
||||||
libnotify # Вызов оповещений через "notify-send"
|
libnotify # Вызов оповещений через "notify-send"
|
||||||
|
pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов
|
||||||
pkgs2.gallery-dl # Качать много картинок с кучи разных сайтов
|
pkgs2.gallery-dl # Качать много картинок с кучи разных сайтов
|
||||||
shellcheck # Проверка shell скриптов на ошибки
|
|
||||||
pwgen # Генератор паролей
|
|
||||||
lm_sensors # Сенсоры
|
|
||||||
httpie # interacting with APIs & HTTP servers
|
|
||||||
jq # Cli JSON processor
|
|
||||||
libxml2 # XML parsing library for C
|
|
||||||
miller # Like awk, sed, cut, join, and sort for data formats such as CSV, TSV, JSON, JSON Lines, and positionally-indexed
|
|
||||||
# htmlq # Как jq, но для html. Извлекать конкретные элементы из html
|
|
||||||
# mkvtoolnix-cli # Cross-platform tools for Matroska
|
|
||||||
usbutils # lsusb
|
|
||||||
f2fs-tools # f2fs filesystem
|
|
||||||
exfat # exFAT filesystem
|
|
||||||
|
|
||||||
alacritty # Минималистичный терминал. Основной у меня
|
alacritty # Минималистичный терминал. Основной у меня
|
||||||
kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает
|
kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает
|
||||||
|
|
@ -316,15 +298,14 @@
|
||||||
## GUI ##
|
## GUI ##
|
||||||
#########
|
#########
|
||||||
|
|
||||||
ksnip # Скрины. Аналоги - Flameshot
|
ksnip # Скрины. Аналог - Flameshot
|
||||||
file-roller # Архиватор от gnome
|
file-roller # Архиватор от gnome
|
||||||
qbittorrent # Торренты качать
|
qbittorrent # Торренты качать
|
||||||
# thunderbird # Почтовый клиент для своей почты
|
# thunderbird # Почтовый клиент для своей почты
|
||||||
# screenkey # A screencast tool to display your keys
|
pavucontrol
|
||||||
pavucontrol # PulseAudio Volume Control
|
# pwvucontrol # Замена pavucontrol для PipeWire
|
||||||
# pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol)
|
|
||||||
networkmanagerapplet # Tray for network manager
|
networkmanagerapplet # Tray for network manager
|
||||||
# brightnessctl # Brightness control for laptop
|
# brightnessctl
|
||||||
# gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает
|
# gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает
|
||||||
|
|
||||||
##############
|
##############
|
||||||
|
|
@ -341,64 +322,64 @@
|
||||||
##########
|
##########
|
||||||
|
|
||||||
evince # Смотреть документы (так же превью PDF файлов для Thunar) (не читает FB2)
|
evince # Смотреть документы (так же превью PDF файлов для Thunar) (не читает FB2)
|
||||||
# papers # Я так понимаю это современная замена для evince под GTK4. Оба от gnome
|
# papers # Современная замена для evince под GTK4. Оба от gnome
|
||||||
libreoffice # Редактировать документы
|
libreoffice # Редактировать документы
|
||||||
hunspell # Проверка орфографии для libreoffice
|
hunspell # Проверка орфографии для libreoffice
|
||||||
hunspellDicts.ru_RU # Словарь для проверки орфографии
|
hunspellDicts.ru_RU # Словарь для проверки орфографии
|
||||||
hunspellDicts.en_US # Словарь для проверки орфографии
|
hunspellDicts.en_US # Словарь для проверки орфографии
|
||||||
calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере
|
calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере
|
||||||
# drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger
|
# drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger
|
||||||
spkgs.xournalpp # Xournal++ is a handwriting Notetaking software with PDF annotation support
|
spkgs.xournalpp
|
||||||
|
|
||||||
###################
|
###################
|
||||||
## File managers ##
|
## File managers ##
|
||||||
###################
|
###################
|
||||||
|
|
||||||
ranger # Terminal file manager
|
ranger
|
||||||
xfce.thunar # GUI file manager (допы выше в `programs` и `services`)
|
xfce.thunar # GUI file manager (допы выше в `programs` и `services`)
|
||||||
xfce.catfish # File searching (for Thunar)
|
xfce.catfish # File searching (for Thunar)
|
||||||
xfce4-exo # Мб надо, чтоб терминал открывать в каталоге
|
xfce4-exo # Мб надо, чтоб терминал открывать в каталоге
|
||||||
ffmpegthumbnailer # A lightweight video thumbnailer
|
ffmpegthumbnailer
|
||||||
gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books
|
gnome-epub-thumbnailer
|
||||||
# nufraw-thumbnailer # Thumbnailer for .raw images from digital cameras
|
# nufraw-thumbnailer # Thumbnailer for .raw images from digital cameras
|
||||||
# mcomix # Comic book reader and image viewer. Thumbnailer for .crb comicbook archives (требует mupdf, который крашит систему)
|
# mcomix # Thumbnailer for .crb comicbook archives (требует mupdf, который крашит систему)
|
||||||
f3d # Fast and minimalist 3D viewer using VTK. Thumbnailer for 3D files, including glTF, stl, step, ply, obj, fbx.
|
f3d # Thumbnailer for 3D files, including glTF, stl, step, ply, obj, fbx.
|
||||||
openscad # 3D model previews (stl, off, dxf, scad, csg). Этот именно для ranger, но мб пригодится и в других местах
|
openscad # 3D model previews (stl, off, dxf, scad, csg). Этот именно для ranger
|
||||||
|
|
||||||
##################
|
##################
|
||||||
## File support ##
|
## File support ##
|
||||||
##################
|
##################
|
||||||
|
|
||||||
kdePackages.kimageformats # Image format plugins for Qt 6
|
kdePackages.kimageformats # Image format plugins for Qt
|
||||||
spkgs.libsForQt5.kimageformats
|
spkgs.libsForQt5.kimageformats
|
||||||
kdePackages.qtimageformats # Plugins for additional image formats: TIFF, MNG, TGA, WBMP
|
kdePackages.qtimageformats # Image formats: TIFF, MNG, TGA, WBMP
|
||||||
spkgs.libsForQt5.qt5.qtimageformats
|
spkgs.libsForQt5.qt5.qtimageformats
|
||||||
kdePackages.qtsvg # SVG support
|
kdePackages.qtsvg
|
||||||
kdePackages.karchive # Plugin for Krita and OpenRaster images
|
kdePackages.karchive # Plugin for Krita and OpenRaster images
|
||||||
webp-pixbuf-loader # .webp support (what's this?)
|
webp-pixbuf-loader
|
||||||
gdk-pixbuf.dev # Library for image loading and manipulation
|
gdk-pixbuf.dev
|
||||||
libwebp # .webp support
|
libwebp
|
||||||
libavif # AVIF format support
|
libavif
|
||||||
libheif # HEIF format support
|
libheif
|
||||||
libgsf # .odf support
|
libgsf # .odf support
|
||||||
libjxl # JPEG-XL format support
|
libjxl
|
||||||
libraw # RAW format support
|
libraw
|
||||||
librsvg # Small library to render SVG images to Cairo surfaces
|
librsvg
|
||||||
jxrlib # JPEG XR image support
|
jxrlib
|
||||||
poppler # PDF support
|
poppler # PDF support
|
||||||
freetype # Font rendering engine
|
freetype
|
||||||
imath # EXR format support
|
imath
|
||||||
openexr # High dynamic-range (HDR) image file format
|
openexr
|
||||||
|
|
||||||
###########
|
###########
|
||||||
## Media ##
|
## Media ##
|
||||||
###########
|
###########
|
||||||
|
|
||||||
strawberry # Музыкальный плеер
|
strawberry
|
||||||
obs-studio # Запись видео
|
obs-studio
|
||||||
picard # Массовый редактор метаданных музыки
|
picard # Массовый редактор метаданных музыки
|
||||||
mousai # Опенсорс шазам. Со временем просит платный api
|
mousai # Опенсорс шазам. Со временем просит платный api
|
||||||
spek # Спектрограмма аудио.
|
spek # Спектрограмма аудио
|
||||||
mpv # Смотреть видео
|
mpv # Смотреть видео
|
||||||
qview # Смотреть картинки. Умеет открывать всё, включая анимированный webp и avif
|
qview # Смотреть картинки. Умеет открывать всё, включая анимированный webp и avif
|
||||||
|
|
||||||
|
|
@ -406,11 +387,10 @@
|
||||||
## Social ##
|
## Social ##
|
||||||
############
|
############
|
||||||
|
|
||||||
# (pkgs2.discord.override { # Discord
|
(pkgs2.discord.override {
|
||||||
# # withOpenASAR = true; # Оптимизатор дискрода
|
withVencord = true;
|
||||||
# withVencord = true; # Имба плагины
|
})
|
||||||
# })
|
# pkgs2.discord
|
||||||
pkgs2.discord
|
|
||||||
pkgs2.vesktop
|
pkgs2.vesktop
|
||||||
pkgs2.telegram-desktop
|
pkgs2.telegram-desktop
|
||||||
|
|
||||||
|
|
@ -419,16 +399,17 @@
|
||||||
###########
|
###########
|
||||||
|
|
||||||
lutris # Запускать .exe игры. Не всё через `wine game.exe` работает на nixos нормально
|
lutris # Запускать .exe игры. Не всё через `wine game.exe` работает на nixos нормально
|
||||||
|
sidequest # Ставить APK файлы на Oculus Quest 2
|
||||||
|
bs-manager # Удобно ставить моды и менять версии Beat Saber
|
||||||
|
|
||||||
# Мб зависимости
|
protonup-qt # Управлять версиями proton-ge
|
||||||
protonup-qt # Управлять версиями proton-ge?
|
|
||||||
steam-run # Запуск бинарей в окружении, похожем на steam runtime
|
steam-run # Запуск бинарей в окружении, похожем на steam runtime
|
||||||
mangohud # Фпс и нагрузку на пк показывает в играх
|
mangohud # Фпс и нагрузку на пк показывает в играх
|
||||||
wineWowPackages.stableFull # support both 32- and 64-bit applications
|
wineWowPackages.stableFull # support both 32- and 64-bit applications
|
||||||
# wineWowPackages.staging # Можно назвать бета версией вайна
|
# wineWowPackages.staging # Можно назвать бета версией вайна
|
||||||
winetricks # winetricks (all versions)
|
winetricks
|
||||||
# wineWowPackages.waylandFull # native wayland support (unstable)
|
# wineWowPackages.waylandFull # native wayland support (unstable)
|
||||||
# protontricks # Running Winetricks commands for Proton-enabled games
|
# protontricks
|
||||||
|
|
||||||
############
|
############
|
||||||
## Design ##
|
## Design ##
|
||||||
|
|
@ -446,14 +427,9 @@
|
||||||
##################
|
##################
|
||||||
|
|
||||||
obsidian # Заметки
|
obsidian # Заметки
|
||||||
spkgs.planify # Task manager
|
spkgs.planify # Таски
|
||||||
pkgs2.ticktick # Powerful to-do app, proprietary
|
pkgs2.super-productivity # Таски
|
||||||
|
pkgs2.ticktick # Таски, proprietary
|
||||||
#########
|
|
||||||
## IDE ##
|
|
||||||
#########
|
|
||||||
|
|
||||||
neovim
|
|
||||||
|
|
||||||
###########
|
###########
|
||||||
## Icons ##
|
## Icons ##
|
||||||
|
|
@ -488,7 +464,6 @@
|
||||||
# vial # GUI для qmk, если клавиатура поддерживает
|
# vial # GUI для qmk, если клавиатура поддерживает
|
||||||
fontconfig
|
fontconfig
|
||||||
zlib
|
zlib
|
||||||
# google-fonts
|
|
||||||
libva-utils # Проверяет работоспособность VAAPI?
|
libva-utils # Проверяет работоспособность VAAPI?
|
||||||
clinfo # Проверяет работоспособность OpenCL?
|
clinfo # Проверяет работоспособность OpenCL?
|
||||||
libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox
|
libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,25 @@
|
||||||
|
## Установка
|
||||||
|
На новом пк руками делаю симлинк в `~/.config/nvim`.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
ln -s ~/nixos-private-dots/nvim ~/.config/nvim
|
||||||
|
```
|
||||||
|
|
||||||
|
## Описание
|
||||||
[kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) fork
|
[kickstart.nvim](https://github.com/nvim-lua/kickstart.nvim) fork
|
||||||
|
|
||||||
> ⚠️ **Warning**: 27.04.2025 произошли большие изменения в конфиге, которые мне очень лень описывать в ридми. Документировать изменения сложнее, чем эти самые изменения вносить. Проще по коммитам ориентироваться. Поменялось много биндов и кор плагинов. Адаптировано для работы на neovim 0.11.
|
> ⚠️ **Warning**: Конфиг переписан под Neovim 0.11, но Readme файл написан под старый Neovim 0.10. Я постарался актуализировать этот файл, но мб что-то упустил. Поддерживать Readme файл в актуальном состоянии для меня оказалось очень сложно.
|
||||||
|
|
||||||
Тут будет лежать мой конфиг nvim. Я хочу, чтоб он был отдельно от nix конфигов, чтоб не надо было ничего ребилдить.
|
Тут будет лежать мой конфиг nvim. Я хочу, чтоб он был отдельно от nix конфигов, чтоб не надо было ничего ребилдить.
|
||||||
|
|
||||||
Первый запуск конфига может быть долгим. Не прерывай этот процесс, пока не появится меню плагин манагера
|
Первый запуск конфига может быть долгим. Не прерывай этот процесс, пока не появится меню плагин манагера.
|
||||||
|
|
||||||
Для выбора варианта из автокомплита надо жать ctrl+y, а не enter. Это можно исправить в конфиге, но я решил оставить так, как советует разраб kickstart.nvim, потому что я часто был в ситуации, когда готовая ide даёт мне вариант, но он мне не нужен, я уже написал свой, и мне надо перейти на новую строку, я жму enter и получаю комплит, который мне не нужен, мне новая строка нужна была.
|
Для выбора варианта из автокомплита надо жать ctrl+y или ctrl+tab, а не enter. Это можно исправить в конфиге, но я решил оставить так, как советует разраб kickstart.nvim, потому что я часто был в ситуации, когда готовая ide даёт мне вариант, но он мне не нужен, я уже написал свой, и мне надо перейти на новую строку, я жму enter и получаю комплит, который мне не нужен, мне новая строка нужна была.
|
||||||
|
|
||||||
Вкладки как в vscode я решил не делать, тут есть более удобный инструмент для этого. Например два раза нажать пробел в нормал моде, откроется меню буферов, то есть файлов, которые в данный момент открыты. Отображаются они в порядке последнего открытия. Ныне открытый файл там не отображается. Это аналог ctrl+tab в vscode. Можно легко и быстро переключаться между "вкладками". Если надо искать что-то среди файлов проекта, то можно нажать пробел sf, от слов search files. В целом пробел+s это поиск чего-то. Подсказки на экране скажут поиск чего будет происходить. Grep поиск это поиск по содержимому всех файлов проекта.
|
Вкладки как в vscode я решил не делать, тут есть более удобный инструмент для этого. Например два раза нажать пробел в нормал моде, откроется меню буферов, то есть файлов, которые в данный момент открыты. Отображаются они в порядке последнего открытия. Ныне открытый файл там не отображается. Это аналог ctrl+tab в vscode. Можно легко и быстро переключаться между "вкладками". Если надо искать что-то среди файлов проекта, то можно нажать пробел sf, от слов search files. В целом пробел+s это поиск чего-то. Подсказки на экране скажут поиск чего будет происходить. Grep поиск это поиск по содержимому всех файлов проекта.
|
||||||
https://medium.com/@jogarcia/you-dont-need-tabs-in-neovim-c6ba5ee44e3e
|
https://medium.com/@jogarcia/you-dont-need-tabs-in-neovim-c6ba5ee44e3e
|
||||||
|
|
||||||
Если будут проблемы с сессиями, то можно написать `:SessionDelete`. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии
|
Если будут проблемы с сессиями, то можно нажать Space S d, чтоб удалить сессию. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии
|
||||||
|
|
||||||
Конфиг сделан для NixOS. Я не знаю работает ли он в других дистрибутивах.
|
Конфиг сделан для NixOS. Я не знаю работает ли он в других дистрибутивах.
|
||||||
|
|
||||||
|
|
@ -23,14 +31,8 @@ LSP list - https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.txt
|
||||||
|
|
||||||
> ⚠️ **Warning**: Некоторых lsp в mason не существует и их надо качать отдельно. Или они не работают в NixOS, если их качать через mason. Такие lsp я настроил отдельно и скачал как пакет. Из конфига mason я их удалил. **Не скачай случайно эти lsp через mason руками, когда они уже настроены как отдельный пакет**. Это же касается форматтеров и линтеров. Их я стараюсь качать как системный пакет, а не через mason.
|
> ⚠️ **Warning**: Некоторых lsp в mason не существует и их надо качать отдельно. Или они не работают в NixOS, если их качать через mason. Такие lsp я настроил отдельно и скачал как пакет. Из конфига mason я их удалил. **Не скачай случайно эти lsp через mason руками, когда они уже настроены как отдельный пакет**. Это же касается форматтеров и линтеров. Их я стараюсь качать как системный пакет, а не через mason.
|
||||||
|
|
||||||
> ⚠️ **Warning**: Я вообще перестал качать что либо через mason, используя его только как поиск разных инструментов для нужного мне языка. Так что лучше ничего не качать через него.
|
> ⚠️ **Warning**: Я вообще перестал качать что либо через mason, использую его только как поиск разных инструментов для нужного мне языка. Так что лучше ничего не качать через него.
|
||||||
|
|
||||||
## Установка
|
|
||||||
На новом пк руками делаю симлинк в `~/.config/nvim`.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
ln -s ~/nixos-private-dots/nvim ~/.config/nvim
|
|
||||||
```
|
|
||||||
### Зависимости
|
### Зависимости
|
||||||
|
|
||||||
Для работы этого конфига надо установить некоторые пакеты в систему. Часть из них я напишу ниже, часть находится в `packages.nix` в категории `программирование`
|
Для работы этого конфига надо установить некоторые пакеты в систему. Часть из них я напишу ниже, часть находится в `packages.nix` в категории `программирование`
|
||||||
|
|
@ -46,7 +48,7 @@ ln -s ~/nixos-private-dots/nvim ~/.config/nvim
|
||||||
- `ueberzugpp`
|
- `ueberzugpp`
|
||||||
- Любой nerd font
|
- Любой nerd font
|
||||||
|
|
||||||
Пакеты для разных языков могут часть меняться, так что ищем в `packages.nix`
|
Пакеты для разных языков могут часто меняться, так что ищем в `packages.nix`
|
||||||
|
|
||||||
Чтоб понять есть ли проблемы с конфигом, может какие-то пакеты отсутствуют, можно запустить `:checkhealth`.
|
Чтоб понять есть ли проблемы с конфигом, может какие-то пакеты отсутствуют, можно запустить `:checkhealth`.
|
||||||
|
|
||||||
|
|
@ -79,6 +81,8 @@ Per project можно использовать `.editorconfig` файл в ко
|
||||||
|
|
||||||
Все бинды можно искать прям в neovim, если нажать `Space s k`, тоесть `S`earch `K`eymaps
|
Все бинды можно искать прям в neovim, если нажать `Space s k`, тоесть `S`earch `K`eymaps
|
||||||
|
|
||||||
|
А ещё ты можешь нажать `ctrl + q`, находясь в grep поиске (`space s g`), чтоб заменить одно слово на другое во всей выдаче грепа. Но будь осторожен, если сидишь в zellij, там `ctrl + q` это выход из zellij сессии. Надо жать `ctrl + g` перед этим, чтоб залочить бинды самого zellij.
|
||||||
|
|
||||||
Я не помню откуда эти бинды, может они есть в стоке, а может нет, но они полезные.
|
Я не помню откуда эти бинды, может они есть в стоке, а может нет, но они полезные.
|
||||||
|
|
||||||
| Bind | Description |
|
| Bind | Description |
|
||||||
|
|
@ -87,6 +91,7 @@ Per project можно использовать `.editorconfig` файл в ко
|
||||||
| `ctrl+o` | Go back |
|
| `ctrl+o` | Go back |
|
||||||
| `ctrl+i` | Go forward (if you went backwards) |
|
| `ctrl+i` | Go forward (if you went backwards) |
|
||||||
| `p` | Paste from nvim register |
|
| `p` | Paste from nvim register |
|
||||||
|
| `space p` | Paste from nvim register without loss of content |
|
||||||
| `ctrl+shift+v` | Paste from system clipboard |
|
| `ctrl+shift+v` | Paste from system clipboard |
|
||||||
| `y` | Yank(copy) to nvim register |
|
| `y` | Yank(copy) to nvim register |
|
||||||
| `space y` | Yank(copy) to system clipboard |
|
| `space y` | Yank(copy) to system clipboard |
|
||||||
|
|
@ -107,30 +112,28 @@ Per project можно использовать `.editorconfig` файл в ко
|
||||||
| `esc esc` | Exit terminal mode (Or use `<C-\><C-n>` to exit terminal mode) | settings.lua |
|
| `esc esc` | Exit terminal mode (Or use `<C-\><C-n>` to exit terminal mode) | settings.lua |
|
||||||
| `esc` | Creal highlights on search when pressing Esc in normal mode | settings.lua |
|
| `esc` | Creal highlights on search when pressing Esc in normal mode | settings.lua |
|
||||||
| `gp` | `G`oto context (`p`arent) | treesitter.lua |
|
| `gp` | `G`oto context (`p`arent) | treesitter.lua |
|
||||||
| `gd` | `G`oto `D`efinition | lsp.lua |
|
| `grd` | `G`o `R`efactor `D`efinition | lsp.lua |
|
||||||
| `gr` | `G`oto `R`eferences | lsp.lua |
|
| `grn` | `G`o `R`e`n`ame. Rename the variable under your cursor. Most Language Servers support renaming across files, etc. | lsp.lua |
|
||||||
| `gI` | `G`oto `I`mplementation | lsp.lua |
|
| `grr` | `G`o `R`efactor `R`eferences | lsp.lua |
|
||||||
| `gD` | `G`oto `D`eclaration. This is not Goto Definition, this is Goto Declaration. For example, in C this would take you to the header | lsp.lua |
|
| `grI` | `G`o `R`efactor `I`mplementation | lsp.lua |
|
||||||
|
| `grD` | `G`o `R`efactor `D`eclaration. This is not Goto Definition, this is Goto Declaration. For example, in C this would take you to the header | lsp.lua |
|
||||||
| `gc` | Toggle Comment from mini-comment plugin | - |
|
| `gc` | Toggle Comment from mini-comment plugin | - |
|
||||||
| `\` | Toggle file tree | file-tree.lua |
|
| `\` | Toggle file tree | file-tree.lua |
|
||||||
|
| `gO` | Document Symbols. Fuzzy find all the symbols in your current document. Symbols are things like variables, funckions, types, etc. | lsp.lua |
|
||||||
|
| `gW` | Workspace Symbols. Fuzzy find all the symbols in your currend workspace. Similar to document symbols, except searches over you entire project | lsp.lua |
|
||||||
|
|
||||||
Перед каждым из биндов в нижней таблице надо нажать `leader`, что есть `space`, пробел.
|
Перед каждым из биндов в нижней таблице надо нажать `leader`, что есть `space`, пробел.
|
||||||
|
|
||||||
| Bind | Description | File |
|
| Bind | Description | File |
|
||||||
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
|
|---------|---------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
|
||||||
| `tt` | `T`oggle `T`erminal | terminal.lua |
|
| `tt` | `T`oggle `T`erminal | terminal.lua |
|
||||||
| `gta` | `G`o `T`ag `A`dd. Add json tags for struct | golang.lua |
|
| `gta` | `G`olang `T`ag `A`dd. Add json tags for struct | golang.lua |
|
||||||
| `gtr` | `G`o `T`ag `R`emove. Remove json tags for struct | golang.lua |
|
| `gtr` | `G`olang `T`ag `R`emove. Remove json tags for struct | golang.lua |
|
||||||
| `gs` | `G`o fill `S`truct | golang.lua |
|
| `gs` | `G`olang fill `S`truct | golang.lua |
|
||||||
| `gc` | `G`o fill Switch `C`ase | golang.lua |
|
| `gc` | `G`olang fill Switch `C`ase | golang.lua |
|
||||||
| `gp` | `G`o fix `P`lurals (change func foo(b int, a int, r int) -> func foo(b, a, r int)) | golang.lua |
|
| `gp` | `G`olang fix `P`lurals (change func foo(b int, a int, r int) -> func foo(b, a, r int)) | golang.lua |
|
||||||
| `ge` | `G`o if `E`rr | golang.lua |
|
| `ge` | `G`olang if `E`rr | golang.lua |
|
||||||
| `gi` | `G`o `I`mports | golang.lua |
|
| `gi` | `G`olang `I`mports | golang.lua |
|
||||||
| `D` | Type `D`efinition. Jump to the typo of the word under your cursor. | lsp.lua |
|
|
||||||
| | Useful when you're not sure what type a variable is and you want to see the definition of its *type*, not where it was *defined*. | |
|
|
||||||
| `ds` | `D`ocument `S`ymbols. Fuzzy find all the symbols in your current document. Symbols are things like variables, funckions, types, etc. | lsp.lua |
|
|
||||||
| `ws` | `W`orkspace `S`ymbols. Fuzzy find all the symbols in your currend workspace. Similar to document symbols, except searches over you entire project | lsp.lua |
|
|
||||||
| `rn` | `R`e`n`ame. Rename the variable under your cursor. Most Language Servers support renaming across files, etc. | lsp.lua |
|
|
||||||
| `ca` | `C`ode `A`ction. Execute a code action, usually your cursor needs to be on top of an error or a suggestion from your LSP for this to activate | lsp.lua |
|
| `ca` | `C`ode `A`ction. Execute a code action, usually your cursor needs to be on top of an error or a suggestion from your LSP for this to activate | lsp.lua |
|
||||||
| `ss` | `S`earch Document `S`ymbols | lsp.lua |
|
| `ss` | `S`earch Document `S`ymbols | lsp.lua |
|
||||||
| `sS` | `S`earch `S`elect Telescope | health.lua |
|
| `sS` | `S`earch `S`elect Telescope | health.lua |
|
||||||
|
|
@ -151,7 +154,6 @@ Per project можно использовать `.editorconfig` файл в ко
|
||||||
| `f` | `F`ormat buffer | autoformat.lua |
|
| `f` | `F`ormat buffer | autoformat.lua |
|
||||||
| `Sd` | `S`ession `D`elete | session.lua |
|
| `Sd` | `S`ession `D`elete | session.lua |
|
||||||
| `Sc` | `S`ession `C`reate | session.lua |
|
| `Sc` | `S`ession `C`reate | session.lua |
|
||||||
| `Backspace` | Session restore | session.lua |
|
|
||||||
|
|
||||||
|
|
||||||
### Git
|
### Git
|
||||||
|
|
|
||||||
|
|
@ -6,4 +6,4 @@
|
||||||
|
|
||||||
## Применение скрипта
|
## Применение скрипта
|
||||||
|
|
||||||
Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно. Разрабы далбаёбы
|
Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue