nixos_dots/nixos/packages.nix

489 lines
21 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ pkgs, pkgs2, ... }: {
# https://nixos.wiki/wiki/Fonts
fonts.packages = with pkgs; [
noto-fonts # Шрифт от гугла, цель которого поддержка всех языков мира
noto-fonts-cjk-serif # Отображение иероглифов. Версия с засечками
noto-fonts-cjk-sans # Отображение иероглифов. Версия без засечек
noto-fonts-color-emoji
noto-fonts-monochrome-emoji
(nerdfonts.override {fonts = ["JetBrainsMono" "Noto" "CascadiaCode"];})
carlito # Совместим с Calibri, разработан как его свободная альтернатива. Без засечек
terminus_font
inconsolata
font-awesome
liberation_ttf
dejavu_fonts
cantarell-fonts
unifont
unifont_upper
];
systemd = { # Запуск гномовского полкита. Окно ввода пароля для рут доступа
user.services.polkit-gnome-authentication-agent-1 = {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
services = {
gvfs.enable = true; # Mount, trash, and other functionalities for Thunar file manager
tumbler.enable = true; # Thumbnail support for Thunar file manager
# flatpak.enable = true;
# unclutter.enable = true; # Hide your mouse cursor when inactive
# fwupd.enable = true; # DBus service that allows applications to update firmware
# greenclip.enable = true; # https://github.com/erebe/greenclip (использую clipmenu вместо этого)
# fstrim.enable = true; # Чистит ssd для норм производительности. Пока не пользуюсь
# archisteamfarm = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
ollama = let # Более новая версия олламы. Не находит libstdc++.so.6
pinPackage =
{
name,
commit,
sha256,
}:
(import (builtins.fetchTarball {
inherit sha256;
url = "https://github.com/NixOS/nixpkgs/archive/${commit}.tar.gz";
}) { system = pkgs.system; }).${name};
in {
enable = true;
acceleration = "rocm";
# Ollama Port 11434/tcp
host = "0.0.0.0";
port = 11434;
openFirewall = true;
# pin ollama v0.5.7 until nixpkgs update
# https://github.com/NixOS/nixpkgs/issues/375359
package = (pinPackage {
name = "ollama";
commit = "d0169965cf1ce1cd68e50a63eabff7c8b8959743";
sha256 = "sha256:1hh0p0p42yqrm69kqlxwzx30m7i7xqw9m8f224i3bm6wsj4dxm05";
});
rocmOverrideGfx = "10.3.0";
# additional environment variables
# environmentVariables = { HSA_OVERRIDE_GFX_VERSION="10.3.0"; };
};
# nextjs-ollama-llm-ui.enable = true; # Залупа, не может качать модели и не видит те, которые уже установлены
# open-webui = { # Не робит, нужно компилить rocm ласт версии, который не робит на моей видюхе
# enable = true;
# port = 3000;
# };
};
programs = {
zsh.enable = true;
mtr.enable = true; # Объединяет функции утилит traceroute и ping
gnupg.agent = {
enable = true;
enableSSHSupport = true;
pinentryPackage = pkgs.pinentry-qt; # Окно ввода пароля
};
appimage = { # Чтоб .appimage работал
enable = true;
binfmt = true;
package = pkgs.appimage-run.override { # Зависимости для нужных мне приложений
extraPkgs = pkgs: with pkgs; [ libpng libpng12 libepoxy pcre2 double-conversion ];
};
};
thunar = { # Can't I use it with home-manager? WTF
enable = true;
plugins = with pkgs.xfce; [
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
];
};
xfconf.enable = true; # For Thunar configs
steam = {
enable = true;
extraCompatPackages = with pkgs; [ # Доп версии протона. Должны иметь `steamcompattool` output
proton-ge-bin
];
# fontPackages = with pkgs; []; # Font packages to use in Steam
# extraPackages = with pkgs; []; # Additional
# protontricks.enable = true; # Running Winetricks commands for Proton-enabled games.
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
};
# Оптимизация для игр. 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;
nix-ld = { # Позволяет нормально юзать либы для венва и тп
enable = true;
libraries = with pkgs2; [
gcc
libGL
glib
libGLU.out
libgcc.lib # Для libstdc++.so.6с
];
};
};
environment.systemPackages = with pkgs; [
######################
## Программирование ##
######################
# Это рекомендуют ставить не на всю систему,
# а только на nix shell внутри проекта, где нужны эти пакеты
# Но я хочу на всю систему
# Python
python3 # Питухон ласт версии
# pylyzer # Fast static code analyzer & language server for Python
# ruff # Extremely fast Python linter
# C
gcc # Компилятор C
rocmPackages.llvm.clang # Компилятор C
gnumake # Компилятор?
ccls # C lsp
# Rust
rustup # Управление версиями языка Rust
rust-analyzer # Rust lsp
# Golang
go # Go programming language
gopls # Golang lsp
protobuf # Инструментарий для работы с протобафом
protoc-gen-go # Инструментарий для работы с протобафом в go
protoc-gen-go-grpc # Инструментарий для работы с протобафом в go и grpc
go-migrate # Для миграций бд
mockgen # Генерации моков для тестов из интерфейсов
templ # HTML SSR
# Frontend
# vscode-langservers-extracted # HTML/CSS/JSON/ESLint lsp
# typescript-language-server # JS/TS lsp
# htmx-lsp # HTMX lsp
# tailwindcss-language-server # Tailwind CSS lsp
# Мб emmet добавить потом. Но все lsp для него нонейм
# Nix
nixd # Nix lsp
# alejandra # Nix formatter. Usage: alejandra file.nix
# Shell
shellcheck # Проверка shell скриптов на ошибки
bash-language-server # Bash lsp
# Database
# sqls # SQL lsp
# postgres-lsp # Postgres lsp
# Other
hugo # Для моего блога
# lua-language-server # Lua lsp
# marksman # Markdown lsp
# taplo # TOML lsp
# vim-language-server # VimScript lsp
# yaml-language-server # YAML lsp
# dockerfile-language-server-nodejs # Dockerfiles
# zls # Zig lsp
# lemminx # XML lsp (юзает java)
############
## Архивы ##
############
zip # Архивировать
unzip # Разархивировать
unrar # Разархивировать
gnutar # Для .tar?
_7zz # Это пакет для 7z?
bzip2 # .bz2 архивы
##############
## Terminal ##
##############
mdadm # Для создания рейд массивов
cryptsetup # Для шифрования дисков
pkgs2.openssl
wget
curl
git
xclip # Для работы буфера обмена
ffmpeg_7 # Обработка видео. Нужен всегда и везде
imagemagick # Обработка изображений. Мб тоже нужен всегда
vips # В 4 раза быстрее imagemagick?
tree # Структура файлов в терминале
gnugrep # Поиск в терминале
gawk # Обработка и анализ текста в терминале
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 # Менеджер паролей в терминале
nvtopPackages.full # Htop like gpu monitor
amdgpu_top # Tool to display AMD GPU usage
btop # Монитор ресурсов в терминале
rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
# rocmPackages_5.rocm-smi # Старая версия пакета выше. Хз какой надо
rocmPackages.rocblas # Для работы hip?
rocmPackages.hipblas # Для работы hip?
rocmPackages.clr # Для работы hip?
pkgs2.yt-dlp # Скачивать и смотреть медиа с разных сайтов
tasktimer # TUI task timer. Можно несколько таймеров с описанием запустить. В терминал tt
timer # A "sleep" with progress. Таймер на пельмени "timer 5m"
libqalculate # Advanced calculator library
fastfetch # Пишешь в теримнал и кидаешь всем со словами I use nixos btw
zoxide # Замена cd для частых каталогов
fzf # Нечёткий поиск
killall # Убить процессы. Мем, что в стоке не стоит
libnotify # Вызов оповещений через "notify-send"
gallery-dl # Качать много картинок с кучи разных сайтов
shellcheck # Проверка shell скриптов на ошибки
pwgen # Генератор паролей
lm_sensors # Сенсоры
httpie # interacting with APIs & HTTP servers
# mkvtoolnix-cli # Cross-platform tools for Matroska
# jq # Cli JSON processor
# htmlq # Как jq, но для html. Извлекать конкретные элементы из html
alacritty # Минималистичный терминал. Основной у меня
# kitty # Самый быстрый протокол отображения медиа, но ssh через жопу работает
#########
## GUI ##
#########
nekoray # VPN
ksnip # Скрины. Аналоги - Flameshot
kdePackages.ark # Архиватор от kde. Имеет в зависимостях blowjob
#file-roller # Архиватор от gnome
qbittorrent # Торренты качать
thunderbird # Почтовый клиент для своей почты
screenkey # A screencast tool to display your keys
pavucontrol # PulseAudio Volume Control
# pwvucontrol # Pipewire Volume Control (Не знаю может ли полностью заменить pavucontrol)
networkmanagerapplet # Tray for network manager
brightnessctl # Brightness control for laptop
# gucharmap # Проверка шрифтов. Какой шрифт какие символы отображает
##############
## Browsers ##
##############
librewolf
firefox
chromium
# ff2mpv # Открывать видео из браузера в mpv плеере
lynx # Текстовый браузер в терминале. Без картинок
##########
## Docs ##
##########
evince # Смотреть документы (так же превью PDF файлов для Thunar) (не читает FB2)
# papers # Я так понимаю это современная замена для evince под GTK4. Оба от gnome
libreoffice # Редактировать документы
hunspell # Проверка орфографии для libreoffice
hunspellDicts.ru_RU # Словарь для проверки орфографии
hunspellDicts.en_US # Словарь для проверки орфографии
calibre # Работа с ebook. Иногда даёт thumbnail в файловом менеджере
drawio # Desktop application for creating diagrams. Вроде даёт thumbnail в ranger
xournalpp # Xournal++ is a handwriting Notetaking software with PDF annotation support
###################
## File managers ##
###################
ranger # Terminal file manager
xfce.thunar # GUI file manager (допы выше в `programs` и `services`)
xfce.catfish # File searching (for Thunar)
xfce.exo # Мб надо, чтоб терминал открывать в каталоге
ffmpegthumbnailer # A lightweight video thumbnailer
gnome-epub-thumbnailer # Thumbnailer for EPub and MOBI books
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, но мб пригодится и в других местах
kdePackages.dolphin # Долфин и софт для него
kdePackages.ffmpegthumbs
kdePackages.kdegraphics-thumbnailers
kdePackages.filelight
##################
## File support ##
##################
kdePackages.kimageformats # Image format plugins for Qt 6
kdePackages.qtimageformats # Plugins for additional image formats: TIFF, MNG, TGA, WBMP
kdePackages.qtsvg # SVG support
kdePackages.karchive # Plugin for Krita and OpenRaster images
webp-pixbuf-loader # .webp support (what's this?)
libwebp # .webp support
libavif # AVIF format support
libheif # HEIF format support
libgsf # .odf support
libjxl # JPEG-XL format support
libraw # RAW format support
jxrlib # JPEG XR image support
poppler # PDF support
freetype # Font rendering engine
imath # EXR format support
openexr # High dynamic-range (HDR) image file format
###########
## Media ##
###########
strawberry # Музыкальный плеер
obs-studio # Запись видео # TODO: Настройки надо сделать декларативными
picard # Массовый редактор метаданных музыки
mousai # Опенсорс шазам. Со временем просит платный api
spek # Спектрограмма аудио.
mpv # Смотреть видео
# Смотреть картинки
imv # Не умеет показывать анимированные webp. Через раз может показывать avif
qview # Умеет в анимированные webp. Не умеет открывать avif
feh # Нужен в большом количестве софта как зависимость. Может в avif, но криво
############
## Social ##
############
(discord.override { # Discord
# withOpenASAR = true; # Оптимизатор дискрода
withVencord = true; # Имба плагины # TODO: Настройки надо сделать декларативными
})
telegram-desktop
# revolt-desktop # FOSS аналог дискорда
###########
## Games ##
###########
# inputs.nix-gaming.packages.${pkgs.system}.osu-stable # osu!stable from nix-gaming
# steam # Мб не надо сюда писать, раз через programs.steam редачу
# heroic # A Native GOG, Epic, and Amazon Games Launcher for Linux, Windows and Mac
# lutris # Запускать игры не из стима
# bottles # Минималистичная альтернатива lutris
# Мб зависимости
steam-run # На всякий случай
mangohud # Фпс и нагрузку на пк показывает в играх
gamemode # Оптимизации линуха и игр
wineWowPackages.stable # support both 32- and 64-bit applications
wineWowPackages.stableFull
# wineWowPackages.staging # Можно назвать бета версией вайна
winetricks # winetricks (all versions)
# wineWowPackages.waylandFull # native wayland support (unstable)
# protontricks # Running Winetricks commands for Proton-enabled games
############
## Design ##
############
krita # Рисовать 1. Часто крашится
gimp # Рисовать 2. Потом выберу что оставить
blender-hip # 3д графика и рендер видео
gcolor3 # GUI color picker
xcolor # CLI color picker https://github.com/Soft/xcolor
# inkscape # Vector graphic editor
##################
## Productivity ##
##################
obsidian # Заметки
planify # Task manager
#########
## IDE ##
#########
neovim # Мб не надо писать, он у меня необычный, через nixvim flake
# vscode # Надо в home.packages писать, чтоб расширения ставились без рута
jetbrains-toolbox # Надо в home.packages писать. https://nixos.wiki/wiki/Jetbrains_Tools
helix # A Kakoune / Neovim inspired editor, written in Rust.
###########
## Icons ##
###########
adwaita-icon-theme
libsForQt5.breeze-icons # qt5
kdePackages.breeze-icons # qt6
papirus-icon-theme
material-icons
############
## Vulkan ##
############
gfxreconstruct
glslang
spirv-cross
spirv-headers
spirv-tools
vulkan-extension-layer
vulkan-headers
vulkan-loader
vulkan-tools
vulkan-tools-lunarg
vulkan-utility-libraries
vulkan-validation-layers
vkdisplayinfo
vk-bootstrap
dxvk # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 8/9/10/11)
vkd3d # Чтоб wine игры запускались через vulkan, а не opengl (Direct3D 12)
vkd3d-proton
# vkbasalt # Баф Vulkan для улучшения визуальной графики игр https://github.com/DadSchoorse/vkBasalt
###########
## Other ##
###########
qmk # Прошивка для моих раздельных клавиатур
vial # GUI для qmk, если клавиатура поддерживает
fontconfig
zlib
google-fonts
libva-utils # Проверяет работоспособность VAAPI?
clinfo # Проверяет работоспособность OpenCL?
libsecret # Хранить и получать аккаунты у приложений. Например для jetbrains toolbox
alsa-utils # Мне для команды amixer надо
pamixer # PulseAudio cli (громкость редачу)
easyeffects # PipeWire settings. Мне для эквалайзера нужен
weston # Для запуска wayland only apps на x11 (ещё есть cage, но он крашит систему при ребилде)
nix-index # Проверить как отображаются некоторые пакеты(например libz.so.1). Запускается nix-index, а потом nix-locate --top-level <Название пакета>
docker
docker-compose
# Для работы некоторых тем sddm
kdePackages.qt5compat
libsForQt5.qt5.qtgraphicaleffects
libsForQt5.qt5.qtquickcontrols
sddm-chili-theme # Qt5 SDDM Theme
];
}