diff --git a/flake.lock b/flake.lock index aee44e9..28cbc72 100644 --- a/flake.lock +++ b/flake.lock @@ -71,11 +71,11 @@ "firefox-gnome-theme": { "flake": false, "locked": { - "lastModified": 1764724327, - "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", + "lastModified": 1764873433, + "narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=", "owner": "rafaelmardojai", "repo": "firefox-gnome-theme", - "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", + "rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92", "type": "github" }, "original": { @@ -92,11 +92,11 @@ ] }, "locked": { - "lastModified": 1763759067, - "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "lastModified": 1767609335, + "narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "rev": "250481aafeb741edfe23d29195671c19b36b6dca", "type": "github" }, "original": { @@ -125,11 +125,11 @@ "flake": false, "locked": { "host": "gitlab.gnome.org", - "lastModified": 1764524476, - "narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", + "lastModified": 1767737596, + "narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", + "rev": "ef02db02bf0ff342734d525b5767814770d85b49", "type": "gitlab" }, "original": { @@ -147,11 +147,11 @@ ] }, "locked": { - "lastModified": 1766682973, - "narHash": "sha256-GKO35onS711ThCxwWcfuvbIBKXwriahGqs+WZuJ3v9E=", + "lastModified": 1768770171, + "narHash": "sha256-JPmLGZgdWa8QcQbbtBqyZhpmxIHZ3lUO48laERjw+4k=", "owner": "nix-community", "repo": "home-manager", - "rev": "91cdb0e2d574c64fae80d221f4bf09d5592e9ec2", + "rev": "521d5ea1a229ba315dd1cceaf869946ddcc83d36", "type": "github" }, "original": { @@ -162,11 +162,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1766651565, - "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "type": "github" }, "original": { @@ -178,11 +178,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1766399428, - "narHash": "sha256-vS6LSOMDOB3s+L6tqw9IGujxnmUAZQnEG+Vi640LayI=", + "lastModified": 1767313136, + "narHash": "sha256-16KkgfdYqjaeRGBaYsNrhPRRENs0qzkQVUooNHtoy2w=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a6c3a6141ec1b367c58ead3f7f846c772a25f4e5", + "rev": "ac62194c3917d5f474c1a844b6fd6da2db95077d", "type": "github" }, "original": { @@ -194,11 +194,11 @@ }, "nixpkgs2": { "locked": { - "lastModified": 1766651565, - "narHash": "sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU=", + "lastModified": 1768564909, + "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3e2499d5539c16d0d173ba53552a4ff8547f4539", + "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f", "type": "github" }, "original": { @@ -220,11 +220,11 @@ ] }, "locked": { - "lastModified": 1764773531, - "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", + "lastModified": 1767810917, + "narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=", "owner": "nix-community", "repo": "NUR", - "rev": "1d9616689e98beded059ad0384b9951e967a17fa", + "rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4", "type": "github" }, "original": { @@ -263,11 +263,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1766603026, - "narHash": "sha256-J2DDdRqSU4w9NNgkMfmMeaLIof5PXtS9RG7y6ckDvQE=", + "lastModified": 1768744881, + "narHash": "sha256-3+h7OxqfrPIB/tRsiZXWE9sCbTm7NQN5Ie428p+S6BA=", "owner": "nix-community", "repo": "stylix", - "rev": "551df12ee3ebac52c5712058bd97fd9faa4c3430", + "rev": "06684f00cfbee14da96fd4307b966884de272d3a", "type": "github" }, "original": { @@ -327,11 +327,11 @@ "tinted-schemes": { "flake": false, "locked": { - "lastModified": 1763914658, - "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", + "lastModified": 1767710407, + "narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=", "owner": "tinted-theming", "repo": "schemes", - "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", + "rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2", "type": "github" }, "original": { @@ -343,11 +343,11 @@ "tinted-tmux": { "flake": false, "locked": { - "lastModified": 1764465359, - "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", + "lastModified": 1767489635, + "narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=", "owner": "tinted-theming", "repo": "tinted-tmux", - "rev": "edf89a780e239263cc691a987721f786ddc4f6aa", + "rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184", "type": "github" }, "original": { @@ -359,11 +359,11 @@ "tinted-zed": { "flake": false, "locked": { - "lastModified": 1764464512, - "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", + "lastModified": 1767488740, + "narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=", "owner": "tinted-theming", "repo": "base16-zed", - "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", + "rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40", "type": "github" }, "original": { diff --git a/modules/home-manager/terminal/zellij.nix b/modules/home-manager/terminal/zellij.nix index e2e525c..1e16c56 100644 --- a/modules/home-manager/terminal/zellij.nix +++ b/modules/home-manager/terminal/zellij.nix @@ -1,8 +1,18 @@ -{ +{ config, lib, ... }: { programs.zellij = { # Аналог tmux enable = true; + # Перезапись некоторых цветов stylix темы + themes.stylix = { + themes = with config.lib.stylix.colors.withHashtag; { + default = { + ribbon_selected.background = lib.mkForce base0B; + table_title.base = lib.mkForce base0B; + frame_selected.base = lib.mkForce base0B; + }; + }; + }; # enableBashIntegration = true; # enableZshIntegration = true; # enableFishIntegration = true; }; -} \ No newline at end of file +} diff --git a/modules/home-manager/wm/bspwm/bspwm.nix b/modules/home-manager/wm/bspwm/bspwm.nix index 89673b5..6d31050 100644 --- a/modules/home-manager/wm/bspwm/bspwm.nix +++ b/modules/home-manager/wm/bspwm/bspwm.nix @@ -22,6 +22,7 @@ # "lxqt-policykit-agent" # Заменил на гномовский "sxhkd" "nm-applet" # Нетворк манагер + # "blueman-applet" # Блютуз в трее "ksnip" "xset s off -dpms" # Отменить затухание экрана через X минут "spice-vdagent" # Для виртуалки diff --git a/modules/nixos/network.nix b/modules/nixos/network.nix index 3e7866d..79bf97a 100644 --- a/modules/nixos/network.nix +++ b/modules/nixos/network.nix @@ -14,11 +14,14 @@ firewall.enable = false; }; - programs.throne = { - enable = true; - tunMode = { + programs = { + amnezia-vpn.enable = true; + throne = { enable = true; - # setuid = true; # Если не работает tun мод + tunMode = { + enable = true; + # setuid = true; # Если не работает tun мод + }; }; }; } diff --git a/nixos/configuration.nix b/nixos/configuration.nix index 64ba556..548febc 100644 --- a/nixos/configuration.nix +++ b/nixos/configuration.nix @@ -10,24 +10,15 @@ in { ./packages.nix ]; - # Если какие-то сервисы кладут систему при ребилде, - # то их ребут при ребилде можно выключить таким конфигом: - # systemd.services = { - # "accounts-daemon".restartIfChanged = false; - # "home-manager-buliway".restartIfChanged = false; - # }; - boot = { kernelPackages = pkgs.linuxPackages_latest; # Ядро линуха, ласт версия - # kernelParams = [ # https://nixos.wiki/wiki/AMD_GPU#Dual_Monitors - # "video=1920x1080" - # ]; loader = { grub = { enable = true; - efiSupport = true; device = "nodev"; # nodev позволяет не устанавливать grub в конкретное место, но видеть его ui + efiSupport = true; + useOSProber = true; }; efi.canTouchEfiVariables = true; }; @@ -41,9 +32,6 @@ in { isNormalUser = true; description = username; extraGroups = [ "networkmanager" "wheel" "input" "libvirtd" "storage" "docker" "video" ]; - # packages = with pkgs; [ - # clang-tools - # ]; }; }; diff --git a/nixos/home.nix b/nixos/home.nix index 908e5cc..b0ce886 100644 --- a/nixos/home.nix +++ b/nixos/home.nix @@ -46,7 +46,6 @@ vencord.enable = false; vesktop.enable = false; btop.enable = false; - zellij.enable = false; yazi.enable = false; neovim.enable = false; gitui.enable = false; diff --git a/nixos/packages.nix b/nixos/packages.nix index 7397d68..d09f79f 100644 --- a/nixos/packages.nix +++ b/nixos/packages.nix @@ -1,4 +1,4 @@ -{ pkgs, pkgs2, spkgs, inputs, ... }: { +{ pkgs, pkgs2, spkgs, ... }: { # https://nixos.wiki/wiki/Fonts fonts.packages = with pkgs; [ @@ -42,7 +42,6 @@ tumbler.enable = true; # Thumbnail support for Thunar file manager # unclutter.enable = true; # Hide your mouse cursor when inactive # fwupd.enable = true; # DBus service that allows applications to update firmware - # fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь flatpak = { # flatpak install flathub com.github.tchx84.Flatseal enable = true; @@ -115,7 +114,7 @@ thunar = { enable = true; - plugins = with pkgs.xfce; [ + plugins = with pkgs; [ thunar-media-tags-plugin # Tagging and renaming features for media files thunar-archive-plugin # File context menus for archives thunar-volman # Automatic management of removable drives and media @@ -132,12 +131,6 @@ # Оптимизация для игр. https://github.com/FeralInteractive/gamemode 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 }; environment.systemPackages = with pkgs; [ @@ -146,62 +139,53 @@ ## Программирование ## ###################### + neovim + # Это рекомендуют ставить не на всю систему, # а только на nix shell внутри проекта, где нужны эти пакеты # Но я хочу на всю систему # Python - python3 # Python last version - python3Packages.pip # Python package manager (nvim его не видит) + python3 + python3Packages.pip # Package manager (nvim его не видит) python3Packages.debugpy # Debug Adapter Protocol for Python - pyright # Python LSP - ruff # Extremely fast Python linter + pyright # LSP + ruff # Linter # C/C++ - # 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 + clang-tools # Clangd? LSP # Rust rust-analyzer # Rust LSP (rustup component add rust-analyzer) # Golang - go # Go programming language - gopls # Go LSP - delve # Go debugger - templ # A language for writing HTML user interfaces in Go. - golangci-lint # Fast linters Runner for Go + go + gopls # LSP + delve # Debugger + golangci-lint # Linter # Nix - nixd # Nix LSP. Нет в mason + nixd # LSP # Lua - lua5_1 # Scripting language + lua5_1 luajit # JIT compiler for Lua - luajitPackages.luarocks # Package manager for lua - lua-language-server # Lua LSP - stylua # Lua formatter + luajitPackages.luarocks # Package manager + lua-language-server # LSP + stylua # Formatter # Shell/Bash - bash-language-server # Basp LSP + bash-language-server # LSP shellcheck # Проверка shell скриптов на ошибки shfmt # Shell parser and formatter # SQL - sqls # SQL LSP + sqls # LSP sqlite dbeaver-bin # Frontend nodejs_24 # For npm - htmx-lsp # HTMX lsp emmet-language-server # Emmet.io LSP vscode-langservers-extracted # HTML/CSS/JSON/ESLint LSP typescript-language-server # TypeScript LSP @@ -227,17 +211,17 @@ # kubernetes-helm # Package manager for kubernetes # Other - # hugo # Для моего блога + android-tools + gnumake + cmake-language-server + cmake + spkgs.hugo # Для моего блога yaml-language-server # YAML LSP taplo # TOML LSP vim-language-server # VimScript LSP - # go-migrate # Database migrations. CLI and Golang library # postman # API Development Environment # insomnia - # Nushell - # nushell # Modern shell - # For nvim tree-sitter # For nvim ripgrep # For nvim @@ -262,53 +246,49 @@ wget curl git - gitui # Git TUI - xclip # Буфер обмена - ffmpeg_7 # Обработка видео. Нужен всегда и везде как зависимость - svt-av1 # Кодек для рендера в av1 на проце - # imlib2Full # Image manipulation library - imagemagick # Обработка изображений. Мб тоже нужен всегда + tree + xdg-utils + httpie + jq + libxml2 + miller + htmlq + usbutils + f2fs-tools + exfat + gitui + pwgen + lm_sensors + exiftool + xclip # Буфер обмена на X11 + ffmpeg_7 # Обработка видео + svt-av1 # Быстрый рендер в av1 на проце + imagemagick # Конвертация картинок vips # В 4 раза быстрее imagemagick? - tree # Структура файлов в терминале - gnugrep # Поиск в терминале - gawk # Обработка и анализ текста в терминале + gnugrep # Поиск в терминале (grep) + gawk # Обработка и анализ текста в терминале (awk) rsync # Синхронизация файлов bat # Аналог cat с подсветкой синтаксиса xorg.xwininfo # Команда xprop. Статы окна, по типу класса xorg.xrandr # Управление мониторами xorg.xev # Узнать айдишник бинда - xdg-utils # Set of command line tools that assist applications with a variety of desktop integration tasks playerctl # Управление медиа. Плей/пауза и тд xdotool # Fake keyboard/mouse input. Для rofi-pass - # zscroll # A text scroller for use with panels and shells https://github.com/noctuid/zscroll tokei # Количество строк кода на разных языках в каталоге pass # Менеджер паролей в терминале - amdgpu_top # Tool to display AMD GPU usage btop # Монитор ресурсов в терминале - rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает) + rocmPackages.rocm-smi # Чтоб в btop было amd gpu? rocmPackages.rocblas # Для работы hip? rocmPackages.hipblas # Для работы hip? rocmPackages.clr # Для работы hip? - pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов - timer # A "sleep" with progress. Таймер на пельмени "timer 5m" - libqalculate # Advanced calculator library + timer # Таймер на пельмени "timer 5m" + libqalculate # Калькулятор для rofi fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw fzf # Нечёткий поиск - killall # Убить процессы. Мем, что в стоке не стоит + killall # Убить процессы libnotify # Вызов оповещений через "notify-send" + pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов 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 # Минималистичный терминал. Основной у меня kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает @@ -317,15 +297,14 @@ ## GUI ## ######### - ksnip # Скрины. Аналоги - Flameshot + ksnip # Скрины. Аналог - Flameshot file-roller # Архиватор от gnome qbittorrent # Торренты качать # thunderbird # Почтовый клиент для своей почты - # screenkey # A screencast tool to display your keys - pavucontrol # PulseAudio Volume Control - # pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol) + pavucontrol + # pwvucontrol # Замена pavucontrol для PipeWire networkmanagerapplet # Tray for network manager - # brightnessctl # Brightness control for laptop + # brightnessctl # gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает ############## @@ -342,64 +321,64 @@ ########## evince # Смотреть документы (так же превью PDF файлов для Thunar) (не читает FB2) - # papers # Я так понимаю это современная замена для evince под GTK4. Оба от gnome + # papers # Современная замена для evince под GTK4. Оба от gnome libreoffice # Редактировать документы hunspell # Проверка орфографии для libreoffice hunspellDicts.ru_RU # Словарь для проверки орфографии hunspellDicts.en_US # Словарь для проверки орфографии calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере # drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger - spkgs.xournalpp # Xournal++ is a handwriting Notetaking software with PDF annotation support + spkgs.xournalpp ################### ## File managers ## ################### - ranger # Terminal file manager - xfce.thunar # GUI file manager (допы выше в `programs` и `services`) - xfce.catfish # File searching (for Thunar) + ranger + thunar # GUI file manager (допы выше в `programs` и `services`) + catfish # File searching (for Thunar) xfce4-exo # Мб надо, чтоб терминал открывать в каталоге - ffmpegthumbnailer # A lightweight video thumbnailer - gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books + ffmpegthumbnailer + gnome-epub-thumbnailer # nufraw-thumbnailer # Thumbnailer for .raw images from digital cameras - # mcomix # Comic book reader and image viewer. 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. - openscad # 3D model previews (stl, off, dxf, scad, csg). Этот именно для ranger, но мб пригодится и в других местах + # mcomix # Thumbnailer for .crb comicbook archives (требует mupdf, который крашит систему) + # f3d # Thumbnailer for 3D files, including glTF, stl, step, ply, obj, fbx. (требует openturns, который крашит систему) + openscad # 3D model previews (stl, off, dxf, scad, csg). Этот именно для ranger ################## ## File support ## ################## - kdePackages.kimageformats # Image format plugins for Qt 6 + kdePackages.kimageformats # Image format plugins for Qt 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 - kdePackages.qtsvg # SVG support + kdePackages.qtsvg kdePackages.karchive # Plugin for Krita and OpenRaster images - webp-pixbuf-loader # .webp support (what's this?) - gdk-pixbuf.dev # Library for image loading and manipulation - libwebp # .webp support - libavif # AVIF format support - libheif # HEIF format support + webp-pixbuf-loader + gdk-pixbuf.dev + libwebp + libavif + libheif libgsf # .odf support - libjxl # JPEG-XL format support - libraw # RAW format support - librsvg # Small library to render SVG images to Cairo surfaces - jxrlib # JPEG XR image support + libjxl + libraw + librsvg + jxrlib poppler # PDF support - freetype # Font rendering engine - imath # EXR format support - openexr # High dynamic-range (HDR) image file format + freetype + imath + openexr ########### ## Media ## ########### - strawberry # Музыкальный плеер - obs-studio # Запись видео + strawberry + obs-studio picard # Массовый редактор метаданных музыки mousai # Опенсорс шазам. Со временем просит платный api - spek # Спектрограмма аудио. + spek # Спектрограмма аудио mpv # Смотреть видео qview # Смотреть картинки. Умеет открывать всё, включая анимированный webp и avif @@ -407,11 +386,10 @@ ## Social ## ############ - # (pkgs2.discord.override { # Discord - # # withOpenASAR = true; # Оптимизатор дискрода - # withVencord = true; # Имба плагины - # }) - pkgs2.discord + (pkgs2.discord.override { + withVencord = true; + }) + # pkgs2.discord pkgs2.vesktop pkgs2.telegram-desktop @@ -420,16 +398,17 @@ ########### 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 mangohud # Фпс и нагрузку на пк показывает в играх wineWowPackages.stableFull # support both 32- and 64-bit applications # wineWowPackages.staging # Можно назвать бета версией вайна - winetricks # winetricks (all versions) + winetricks # wineWowPackages.waylandFull # native wayland support (unstable) - # protontricks # Running Winetricks commands for Proton-enabled games + # protontricks ############ ## Design ## @@ -447,14 +426,9 @@ ################## obsidian # Заметки - spkgs.planify # Task manager - pkgs2.ticktick # Powerful to-do app, proprietary - - ######### - ## IDE ## - ######### - - neovim + spkgs.planify # Таски + pkgs2.super-productivity # Таски + pkgs2.ticktick # Таски, proprietary ########### ## Icons ## @@ -489,7 +463,6 @@ # vial # GUI для qmk, если клавиатура поддерживает fontconfig zlib - # google-fonts libva-utils # Проверяет работоспособность VAAPI? clinfo # Проверяет работоспособность OpenCL? libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox diff --git a/nvim/README.md b/nvim/README.md index 2c2f434..bb00276 100644 --- a/nvim/README.md +++ b/nvim/README.md @@ -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 -> ⚠️ **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 -Если будут проблемы с сессиями, то можно написать `:SessionDelete`. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии +Если будут проблемы с сессиями, то можно нажать Space S d, чтоб удалить сессию. Для выхода из проекта лучше использовать `:qa`, а не `:q`, чтоб закрыть все буферы и не ломать сессии Конфиг сделан для 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**: Я вообще перестал качать что либо через mason, используя его только как поиск разных инструментов для нужного мне языка. Так что лучше ничего не качать через него. +> ⚠️ **Warning**: Я вообще перестал качать что либо через mason, использую его только как поиск разных инструментов для нужного мне языка. Так что лучше ничего не качать через него. -## Установка -На новом пк руками делаю симлинк в `~/.config/nvim`. - -```sh -ln -s ~/nixos-private-dots/nvim ~/.config/nvim -``` ### Зависимости Для работы этого конфига надо установить некоторые пакеты в систему. Часть из них я напишу ниже, часть находится в `packages.nix` в категории `программирование` @@ -46,7 +48,7 @@ ln -s ~/nixos-private-dots/nvim ~/.config/nvim - `ueberzugpp` - Любой nerd font -Пакеты для разных языков могут часть меняться, так что ищем в `packages.nix` +Пакеты для разных языков могут часто меняться, так что ищем в `packages.nix` Чтоб понять есть ли проблемы с конфигом, может какие-то пакеты отсутствуют, можно запустить `:checkhealth`. @@ -79,6 +81,8 @@ Per project можно использовать `.editorconfig` файл в ко Все бинды можно искать прям в neovim, если нажать `Space s k`, тоесть `S`earch `K`eymaps +А ещё ты можешь нажать `ctrl + q`, находясь в grep поиске (`space s g`), чтоб заменить одно слово на другое во всей выдаче грепа. Но будь осторожен, если сидишь в zellij, там `ctrl + q` это выход из zellij сессии. Надо жать `ctrl + g` перед этим, чтоб залочить бинды самого zellij. + Я не помню откуда эти бинды, может они есть в стоке, а может нет, но они полезные. | Bind | Description | @@ -87,6 +91,7 @@ Per project можно использовать `.editorconfig` файл в ко | `ctrl+o` | Go back | | `ctrl+i` | Go forward (if you went backwards) | | `p` | Paste from nvim register | +| `space p` | Paste from nvim register without loss of content | | `ctrl+shift+v` | Paste from system clipboard | | `y` | Yank(copy) to nvim register | | `space y` | Yank(copy) to system clipboard | @@ -107,30 +112,28 @@ Per project можно использовать `.editorconfig` файл в ко | `esc esc` | Exit terminal mode (Or use `` to exit terminal mode) | settings.lua | | `esc` | Creal highlights on search when pressing Esc in normal mode | settings.lua | | `gp` | `G`oto context (`p`arent) | treesitter.lua | -| `gd` | `G`oto `D`efinition | lsp.lua | -| `gr` | `G`oto `R`eferences | lsp.lua | -| `gI` | `G`oto `I`mplementation | 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 | +| `grd` | `G`o `R`efactor `D`efinition | 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 | +| `grr` | `G`o `R`efactor `R`eferences | 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 | - | | `\` | 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`, пробел. | Bind | Description | File | |---------|---------------------------------------------------------------------------------------------------------------------------------------------------|----------------| | `tt` | `T`oggle `T`erminal | terminal.lua | -| `gta` | `G`o `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 | -| `gs` | `G`o fill `S`truct | golang.lua | -| `gc` | `G`o 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 | -| `ge` | `G`o if `E`rr | golang.lua | -| `gi` | `G`o `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 | +| `gta` | `G`olang `T`ag `A`dd. Add json tags for struct | golang.lua | +| `gtr` | `G`olang `T`ag `R`emove. Remove json tags for struct | golang.lua | +| `gs` | `G`olang fill `S`truct | golang.lua | +| `gc` | `G`olang fill Switch `C`ase | 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`olang if `E`rr | golang.lua | +| `gi` | `G`olang `I`mports | golang.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 `S`elect Telescope | health.lua | @@ -151,7 +154,6 @@ Per project можно использовать `.editorconfig` файл в ко | `f` | `F`ormat buffer | autoformat.lua | | `Sd` | `S`ession `D`elete | session.lua | | `Sc` | `S`ession `C`reate | session.lua | -| `Backspace` | Session restore | session.lua | ### Git diff --git a/shit/README.md b/shit/README.md index caed1fc..c762645 100644 --- a/shit/README.md +++ b/shit/README.md @@ -6,4 +6,4 @@ ## Применение скрипта -Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно. Разрабы далбаёбы +Когда система готова и все симлинки отправлены куда надо, этот скрипт именно скопирует нужные файлы в нужные каталоги. В теории, тогда программы не будут перезаписывать, а будут дополнять этот файл. Но это не точно