444 lines
19 KiB
Nix
444 lines
19 KiB
Nix
{ pkgs, ... }: {
|
||
|
||
# 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 = {}; # Фарм карточек стима афк. Простро раскомментить мало, надо настроить
|
||
};
|
||
|
||
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 pkgs; [
|
||
gcc
|
||
libGL
|
||
glib
|
||
libGLU.out
|
||
];
|
||
};
|
||
};
|
||
|
||
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
|
||
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
|
||
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 # Менеджер паролей в терминале
|
||
btop # Монитор ресурсов в терминале
|
||
rocmPackages.rocm-smi # Чтоб в btop было gpu (не работает)
|
||
# rocmPackages_5.rocm-smi # Старая версия пакета выше. Хз какой надо
|
||
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
|
||
];
|
||
}
|